Skip to content

dwhoman/personal-site-generator

Repository files navigation

DWHoman.com Static Site Generator

This is the site generator that I created to build my blog. I detailed on my blog why I created the site generator, what it does, and what my plans are for enhancing the site. I do not intend for this to become a general purpose, static site generator like Jekyll or Pelican. The code is particular to my Emacs Org configuration and my website. You can copy this project and customize the scripts to suite your needs. I do not include the pages about.html and resume.html, which are referenced in the Makefile, and I do not include font files that you can download elsewhere. You can look at my blog’s structure at https://github.com/dwhoman/personal-site/tree/gh-pages.

Files

Makefile
make file to build the site
org-xhtml-keywords.xsl
given org-html files, generates metadata.csv. This file gets passed to index-pages.awk.
index-pages.awk
converts csv to xml, creates generated/metadata.xml
  • generated/metadata.xml
threads.gxl
site graph using the Graph Exchange Language
threads.xsl
convert svg output from GraphViz dot to html
thread-pointers.xsl
given threads.gxl, generate an xml document stating what documents immediatedly preceed or succeed a document
get-thread-pointer.xsl
given the generated file, thread-pointers.xml, and a file name, returns the names of the files that are before an after the given file in threads.gxl
  • used by index-pages.awk
atom-feed.xsl
given metadata.xml, generates an atom feed xml
html2unicode.sed
converts HTML entities to XML Unicode
blog-post-main.xsl
modify blog post org html files
categories.xsl
given metadata.xml, generates a topical index page
categories-processing.sed
adds a link to the reorder.xsl style sheet in the categories.xhtml page
description.xsl
get page description information from org-html file
  • used by index-pages.awk
indexed-by-date.xsl
given metadata.xml, generates an index sorted by date (created or updated)
latex-svg-edit.xsl
modify svg latex equations generated by Emacs Org
page-template.xsl
add stuff that is the same accross all pages
page-template-xml.xsl
convert page-template.xml into a XSLT file that outputs xml
resume-latex.xsl
convert resume.html to latex
resume-latex.sed
clean up xslt output of .tex file
resume-text.xsl
convert resume.html to plain text
resume-text.sed
clean up xslt output of .txt file
svg-edit.xsl
modify blog post SVGs before they are uploaded
  • adding diacritics and dashes
    diacritics-dashes.xml
    data of word dashas and diacritics
    create-diacritics-dashes-st.xsl
    creates diacritics-dashes.xsl from diacritics-dashes.xml

Build System Directory Structure

My blog build system has the following directory structure.

/
contains all code files
org-files/
Org file source. This directory is under version control. Some of the files also exist in another directory called “notes”, that contains all my notes, which shares the same Git repository. Not all of my notes are blog posts and not all of my blog posts are notes.
ltximg/
directory automatically created by Org mode to store LaTeX
[blog-file-name]/
contains images and other data corresponding to the Org file
org-html/
output location for Org HTML export.
tmp/
temporary files mainly used for checking intermediate output
generated/
automatically generated files referenced by multiple targets in the Makefile
graphics/
site wide graphics
fonts/
font files

About

Scripts used to generate dwhoman.com.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published