jekyll-docs 3.9.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jekyll-docs.rb +3 -3
  3. data/site/404.html +10 -7
  4. data/site/css/screen.css +3 -1
  5. data/site/css/screen.css.map +28 -0
  6. data/site/docs/assets/index.html +412 -453
  7. data/site/docs/code_of_conduct/index.html +447 -501
  8. data/site/docs/collections/index.html +487 -674
  9. data/site/docs/community/bug/index.html +603 -0
  10. data/site/docs/community/index.html +635 -0
  11. data/site/docs/conduct/index.html +447 -515
  12. data/site/docs/configuration/default/index.html +682 -0
  13. data/site/docs/configuration/environments/index.html +641 -0
  14. data/site/docs/configuration/front-matter-defaults/index.html +738 -0
  15. data/site/docs/configuration/incremental-regeneration/index.html +631 -0
  16. data/site/docs/configuration/index.html +405 -1230
  17. data/site/docs/configuration/liquid/index.html +616 -0
  18. data/site/docs/configuration/markdown/index.html +766 -0
  19. data/site/docs/configuration/options/index.html +1011 -0
  20. data/site/docs/configuration/webrick/index.html +615 -0
  21. data/site/docs/continuous-integration/buddyworks/index.html +393 -479
  22. data/site/docs/continuous-integration/circleci/index.html +465 -481
  23. data/site/docs/continuous-integration/travis-ci/index.html +450 -507
  24. data/site/docs/contributing/index.html +425 -514
  25. data/site/docs/datafiles/index.html +411 -453
  26. data/site/docs/deployment-methods/index.html +9 -871
  27. data/site/docs/deployment/automated/index.html +663 -0
  28. data/site/docs/deployment/index.html +607 -0
  29. data/site/docs/deployment/manual/index.html +631 -0
  30. data/site/docs/deployment/third-party/index.html +639 -0
  31. data/site/docs/drafts/index.html +9 -634
  32. data/site/docs/extras/index.html +9 -687
  33. data/site/docs/front-matter/index.html +799 -0
  34. data/site/docs/frontmatter/index.html +9 -819
  35. data/site/docs/github-pages/index.html +407 -475
  36. data/site/docs/history/index.html +1370 -1154
  37. data/site/docs/home/index.html +9 -627
  38. data/site/docs/includes/index.html +425 -501
  39. data/site/docs/index.html +630 -9
  40. data/site/docs/installation/index.html +403 -540
  41. data/site/docs/installation/macos/index.html +716 -0
  42. data/site/docs/installation/other-linux/index.html +613 -0
  43. data/site/docs/installation/ubuntu/index.html +623 -0
  44. data/site/docs/installation/windows/index.html +733 -0
  45. data/site/docs/layouts/index.html +726 -0
  46. data/site/docs/liquid/filters/index.html +1169 -0
  47. data/site/docs/liquid/index.html +615 -0
  48. data/site/docs/liquid/tags/index.html +728 -0
  49. data/site/docs/maintaining/affinity-team-captain/index.html +395 -479
  50. data/site/docs/maintaining/avoiding-burnout/index.html +391 -475
  51. data/site/docs/maintaining/becoming-a-maintainer/index.html +391 -475
  52. data/site/docs/maintaining/index.html +391 -486
  53. data/site/docs/maintaining/merging-a-pull-request/index.html +406 -490
  54. data/site/docs/maintaining/releasing-a-new-version/index.html +409 -485
  55. data/site/docs/maintaining/reviewing-a-pull-request/index.html +392 -476
  56. data/site/docs/maintaining/special-labels/index.html +397 -481
  57. data/site/docs/maintaining/triaging-an-issue/index.html +394 -478
  58. data/site/docs/markdown-101/index.html +601 -0
  59. data/site/docs/migrations/index.html +396 -440
  60. data/site/docs/pages/index.html +408 -482
  61. data/site/docs/pagination/index.html +450 -509
  62. data/site/docs/permalinks/index.html +552 -587
  63. data/site/docs/plugins/commands/index.html +656 -0
  64. data/site/docs/plugins/converters/index.html +685 -0
  65. data/site/docs/plugins/filters/index.html +624 -0
  66. data/site/docs/plugins/generators/index.html +697 -0
  67. data/site/docs/plugins/hooks/index.html +838 -0
  68. data/site/docs/plugins/index.html +415 -1565
  69. data/site/docs/plugins/installation/index.html +681 -0
  70. data/site/docs/plugins/tags/index.html +699 -0
  71. data/site/docs/plugins/your-first-plugin/index.html +741 -0
  72. data/site/docs/posts/index.html +491 -627
  73. data/site/docs/quickstart/index.html +9 -645
  74. data/site/docs/resources/index.html +9 -761
  75. data/site/docs/ruby-101/index.html +640 -0
  76. data/site/docs/sites/index.html +9 -696
  77. data/site/docs/static-files/index.html +401 -433
  78. data/site/docs/step-by-step/01-setup/index.html +771 -0
  79. data/site/docs/step-by-step/02-liquid/index.html +756 -0
  80. data/site/docs/step-by-step/03-front-matter/index.html +730 -0
  81. data/site/docs/step-by-step/04-layouts/index.html +770 -0
  82. data/site/docs/step-by-step/05-includes/index.html +768 -0
  83. data/site/docs/step-by-step/06-data-files/index.html +738 -0
  84. data/site/docs/step-by-step/07-assets/index.html +773 -0
  85. data/site/docs/step-by-step/08-blogging/index.html +835 -0
  86. data/site/docs/step-by-step/09-collections/index.html +932 -0
  87. data/site/docs/step-by-step/10-deployment/index.html +842 -0
  88. data/site/docs/structure/index.html +411 -430
  89. data/site/docs/support/index.html +392 -476
  90. data/site/docs/templates/index.html +9 -1232
  91. data/site/docs/themes/index.html +487 -521
  92. data/site/docs/troubleshooting/index.html +443 -520
  93. data/site/docs/upgrading/0-to-2/index.html +437 -523
  94. data/site/docs/upgrading/2-to-3/index.html +422 -507
  95. data/site/docs/upgrading/3-to-4/index.html +765 -0
  96. data/site/docs/upgrading/index.html +395 -478
  97. data/site/docs/usage/index.html +409 -506
  98. data/site/docs/variables/index.html +504 -652
  99. data/site/docs/windows/index.html +9 -784
  100. data/site/feed.xml +269 -188
  101. data/site/feed/release.xml +324 -0
  102. data/site/fonts/lato-v14-latin-300.woff +0 -0
  103. data/site/fonts/lato-v14-latin-300.woff2 +0 -0
  104. data/site/fonts/lato-v14-latin-300italic.woff +0 -0
  105. data/site/fonts/lato-v14-latin-300italic.woff2 +0 -0
  106. data/site/fonts/lato-v14-latin-700.woff +0 -0
  107. data/site/fonts/lato-v14-latin-700.woff2 +0 -0
  108. data/site/fonts/lato-v14-latin-700italic.woff +0 -0
  109. data/site/fonts/lato-v14-latin-700italic.woff2 +0 -0
  110. data/site/fonts/lato-v14-latin-900.woff +0 -0
  111. data/site/fonts/lato-v14-latin-900.woff2 +0 -0
  112. data/site/fonts/lato-v14-latin-900italic.woff +0 -0
  113. data/site/fonts/lato-v14-latin-900italic.woff2 +0 -0
  114. data/site/fonts/lato-v14-latin-italic.woff +0 -0
  115. data/site/fonts/lato-v14-latin-italic.woff2 +0 -0
  116. data/site/fonts/lato-v14-latin-regular.woff +0 -0
  117. data/site/fonts/lato-v14-latin-regular.woff2 +0 -0
  118. data/site/help/index.html +9 -247
  119. data/site/img/forestry-logo.svg +19 -0
  120. data/site/img/jekyll-og.png +0 -0
  121. data/site/img/spacer.gif +0 -0
  122. data/site/index.html +56 -29
  123. data/site/jekyllconf/index.html +62 -35
  124. data/site/latest_version.txt +1 -1
  125. data/site/news/2013/05/05/jekyll-1-0-0-released/index.html +180 -115
  126. data/site/news/2013/05/08/jekyll-1-0-1-released/index.html +182 -117
  127. data/site/news/2013/05/12/jekyll-1-0-2-released/index.html +183 -118
  128. data/site/news/2013/06/07/jekyll-1-0-3-released/index.html +184 -119
  129. data/site/news/2013/07/14/jekyll-1-1-0-released/index.html +183 -118
  130. data/site/news/2013/07/24/jekyll-1-1-1-released/index.html +180 -115
  131. data/site/news/2013/07/25/jekyll-1-0-4-released/index.html +182 -117
  132. data/site/news/2013/07/25/jekyll-1-1-2-released/index.html +182 -117
  133. data/site/news/2013/09/06/jekyll-1-2-0-released/index.html +185 -120
  134. data/site/news/2013/09/14/jekyll-1-2-1-released/index.html +183 -118
  135. data/site/news/2013/10/28/jekyll-1-3-0-rc1-released/index.html +180 -115
  136. data/site/news/2013/11/04/jekyll-1-3-0-released/index.html +189 -124
  137. data/site/news/2013/11/26/jekyll-1-3-1-released/index.html +181 -116
  138. data/site/news/2013/12/07/jekyll-1-4-0-released/index.html +181 -116
  139. data/site/news/2013/12/09/jekyll-1-4-1-released/index.html +180 -115
  140. data/site/news/2013/12/16/jekyll-1-4-2-released/index.html +182 -117
  141. data/site/news/2014/01/13/jekyll-1-4-3-released/index.html +181 -116
  142. data/site/news/2014/03/24/jekyll-1-5-0-released/index.html +181 -116
  143. data/site/news/2014/03/27/jekyll-1-5-1-released/index.html +181 -116
  144. data/site/news/2014/05/06/jekyll-turns-2-0-0/index.html +184 -119
  145. data/site/news/2014/05/08/jekyll-2-0-3-released/index.html +180 -115
  146. data/site/news/2014/06/04/jekyll-stickers-1-dollar-stickermule/index.html +181 -116
  147. data/site/news/2014/06/28/jekyll-turns-21-i-mean-2-1-0/index.html +185 -120
  148. data/site/news/2014/07/01/jekyll-2-1-1-released/index.html +182 -117
  149. data/site/news/2014/07/29/jekyll-2-2-0-released/index.html +181 -116
  150. data/site/news/2014/08/10/jekyll-2-3-0-released/index.html +189 -124
  151. data/site/news/2014/09/09/jekyll-2-4-0-released/index.html +187 -122
  152. data/site/news/2014/11/05/jekylls-midlife-crisis-jekyll-turns-2-5-0/index.html +188 -123
  153. data/site/news/2014/11/09/jekyll-2-5-1-released/index.html +180 -115
  154. data/site/news/2014/11/12/jekyll-2-5-2-released/index.html +182 -117
  155. data/site/news/2014/12/17/alfredxing-welcome-to-jekyll-core/index.html +179 -114
  156. data/site/news/2014/12/22/jekyll-2-5-3-released/index.html +180 -115
  157. data/site/news/2015/01/20/jekyll-meet-and-greet/index.html +179 -114
  158. data/site/news/2015/01/24/jekyll-3-0-0-beta1-released/index.html +180 -115
  159. data/site/news/2015/02/26/introducing-jekyll-talk/index.html +180 -115
  160. data/site/news/2015/10/26/jekyll-3-0-released/index.html +185 -120
  161. data/site/news/2015/11/17/jekyll-3-0-1-released/index.html +184 -119
  162. data/site/news/2016/01/20/jekyll-3-0-2-released/index.html +182 -117
  163. data/site/news/2016/01/24/jekyll-3-1-0-released/index.html +186 -121
  164. data/site/news/2016/01/28/jekyll-3-1-1-released/index.html +183 -118
  165. data/site/news/2016/02/08/jekyll-3-0-3-released/index.html +181 -116
  166. data/site/news/2016/02/19/jekyll-3-1-2-released/index.html +182 -117
  167. data/site/news/2016/03/10/making-it-easier-to-contribute-to-jekyll/index.html +179 -114
  168. data/site/news/2016/04/19/jekyll-3-0-4-released/index.html +181 -116
  169. data/site/news/2016/04/19/jekyll-3-1-3-released/index.html +181 -116
  170. data/site/news/2016/04/26/jekyll-3-0-5-released/index.html +180 -115
  171. data/site/news/2016/05/18/jekyll-3-1-4-released/index.html +186 -121
  172. data/site/news/2016/05/18/jekyll-3-1-5-released/index.html +181 -116
  173. data/site/news/2016/05/19/jekyll-3-1-6-released/index.html +181 -116
  174. data/site/news/2016/06/03/update-on-jekyll-s-google-summer-of-code-projects/index.html +179 -114
  175. data/site/news/2016/07/26/jekyll-3-2-0-released/index.html +184 -119
  176. data/site/news/2016/08/02/jekyll-3-2-1-released/index.html +180 -115
  177. data/site/news/2016/08/24/jekyll-admin-initial-release/index.html +179 -114
  178. data/site/news/2016/10/06/jekyll-3-3-is-here/index.html +207 -142
  179. data/site/news/2016/11/14/jekyll-3-3-1-released/index.html +181 -116
  180. data/site/news/2017/01/18/jekyll-3-4-0-released/index.html +183 -118
  181. data/site/news/2017/03/02/jekyll-3-4-1-released/index.html +181 -116
  182. data/site/news/2017/03/09/jekyll-3-4-2-released/index.html +189 -124
  183. data/site/news/2017/03/21/jekyll-3-4-3-released/index.html +190 -125
  184. data/site/news/2017/06/15/jekyll-3-5-0-released/index.html +187 -122
  185. data/site/news/2017/07/17/jekyll-3-5-1-released/index.html +182 -117
  186. data/site/news/2017/08/12/jekyll-3-5-2-released/index.html +185 -120
  187. data/site/news/2017/09/21/jekyll-3-6-0-released/index.html +181 -116
  188. data/site/news/2017/10/19/diversity-open-source/index.html +181 -116
  189. data/site/news/2017/10/21/jekyll-3-6-2-released/index.html +183 -118
  190. data/site/news/2018/01/02/jekyll-3-7-0-released/index.html +184 -119
  191. data/site/news/2018/01/25/jekyll-3-7-2-released/index.html +189 -124
  192. data/site/news/2018/02/19/meet-jekyll-s-new-lead-developer/index.html +180 -115
  193. data/site/news/2018/02/24/jekyll-3-7-3-released/index.html +185 -120
  194. data/site/news/2018/04/19/development-update/index.html +699 -0
  195. data/site/news/2018/04/19/jekyll-3-8-0-released/index.html +715 -0
  196. data/site/news/2018/05/01/jekyll-3-8-1-released/index.html +182 -117
  197. data/site/news/2018/05/19/jekyll-3-8-2-released/index.html +181 -116
  198. data/site/news/2018/06/05/jekyll-3-8-3-released/index.html +183 -118
  199. data/site/news/2018/08/01/jekyll-sponsoring/index.html +748 -0
  200. data/site/news/2018/09/19/security-fixes-for-3-6-3-7-3-8/index.html +692 -0
  201. data/site/news/2018/11/04/jekyll-3-8-5-released/index.html +682 -0
  202. data/site/news/2019/03/18/jekyll-4-0-0-pre-alpha1-released/index.html +710 -0
  203. data/site/news/2019/07/02/jekyll-3-8-6-released/index.html +180 -115
  204. data/site/news/2019/07/20/jekyll-4-0-0-pre-beta1-released/index.html +11 -0
  205. data/site/news/2019/08/04/jekyll-4-0-0-pre-beta1-released/index.html +708 -0
  206. data/site/news/2019/08/20/jekyll-4-0-0-released/index.html +809 -0
  207. data/site/news/index.html +976 -326
  208. data/site/news/releases/index.html +820 -321
  209. data/site/{philosophy.html → philosophy/index.html} +1 -1
  210. data/site/redirects.json +1 -1
  211. data/site/resources/index.html +332 -0
  212. data/site/showcase/index.html +844 -0
  213. data/site/sitemap.xml +256 -81
  214. data/site/team/index.html +63 -77
  215. data/site/tutorials/cache-api/index.html +418 -0
  216. data/site/tutorials/convert-site-to-jekyll/index.html +155 -124
  217. data/site/tutorials/custom-404-page/index.html +76 -43
  218. data/site/tutorials/home/index.html +64 -37
  219. data/site/tutorials/navigation/index.html +186 -103
  220. data/site/tutorials/orderofinterpretation/index.html +80 -53
  221. data/site/tutorials/using-jekyll-with-bundler/index.html +80 -51
  222. data/site/tutorials/video-walkthroughs/index.html +62 -35
  223. metadata +102 -13
  224. data/site/community/index.html +0 -11
  225. data/site/docs/continuous-integration/index.html +0 -681
