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
dough
andtheme
, 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
ssg
directory 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 -tsw
which produces a test site in your home directory~/bakedhomepage
which is served on port 3000.Open in your browser
localhost:3000
and you should be greeted by the landing page of the test homepage.Edit, for example, the file
ssg/docs/site/dough/Blog/01blog1.md
and 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!