From 5924e263893ac8c47a22a78c88b46c585fc9e82b Mon Sep 17 00:00:00 2001 From: Akshay Date: Sat, 25 Jan 2020 23:14:36 +0530 Subject: update styles, minify links --- docs/posts/static_sites_with_bash.html | 76 ---------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 docs/posts/static_sites_with_bash.html (limited to 'docs/posts/static_sites_with_bash.html') diff --git a/docs/posts/static_sites_with_bash.html b/docs/posts/static_sites_with_bash.html deleted file mode 100644 index 5fdfcfe..0000000 --- a/docs/posts/static_sites_with_bash.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - -
-
-
23/11 2019
- - Static Sites With Bash - -
-

After going through a bunch of static site generators -(pelican, -hugo, -vite), I decided to roll -my own. If you are more of the ‘show me the code’ kinda guy, -here you go.

- -

Text formatting: I chose to write in markdown, and convert -to html with lowdown.

- -

Directory structure: I host my site on GitHub pages, so -docs/ has to be the entry point. Markdown formatted posts -go into posts/, get converted into html, and end up in -docs/index.html, something like this:

- -
posts=$(ls -t ./posts)     # chronological order!
-for f in $posts; do
-    file="./posts/"$f      # `ls` mangled our file paths
-    echo "generating post $file"
-
-    html=$(lowdown "$file")
-    echo -e "html" >> docs/index.html
-done
-
- -

Assets: Most static site generators recommend dropping image -assets into the site source itself. That does have it’s -merits, but I prefer hosting images separately:

- -
# strip file extension
-ext="${1##*.}"
-
-# generate a random file name
-id=$( cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 2 | head -n 1 )
-id="$id.$ext"
-
-# copy to my file host
-scp -P 443 "$1" emerald:files/"$id" 
-echo "https://files.nerdypepper.tech/$id"
-
- -

Templating: -generate.sh -brings the above bits and pieces together (with some extra -cruft to avoid javascript). It uses sed to produce nice -titles from the file names (removes underscores, -title-case), and date(1) to add the date to each post -listing!

- -
- ← Back -
-
-
- - -- cgit v1.2.3