@@ 1,16 1,27 @@ # Shayla
- Generate an HTML static site from markdown sources.
+ Generate an HTML static site from markdown sources - [Complete article](https://ne02ptzero.me/blog/making-a-simple-yet-fast-static-site-builder.html)
- git clone git://git.ne02ptzero.me/shayla --recursive
+ git clone https://git.mobley.ne02ptzero.me/~louis/shayla --recursive
### Compile and Install
cd shayla/ && mkdir build && cd build && cmake .. && make && sudo make install
- ### Usage
+ ### Packaged versions
+ Archlinux user can get the binaries through the AUR packages `shayla` or `shayla-git`
+ ### Binaries
+ You can get the binary directly [here](https://cdn.ne02ptzero.me/shayla/)
+ ### Using `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.
-v, --version Print software version
@@ 26,3 37,60 @@ -i, --img=DIR Images directory
-t, --threads=NUM Number of threads to launch
--debug Print more information
+ #### Tree
+ 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
+ - `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
+ #### Post
+ 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 article
+ - `date`: 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`.
+ #### Building the website
+ $> shayla --title "My site title" \
+ --dest /var/www/htdocs/blog \
+ --favicon ~/Pictures/blog_favicon.ico \
+ --url "https://blog.ne02ptzero.me"