@@ -0,0 +1,741 @@
1
+ <!DOCTYPE HTML>
2
+ <html lang="en-US">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <meta name="generator" content="Jekyll v4.0.0">
7
+ <link type="application/atom+xml" rel="alternate" href="https://jekyllrb.com/feed.xml" title="Jekyll • Simple, blog-aware, static sites" />
8
+ <link type="application/atom+xml" rel="alternate" href="/feed/release.xml" title="Jekyll releases posts" />
9
+ <link rel="alternate" type="application/atom+xml" title="Recent commits to Jekyll’s master branch" href="https://github.com/jekyll/jekyll/commits/master.atom">
10
+ <link rel="preload" href="/fonts/lato-v14-latin-300.woff2" as="font" type="font/woff2" crossorigin />
11
+ <link rel="preload" href="/fonts/lato-v14-latin-700.woff2" as="font" type="font/woff2" crossorigin />
12
+ <link rel="preload" href="/css/screen.css" as="style">
13
+ <link rel="stylesheet" href="/css/screen.css">
14
+ <link rel="icon" type="image/x-icon" href="/favicon.ico">
15
+ <!-- Begin Jekyll SEO tag v2.6.1 -->
16
+ <title>Your first plugin | Jekyll • Simple, blog-aware, static sites</title>
17
+ <meta name="generator" content="Jekyll v4.0.0" />
18
+ <meta property="og:title" content="Your first plugin" />
19
+ <meta property="og:locale" content="en_US" />
20
+ <meta name="description" content="Plugins allow you to extend Jekyll’s behavior to fit your needs. There are six types of plugins in Jekyll." />
21
+ <meta property="og:description" content="Plugins allow you to extend Jekyll’s behavior to fit your needs. There are six types of plugins in Jekyll." />
22
+ <link rel="canonical" href="https://jekyllrb.com/docs/plugins/your-first-plugin/" />
23
+ <meta property="og:url" content="https://jekyllrb.com/docs/plugins/your-first-plugin/" />
24
+ <meta property="og:site_name" content="Jekyll • Simple, blog-aware, static sites" />
25
+ <meta property="og:image" content="https://jekyllrb.com/img/jekyll-og.png" />
26
+ <meta property="og:type" content="article" />
27
+ <meta property="article:published_time" content="2019-09-11T07:30:27-07:00" />
28
+ <meta name="twitter:card" content="summary_large_image" />
29
+ <meta property="twitter:image" content="https://jekyllrb.com/img/jekyll-og.png" />
30
+ <meta property="twitter:title" content="Your first plugin" />
31
+ <meta name="twitter:site" content="@jekyllrb" />
32
+ <meta name="google-site-verification" content="onQcXpAvtHBrUI5LlroHNE_FP0b2qvFyPq7VZw36iEY" />
33
+ <script type="application/ld+json">
34
+ {"description":"Plugins allow you to extend Jekyll’s behavior to fit your needs. There are six types of plugins in Jekyll.","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://jekyllrb.com/docs/plugins/your-first-plugin/"},"headline":"Your first plugin","dateModified":"2019-09-11T07:30:27-07:00","url":"https://jekyllrb.com/docs/plugins/your-first-plugin/","datePublished":"2019-09-11T07:30:27-07:00","image":"https://jekyllrb.com/img/jekyll-og.png","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://jekyllrb.com/img/logo-2x.png"}},"@context":"https://schema.org"}</script>
35
+ <!-- End Jekyll SEO tag -->
36
+
37
+ <!--[if lt IE 9]>
38
+ <script src="/js/html5shiv.min.js"></script>
39
+ <script src="/js/respond.min.js"></script>
40
+ <![endif]-->
41
+ </head>
42
+
43
+
44
+ <body class="wrap">
45
+ <header>
46
+ <div class="flexbox">
47
+ <div class="center-on-mobiles">
48
+ <h1>
49
+ <a href="/" class="logo">
50
+ <span class="sr-only">Jekyll</span>
51
+ <img src="/img/logo-2x.png" width="140" height="65" alt="Jekyll Logo">
52
+ </a>
53
+ </h1>
54
+ </div>
55
+ <nav class="main-nav hide-on-mobiles">
56
+ <ul>
57
+
58
+ <li>
59
+ <a href="/">Home</a>
60
+ </li>
61
+
62
+ <li class="current">
63
+ <a href="/docs/">Docs</a>
64
+ </li>
65
+
66
+ <li>
67
+ <a href="/resources/">Resources</a>
68
+ </li>
69
+
70
+ <li>
71
+ <a href="/showcase/">Showcase</a>
72
+ </li>
73
+
74
+ <li>
75
+ <a href="/news/">News</a>
76
+ </li>
77
+
78
+ </ul>
79
+
80
+ </nav>
81
+ <div class="search hide-on-mobiles">
82
+ <input type="text" id="docsearch-input" placeholder="Search the docs…">
83
+
84
+ </div>
85
+ <div class="meta hide-on-mobiles">
86
+ <ul>
87
+ <li>
88
+ <a href="https://github.com/jekyll/jekyll/releases/tag/v4.0.0">v4.0.0</a>
89
+ </li>
90
+ <li>
91
+ <a href="https://github.com/jekyll/jekyll">GitHub</a>
92
+ </li>
93
+ </ul>
94
+ </div>
95
+ </div>
96
+ <nav class="mobile-nav show-on-mobiles">
97
+ <ul>
98
+
99
+ <li>
100
+ <a href="/">Home</a>
101
+ </li>
102
+
103
+ <li class="current">
104
+ <a href="/docs/">Docs</a>
105
+ </li>
106
+
107
+ <li>
108
+ <a href="/resources/">Resources</a>
109
+ </li>
110
+
111
+
112
+ <li>
113
+ <a href="/news/">News</a>
114
+ </li>
115
+
116
+ <li>
117
+ <a href="https://github.com/jekyll/jekyll">GitHub</a>
118
+ </li>
119
+ </ul>
120
+
121
+ </nav>
122
+ </header>
123
+
124
+
125
+ <section class="docs">
126
+ <div class="grid">
127
+
128
+ <div class="docs-nav-mobile unit whole show-on-mobiles">
129
+ <select onchange="if (this.value) window.location.href=this.value">
130
+ <option value="">Navigate the docs…</option>
131
+
132
+ <optgroup label="Getting Started">
133
+
134
+
135
+ <option value="/docs/">
136
+ Quickstart
137
+ </option>
138
+
139
+
140
+ <option value="/docs/ruby-101/">
141
+ Ruby 101
142
+ </option>
143
+
144
+
145
+ <option value="/docs/installation/">
146
+ Installation
147
+ </option>
148
+
149
+
150
+ <option value="/docs/community/">
151
+ Community
152
+ </option>
153
+
154
+
155
+ <option value="/docs/step-by-step/01-setup/">
156
+ Step by Step Tutorial
157
+ </option>
158
+
159
+ </optgroup>
160
+
161
+ <optgroup label="Build">
162
+
163
+
164
+ <option value="/docs/usage/">
165
+ Command Line Usage
166
+ </option>
167
+
168
+
169
+ <option value="/docs/configuration/">
170
+ Configuration
171
+ </option>
172
+
173
+ </optgroup>
174
+
175
+ <optgroup label="Content">
176
+
177
+
178
+ <option value="/docs/pages/">
179
+ Pages
180
+ </option>
181
+
182
+
183
+ <option value="/docs/posts/">
184
+ Posts
185
+ </option>
186
+
187
+
188
+ <option value="/docs/front-matter/">
189
+ Front Matter
190
+ </option>
191
+
192
+
193
+ <option value="/docs/collections/">
194
+ Collections
195
+ </option>
196
+
197
+
198
+ <option value="/docs/datafiles/">
199
+ Data Files
200
+ </option>
201
+
202
+
203
+ <option value="/docs/assets/">
204
+ Assets
205
+ </option>
206
+
207
+
208
+ <option value="/docs/static-files/">
209
+ Static Files
210
+ </option>
211
+
212
+ </optgroup>
213
+
214
+ <optgroup label="Site Structure">
215
+
216
+
217
+ <option value="/docs/structure/">
218
+ Directory Structure
219
+ </option>
220
+
221
+
222
+ <option value="/docs/liquid/">
223
+ Liquid
224
+ </option>
225
+
226
+
227
+ <option value="/docs/variables/">
228
+ Variables
229
+ </option>
230
+
231
+
232
+ <option value="/docs/includes/">
233
+ Includes
234
+ </option>
235
+
236
+
237
+ <option value="/docs/layouts/">
238
+ Layouts
239
+ </option>
240
+
241
+
242
+ <option value="/docs/permalinks/">
243
+ Permalinks
244
+ </option>
245
+
246
+
247
+ <option value="/docs/themes/">
248
+ Themes
249
+ </option>
250
+
251
+
252
+ <option value="/docs/pagination/">
253
+ Pagination
254
+ </option>
255
+
256
+ </optgroup>
257
+
258
+ <optgroup label="Guides">
259
+
260
+
261
+ <option value="/docs/plugins/">
262
+ Plugins
263
+ </option>
264
+
265
+
266
+ <option value="/docs/migrations/">
267
+ Blog Migrations
268
+ </option>
269
+
270
+
271
+ <option value="/docs/upgrading/">
272
+ Upgrading
273
+ </option>
274
+
275
+
276
+ <option value="/docs/deployment/">
277
+ Deployment
278
+ </option>
279
+
280
+ </optgroup>
281
+
282
+ </select>
283
+ </div>
284
+
285
+
286
+ <div class="unit four-fifths">
287
+ <article>
288
+ <div class="improve right hide-on-mobiles">
289
+ <a data-proofer-ignore href="https://github.com/jekyll/jekyll/edit/master/docs/_docs/plugins/your-first-plugin.md"><i class="fa fa-pencil"></i> &nbsp;Improve this page</a>
290
+ </div>
291
+ <h1>Your first plugin</h1>
292
+ <p>Plugins allow you to extend Jekyll’s behavior to fit your needs. There are six
293
+ types of plugins in Jekyll.</p>
294
+
295
+ <h2 id="generators">Generators</h2>
296
+
297
+ <p><a href="/docs/plugins/generators/">Generators</a> create content on your site.
298
+ For example:</p>
299
+
300
+ <ul>
301
+ <li><a href="https://github.com/jekyll/jekyll-feed">jekyll-feed</a> creates an Atom feed of
302
+ blog posts.</li>
303
+ <li><a href="https://github.com/jekyll/jekyll-archives">jekyll-archives</a> creates archive
304
+ pages for blog categories and tags.</li>
305
+ <li><a href="https://github.com/jekyll/jekyll-sitemap">jekyll-sitemap</a> creates a sitemap.</li>
306
+ </ul>
307
+
308
+ <h2 id="converters">Converters</h2>
309
+
310
+ <p><a href="/docs/plugins/converters/">Converters</a> change a markup language into another
311
+ format. For example:</p>
312
+
313
+ <ul>
314
+ <li><a href="https://github.com/jekyll/jekyll-textile-converter">jekyll-textile-converter</a>
315
+ converts textile to HTML.</li>
316
+ <li><a href="https://github.com/jekyll/jekyll-coffeescript">jekyll-coffeescript</a> converts
317
+ Coffeescript to JavaScript.</li>
318
+ <li><a href="https://github.com/jekyll/jekyll-opal">jekyll-opal</a> converts Ruby to
319
+ JavaScript.</li>
320
+ </ul>
321
+
322
+ <h2 id="commands">Commands</h2>
323
+
324
+ <p><a href="/docs/plugins/commands/">Commands</a> extend the <code class="highlighter-rouge">jekyll</code> executable with
325
+ subcommands. For example:</p>
326
+
327
+ <ul>
328
+ <li><a href="https://github.com/jekyll/jekyll-compose">jekyll-compose</a> adds subcommands
329
+ for creating a post, page or draft.</li>
330
+ </ul>
331
+
332
+ <h2 id="tags">Tags</h2>
333
+
334
+ <p><a href="/docs/plugins/tags/">Tags</a> create custom Liquid tags. For example:</p>
335
+
336
+ <ul>
337
+ <li><a href="https://github.com/dommmel/jekyll-youtube">jekyll-youtube</a> embeds a YouTube
338
+ video.</li>
339
+ <li><a href="https://github.com/samrayner/jekyll-asset-path-plugin">jekyll-asset-path-plugin</a>
340
+ outputs a relative URL for assets.</li>
341
+ <li><a href="https://github.com/sectore/jekyll-swfobject">jekyll-swfobject</a> embeds a SWF
342
+ object.</li>
343
+ </ul>
344
+
345
+ <h2 id="filters">Filters</h2>
346
+
347
+ <p><a href="/docs/plugins/filters/">Filters</a> create custom Liquid filters. For example:</p>
348
+
349
+ <ul>
350
+ <li><a href="https://github.com/markets/jekyll-timeago">jekyll-time-ago</a> - The distance
351
+ between two dates in words.</li>
352
+ <li><a href="https://github.com/toshimaru/jekyll-toc">jekyll-toc</a> - Generates a table of
353
+ content.</li>
354
+ <li><a href="https://github.com/vwochnik/jekyll-email-protect">jekyll-email-protect</a> -
355
+ Obfuscates emails to protect them from spam bots.</li>
356
+ </ul>
357
+
358
+ <h2 id="hooks">Hooks</h2>
359
+
360
+ <p><a href="/docs/plugins/hooks/">Hooks</a> give fine-grained control to extend the build
361
+ process.</p>
362
+
363
+ <h2 id="flags">Flags</h2>
364
+
365
+ <p>There are two flags to be aware of when writing a plugin:</p>
366
+
367
+ <div class="mobile-side-scroller">
368
+ <table>
369
+ <thead>
370
+ <tr>
371
+ <th>Flag</th>
372
+ <th>Description</th>
373
+ </tr>
374
+ </thead>
375
+ <tbody>
376
+ <tr>
377
+ <td>
378
+ <p><code>safe</code></p>
379
+ </td>
380
+ <td>
381
+ <p>
382
+ A boolean flag that informs Jekyll whether this plugin may be safely
383
+ executed in an environment where arbitrary code execution is not
384
+ allowed. This is used by GitHub Pages to determine which core plugins
385
+ may be used, and which are unsafe to run. If your plugin does not
386
+ allow for arbitrary code execution, set this to <code>true</code>.
387
+ GitHub Pages still won’t load your plugin, but if you submit it for
388
+ inclusion in core, it’s best for this to be correct!
389
+ </p>
390
+ </td>
391
+ </tr>
392
+ <tr>
393
+ <td>
394
+ <p><code>priority</code></p>
395
+ </td>
396
+ <td>
397
+ <p>
398
+ This flag determines what order the plugin is loaded in. Valid values
399
+ are: <code>:lowest</code>, <code>:low</code>, <code>:normal</code>,
400
+ <code>:high</code>, and <code>:highest</code>. Highest priority
401
+ matches are applied first, lowest priority are applied last.
402
+ </p>
403
+ </td>
404
+ </tr>
405
+ </tbody>
406
+ </table>
407
+ </div>
408
+
409
+ <p>To use one of the example plugins above as an illustration, here is how you’d
410
+ specify these two flags:</p>
411
+
412
+ <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">module</span> <span class="nn">Jekyll</span>
413
+ <span class="k">class</span> <span class="nc">UpcaseConverter</span> <span class="o">&lt;</span> <span class="no">Converter</span>
414
+ <span class="n">safe</span> <span class="kp">true</span>
415
+ <span class="n">priority</span> <span class="ss">:low</span>
416
+ <span class="o">...</span>
417
+ <span class="k">end</span>
418
+ <span class="k">end</span>
419
+ </code></pre></div></div>
420
+
421
+ <h2 id="best-practices">Best Practices</h2>
422
+
423
+ <p>The guides help you with the specifics of creating plugins. We also have some
424
+ recommended best practices to help structure your plugin.</p>
425
+
426
+ <p>We recommend using a <a href="/docs/ruby-101/#gems">gem</a> for your plugin. This will
427
+ help you manage dependencies, keep separation from your site source code and
428
+ allow you to share functionality across multiple projects. For tips on creating
429
+ a gem take a look a the
430
+ <a href="https://guides.rubygems.org/make-your-own-gem/">Ruby gems guide</a> or look
431
+ through the source code of an existing plugin such as
432
+ <a href="https://github.com/jekyll/jekyll-feed">jekyll-feed</a>.</p>
433
+
434
+ </article>
435
+ </div>
436
+
437
+ <div class="unit one-fifth hide-on-mobiles">
438
+ <aside>
439
+
440
+ <h4>Getting Started</h4>
441
+ <ul>
442
+
443
+
444
+ <li>
445
+ <a href="/docs/">
446
+ Quickstart
447
+ </a>
448
+ </li>
449
+
450
+
451
+ <li>
452
+ <a href="/docs/ruby-101/">
453
+ Ruby 101
454
+ </a>
455
+ </li>
456
+
457
+
458
+ <li>
459
+ <a href="/docs/installation/">
460
+ Installation
461
+ </a>
462
+ </li>
463
+
464
+
465
+ <li>
466
+ <a href="/docs/community/">
467
+ Community
468
+ </a>
469
+ </li>
470
+
471
+
472
+ <li>
473
+ <a href="/docs/step-by-step/01-setup/">
474
+ Step by Step Tutorial
475
+ </a>
476
+ </li>
477
+
478
+ </ul>
479
+
480
+ <h4>Build</h4>
481
+ <ul>
482
+
483
+
484
+ <li>
485
+ <a href="/docs/usage/">
486
+ Command Line Usage
487
+ </a>
488
+ </li>
489
+
490
+
491
+ <li>
492
+ <a href="/docs/configuration/">
493
+ Configuration
494
+ </a>
495
+ </li>
496
+
497
+ </ul>
498
+
499
+ <h4>Content</h4>
500
+ <ul>
501
+
502
+
503
+ <li>
504
+ <a href="/docs/pages/">
505
+ Pages
506
+ </a>
507
+ </li>
508
+
509
+
510
+ <li>
511
+ <a href="/docs/posts/">
512
+ Posts
513
+ </a>
514
+ </li>
515
+
516
+
517
+ <li>
518
+ <a href="/docs/front-matter/">
519
+ Front Matter
520
+ </a>
521
+ </li>
522
+
523
+
524
+ <li>
525
+ <a href="/docs/collections/">
526
+ Collections
527
+ </a>
528
+ </li>
529
+
530
+
531
+ <li>
532
+ <a href="/docs/datafiles/">
533
+ Data Files
534
+ </a>
535
+ </li>
536
+
537
+
538
+ <li>
539
+ <a href="/docs/assets/">
540
+ Assets
541
+ </a>
542
+ </li>
543
+
544
+
545
+ <li>
546
+ <a href="/docs/static-files/">
547
+ Static Files
548
+ </a>
549
+ </li>
550
+
551
+ </ul>
552
+
553
+ <h4>Site Structure</h4>
554
+ <ul>
555
+
556
+
557
+ <li>
558
+ <a href="/docs/structure/">
559
+ Directory Structure
560
+ </a>
561
+ </li>
562
+
563
+
564
+ <li>
565
+ <a href="/docs/liquid/">
566
+ Liquid
567
+ </a>
568
+ </li>
569
+
570
+
571
+ <li>
572
+ <a href="/docs/variables/">
573
+ Variables
574
+ </a>
575
+ </li>
576
+
577
+
578
+ <li>
579
+ <a href="/docs/includes/">
580
+ Includes
581
+ </a>
582
+ </li>
583
+
584
+
585
+ <li>
586
+ <a href="/docs/layouts/">
587
+ Layouts
588
+ </a>
589
+ </li>
590
+
591
+
592
+ <li>
593
+ <a href="/docs/permalinks/">
594
+ Permalinks
595
+ </a>
596
+ </li>
597
+
598
+
599
+ <li>
600
+ <a href="/docs/themes/">
601
+ Themes
602
+ </a>
603
+ </li>
604
+
605
+
606
+ <li>
607
+ <a href="/docs/pagination/">
608
+ Pagination
609
+ </a>
610
+ </li>
611
+
612
+ </ul>
613
+
614
+ <h4>Guides</h4>
615
+ <ul>
616
+
617
+
618
+ <li>
619
+ <a href="/docs/plugins/">
620
+ Plugins
621
+ </a>
622
+ </li>
623
+
624
+
625
+ <li>
626
+ <a href="/docs/migrations/">
627
+ Blog Migrations
628
+ </a>
629
+ </li>
630
+
631
+
632
+ <li>
633
+ <a href="/docs/upgrading/">
634
+ Upgrading
635
+ </a>
636
+ </li>
637
+
638
+
639
+ <li>
640
+ <a href="/docs/deployment/">
641
+ Deployment
642
+ </a>
643
+ </li>
644
+
645
+ </ul>
646
+
647
+ </aside>
648
+ </div>
649
+
650
+
651
+ <div class="clear"></div>
652
+
653
+ </div>
654
+ </section>
655
+
656
+
657
+ <footer>
658
+ <div class="grid">
659
+ <div class="unit one-third center-on-mobiles">
660
+ <p>Jekyll is lovingly maintained by the <a href="/team/">core team</a> of volunteers. </p>
661
+ <p>The contents of this website are <br />&copy;&nbsp;2019 under the terms of the <a href="https://github.com/jekyll/jekyll/blob/master/LICENSE">MIT&nbsp;License</a>.</p>
662
+ </div>
663
+ <div class="unit two-thirds align-right center-on-mobiles">
664
+ <p>
665
+ Proudly hosted by
666
+ <a href="https://github.com">
667
+ <img src="/img/footer-logo.png" width="100" height="30" alt="GitHub • Social coding">
668
+ </a>
669
+ </p>
670
+ </div>
671
+ <div class="unit two-thirds align-right center-on-mobiles">
672
+ <p>
673
+ Jekyll is funded thanks to its
674
+ <a href="https://github.com/jekyll/jekyll#sponsors">
675
+ sponsors!
676
+ </a>
677
+ </p>
678
+ </div>
679
+ </div>
680
+ </footer>
681
+
682
+ <script>
683
+ var anchorForId = function (id) {
684
+ var anchor = document.createElement("a");
685
+ anchor.className = "header-link";
686
+ anchor.href = "#" + id;
687
+ anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
688
+ anchor.title = "Permalink";
689
+ return anchor;
690
+ };
691
+
692
+ var linkifyAnchors = function (level, containingElement) {
693
+ var headers = containingElement.getElementsByTagName("h" + level);
694
+ for (var h = 0; h < headers.length; h++) {
695
+ var header = headers[h];
696
+
697
+ if (typeof header.id !== "undefined" && header.id !== "") {
698
+ header.appendChild(anchorForId(header.id));
699
+ }
700
+ }
701
+ };
702
+
703
+ document.onreadystatechange = function () {
704
+ if (this.readyState === "complete") {
705
+ var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
706
+ if (!contentBlock) {
707
+ return;
708
+ }
709
+ for (var level = 1; level <= 6; level++) {
710
+ linkifyAnchors(level, contentBlock);
711
+ }
712
+ }
713
+ };
714
+ </script>
715
+
716
+
717
+ <!-- Google Analytics (https://www.google.com/analytics) -->
718
+ <script>
719
+ !function(j,e,k,y,l,L){j.GoogleAnalyticsObject=y,j[y]||(j[y]=function(){
720
+ (j[y].q=j[y].q||[]).push(arguments)}),j[y].l=+new Date,l=e.createElement(k),
721
+ L=e.getElementsByTagName(k)[0],l.src='https://www.google-analytics.com/analytics.js',
722
+ L.parentNode.insertBefore(l,L)}(window,document,'script','ga');
723
+
724
+ ga('create', 'UA-50755011-1', 'jekyllrb.com');
725
+ ga('send', 'pageview');
726
+
727
+ </script>
728
+
729
+
730
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
731
+ <script type="text/javascript"> docsearch({
732
+ apiKey: '50fe39c839958dfad797000f33e2ec17',
733
+ indexName: 'jekyllrb',
734
+ inputSelector: '#docsearch-input',
735
+ enhancedSearchInput: true,
736
+ debug: false // Set debug to true if you want to inspect the dropdown
737
+ });
738
+ </script>
739
+
740
+ </body>
741
+ </html>