SMOLNET PORTAL home about changes
+----------------------------------------+
|Awk - Layout Functions                  |
|Written by Wim Stockman - on 06 Oct 2020|
+----------------------------------------+

Awk is by far my favourite tool: So here is some need trick:

Some Useful Awk Layout Function to line out your Plain Text
for your gopher page for instance

1. 	The first function left fills with a paddingchar:

'''CodeSnippet

		function leftfill(text,width,paddingchar){
			if(!paddingchar){paddingchar=" ";}
			size=length(text)+1;
			out="";
			for(i=size;i<=width;i++){ out = out paddingchar;}
			out = out text;
			paddingchar=" " ; 
			print(out);
		}
'''		
	Which fills up the left side of your text with a paddinchar.
	Default Paddingchar is <space>

	Usage: leftfill(Text,75,"-");
Example:
-----------------------------------------------------------------Left Fill

2.	The centertext function centers the text in your giving width

'''CodeSnippet
		function centertext(text,width,paddingchar) {
			size=length(text);
			out="";
			insertpos=int((width-size)/2);
			if(!paddingchar){paddingchar=" ";}
			for(i=0;i<=width;i++)
				{
				if(i==insertpos) {out= out text; i=i+size}
				else { out = out paddingchar; }
				}
			print(out);
		}
'''
	and you can add a paddingchar to fill up both left and rigt side
	Default Paddingchar is <space>

	Usage: centertex(text,width,"-")
Example:

-------------------------------Center Text--------------------------------
3. 	Rightfill with a paddingchar:

'''CodeSnippet
		function rightfill(text,width,paddingchar) {
			if(!paddingchar){paddingchar=" ";}
			size=length(text)+1;
			out=text;
			for(i=size;i<=width;i++){ out = out paddingchar;}
			paddingchar=" " ; 
			print(out);
		}
'''
	Which fills up the right side of your text with a paddinchar.
	Default Paddingchar is <space>

	Usage: rightfill(Text,75,"-");

Right Fill----------------------------------------------------------------

To Use these awk function inside your awk scripts you can copy and paste them
or save them to a file:e.g. layout_func.awk
and include them with the:
		@include layout_func.awk

To use it on the command line for example creating a cool gopher page Title 
you can use it: 
		awk -f layout_func.awk '{centertext($0,75,"-")}'
+--------------------------------------------------+
|Suggestions? gopher@yasendfile.org		   |
+--------------------------------------------------+
Response: text/plain
Original URLgopher://thinkerwim.org/0/TipTricks/layout_func.txt
Content-Typetext/plain; charset=utf-8