diff --git a/awk/getlinks.awk b/awk/getlinks.awk new file mode 100644 index 0000000..41f8258 --- /dev/null +++ b/awk/getlinks.awk @@ -0,0 +1,2 @@ +BEGIN{FS=","} +{print "" $2 ""} diff --git a/get_sd.awk b/awk/getsd.awk similarity index 100% rename from get_sd.awk rename to awk/getsd.awk diff --git a/ignore.txt b/dat/ignore.txt similarity index 100% rename from ignore.txt rename to dat/ignore.txt diff --git a/dat/links.csv b/dat/links.csv new file mode 100644 index 0000000..3570084 --- /dev/null +++ b/dat/links.csv @@ -0,0 +1 @@ +/,Home diff --git a/title.csv b/dat/title.csv similarity index 100% rename from title.csv rename to dat/title.csv diff --git a/m4/main.html.m4 b/m4/main.html.m4 index 325a7ef..e61a4cd 100644 --- a/m4/main.html.m4 +++ b/m4/main.html.m4 @@ -1,6 +1,8 @@ -dnl template.m4.html v1.4-p1 +dnl template.m4.html v2.0-p1 dnl Part of the tape-and-string suite used to construct the website ifdef(`DEBUG',`traceon')dnl +ifdef(`_INFILE',`dnl ',`errprint(`Macro _INFILE is not defined') +m4exit(1)')dnl include(`m4/lib.m4')dnl @@ -12,10 +14,10 @@ include(`m4/lib.m4')dnl
-Home +esyscmd(`awk -f awk/getlinks.awk dat/links.csv')dnl
-include(`/dev/stdin')dnl Probably not a good idea, but whatever. +esyscmd(`./tape.sh' _INFILE)
diff --git a/pfiles.rb b/pfiles.rb index 9b62bbd..70c40b8 100755 --- a/pfiles.rb +++ b/pfiles.rb @@ -1,8 +1,8 @@ #!/usr/bin/ruby # pfiles.rb -# v1.0-p2 +# v1.0-p3 require 'find' -ignore=!File.file?('ignore.txt') ? [] : File.readlines('ignore.txt') +ignore=!File.file?('dat/ignore.txt') ? [] : File.readlines('dat/ignore.txt') if ignore != [] ignore.map! do |i| "in/#{i}" diff --git a/render.sh b/render.sh index dee48eb..a97166e 100755 --- a/render.sh +++ b/render.sh @@ -1,28 +1,14 @@ #!/bin/bash # render.sh: part of the tape-and-string framework. -# v3.3-p4 +# v3.4-p2 #B: Load enable -f /usr/lib/bash/csv csv declare -A title #E: Load #B: Definition -function inf { echo -e "\x1B[1;32mINF\x1B[0m: $*"; } -function wrn { echo -e "\x1B[1;93mWRN\x1B[0m: $*"; } -function err { echo -e "\x1B[1;31mERR\x1B[0m: $*"; } -function tape { - if test -d "$1"; then - err "tape: Passed directory, $1" - return 1 - fi - case $1 in - *.txti) redcloth "$1" ;; - *.org) org-ruby --translate html "$1" ;; - *.md) comrak --gfm "$1" ;; - *.html) cat $1 ;; - *.s[ac]ss) err "Told to render $1, shouldn't happen"; return 1 ;; - *) pandoc --columns 168 -t html "$1" || echo "Skipping $i, unknown format" ;; - esac -} +function inf { 1>&2 echo -e "\x1B[1;32mINF\x1B[0m: $*"; } +function wrn { 1>&2 echo -e "\x1B[1;93mWRN\x1B[0m: $*"; } +function err { 1>&2 echo -e "\x1B[1;31mERR\x1B[0m: $*"; } function dirs { if test -d out; then wrn "Directory 'out' already exists." @@ -49,9 +35,9 @@ function docs { o="${i/in/out}" echo "$i => $o" if test -z "${title[$i]}"; then - tape $i | m4 -DCSSI=$(awk -f get_sd.awk <<< "$i") m4/main.html.m4 > ${o%.*}.html + m4 -D_INFILE="$i" -DCSSI=$(awk -f awk/getsd.awk <<< "$i") m4/main.html.m4 > ${o%.*}.html else - tape $i | m4 -DCSSI=$(awk -f get_sd.awk <<< "$i") -DTITLE="${title[$i]}" m4/main.html.m4 > ${o%.*}.html + m4 -D_INFILE="$i" -DCSSI=$(awk -f awk/getsd.awk <<< "$i") -DTITLE="${title[$i]}" m4/main.html.m4 > ${o%.*}.html fi done } @@ -71,7 +57,7 @@ function sass { o="${i/in/out}" o="${o/.s[ac]/.c}" echo "$i => $o" - sassc -t expanded -a $i $o + sassc -t expanded -a $i | sed '/^$/d' > $o done fi } @@ -111,14 +97,14 @@ function info { while read -r ii; do csv -a i "$ii" title[in/${i[0]}]=${i[1]} -done < title.csv +done < dat/title.csv #E: Logic/LoadDefs/title unset ii #B: Logic/LoadDefs/ignore if test -f ignore.txt; then while read -r i; do ignore+=(in/$i) - done < ignore.txt + done < dat/ignore.txt fi #E: Logic/LoadDefs/ignore #E: Logic/LoadDefs @@ -127,15 +113,15 @@ if test -z "$*"; then exit $? fi case $1 in -dir) dirs;; -doc) docs;; -s[ac]ss) sass;; -other) other;; -rest) other;; -info) info;; -vall) info; all;; -all) all;; -*) all;; + dir) dirs;; + doc) docs;; + s[ac]ss) sass;; + other) other;; + rest) other;; + info) info;; + vall) info; all;; + all) all;; + *) all;; esac #E: Logic exit $? diff --git a/tape.sh b/tape.sh new file mode 100755 index 0000000..757596d --- /dev/null +++ b/tape.sh @@ -0,0 +1,22 @@ +#!/bin/bash +function inf { 1>&2 echo -e "\x1B[1;32mINF\x1B[0m: $*"; } +function wrn { 1>&2 echo -e "\x1B[1;93mWRN\x1B[0m: $*"; } +function err { 1>&2 echo -e "\x1B[1;31mERR\x1B[0m: $*"; } +if test -d "$1"; then + err "tape: Passed directory, $1" + return 1 +elif test -z "$*"; then + err "No files passed." + exit 1 +fi +case $1 in + _INFILE) err "Passed raw macro."; exit 1;; + *.txti) redcloth "$1" ;; + *.org) org-ruby --translate html "$1" ;; + *.md) comrak --gfm "$1" ;; + *.html) cat $1 ;; + *.s[ac]ss) err "Told to render $1, shouldn't happen"; exit 1 ;; + *.sh) (inf "Running shellscript $1, I hope you know what you're doing..."; source $1 );; + *) pandoc --columns 168 -t html "$1" || echo "Skipping $i, unknown format" ;; +esac +