The Static Site Generator
My goals for daino. What is different from other Static Site Generators? The design goals and rationale and functionality testing. (pdf)
2019-03-05
My Goals with SSG
The use case is my own homepageI will use the term site (or web
site) for a set of connected web pages (or just
pages) which can be accessed through a web browser using the
world wide web technologyFollowing the seminal ideas of Tim
Berners-Lee
.
with requirements typical for
an academic researcher. and should be built from available packages in
Haskellespecially pandoc and shake,
which reduces the effort to maintain the code using using my
uniform
approach to wrap packages in integratable interfaces.
.
Use an (inexpensive) host serverThere are some servers free of charge, e.g. github or google, but I prefer indepence and looked for a basic web server, which cost me Euro 3 per month.
.Allow me to use a page layout following Tufte css.
Force a strict separation of content and presentationhere called
doughandtheme, which is baked into the web site.
.Look for simple handling and long term stability.
Installation and test for functionality
I have tried a number of web site generator programs and found that a test installation and checking the methods for customization is the fastest way to identify what suits my requirements.
Such a test consists of two steps: (1) install and check funtionality
of installation with a testThe hello world test for a site
generator.
and (2) build your
site.
Installation and basic test for functionality
A basic test for functionality is:
- Clone or copy the code from github
git clone https://github.com/andrewufrank/SSG
.
Change into the
ssgdirectory and install withcabal install(or perhaps better with stackstack install) which producesssgbake, the program which converts (bakes) the content into a static site.Run
ssgbake -tswwhich produces a test site in your home directory~/bakedhomepagewhich is served on port 3000.Open in your browser
localhost:3000and you should be greeted by the landing page of the test homepage.Edit, for example, the file
ssg/docs/site/dough/Blog/01blog1.mdand observe how the web page is adapting (after refreshing the browser cache!).
If you are satisfied that the installation works, you can proceed to build your own site!