Skip to content

rsjug/site

Repository files navigation

What’s it?

A Jekyll based site for RSJUG site, access it here: http://www.rsjug.org/

Features

  • 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 https://github.com/rsjug/site 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:
    //fedora
    sudo dnf install -y gcc ruby-devel build-essential rubygems libxml2 libxml2-devel libxslt libxslt-devel
    //ubuntu
    sudo apt-get install ruby-dev build-essential
    //or
    sudo apt-get install ruby2.0-dev
    //or
    sudo apt-get install ruby2.2-dev
    if you get ERROR: Failed to build gem native extension., you need to install native extensions:
    //ubuntu
    sudo apt-get install libgmp-dev libgmp3-dev
    //fedora
    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

   SITE
    |
    ├──_data
    │   ├── global.yml (1)
    │   ├── nav.yml (2)
    ├──_includes (3)
    │   ├── disqus-comments.html (4)
    │   ├── tile.html (5)
    │   ├── title-group.html (6)
    ├──_layout
    │   ├── 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…​

Publishing

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, webpagetest.org and pingdom.