Total Pageviews

Wednesday, 23 October 2024

GeraBlog,基于ruby的静态博客程序


Blog Generator - my own static site generator.

Gem Version Code Climate Test Coverage Issue Count travis-CI

Blog Generator - my own static site generator

Write in Markdown, publish in HTML.

I'm GeraBlog 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 and CSS files put in assets/{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 levelCATEGORY/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


from https://github.com/paulohrpinheiro/gerablog

No comments:

Post a Comment