summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreudoxia <uplink@distress.network>2022-02-04 16:05:22 -0500
committereudoxia <uplink@distress.network>2022-02-04 16:05:22 -0500
commit9e59767d4b952cf74804552f7598e167c35cbe61 (patch)
tree84839e9eac91c8f8824ebd8cfa4340575ad9adbe
parentfeea7384f3e197681745c2bfbbf4ae778aa0df43 (diff)
linting
-rwxr-xr-xfront.sh4
-rwxr-xr-xmd.sh128
-rwxr-xr-xnav.sh26
-rwxr-xr-xplain.sh16
-rwxr-xr-xreload.sh2
-rwxr-xr-xsitemap.sh12
6 files changed, 94 insertions, 94 deletions
diff --git a/front.sh b/front.sh
index 86d5a45..4ddbe68 100755
--- a/front.sh
+++ b/front.sh
@@ -5,8 +5,8 @@ set -e
cat front-header > $1
-cat distress.network/nav.html | sed -e '/^<!--title:/d' -e '/^<a/d' >> $1
+sed -e '/^<!--title:/d' -e '/^<a/d' "distress.network/nav.html" >> $1
-cat md-footer | sed -e '/<\/main>/,/<nav>/d' -e '/<\/div>/p' >> $1
+sed -e '/<\/main>/,/<nav>/d' -e '/<\/div>/p' "md-footer" >> $1
printf "%s \tbuild complete: %s\n" "[->]" "$1"
diff --git a/md.sh b/md.sh
index 1c69731..304224a 100755
--- a/md.sh
+++ b/md.sh
@@ -32,14 +32,14 @@ OUT="$1/index.html"
[ "$1" ] || { echo "$usage" ; exit 1 ; }
-[ -f $IN ] || { printf "[err] \t%s not found\n" "$IN" ; exit 1 ; }
-[ -f md-header ] || { printf "[err] \tmd-header not found\n" ; exit 1 ; }
-[ -f md-footer ] || { printf "[err] \tmd-footer not found\n" ; exit 1 ; }
-[ -e $(which lowdown) ] || { printf "[err] \tlowdown not found\n" ; exit 1 ; }
-
-cat md-header > $OUT
-lowdown -Thtml --html-no-owasp $IN >> $OUT
-cat md-footer >> $OUT
+[ -f "$IN" ] || { printf "[err] \t%s not found\n" "$IN" ; exit 1 ; }
+[ -f md-header ] || { printf "[err] \tmd-header not found\n" ; exit 1 ; }
+[ -f md-footer ] || { printf "[err] \tmd-footer not found\n" ; exit 1 ; }
+[ -e "$(which lowdown)" ] || { printf "[err] \tlowdown not found\n" ; exit 1 ; }
+
+cat md-header > "$OUT"
+lowdown -Thtml --html-no-owasp "$IN" >> "$OUT"
+cat md-footer >> "$OUT"
printf "[ok] \tinitial assembly\n"
@@ -52,49 +52,49 @@ unesc() {
}
-TITLE=$(grep -e '^title: ' -m 1 $IN | cut -f 2- -d ' ' | sedesc)
-sed "s/<title>/&${TITLE} \&mdash\; DistressNetwork°/1" -i'' $OUT
+TITLE=$(grep -e '^title: ' -m 1 "$IN" | cut -f 2- -d ' ' | sedesc)
+sed "s/<title>/&${TITLE} \&mdash\; DistressNetwork°/1" -i'' "$OUT"
printf "[ok] \ttitle: %s\n" "$(echo "$TITLE" | unesc)"
-BOMBER=$(grep -e '^bomber: ' -m 1 $IN | cut -f 2- -d ' ' | sedesc)
-sed "s/<div class=\"bomber\">/&${BOMBER}/1" -i'' $OUT
+BOMBER=$(grep -e '^bomber: ' -m 1 "$IN" | cut -f 2- -d ' ' | sedesc)
+sed "s/<div class=\"bomber\">/&${BOMBER}/1" -i'' "$OUT"
printf "[ok] \tbomber: %s\n" "$(echo "$BOMBER" | unesc)"
# format: "yyyy-mm-dd hh:mm:ss±zz:zz" (ISO 8601)
-MDATE=$(stat -c '%y' $IN | sed -e 's/\.[0-9]* //' -e 's/\(..\)\(..\)$/\1:\2/')
+MDATE=$(stat -c '%y' "$IN" | sed -e 's/\.[0-9]* //' -e 's/\(..\)\(..\)$/\1:\2/')
# format: "yymmdd" (for humans)
-DATE=$(echo $MDATE | cut -f 1 -d ' ' | sed -e 's/-//g' -e 's/^..//')
-sed -e "s;<div class=\"ident\"><time datetime=\";&${MDATE};1" -e "s;</time>;${DATE}&;1" -i'' $OUT
-sed "s;<meta http-equiv=\"last-modified\" content=\";&${MDATE};1" -i'' $OUT
+DATE=$(echo "$MDATE" | cut -f 1 -d ' ' | sed -e 's/-//g' -e 's/^..//')
+sed -e "s;<div class=\"ident\"><time datetime=\";&${MDATE};1" -e "s;</time>;${DATE}&;1" -i'' "$OUT"
+sed "s;<meta http-equiv=\"last-modified\" content=\";&${MDATE};1" -i'' "$OUT"
printf "[ok] \tdate: %s (%s)\n" "$DATE" "$MDATE"
-LEADING=$(grep -e '^leading: ' -m 1 $IN | cut -f 2- -d ' ' | sedesc)
-sed "s;<div class=\"leading\">;&${LEADING};1" -i'' $OUT
+LEADING=$(grep -e '^leading: ' -m 1 "$IN" | cut -f 2- -d ' ' | sedesc)
+sed "s;<div class=\"leading\">;&${LEADING};1" -i'' "$OUT"
printf "[ok] \tleading: %s\n" "$(echo "$LEADING" | unesc)"
METADESC="\&laquo\;${BOMBER}\&raquo\; \&mdash\; ${LEADING}"
-sed "s;<meta name=\"description\" content=\";&${METADESC};1" -i'' $OUT
+sed "s;<meta name=\"description\" content=\";&${METADESC};1" -i'' "$OUT"
printf "[ok] \tmeta description\n"
-if [ -f $(echo $IN | cut -f 1 -d /)/nav.html ] ; then
-NAVLINE=$(grep -n '<nav>' $OUT | cut -f 1 -d :) ;
-sed "${NAVLINE}r $(echo $OUT | cut -f 1 -d /)/nav.html" -i'' $OUT ;
-sed '/^<!--title:/d' -i'' $OUT ;
+if [ -f "$(echo $IN | cut -f 1 -d /)/nav.html" ] ; then
+NAVLINE=$(grep -n '<nav>' "$OUT" | cut -f 1 -d :) ;
+sed "${NAVLINE}r $(echo "$OUT" | cut -f 1 -d /)/nav.html" -i'' "$OUT" ;
+sed '/^<!--title:/d' -i'' "$OUT" ;
printf "[ok] \tsitemap\n" ;
fi
-[ "$(grep -n '<p><img' $OUT)" ] && { # skip if no figures found
+grep -q '<p><img' "$OUT" && { # skip if no figures found
# escaping backslashes with '@', to be unescaped later:
-grep -n '<p><img' $OUT | sed 's/\\/@/g' | \
+grep -n '<p><img' "$OUT" | sed 's/\\/@/g' | \
while IFS='' read -r data ; do
- LINE=$(echo $data | cut -f 1 -d :) ; # extract line number
- FILE=$(echo $data | cut -f 2 -d \") ; # extract file path
- CAPT=$(echo $data | cut -f 4 -d \") ; # extract image caption
+ LINE=$(echo "$data" | cut -f 1 -d :) ; # extract line number
+ FILE=$(echo "$data" | cut -f 2 -d \") ; # extract file path
+ CAPT=$(echo "$data" | cut -f 4 -d \") ; # extract image caption
if [ "$FILE" = "%tex" ] ; then # for tex figures (to be caught and rendered later)
- sed "${LINE}s;.*;<figure><%tex \"${CAPT}\" /></figure>;" -i'' $OUT ;
+ sed "${LINE}s;.*;<figure><%tex \"${CAPT}\" /></figure>;" -i'' "$OUT" ;
else
- sed "${LINE}s;.*;<figure><a href=\"${FILE}\"><img src=\"${FILE}\" alt=\"\"></a><figcaption><p>${CAPT}</p></figcaption></figure>;" -i'' $OUT ;
+ sed "${LINE}s;.*;<figure><a href=\"${FILE}\"><img src=\"${FILE}\" alt=\"\"></a><figcaption><p>${CAPT}</p></figcaption></figure>;" -i'' "$OUT" ;
printf "[ok] \timage at line %s\n" "$LINE" ;
fi
done
@@ -106,26 +106,26 @@ toc() {
tmp=$(mktemp -p /tmp)
# format headers from source as md list
-grep -e '^#' $IN | sed -e 's; ;- ;' -e 's;^#;;' -e 's;#; ;g' > $tmp
+grep -e '^#' "$IN" | sed -e 's; ;- ;' -e 's;^#;;' -e 's;#; ;g' > "$tmp"
# convert to html, write to tempfile (reset)
-buffer=$(cat $tmp) ; echo "$buffer" | lowdown -Thtml > $tmp
+buffer=$(cat "$tmp") ; echo "$buffer" | lowdown -Thtml > "$tmp"
# prepend starting tag, remove empty lines
-sed -e '1i <nav class="toc">' -e '/^$/d' -i'' $tmp
+sed -e '1i <nav class="toc">' -e '/^$/d' -i'' "$tmp"
# get queue of headers from output
-HEADERS=$(grep -e "^<h[[:digit:]] id=" $OUT)
+HEADERS=$(grep -e "^<h[[:digit:]] id=" "$OUT")
# for each toc list item:
-cat $tmp | grep -e "^<li>" | while IFS='' read -r data ; do
+grep -e "^<li>" "$tmp" | while IFS='' read -r data ; do
# get next header in queue, extract id
HEADER=$(echo "$HEADERS" | head -n 1) ;
ID=$(echo "$HEADER" | cut -f 2 -d \" | sedesc) ;
# rewrite toc item as link with id
ITEM=$(echo "$data" | sed "s;^<li>\([^</>]*\)\(</li>\)*$;\1;" | sedesc) ;
- sed -e "s;^<li>\(${ITEM}\);<li><a href=\"#${ID}\">\1;" -e "s;\([[:alnum:]]\)</li>$;\1</a></li>;" -i'' $tmp ;
+ sed -e "s;^<li>\(${ITEM}\);<li><a href=\"#${ID}\">\1;" -e "s;\([[:alnum:]]\)</li>$;\1</a></li>;" -i'' "$tmp" ;
# remove processed header from queue
HEADERS=$(echo "$HEADERS" | sed '1d') ;
@@ -134,14 +134,14 @@ cat $tmp | grep -e "^<li>" | while IFS='' read -r data ; do
done
# close link tags on open lines, append closing tag
-sed "s;[[:alnum:]]$;&</a>;" -i'' $tmp
-echo '</nav>' >> $tmp
+sed "s;[[:alnum:]]$;&</a>;" -i'' "$tmp"
+echo '</nav>' >> "$tmp"
# get toc line number in output, insert data from tempfile
TOCLINE=$(wc -l md-header | cut -f 1 -d ' ')
-sed "${TOCLINE}r $tmp" -i'' $OUT
+sed "${TOCLINE}r $tmp" -i'' "$OUT"
-rm $tmp
+rm "$tmp"
printf "[ok] \ttable of contents\n"
@@ -152,53 +152,53 @@ math() {
# [ $(npx katex -V 2>&1 | grep '404 Not Found') ] && { printf "[warn] \tkatex not found, skipping math rendering\n" ; return ; }
-sed '/main.css/a <link rel="stylesheet" href="/css/katex.css">' -i'' $OUT
+sed '/main.css/a <link rel="stylesheet" href="/css/katex.css">' -i'' "$OUT"
# display / "block" style:
-grep -n '<figure><%tex' $OUT | \
+grep -n '<figure><%tex' "$OUT" | \
while IFS='' read -r data ; do
LINE=$(echo "$data" | cut -f 1 -d :) ;
EQNBODY=$(echo "$data" | cut -f 2 -d \" ) ;
printf "\trendering tex figure at line %s ... " "$LINE" ;
tmp=$(mktemp -p /tmp) ;
- echo "<figure>" > $tmp ;
- echo "$EQNBODY" | sed 's/@/\\/g' | npx katex -d 2>&1 >> $tmp ;
- echo "</figure>" >> $tmp ;
- sed ':a;N;$!ba;s/\n//g' -i'' $tmp ;
+ echo "<figure>" > "$tmp" ;
+ echo "$EQNBODY" | sed 's/@/\\/g' | npx katex -d >> "$tmp" 2>&1 ;
+ echo "</figure>" >> "$tmp" ;
+ sed ':a;N;$!ba;s/\n//g' -i'' "$tmp" ;
- if [ $(grep "KaTeX parse error" $tmp) ] ; then
+ if grep -q "KaTeX parse error" "$tmp" ; then
printf "\n[warn] \ttex expression at line %s contained errors, skipping\n" "$LINE" ;
else
- sed "${LINE}d" -i'' $OUT ;
- sed "$(expr $LINE - 1)r $tmp" -i'' $OUT ;
+ sed "${LINE}d" -i'' "$OUT" ;
+ sed "$(expr $LINE - 1)r $tmp" -i'' "$OUT" ;
printf "complete\n" ;
fi ;
- rm $tmp ;
+ rm "$tmp" ;
done
# inline / "span" style:
-sed 's;<img src="%itex" alt=".*" />;\n&\n;g' -i'' $OUT
-grep -n '<img src="%itex"' $OUT | sed 's/\\/@/g' | \
+sed 's;<img src="%itex" alt=".*" />;\n&\n;g' -i'' "$OUT"
+grep -n '<img src="%itex"' "$OUT" | sed 's/\\/@/g' | \
while IFS='' read -r data ; do
LINE=$(echo "$data" | cut -f 1 -d :) ;
EQNBODY=$(echo "$data" | cut -f 4 -d \" ) ;
printf "\trendering inline tex figure at line %s ... " "$LINE" ;
tmp=$(mktemp -p /tmp) ;
- echo "$EQNBODY" | sed 's/@/\\/g' | npx katex 2>&1 > $tmp ;
- sed ':a;N;$!ba;s/\n//g' -i'' $tmp ;
+ echo "$EQNBODY" | sed 's/@/\\/g' | npx katex > "$tmp" 2>&1 ;
+ sed ':a;N;$!ba;s/\n//g' -i'' "$tmp" ;
- if [ $(grep "KaTeX parse error" $tmp) ] ; then
+ if grep -q "KaTeX parse error" "$tmp" ; then
printf "\n[warn] \tinline tex expression at line %s contained errors, skipping\n" "$LINE" ;
else
- sed "${LINE}d" -i'' $OUT ;
- sed "$(expr $LINE - 1)r $tmp" -i'' $OUT ;
+ sed "${LINE}d" -i'' "$OUT" ;
+ sed "$(expr $LINE - 1)r $tmp" -i'' "$OUT" ;
printf "complete\n" ;
fi ;
- rm $tmp ;
+ rm "$tmp" ;
done
printf "[ok] \tmath typesetting\n"
@@ -213,17 +213,17 @@ case "$opts" in
toc
opts=$(echo $opts | sed 's/[Cc]//g') ;;
(*[Ff]*)
- sed "/^<footer>/,/^<\/footer>/d" -i'' $OUT
+ sed "/^<footer>/,/^<\/footer>/d" -i'' "$OUT"
printf "[ok] \tfooterless\n"
- opts=$(echo $opts | sed 's/[Ff]//g') ;;
+ opts=$(echo "$opts" | sed 's/[Ff]//g') ;;
(*[Hh]*)
- sed -e "/^<header>/,/^<\/header>/d" -e '/^<meta name="description"/d' -i'' $OUT
- sed "/bg.js/d" -i'' $OUT
+ sed -e "/^<header>/,/^<\/header>/d" -e '/^<meta name="description"/d' -i'' "$OUT"
+ sed "/bg.js/d" -i'' "$OUT"
printf "[ok] \theaderless\n"
- opts=$(echo $opts | sed 's/[Hh]//g') ;;
+ opts=$(echo "$opts" | sed 's/[Hh]//g') ;;
(*[Mm]*)
math
- opts=$(echo $opts | sed 's/[Mm]//g') ;;
+ opts=$(echo "$opts" | sed 's/[Mm]//g') ;;
(*)
printf "[warn] \tmetadata: unrecognized option(s) \"%s\"\n" "${opts}" ;;
esac
diff --git a/nav.sh b/nav.sh
index cc54b4b..66a2374 100755
--- a/nav.sh
+++ b/nav.sh
@@ -18,38 +18,38 @@ set -e
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-echo '<pre>' > $2 # starting <pre> tag
-echo '<!--title: Sitemap &mdash; DistressNetwork°-->' >> $2 # util for plain.sh
+echo '<pre>' > "$2" # starting <pre> tag
+echo '<!--title: Sitemap &mdash; DistressNetwork°-->' >> "$2" # util for plain.sh
# initial tree generation
-tree -dfn --noreport -I 'css|error|favicon|fonts|js|media' $1 >> $2
+tree -dfn --noreport -I 'css|error|favicon|fonts|js|media' "$1" >> "$2"
# remove leading path prefix
-sed 's;/var/www/distress\.network;;g' -i'' $2
+sed 's;/var/www/distress\.network;;g' -i'' "$2"
# link generation loop for each line
-grep -n '─ ' $2 | \
+grep -n '─ ' "$2" | \
while IFS='' read -r data ; do
- LINE=$(echo $data | cut -f 1 -d :) ; # extract line number
- FULL=$(echo $data | cut -f 2- -d /) ; # extract output path
- NAME=$(echo $FULL | grep -o '[^/]*$') ; # extract page name (last field of path)
+ LINE=$(echo "$data" | cut -f 1 -d :) ; # extract line number
+ FULL=$(echo "$data" | cut -f 2- -d /) ; # extract output path
+ NAME=$(echo "$FULL" | grep -o '[^/]*$') ; # extract page name (last field of path)
# at the line number, replace path with link to page
- sed "${LINE}s;─ .*;──<a href=\"/${FULL}\">${NAME}</a>;" -i'' $2 ;
+ sed "${LINE}s;─ .*;──<a href=\"/${FULL}\">${NAME}</a>;" -i'' "$2" ;
done
# replace starting blank line with root link
-sed '3s;.*;<a href="/" aria-label="root">·</a>;' -i'' $2
+sed '3s;.*;<a href="/" aria-label="root">·</a>;' -i'' "$2"
# hide tree characters for screen readers
-sed 's;^\(.\+\)<a;<span aria-hidden="true">\1</span><a;1' -i'' $2
+sed 's;^\(.\+\)<a;<span aria-hidden="true">\1</span><a;1' -i'' "$2"
-echo '</pre>' >> $2 # closing <pre> tag
+echo '</pre>' >> "$2" # closing <pre> tag
-cat $2
+cat "$2"
diff --git a/plain.sh b/plain.sh
index fa90665..844d3fb 100755
--- a/plain.sh
+++ b/plain.sh
@@ -21,17 +21,17 @@ set -e
[ "$1" ] || { echo "usage: ./plain.sh <input txt> <output html>" ; exit 1 ; }
-[ -f $1 ] || { printf "[err] \tFATAL: %s not found\n" "$1" ; exit 1 ; }
+[ -f "$1" ] || { printf "[err] \tFATAL: %s not found\n" "$1" ; exit 1 ; }
[ -f plain-header ] || { printf "[err] \tFATAL: plain-header not found\n" ; exit 1 ; }
-cat plain-header > $2
-cat $1 >> $2
-printf "</pre>\n</body>\n</html>" >> $2
+cat plain-header > "$2"
+cat "$1" >> "$2"
+printf "</pre>\n</body>\n</html>" >> "$2"
printf "[ok] \tinitial assembly\n"
# hack to fix double <pre> when generating from nav.sh
-sed -e "/^<pre>$/ {n;/^<pre>$/d}" -e "/^<\/pre>$/ {n;/^<\/pre>$/d}" -i'' $2
+sed -e "/^<pre>$/ {n;/^<pre>$/d}" -e "/^<\/pre>$/ {n;/^<\/pre>$/d}" -i'' "$2"
sedesc() {
@@ -39,11 +39,11 @@ sedesc() {
}
TITLE=$(grep -e '^<!--title: ' -m 1 $1 | cut -f 2- -d ' ' | sedesc)
-sed -e "/^<!--title:/d" -e "s;<title>#;<title>${TITLE};1" -i'' $2
+sed -e "/^<!--title:/d" -e "s;<title>#;<title>${TITLE};1" -i'' "$2"
printf "[ok] \ttitle: %s\n" "$TITLE"
-MDATE=$(stat -c '%y' $1 | sed -e 's/\.[0-9]* //' -e 's/\(..\)\(..\)$/\1:\2/') # format: "yyyy-mm-dd hh:mm:ss±zz:zz" (ISO 8601)
-sed "s;<meta http-equiv=\"last-modified\" content=\";&${MDATE};1" -i'' $2
+MDATE=$(stat -c '%y' "$1" | sed -e 's/\.[0-9]* //' -e 's/\(..\)\(..\)$/\1:\2/') # format: "yyyy-mm-dd hh:mm:ss±zz:zz" (ISO 8601)
+sed "s;<meta http-equiv=\"last-modified\" content=\";&${MDATE};1" -i'' "$2"
printf "[ok] \tdate: %s\n" "$MDATE"
diff --git a/reload.sh b/reload.sh
index cd0072c..b7a8040 100755
--- a/reload.sh
+++ b/reload.sh
@@ -4,7 +4,7 @@ set -e
rebuild() {
find -L distress.network | grep '/src.md' | sed 's;/src.md$;;' | \
while IFS='' read -r data ; do
- sh ./md.sh ${data} > /dev/null ;
+ sh ./md.sh "$data" > /dev/null ;
printf "\tbuilt: %s\n" "$data" ;
done
}
diff --git a/sitemap.sh b/sitemap.sh
index a360d9b..17ad69b 100755
--- a/sitemap.sh
+++ b/sitemap.sh
@@ -25,15 +25,15 @@ urlencode() (
echo '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
-xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' > $2
+xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' > "$2"
-echo "$(find -L $1 -type d | sort | sed -e 's;^\./;;' -e '\;/\(.git\|css\|error\|favicon\|fonts\|js\|media\);d' -e 's;$;/;')" | \
+find -L "$1" -type d | sort | sed -e 's;^\./;;' -e '\;/\(.git\|css\|error\|favicon\|fonts\|js\|media\);d' -e 's;$;/;' | \
while IFS='' read -r data ; do
- DATE=$(grep "last-modified" ${data}/index.html | cut -f 4 -d \" | sed 's/ /T/' ) ;
+ DATE=$(grep "last-modified" "${data}/index.html" | cut -f 4 -d \" | sed 's/ /T/' ) ;
echo "$data" | urlencode | sed -e 's;^;<url><loc>https://;' -e "s;$;</loc><lastmod>${DATE}</lastmod></url>;" ;
printf "\n" ;
-done >> $2
+done >> "$2"
-echo '</urlset>' >> $2
+echo '</urlset>' >> "$2"
-cat $2
+cat "$2"