-
jekyll-org
** Overview
This plugin adds [[orgmode.org/][Org mode]] support to [[jekyllrb.com][Jekyll]] and lets you write posts and pages in Org.
** Requirements
-
org-ruby
** Installation *** Short version
For experienced Jekyll
users, you need to do 2 things to get ~jekyll-org~ to work :
-
Include the gem in your ~_config.yml~
-
Include the gem in Gemfile
*** 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