Two Jekyll Liquid tags to display a code sample from a file in a public Github repo and provide a reference to it.
- First add the gem to your
Gemfile
gem 'jekyll_github_sample'
bundle
to install the gem- Add the gem to your Jekyll
_config.yml
gems: [jekyll_github_sample]
- Startup or relaunch Jekyll
A write up on my Jekyll blog including samples referencing this repo's code, meta.
{% github_sample URL_WITH_USERNAME_REPO_AND_FILE <START_LINE_NUMBER> <END_LINE_NUMBER> %}
- URL_WITH_USERNAME_REPO_AND_FILE - the relative path to the Github repo file, prefer a file with the commitish in it so it won't change when recompiling occurs. A url to this README would be:
bwillis/jekyll-github-sample/blob/a3bc9e82412d364aa76e9308ab53ff2bddaa2faf/README.md
- START_LINE_NUMBER - (optional) number that is the first line to include (0 based)
- END_LINE_NUMBER - (optional) number that is the last line to include, if excluded will read to end of file
One can also specify the lines to include based on markings in the file itself. This is done by invoking
{% github_sample URL_WITH_USERNAME_REPO_AND_FILE tag:TAG_NAME %}
and placing the strings [START TAG_NAME]
and [END TAG_NAME]
anywhere in the lines immediately before and after the content you wish to include.
{% github_sample_ref URL_WITH_USERNAME_REPO_AND_FILE %}
- URL_WITH_USERNAME_REPO_AND_FILE - the relative path to the Github repo file, prefer a file with the commitish in it so it won't change when recompiling occurs. A url to this README would be:
bwillis/jekyll-github-sample/blob/a3bc9e82412d364aa76e9308ab53ff2bddaa2faf/README.md
This is how you would display, reference and highlight code in your Jekyll post.
{% github_sample_ref /bwillis/versioncake/989237901cb873f96df12be48cbf1239be496bd7/Appraisals %}
{% highlight ruby %}
{% github_sample /bwillis/versioncake/989237901cb873f96df12be48cbf1239be496bd7/Appraisals 0 5 %}
{% endhighlight %}
Thanks to all those who have helped make this really awesome:
Jekyll Github Sample is released under the MIT license: www.opensource.org/licenses/MIT