Giter Club home page Giter Club logo

airvantage.github.io's Introduction

Jekyll 101

Jekyll is a framework for generating static websites out of simple structured content (basically Markdown and HTML files, with a minimal amount of metadata)

http://jekyllrb.com/

What you need to know about our usage of Jekyll

  • _config.yml is where the list of contributors to the blog is maintained. It should be trivial to add an author by just duplicating an existing one.
  • The content of the website lives under _posts. Content is grouped in folders (api, blog, ...) for the sake of organization but the physical location of the files in the _posts folder is not actually important.
  • At the moment we rely on one external plugin for generating author pages. This may be removed in a later version, because it prevents to rely on the Jekyll support in Github Pages. It means that when you contribute to the website you will need to publish the new generated website (see "Publishing your changes" below).

Cloning the repository

  • git clone https://github.com/AirVantage/airvantage.github.io.git

The repository contains two branches:

  • source is where the whole source of the website lives, that is all the jekyll templates and the actual content (blog posts, tutorials, ...)
  • master is the generated website. You should not work on this branch. It is automatically updated as part of the publication process (see "Publishing you changes" section)

Contributing content

It should be really easy for you to add your own blog post, tutorial, API example, ...

The Jekyll "front-matter" (what is at the beginning at every content file) is used to set attributes that are common to all kinds of posts, plus some others that are specific.

Front-matter general attributes

  • category: must be present and set to either api, blog, projects, or tutorials (reminder: the fact that content is arranged in sub-folders under _posts has no influence on the actual categorization).
  • comments: true or false, depending on whether Disqus comments should be enabled or not for this content.

Blog post

  • Create a new file in _posts/blog, following the same naming pattern as existing files.
  • In addition to category and comments, you should set the following attributes in the front matter:
    • layout: must be set to post
    • title: title of your blog post
    • author: the username of the author of the blog post as per the _config.yml authors list

API example

  • Create a new file in _posts/api, following the same naming pattern as existing files.
  • In addition to category and comments, you should set the following attributes in the front matter:
    • short: a two-letters shortcut (such as "Ja") that will be displayed in the periodic table
    • github_repo: the URL of the Github repo hosting the sample

Projects

  • Create a new file in _posts/projects, following the same naming pattern as existing files.
  • In addition to category and comments, you should set the following attributes in the front matter:
    • title: the title of your blog post
    • author: the username of the author of the project as per the _config.yml authors list
    • img: the name of the image to be found in /resources/img/projects/ for representing this project
    • github_repo: the URL of the Github repo hosting the project

Tutorials

  • Create a new file in _posts/tutorials, following the same naming pattern as existing files.
  • In addition to category and comments, you should set the following attributes in the front matter:
    • layout: must be set to default
    • title: the title of the tutorial
    • img: the name of the image to be found in /resources/img/tutorials/ for representing this tutorial

Testing the new website

You need Ruby, RubyGems, and Jekyll.

Install Jekyll

The regular way

See the Jekyll installation instructions.

The RVM way

Install RVM and run:

$ rvm --create --ruby-version [email protected]
$ rvm use [email protected]
$ bundle

Run tne new website

While you are working on your modifications, you can have jekyll doing its magic in the background and rebuilding the website as you modify the posts. For this, you just need to run jekyll serve -w from the root folder.

Publishing your changes

When you are happy with your changes, you can publish the new sources and the new generated website

  • Publish the new sources
    • Commit you change(s) locally
    • git push origin source
  • Generate and publish the new website in one line
    • rake publish

airvantage.github.io's People

Contributors

dsciamma avatar gaetanmorice avatar kartben avatar kinfoo avatar nbosansky avatar phtrivier avatar rjacolin avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

airvantage.github.io's Issues

add README.MD

add instructions on jekyll mechanisms, how to setup a local environment, how to contribute, ...

Track external links

It could be useful to track external links too to be able to know how users go out of airvantage github blog.

Are we responsive?

Tutorials page layout
I do not if it is intentional, but we do not fit small screens well. Is it a bug or a feature?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.