defs: Update submodule
README: Update README with more informations and up-to-date urls
CMake: Add release CMake and instructions
Generate an HTML static site from markdown sources - Complete article
git clone https://git.mobley.ne02ptzero.me/~louis/shayla --recursive
cd shayla/ && mkdir build && cd build && cmake .. && make && sudo make install
Archlinux user can get the binaries through the AUR packages shayla
or shayla-git
You can get the binary directly here
Shayla
Usage: shayla -[vhtsldrfuit]
Generate an HTML static site for markdown sources.
If used with no options, shayla will look for directory in the current path.
Options:
-v, --version Print software version
-h, --help Show this message
-t, --title=TITLE Title to be used in the final site
-s, --src=DIR Markdown sources directory
-c, --style=DIR Style sources directory
-l, --layouts=DIR Layouts directory
-d, --dest=DIR Destination directory
-r, --root=ROOT Root URL of the website
-f, --favicon=FILE Favicon to use
-u, --url=URL Url of the website
-i, --img=DIR Images directory
-t, --threads=NUM Number of threads to launch
--debug Print more information
Here's the 'required' tree for Shayla
:
├── img
├── layouts
│ ├── footer.html
│ ├── header.html
│ └── intro.html
├── markdown
└── styles
'required' is quoted because directories can have any names, could be at any place on your filesystem. This is just the default setup.
img
is the directory where you are to store all your images. You can
reference them by using ![My super image](img/my_super_image.png)
in your
pages.layouts
is the directory where you are to store the template files of your
sites. header.html
and footer.html
are pretty much self explanatory, and
intro.html
is what it is displayed on the index.html
page, juste above
the articles.markdown
is where you are to store your pages, in markdown.styles
is where you are to store your .css
files.There is no shayla init
. I think you can manage creating 4 directories by
yourself.
A little header is required at the beginning of every post:
---
title: My first Article
summary: This is my first article
---
These 2 are required for every post. Here's a complete list of all the options:
route
: Future route name of the article. It will be displayed as
route.html
is the final site. It is up to you to handle duplicates.summary
: A one-line quick summary of the article, It is used for link title
and RSS generation.title
: Title of the articledate
: Date of the article in YYYY-MM-DD
format. If this option is not
here, shayla
will look for the last modified
timestamp from the
filesystem in order to establish a chronology.list
: Boolean option, whether or not the article should be listed on the
index.html
. Default is true
.$> shayla --title "My site title" \
--dest /var/www/htdocs/blog \
--favicon ~/Pictures/blog_favicon.ico \
--url "https://blog.ne02ptzero.me"