jekyll-docs 2.5.3 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jekyll-docs.rb +34 -4
  3. data/site/CNAME +1 -0
  4. data/site/README.md +16 -0
  5. data/site/_config.yml +21 -0
  6. data/site/_data/docs.yml +47 -0
  7. data/site/_docs/assets.md +93 -0
  8. data/site/_docs/collections.md +380 -0
  9. data/site/_docs/configuration.md +677 -0
  10. data/site/_docs/continuous-integration.md +221 -0
  11. data/site/_docs/contributing.md +124 -0
  12. data/site/_docs/datafiles.md +151 -0
  13. data/site/_docs/deployment-methods.md +192 -0
  14. data/site/_docs/drafts.md +20 -0
  15. data/site/_docs/extras.md +22 -0
  16. data/site/_docs/frontmatter.md +191 -0
  17. data/site/_docs/github-pages.md +134 -0
  18. data/site/_docs/history.md +2131 -0
  19. data/site/_docs/index.md +56 -0
  20. data/site/_docs/installation.md +106 -0
  21. data/site/_docs/migrations.md +9 -0
  22. data/site/_docs/pages.md +84 -0
  23. data/site/_docs/pagination.md +221 -0
  24. data/site/_docs/permalinks.md +307 -0
  25. data/site/_docs/plugins.md +891 -0
  26. data/site/_docs/posts.md +237 -0
  27. data/site/_docs/quickstart.md +27 -0
  28. data/site/_docs/resources.md +46 -0
  29. data/site/_docs/sites.md +29 -0
  30. data/site/_docs/static_files.md +52 -0
  31. data/site/_docs/structure.md +211 -0
  32. data/site/_docs/templates.md +425 -0
  33. data/site/_docs/troubleshooting.md +207 -0
  34. data/site/_docs/upgrading.md +140 -0
  35. data/site/_docs/usage.md +101 -0
  36. data/site/_docs/variables.md +390 -0
  37. data/site/_docs/windows.md +44 -0
  38. data/site/_includes/analytics.html +30 -0
  39. data/site/_includes/anchor_links.html +33 -0
  40. data/site/_includes/docs_contents.html +8 -0
  41. data/site/_includes/docs_contents_mobile.html +10 -0
  42. data/site/_includes/docs_option.html +11 -0
  43. data/site/_includes/docs_ul.html +21 -0
  44. data/site/_includes/footer.html +15 -0
  45. data/site/_includes/header.html +18 -0
  46. data/site/_includes/news_contents.html +33 -0
  47. data/site/_includes/news_contents_mobile.html +11 -0
  48. data/site/_includes/news_item.html +24 -0
  49. data/site/_includes/primary-nav-items.html +17 -0
  50. data/site/_includes/section_nav.html +39 -0
  51. data/site/_includes/top.html +17 -0
  52. data/site/_layouts/default.html +13 -0
  53. data/site/_layouts/docs.html +26 -0
  54. data/site/_layouts/news.html +19 -0
  55. data/site/_layouts/news_item.html +27 -0
  56. data/site/_layouts/page.html +18 -0
  57. data/site/_posts/2013-05-06-jekyll-1-0-0-released.markdown +23 -0
  58. data/site/_posts/2013-05-08-jekyll-1-0-1-released.markdown +27 -0
  59. data/site/_posts/2013-05-12-jekyll-1-0-2-released.markdown +28 -0
  60. data/site/_posts/2013-06-07-jekyll-1-0-3-released.markdown +25 -0
  61. data/site/_posts/2013-07-14-jekyll-1-1-0-released.markdown +27 -0
  62. data/site/_posts/2013-07-24-jekyll-1-1-1-released.markdown +31 -0
  63. data/site/_posts/2013-07-25-jekyll-1-0-4-released.markdown +20 -0
  64. data/site/_posts/2013-07-25-jekyll-1-1-2-released.markdown +20 -0
  65. data/site/_posts/2013-09-06-jekyll-1-2-0-released.markdown +23 -0
  66. data/site/_posts/2013-09-14-jekyll-1-2-1-released.markdown +19 -0
  67. data/site/_posts/2013-10-28-jekyll-1-3-0-rc1-released.markdown +17 -0
  68. data/site/_posts/2013-11-04-jekyll-1-3-0-released.markdown +43 -0
  69. data/site/_posts/2013-11-26-jekyll-1-3-1-released.markdown +21 -0
  70. data/site/_posts/2013-12-07-jekyll-1-4-0-released.markdown +30 -0
  71. data/site/_posts/2013-12-09-jekyll-1-4-1-released.markdown +18 -0
  72. data/site/_posts/2013-12-16-jekyll-1-4-2-released.markdown +18 -0
  73. data/site/_posts/2014-01-13-jekyll-1-4-3-released.markdown +26 -0
  74. data/site/_posts/2014-03-24-jekyll-1-5-0-released.markdown +19 -0
  75. data/site/_posts/2014-03-27-jekyll-1-5-1-released.markdown +26 -0
  76. data/site/_posts/2014-05-06-jekyll-turns-2-0-0.markdown +31 -0
  77. data/site/_posts/2014-05-08-jekyll-2-0-3-released.markdown +18 -0
  78. data/site/_posts/2014-06-04-jekyll-stickers-1-dollar-stickermule.markdown +19 -0
  79. data/site/_posts/2014-06-28-jekyll-turns-21-i-mean-2-1-0.markdown +31 -0
  80. data/site/_posts/2014-07-01-jekyll-2-1-1-released.markdown +30 -0
  81. data/site/_posts/2014-07-29-jekyll-2-2-0-released.markdown +19 -0
  82. data/site/_posts/2014-08-10-jekyll-2-3-0-released.markdown +41 -0
  83. data/site/_posts/2014-09-09-jekyll-2-4-0-released.markdown +25 -0
  84. data/site/_posts/2014-11-06-jekylls-midlife-crisis-jekyll-turns-2-5-0.markdown +47 -0
  85. data/site/_posts/2014-11-08-jekyll-2-5-1-released.markdown +29 -0
  86. data/site/_posts/2014-11-12-jekyll-2-5-2-released.markdown +18 -0
  87. data/site/_posts/2014-12-17-alfredxing-welcome-to-jekyll-core.md +27 -0
  88. data/site/_posts/2014-12-22-jekyll-2-5-3-released.markdown +20 -0
  89. data/site/_posts/2015-01-20-jekyll-meet-and-greet.markdown +20 -0
  90. data/site/_posts/2015-01-24-jekyll-3-0-0-beta1-released.markdown +40 -0
  91. data/site/_posts/2015-02-26-introducing-jekyll-talk.markdown +15 -0
  92. data/site/_posts/2015-10-26-jekyll-3-0-released.markdown +35 -0
  93. data/site/_posts/2015-11-17-jekyll-3-0-1-released.markdown +25 -0
  94. data/site/_posts/2016-01-20-jekyll-3-0-2-released.markdown +14 -0
  95. data/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown +31 -0
  96. data/site/_sass/_font-awesome.scss +25 -0
  97. data/site/_sass/_gridism.scss +124 -0
  98. data/site/_sass/_mixins.scss +38 -0
  99. data/site/_sass/_normalize.scss +1 -0
  100. data/site/_sass/_pygments.scss +78 -0
  101. data/site/_sass/_style.scss +998 -0
  102. data/site/css/screen.scss +9 -0
  103. data/site/favicon.ico +0 -0
  104. data/site/fonts/fontawesome-webfont.eot +0 -0
  105. data/site/fonts/fontawesome-webfont.svg +640 -0
  106. data/site/fonts/fontawesome-webfont.ttf +0 -0
  107. data/site/fonts/fontawesome-webfont.woff +0 -0
  108. data/site/fonts/fontawesome-webfont.woff2 +0 -0
  109. data/site/freenode.txt +1 -0
  110. data/site/help/index.md +36 -0
  111. data/site/img/article-footer.png +0 -0
  112. data/site/img/footer-arrow.png +0 -0
  113. data/site/img/footer-logo.png +0 -0
  114. data/site/img/jekyll-sticker.jpg +0 -0
  115. data/site/img/logo-2x.png +0 -0
  116. data/site/img/logo-rss.png +0 -0
  117. data/site/img/octojekyll.png +0 -0
  118. data/site/index.html +90 -0
  119. data/site/js/html5shiv.min.js +4 -0
  120. data/site/js/respond.min.js +5 -0
  121. data/site/latest_version.txt +1 -0
  122. data/site/news/index.html +10 -0
  123. data/site/news/releases/index.html +10 -0
  124. metadata +138 -6
  125. data/lib/jekyll-docs/version.rb +0 -5
  126. data/lib/jekyll/commands/docs.rb +0 -30
  127. data/lib/jekyll/docs.rb +0 -7
