summaryrefslogtreecommitdiff
path: root/render.awk
diff options
context:
space:
mode:
Diffstat (limited to 'render.awk')
-rw-r--r--render.awk115
1 files changed, 115 insertions, 0 deletions
diff --git a/render.awk b/render.awk
new file mode 100644
index 0000000..db97f47
--- /dev/null
+++ b/render.awk
@@ -0,0 +1,115 @@
+
+function info_line(name, sel, host, port, dst){
+ printf("[i|%s|%s|%s|%s]\r\n", name, sel, host, port) > dst;
+}
+
+function show_link(l, i, dst){
+
+ if(l[i,"Category"] == "")
+ print "Uncategorised link:", l[i,"Selector"] > /dev/stderr;
+ else{
+ printf("[1|%s|%s|%s|%s]\r\n", l[i,"LinkName"], l[i,"Selector"], l[i,"Host"], l[i,"Port"] ) > dst;
+ info_line(l[i,"Description"],"Err", HOST, PORT, dst);
+ info_line("", "Err", HOST, PORT, dst);
+ }
+
+}
+
+
+function show_category_link(category, i, dst){
+ printf("[1|%s|%s|%s|%s]\r\n", category[i,"LinkName"], category[i,"Selector"], category[i,"Host"], category[i,"Port"]) > dst;
+}
+
+
+
+function get_parents(a){
+ delete pars;
+ split(a, pars, /[:blank:]*,[:blank:]*/);
+ for (k in pars){
+ gsub(/ +/, "", pars[k]);
+ #printf("%d: %s\n", k, pars[k]);
+ }
+
+}
+
+function category_in_parents(category, i){
+
+ get_parents(category[i,"Parent"]);
+ for (p in pars){
+ #printf("pars[%d]: %s\n", p, pars[p]);
+ if (pars[p]!="none"){### this is the root page
+ f = pars[p];
+ ##print "cfiles[pars[p]]:", cfiles[f];
+ show_category_link(category, i, cfiles[f]);
+ }
+ }
+}
+
+function category_header(category, i, dst){
+ info_line(category[i,"Title"], "Err", HOST, PORT, dst);
+ info_line("", "Err", HOST, PORT, dst);
+ info_line("Categories:", "Err", HOST, PORT, dst);
+}
+
+function get_link_categories(a){
+ delete cats;
+ split(a, cats, /[:blank:]*,[:blank:]*/);
+ for (k in cats){
+ gsub(/ +/, "", cats[k]);
+ }
+}
+
+########################################
+
+
+function render_init(){
+
+}
+
+
+function render_categories(category, cnum, link, lnum){
+ for (i=1; i<=cnum; i++){
+ cname=category[i,"Name"];
+ #print "'" cname "'";
+ cfiles[cname]=BASEDIR category[i,"Selector"];
+ #print cname ":" cfiles[cname];
+ cmd=sprintf("rm -f %s", cfiles[cname]);
+ system(cmd);
+ category_header(category, i, cfiles[cname]);
+ category_in_parents(category, i);
+ }
+}
+
+function render_post_categories(category, cnum){
+
+ for(i=1;i<=cnum; i++){
+ info_line("_______________", "Err", HOST, PORT, cfiles[category[i,"Name"]]);
+ info_line("Links:", "Err", HOST, PORT, cfiles[category[i,"Name"]]);
+ }
+
+}
+
+
+function render_links(category, cnum, link, lnum){
+
+ for (i=1;i<=lnum;i++){
+ get_link_categories(link[i,"Category"]);
+ for (c in cats){
+ if (cfiles[cats[c]]!=""){
+ show_link(link, i, cfiles[cats[c]]);
+ }
+ }
+ }
+}
+
+
+function render_finalise(category, cnum, link, lnum){
+
+ for(i=1;i<=cnum; i++){
+ info_line("_______________", "Err", HOST, PORT, cfiles[category[i,"Name"]]);
+ printf("[1|%s|%s|%s|%s]\r\n", "Back to the lawn", ROOTSEL, HOST, PORT ) > cfiles[category[i,"Name"]];
+ info_line("Links:", "Err", HOST, PORT, cfiles[category[i,"Name"]]);
+ }
+
+
+}