** Overview

This plugin adds [[orgmode.org/][Org mode]] support to [[jekyllrb.com][Jekyll]] and lets you write posts and pages in Org.

** Requirements

** Installation *** Short version

For experienced Jekyll users, you need to do 2 things to get ~jekyll-org~ to work :

*** Long version

To use ~jekyll-org~ with Jekyll, you need to have Ruby RubyGems and Jekyll installed. See how to do that [[jekyllrb.com/docs/installation/][here]].

Create a new Jekyll project ~my-site~ run:

+begin_src sh jekyll new my-site +end_src

Create a Gemfile in the root of the project, and add at least the following lines:

+begin_src ruby source 'rubygems.org'

gem 'jekyll' , '>= 3.0.0' gem 'jekyll-org', '>= 1.1.0' +end_src

Install the gems with bundler:

+begin_src sh bundle install +end_src

To use the new converter add the following line to your ~_config.yml~:

+begin_src yml plugins:

- jekyll-org

+end_src

warning: If you are using Jekyll < 3.5.0 use the gems key instead of plugins.

** Usage

Create a new file with =.org= extension in =_posts=, and write the post with Org. That is all! Generate your Jekyll site as you usually do.

** Front matter

Instead of YAML the front matter is configured in the usual Org way, with no lines:

+BEGIN_EXAMPLE +TITLE: Jekyll and Org together +LAYOUT: post +TAGS: jekyll org-mode “tag with spaces”

This is a blog post about Jekyll and Org mode.

** org-table demo

| a | b | c | d | e |
|---+---+---+---+---|
| 1 | 2 | 3 | 4 | 5 |

** Liquid demo

#+liquid: enabled
#+foo: hello world
{{ page.foo }}

or

{{ site.time | date_to_xmlschema }}

** Code highlighting

Jekyll-org also offers powerful support for code snippets:
#+begin_src  ruby 
  def print_hi(name)
    puts "Hi, #{name}"
  end
  print_hi('Tom')

  #=> prints 'Hi, Tom' to STDOUT.
#+end_src

+END_EXAMPLE

The value of =#+TAGS= is parsed into a list by splitting it on spaces, tags containing spaces can be wrapped into quotes.

** Liquid templating

By default the all content is exported to raw HTML with org-ruby, but you can add =#+liquid: whatevervalue== in the header. Then you can use

[docs.shopify.com/themes/liquid-documentation/basics][Liquid]

tags.

For example, if your Org file contains

+BEGIN_EXAMPLE +liquid: enabled +foo: hello world

{{ page.foo }}

or

{{ site.time | date_to_xmlschema }}

+END_EXAMPLE

then you will get output like

+BEGIN_EXAMPLE <p>hello world</p> <p>or</p> <p>2014-07-02T08:20:28+08:00</p> +END_EXAMPLE

*** Site wide config

Alternatively, if you'd rather enable liquid by default for every org file being converted, you can enable it in your /_config.yml/ file.

+BEGIN_EXAMPLE org:

liquid: true

+END_EXAMPLE

** Source code highlighting

Add a source code block as you would in Org, for example Ruby:

+BEGIN_EXAMPLE +BEGIN_SRC

require 'rubygems'
require 'org-ruby'
data = IO.read(filename)
puts Orgmode::Parser.new(data).to_html

+END_SRC +END_EXAMPLE

Then the output will have code highlighting:

+BEGIN_SRC ruby

require 'rubygems'
require 'org-ruby'
data = IO.read(filename)
puts Orgmode::Parser.new(data).to_html

+END_SRC

** Author

eggcaker <eggcaker@gmail.com>

** License

MIT