GeraBlog
Blog Generator - my own static site generator
Write in Markdown, publish in HTML.
Image created by https://robohash.org/
Rules
- The texts must be written in markdown.
- The first line of file will be the post title
#
mark. - The second line is a blank line.
- The third line will be the description of text, with
##
mark. Will be in meta description of generated html. - The filename MUST begin with a date:
2016-12-31-this-is-a-post.md
. - The texts must be in a subdirectory of
texts
. Each subdirectory will be assigned a category. - Change the layout by changing files in
templates
dir, which uses Tenjin as template system. -
JS
andCSS
files put inassets/{css, js}
. - The images used in the posts should be placed in a
images
subdirectory, within the category directory:texts/ruby/images/pinkpanter.jpg
. In the post, put the reference as![Pink Panter](images/pinkpanter.jpg)
. - Images used in posts MUST be placed in the same level
CATEGORY/images
. - By default, GeraBlog uses prism to highlight the syntax of the codes. The language indicated will be the category in which the text is. For example, the file
ruby/2016-12-31-ruby-rocks.md
if it has some source code, it will be marked as lang-ruby.
Sample text:
# This is the title
## This is the description
Here the text.
Show-me the code:
puts 'Hello world!'
Install
gem install gerablog
Hacking
- clone the repo;
-
bundle install
; - make changes (with tests!)
- run all the tests (
rake
) and fix anything that appears wrong - run
rubocop
and fix all offenses! - send me a PR.
Using
The executable gerablog
has this options:
-h
or --help
Yes, we have a --help
option:
➤ gerablog --help
Usage: optparse [options]
-h, --help Display this screen
-n, --new FILENAME Create a new project.
-g, --generate FILENAME Generate the static blog.
-n
or --new
Create a new project:
➤ gerablog --new /tmp/test
How the project looks like?
➤ tree /tmp/test
/tmp/test
├── assets
│ └── assets
│ ├── css
│ │ ├── gerablog.css
│ │ └── prism.css
│ └── js
│ └── prism.js
├── gerablog.conf
├── output
├── templates
│ └── templates
│ ├── categories.rbhtml
│ ├── category.rbhtml
│ ├── feed.rbxml
│ ├── footer.rbhtml
│ ├── header.rbhtml
│ ├── index.rbhtml
│ └── post.rbhtml
└── texts
If --root
is not informed, root will be ./
.
-g
or --generate
Deploy
For my blog:
➤ gerablog --generate ~/Dropbox/projetos/paulohrpinheiro.xyz/blog/gerablog.conf
ruby
diversos
programadorbipolar
javascript
c
perl
rust
python
Copy output
directory to your server :)
History
This project started with a script I made to generate my site https://paulohrpinheiro.xyz.
The script is in this gist:
https://gist.github.com/paulohrpinheiro/20130e06355fc5bffe5865ce903dce63