Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


What’s it?

A Jekyll based site for RSJUG site, access it here:


  • Responsive layout

  • Mobile 'friendly'

  • Disqus integration

  • Based on github pages

  • Promotes contribution (as it is hosted on github)

  • Automatically build on git push

  • Posts based on Asciidoc (via Asciidoctor and Markdown (focus on content instead of markup)

  • Client side search

Running it locally

  1. Fist you will need to install Ruby

    Use Ruby 2.1 or superior
  2. Install Bundler gem:

    gem install bundler
    You can skip this step if you want to install gems individually, see required gems here
  3. Clone the project:

    git clone rsjug-site
    cd rsjug-site
  4. Run

    bundle install
    It will install gems declared in Gemfile. You can skip this step if gems are already installed
    If you receive the error can’t find header files for ruby at /usr/share/include/ruby.h you need to install ruby development kit in your operating system:
    sudo dnf install -y gcc ruby-devel build-essential rubygems libxml2 libxml2-devel libxslt libxslt-devel
    sudo apt-get install ruby-dev build-essential
    sudo apt-get install ruby2.0-dev
    sudo apt-get install ruby2.2-dev
    if you get ERROR: Failed to build gem native extension., you need to install native extensions:
    sudo apt-get install libgmp-dev libgmp3-dev
    sudo dnf install rpm-build
    output should be:
    Bundle complete! 7 Gemfile dependencies, 28 gems now installed.
    Use `bundle show [gemname]` to see where a bundled gem is installed.
  5. Then run Jekyll

    jekyll serve
  6. And finally access http://localhost:4000/site/

Every file change is automatically published locally by Jekyll.

Site Anatomy

    │   ├── global.yml (1)
    │   ├── nav.yml (2)
    ├──_includes (3)
    │   ├── disqus-comments.html (4)
    │   ├── tile.html (5)
    │   ├── title-group.html (6)
    │   ├── default.html (7)
    │   ├── inner.html (8)
    │   │
    ├──_pages (9)
    ├──_posts (10)
    ├──_site (11)
    ├── RakeFile (12)
    └── _config.yml (13)
  1. Global settings variables

  2. Navigation menu bar labels and navigation urls.

  3. Page includes of html fragments

  4. Disqus integration

  5. Layout of posts rendered in initial page (mainly a excerpt of the post with a link to read the full post)

  6. Post detail layout

  7. Main site layout (/site)

  8. Inner pages layout like posts, menus and internal pages

  9. Every page (except posts) that have an url, eg: /sobre, /busca etc…​

  10. Site posts

  11. Generated site after jekyll serve or jekyll build

  12. Build and deploy rake task (executed by travisci after git push)

  13. Global Jekyll configuration like serving settings, plugins, includes/excludes etc…​


Every git push triggers travisci which will run the deploy Rake task (see RakeFile) which will deploy the site to github pages.

Travis and the rake task is only needed because jekyll-asciidoctor gem is not installed in github pages, see details here.

Work done

  1. Forked this Jekyll with bootstrap theme;

  2. Added Asciidoc integration;

  3. Played a bit with webfonts;

  4. Added tags page;

  5. Added client side search using lunr.js;

  6. Added archive to list pages by year/month;

  7. Disqus integration

  8. Played a bit with performance analysis sites like google-speed-test, and pingdom.