@@ -0,0 +1,221 @@
1
+ ---
2
+ layout: docs
3
+ title: Continuous Integration
4
+ permalink: /docs/continuous-integration/
5
+ ---
6
+
7
+ You can easily test your website build against one or more versions of Ruby.
8
+ The following guide will show you how to set up a free build environment on
9
+ [Travis][0], with [GitHub][1] integration for pull requests. Paid
10
+ alternatives exist for private repositories.
11
+
12
+ [0]: https://travis-ci.org/
13
+ [1]: https://github.com/
14
+
15
+ ## 1. Enabling Travis and GitHub
16
+
17
+ Enabling Travis builds for your GitHub repository is pretty simple:
18
+
19
+ 1. Go to your profile on travis-ci.org: https://travis-ci.org/profile/username
20
+ 2. Find the repository for which you're interested in enabling builds.
21
+ 3. Click the slider on the right so it says "ON" and is a dark grey.
22
+ 4. Optionally configure the build by clicking on the wrench icon. Further
23
+ configuration happens in your `.travis.yml` file. More details on that
24
+ below.
25
+
26
+ ## 2. The Test Script
27
+
28
+ The simplest test script simply runs `jekyll build` and ensures that Jekyll
29
+ doesn't fail to build the site. It doesn't check the resulting site, but it
30
+ does ensure things are built properly.
31
+
32
+ When testing Jekyll output, there is no better tool than [html-proofer][2].
33
+ This tool checks your resulting site to ensure all links and images exist.
34
+ Utilize it either with the convenient `htmlproof` command-line executable,
35
+ or write a Ruby script which utilizes the gem.
36
+
37
+ Save the commands you want to run and succeed in a file: `./script/cibuild`
38
+
39
+ ### The HTML Proofer Executable
40
+
41
+ {% highlight bash %}
42
+ #!/usr/bin/env bash
43
+ set -e # halt script on error
44
+
45
+ bundle exec jekyll build
46
+ bundle exec htmlproof ./_site
47
+ {% endhighlight %}
48
+
49
+ Some options can be specified via command-line switches. Check out the
50
+ `html-proofer` README for more information about these switches, or run
51
+ `htmlproof --help` locally.
52
+
53
+ For example to avoid testing external sites, use this command:
54
+
55
+ {% highlight bash %}
56
+ $ bundle exec htmlproof ./_site --disable-external
57
+ {% endhighlight %}
58
+
59
+ ### The HTML Proofer Library
60
+
61
+ You can also invoke `html-proofer` in Ruby scripts (e.g. in a Rakefile):
62
+
63
+ {% highlight ruby %}
64
+ #!/usr/bin/env ruby
65
+
66
+ require 'html/proofer'
67
+ HTML::Proofer.new("./_site").run
68
+ {% endhighlight %}
69
+
70
+ Options are given as a second argument to `.new`, and are encoded in a
71
+ symbol-keyed Ruby Hash. For more information about the configuration options,
72
+ check out `html-proofer`'s README file.
73
+
74
+ [2]: https://github.com/gjtorikian/html-proofer
75
+
76
+ ## 3. Configuring Your Travis Builds
77
+
78
+ This file is used to configure your Travis builds. Because Jekyll is built
79
+ with Ruby and requires RubyGems to install, we use the Ruby language build
80
+ environment. Below is a sample `.travis.yml` file, followed by
81
+ an explanation of each line.
82
+
83
+ **Note:** You will need a Gemfile as well, [Travis will automatically install](http://docs.travis-ci.com/user/languages/ruby/#Dependency-Management) the dependencies based on the referenced gems:
84
+
85
+ {% highlight ruby %}
86
+ source "https://rubygems.org"
87
+
88
+ gem "jekyll"
89
+ gem "html-proofer"
90
+ {% endhighlight %}
91
+
92
+ Your `.travis.yml` file should look like this:
93
+
94
+ {% highlight yaml %}
95
+ language: ruby
96
+ rvm:
97
+ - 2.1
98
+
99
+ before_script:
100
+ - chmod +x ./script/cibuild # or do this locally and commit
101
+
102
+ # Assume bundler is being used, therefore
103
+ # the `install` step will run `bundle install` by default.
104
+ script: ./script/cibuild
105
+
106
+ # branch whitelist, only for GitHub Pages
107
+ branches:
108
+ only:
109
+ - gh-pages # test the gh-pages branch
110
+ - /pages-(.*)/ # test every branch which starts with "pages-"
111
+
112
+ env:
113
+ global:
114
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
115
+ {% endhighlight %}
116
+
117
+ Ok, now for an explanation of each line:
118
+
119
+ {% highlight yaml %}
120
+ language: ruby
121
+ {% endhighlight %}
122
+
123
+ This line tells Travis to use a Ruby build container. It gives your script
124
+ access to Bundler, RubyGems, and a Ruby runtime.
125
+
126
+ {% highlight yaml %}
127
+ rvm:
128
+ - 2.1
129
+ {% endhighlight %}
130
+
131
+ RVM is a popular Ruby Version Manager (like rbenv, chruby, etc). This
132
+ directive tells Travis the Ruby version to use when running your test
133
+ script.
134
+
135
+ {% highlight yaml %}
136
+ before_script:
137
+ - chmod +x ./script/cibuild
138
+ {% endhighlight %}
139
+
140
+ The build script file needs to have the *executable* attribute set or
141
+ Travis will fail with a permission denied error. You can also run this
142
+ locally and commit the permissions directly, thus rendering this step
143
+ irrelevant.
144
+
145
+ {% highlight yaml %}
146
+ script: ./script/cibuild
147
+ {% endhighlight %}
148
+
149
+ Travis allows you to run any arbitrary shell script to test your site. One
150
+ convention is to put all scripts for your project in the `script`
151
+ directory, and to call your test script `cibuild`. This line is completely
152
+ customizable. If your script won't change much, you can write your test
153
+ incantation here directly:
154
+
155
+ {% highlight yaml %}
156
+ install: gem install jekyll html-proofer
157
+ script: jekyll build && htmlproof ./_site
158
+ {% endhighlight %}
159
+
160
+ The `script` directive can be absolutely any valid shell command.
161
+
162
+ {% highlight yaml %}
163
+ # branch whitelist, only for GitHub Pages
164
+ branches:
165
+ only:
166
+ - gh-pages # test the gh-pages branch
167
+ - /pages-(.*)/ # test every branch which starts with "pages-"
168
+ {% endhighlight %}
169
+
170
+ You want to ensure the Travis builds for your site are being run only on
171
+ the branch or branches which contain your site. One means of ensuring this
172
+ isolation is including a branch whitelist in your Travis configuration
173
+ file. By specifying the `gh-pages` branch, you will ensure the associated
174
+ test script (discussed above) is only executed on site branches. If you use
175
+ a pull request flow for proposing changes, you may wish to enforce a
176
+ convention for your builds such that all branches containing edits are
177
+ prefixed, exemplified above with the `/pages-(.*)/` regular expression.
178
+
179
+ The `branches` directive is completely optional. Travis will build from every
180
+ push to any branch of your repo if leave it out.
181
+
182
+ {% highlight yaml %}
183
+ env:
184
+ global:
185
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
186
+ {% endhighlight %}
187
+
188
+ Using `html-proofer`? You'll want this environment variable. Nokogiri, used
189
+ to parse HTML files in your compiled site, comes bundled with libraries
190
+ which it must compile each time it is installed. Luckily, you can
191
+ dramatically decrease the install time of Nokogiri by setting the
192
+ environment variable `NOKOGIRI_USE_SYSTEM_LIBRARIES` to `true`.
193
+
194
+ <div class="note warning">
195
+ <h5>Be sure to exclude <code>vendor</code> from your
196
+ <code>_config.yml</code></h5>
197
+ <p>Travis bundles all gems in the <code>vendor</code> directory on its build
198
+ servers, which Jekyll will mistakenly read and explode on.</p>
199
+ </div>
200
+
201
+ {% highlight yaml %}
202
+ exclude: [vendor]
203
+ {% endhighlight %}
204
+
205
+ ### Troubleshooting
206
+
207
+ **Travis error:** *"You are trying to install in deployment mode after changing
208
+ your Gemfile. Run bundle install elsewhere and add the updated Gemfile.lock
209
+ to version control."*
210
+
211
+ **Workaround:** Either run `bundle install` locally and commit your changes to
212
+ `Gemfile.lock`, or remove the `Gemfile.lock` file from your repository and add
213
+ an entry in the `.gitignore` file to avoid it from being checked in again.
214
+
215
+ ### Questions?
216
+
217
+ This entire guide is open-source. Go ahead and [edit it][3] if you have a
218
+ fix or [ask for help][4] if you run into trouble and need some help.
219
+
220
+ [3]: https://github.com/jekyll/jekyll/edit/master/site/_docs/continuous-integration.md
221
+ [4]: http://jekyllrb.com/help/
@@ -0,0 +1,124 @@
1
+ ---
2
+ layout: docs
3
+ title: Contributing
4
+ permalink: /docs/contributing/
5
+ ---
6
+
7
+ So you've got an awesome idea to throw into Jekyll. Great! Please keep the
8
+ following in mind:
9
+
10
+ * **Use https://talk.jekyllrb.com for non-technical or indirect Jekyll questions that are not bugs.**
11
+ * **Contributions will not be accepted without tests or necessary documentation updates.**
12
+ * If you're creating a small fix or patch to an existing feature, just a simple
13
+ test will do. Please stay in the confines of the current test suite and use
14
+ [Shoulda](https://github.com/thoughtbot/shoulda/tree/master) and
15
+ [RSpec-Mocks](https://github.com/rspec/rspec-mocks).
16
+ * If it's a brand new feature, make sure to create a new
17
+ [Cucumber](https://github.com/cucumber/cucumber/) feature and reuse steps
18
+ where appropriate. Also, whipping up some documentation in your fork's `site`
19
+ would be appreciated, and once merged it will be transferred over to the main
20
+ `site`, jekyllrb.com.
21
+ * If your contribution changes any Jekyll behavior, make sure to update the
22
+ documentation. It lives in `site/_docs`. If the docs are missing information,
23
+ please feel free to add it in. Great docs make a great project!
24
+ * Please follow the [GitHub Ruby Styleguide](https://github.com/styleguide/ruby)
25
+ when modifying Ruby code.
26
+ * Please do your best to submit **small pull requests**. The easier the proposed
27
+ change is to review, the more likely it will be merged.
28
+ * When submitting a pull request, please make judicious use of the pull request
29
+ body. A description of what changes were made, the motivations behind the
30
+ changes and [any tasks completed or left to complete](http://git.io/gfm-tasks)
31
+ will also speed up review time.
32
+
33
+ <div class="note warning">
34
+ <h5>Contributions will not be accepted without tests</h5>
35
+ <p>
36
+ If you’re creating a small fix or patch to an existing feature, just
37
+ a simple test will do.
38
+ </p>
39
+ </div>
40
+
41
+
42
+ Test Dependencies
43
+ -----------------
44
+
45
+ To run the test suite and build the gem you'll need to install Jekyll's
46
+ dependencies. Simply run this command to get all setup:
47
+
48
+ <figure class="highlight"><pre><code>$ script/bootstrap</code></pre></figure>
49
+
50
+ Before you start, run the tests and make sure that they pass (to confirm your
51
+ environment is configured properly):
52
+
53
+ <figure class="highlight"><pre><code>$ script/cibuild</code></pre></figure>
54
+
55
+ If you are only updating a file in `test/`, you can use the command:
56
+
57
+ <figure class="highlight"><pre><code>$ script/test test/blah_test.rb</code></pre></figure>
58
+
59
+ If you are only updating a `.feature` file, you can use the command:
60
+
61
+ <figure class="highlight"><pre><code>$ script/cucumber features/blah.feature</code></pre></figure>
62
+
63
+ Both `script/test` and `script/cucumber` can be run without arguments to
64
+ run its entire respective suite.
65
+
66
+ Workflow
67
+ --------
68
+
69
+ Here's the most direct way to get your work merged into the project:
70
+
71
+ * Fork the project.
72
+ * Clone down your fork ( `git clone git@github.com:[username]/jekyll.git` ).
73
+ * Create a topic branch to contain your change ( `git checkout -b my_awesome_feature` ).
74
+ * Hack away, add tests. Not necessarily in that order.
75
+ * Make sure everything still passes by running `script/cibuild`.
76
+ * If necessary, rebase your commits into logical chunks, without errors.
77
+ * Push the branch up ( `git push origin my_awesome_feature` ).
78
+ * Create a pull request against jekyll/jekyll and describe what your change
79
+ does and the why you think it should be merged.
80
+
81
+ Updating Documentation
82
+ ----------------------
83
+
84
+ We want the Jekyll documentation to be the best it can be. We've
85
+ open-sourced our docs and we welcome any pull requests if you find it
86
+ lacking.
87
+
88
+ You can find the documentation for jekyllrb.com in the
89
+ [site]({{ site.repository }}/tree/master/site) directory of
90
+ Jekyll's repo on GitHub.com.
91
+
92
+ All documentation pull requests should be directed at `master`. Pull
93
+ requests directed at another branch will not be accepted.
94
+
95
+ The [Jekyll wiki]({{ site.repository }}/wiki) on GitHub
96
+ can be freely updated without a pull request as all GitHub users have access.
97
+
98
+ If you want to add your plugin to the [list of plugins](/docs/plugins/#available-plugins),
99
+ please submit a pull request modifying the [plugins page source
100
+ file]({{ site.repository }}/blob/master/site/_docs/plugins.md) by adding a
101
+ link to your plugin under the proper subheading depending upon its type.
102
+
103
+ Gotchas
104
+ -------
105
+
106
+ * Please do not bump the gem version in your pull requests.
107
+ * Try to keep your patch(es) based from the latest commit on jekyll/jekyll.
108
+ The easier it is to apply your work, the less work the maintainers have to do,
109
+ which is always a good thing.
110
+ * Please don't tag your GitHub issue with [fix], [feature], etc. The maintainers
111
+ actively read the issues and will label it once they come across it.
112
+
113
+ Finally...
114
+ ----------
115
+
116
+ <div class="note">
117
+ <h5>Let us know what could be better!</h5>
118
+ <p>
119
+ Both using and hacking on Jekyll should be fun, simple, and easy, so if for
120
+ some reason you find it’s a pain, please <a
121
+ href="{{ site.repository }}/issues/new">create an issue</a> on
122
+ GitHub describing your experience so we can make it better.
123
+ </p>
124
+ </div>
@@ -0,0 +1,151 @@
1
+ ---
2
+ layout: docs
3
+ title: Data Files
4
+ permalink: /docs/datafiles/
5
+ ---
6
+
7
+ In addition to the [built-in variables](../variables/) available from Jekyll,
8
+ you can specify your own custom data that can be accessed via the [Liquid
9
+ templating system](https://wiki.github.com/shopify/liquid/liquid-for-designers).
10
+
11
+ Jekyll supports loading data from [YAML](http://yaml.org/), [JSON](http://www.json.org/),
12
+ and [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) files located in the `_data` directory.
13
+ Note that CSV files *must* contain a header row.
14
+
15
+ This powerful feature allows you to avoid repetition in your templates and to
16
+ set site specific options without changing `_config.yml`.
17
+
18
+ Plugins/themes can also leverage Data Files to set configuration variables.
19
+
20
+ ## The Data Folder
21
+
22
+ As explained on the [directory structure](../structure/) page, the `_data`
23
+ folder is where you can store additional data for Jekyll to use when generating
24
+ your site. These files must be YAML files
25
+ (using either the `.yml`, `.yaml`, `.json` or `csv` extension) and they will be
26
+ accessible via `site.data`.
27
+
28
+ ## Example: List of members
29
+
30
+ Here is a basic example of using Data Files to avoid copy-pasting large chunks
31
+ of code in your Jekyll templates:
32
+
33
+ In `_data/members.yml`:
34
+
35
+ {% highlight yaml %}
36
+ - name: Tom Preston-Werner
37
+ github: mojombo
38
+
39
+ - name: Parker Moore
40
+ github: parkr
41
+
42
+ - name: Liu Fengyun
43
+ github: liufengyun
44
+ {% endhighlight %}
45
+
46
+ Or `_data/members.csv`:
47
+
48
+ {% highlight text %}
49
+ name,github
50
+ Tom Preston-Werner,mojombo
51
+ Parker Moore,parkr
52
+ Liu Fengyun,liufengyun
53
+ {% endhighlight %}
54
+
55
+ This data can be accessed via `site.data.members` (notice that the filename
56
+ determines the variable name).
57
+
58
+ You can now render the list of members in a template:
59
+
60
+ {% highlight html %}
61
+ {% raw %}
62
+ <ul>
63
+ {% for member in site.data.members %}
64
+ <li>
65
+ <a href="https://github.com/{{ member.github }}">
66
+ {{ member.name }}
67
+ </a>
68
+ </li>
69
+ {% endfor %}
70
+ </ul>
71
+ {% endraw %}
72
+ {% endhighlight %}
73
+
74
+ ## Example: Organizations
75
+
76
+ Data files can also be placed in sub-folders of the `_data` folder. Each folder
77
+ level will be added to a variable's namespace. The example below shows how
78
+ GitHub organizations could be defined separately in a file under the `orgs`
79
+ folder:
80
+
81
+ In `_data/orgs/jekyll.yml`:
82
+
83
+ {% highlight yaml %}
84
+ username: jekyll
85
+ name: Jekyll
86
+ members:
87
+ - name: Tom Preston-Werner
88
+ github: mojombo
89
+
90
+ - name: Parker Moore
91
+ github: parkr
92
+ {% endhighlight %}
93
+
94
+ In `_data/orgs/doeorg.yml`:
95
+
96
+ {% highlight yaml %}
97
+ username: doeorg
98
+ name: Doe Org
99
+ members:
100
+ - name: John Doe
101
+ github: jdoe
102
+ {% endhighlight %}
103
+
104
+ The organizations can then be accessed via `site.data.orgs`, followed by the
105
+ file name:
106
+
107
+ {% highlight html %}
108
+ {% raw %}
109
+ <ul>
110
+ {% for org_hash in site.data.orgs %}
111
+ {% assign org = org_hash[1] %}
112
+ <li>
113
+ <a href="https://github.com/{{ org.username }}">
114
+ {{ org.name }}
115
+ </a>
116
+ ({{ org.members | size }} members)
117
+ </li>
118
+ {% endfor %}
119
+ </ul>
120
+ {% endraw %}
121
+ {% endhighlight %}
122
+
123
+ ## Example: Accessing a specific author
124
+
125
+ Pages and posts can also access a specific data item. The example below shows how to access a specific item:
126
+
127
+ `_data/people.yml`:
128
+ {% highlight yaml %}
129
+ dave:
130
+ name: David Smith
131
+ twitter: DavidSilvaSmith
132
+ {% endhighlight %}
133
+
134
+ The author can then be specified as a page variable in a post's frontmatter:
135
+
136
+ {% highlight html %}
137
+ {% raw %}
138
+ ---
139
+ title: sample post
140
+ author: dave
141
+ ---
142
+
143
+ {% assign author = site.data.people[page.author] %}
144
+ <a rel="author"
145
+ href="{{ author.twitter }}"
146
+ title="{{ author.name }}">
147
+ {{ author.name }}
148
+ </a>
149
+
150
+ {% endraw %}
151
+ {% endhighlight %}