jekyll-theme-bean 1.0.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8aacce50b854381ca8a6e9d138e949778c36c9a878ae84c782192712563d135a
4
+ data.tar.gz: 387cefe7f9cebe4a13e1b306d7b2ddf9bdb7ba651afafa02f06a152ca00b2f5d
5
+ SHA512:
6
+ metadata.gz: 777ed1b83e801554ed41d6f9285e45da39baf6b853a9c739d09e3de598a5de588a38f3c61118dca5f7dc09156992c8e6faddcde29fec45198e9a0217aaa5e897
7
+ data.tar.gz: 179f18af7376c3063fd153db45e5adc26cdbea81d07eef013de49eab2aa2c00af352fe432722688dfc8c1371192124e57d9d312bfb60bb553b3cfb8b27134503
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2024 Arthur Freitas
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,262 @@
1
+ # Bean
2
+
3
+ Bean, named after [the best Spore creature](https://spore.fandom.com/wiki/Bean) out there, is a Jekyll theme made to use in both [Esporo](https://esporo.net) and [Simulando](https://simulando.net) fansites. It can be used freely by anyone.
4
+
5
+ Bean is colorful and customizable. You can change how it looks using CSS variables, you can add widgets to the sidebar or scripts easily.
6
+
7
+ ## Features
8
+
9
+ - Make it yours with custom colors, typography and backgrounds.
10
+ - Automatic light and dark themes!
11
+ - Custom sidebar widgets and scripts with includes.
12
+ - Support for [pagination](https://github.com/jekyll/jekyll-paginate), [sitemap](https://github.com/jekyll/jekyll-sitemap), [SEO tags](https://github.com/jekyll/jekyll-seo-tag) and [archives](https://github.com/jekyll/jekyll-archives) out of the box.
13
+ - Translatable using [theme options](#configuration).
14
+
15
+ ## Installation
16
+
17
+ ### As a remote theme
18
+
19
+ You can use this theme with the [`jekyll-remote-theme`](https://github.com/benbalter/jekyll-remote-theme) plugin.
20
+
21
+ On your site repo, run:
22
+
23
+ ```bash
24
+ $ bundle add jekyll-remote-theme
25
+ ```
26
+
27
+ And add the following to your `_config.yml`:
28
+
29
+ ```yaml
30
+ remote_theme: esporo/bean@latest
31
+
32
+ plugins:
33
+ - jekyll-remote-theme
34
+ ```
35
+
36
+ ### As a gem-theme
37
+
38
+ You can also use this theme as a gem-based dependency to your Jekyll site.
39
+
40
+ Add this line to your Jekyll site's `Gemfile`:
41
+
42
+ ```ruby
43
+ gem "bean"
44
+ ```
45
+
46
+ And add this line to your Jekyll site's `_config.yml`:
47
+
48
+ ```yaml
49
+ theme: bean
50
+ ```
51
+
52
+ And then execute:
53
+
54
+ $ bundle
55
+
56
+ Or install it yourself as:
57
+
58
+ $ gem install bean
59
+
60
+ ## Usage
61
+
62
+ Your theme can be configured using your `_config.yml`. You can also customize the theme, sidebar widgets and site-wide scripts by adding them to your Jekyll setup.
63
+
64
+ ### Configuration
65
+
66
+ This is an example of a `_config.yml` with all the options available to Bean.
67
+
68
+ ```yaml
69
+ title: Your awesome title
70
+ description: >-
71
+ Your blog description. It will be shown at the bottom of your website.
72
+ tagline: A short-and-sweet tagline.
73
+
74
+ lang: en
75
+ logo: /path/to/your/logo.svg
76
+
77
+ # Build settings
78
+ permalink: "/:year/:month/:day/:title.html"
79
+ slug_mode: latin
80
+
81
+ # Theme Settings
82
+ bean:
83
+ show_excerpts: true # this can also be set per-loop page.
84
+ copyright_notice: >-
85
+ Site built using [Bean](https://github.com/esporo/bean).
86
+ date_formats:
87
+ day: "%v"
88
+ month: "%B, %Y"
89
+ year: "%Y"
90
+ translations:
91
+ jump_to_navigation: "Go to navigation"
92
+ jump_to_content: "Go to content"
93
+ archive_date_title: "Posts from %s" # don't forget `%s`, it will be replaced by the date
94
+ archive_tag_title: "Posts with the tag “%s”" # don't forget `%s`, it will be replaced by the tag name.
95
+ archive_category_title: "Posts filed under “%s”" # don't forget `%s`, it will be replaced by the category name.
96
+ post_tagged_with: "Tagged with:"
97
+ blog_pagination_title: "Blog Pagination"
98
+ blog_pagination_next_page: "Older posts"
99
+ blog_pagination_prev_page: "Newer posts"
100
+
101
+ # Menus
102
+ main_menu:
103
+ title: Navigate
104
+ items:
105
+ - label: Home
106
+ path: /
107
+ - label: About
108
+ path: /about/
109
+ - label: Bugs?
110
+ path: https://github.com/esporo/bean/issues
111
+ - label: Docs
112
+ path: hhttps://github.com/esporo/bean?tab=readme-ov-file#readme
113
+
114
+ footer_menu:
115
+ title: Socials
116
+ items:
117
+ - label: Discord
118
+ path: https://discord.gg/
119
+ - label: YouTube
120
+ path: https://youtube.com/
121
+ - label: Facebook
122
+ path: https://www.facebook.com/
123
+ ```
124
+
125
+ #### Plugins
126
+
127
+ Bean adds support for pagination, archives, feeds and SEO tags, so you can configure the settings following these plugins docs:
128
+
129
+ * [jekyll-paginate](https://jekyllrb.com/docs/pagination/)
130
+ * [jekyll-archives](https://github.com/jekyll/jekyll-archives/blob/master/docs/configuration.md)
131
+ * [jekyll-feed](https://github.com/jekyll/jekyll-feed?tab=readme-ov-file#usage)
132
+ * [jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md)
133
+ * [jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap)
134
+
135
+ #### Style Options
136
+
137
+ You can add a `theme.css` in your `/assets/css` directory to customize the style options of your site.
138
+
139
+ Just copy our [`theme.css`](https://github.com/esporo/bean/blob/main/assets/css/theme.css) and uncomment the lines of the variables you want to change, and you're good to go. Please note that background and color variables have different values for light and dark color schemes.
140
+
141
+ `theme.css` is also a good place to add custom style rules as well, since it's the last stylesheet called by your theme. It will overwrite any rules set by default.
142
+
143
+ You can also replace the fonts used in your theme by placing them in your `/assets/fonts` directory and declaring them on `/assets/fonts/fonts.css`.
144
+
145
+ ### Menus
146
+
147
+ Bean has two menus available. One at the header and other at the bottom of your site. Both are set up in your `_config.yml`:
148
+
149
+ ```yaml
150
+ main_menu:
151
+ title: Navigate
152
+ items:
153
+ - label: Home
154
+ path: /
155
+ - label: About
156
+ path: /about/
157
+ - label: Bugs?
158
+ path: https://github.com/esporo/bean/issues
159
+ - label: Docs
160
+ path: hhttps://github.com/esporo/bean?tab=readme-ov-file#readme
161
+
162
+ footer_menu:
163
+ title: Socials
164
+ items:
165
+ - label: Discord
166
+ path: https://discord.gg/
167
+ - label: YouTube
168
+ path: https://youtube.com/
169
+ - label: GitHub
170
+ path: https://github.com/
171
+ ```
172
+
173
+ A menu title is used by screen reader software. It's strongly recommended that you add one to your menus.
174
+
175
+ ### Includes
176
+
177
+ You can customize parts of the theme by adding includes to your repo.
178
+
179
+ There are three available includes for you to customize:
180
+
181
+ * `_includes/below-post.html`: will add content to your post page after the post structure. Useful for comments or notices.
182
+ * `_includes/widgets.html`: will add widgets to your blog sidebar. See [Sidebar](#sidebar) below.
183
+ * `_includes/scripts.html` will add add site-wide scripts like Disqus and analytics stuff at the end of the `<body>` tag.
184
+
185
+ ### Sidebar
186
+
187
+ Your blog sidebar can be customized by adding widgets to your `_includes/widgets.html`. The theme provides a default layout for widgets.
188
+
189
+ You can do something like this:
190
+
191
+ ```html
192
+ <!-- Your `_include/widgets.html` -->
193
+
194
+ {% assign widget_title = "My beautiful widget" %}
195
+
196
+ {% capture widget_content %}
197
+ <p>This will be shown in my website sidebar! It's useful for a blogroll, useful links, etc.</p>
198
+ {% endcapture %}
199
+
200
+ {% include blog/widget.html title=widget_title content=widget_content %}
201
+ ```
202
+
203
+ You can as many widgets as you want, just repeat the process above.
204
+
205
+ The sidebar can be hidden in a page with the `page` layout. Just add it to your front-matter:
206
+
207
+ ```yml
208
+ ---
209
+ layout: page
210
+ title: About
211
+ hide_sidebar: true
212
+ ---
213
+ ```
214
+
215
+ ### Post authors
216
+
217
+ Bean tries to bring up post author information from the following sources:
218
+
219
+ 1. An `author` object in the front-matter of your post:
220
+ ```yaml
221
+ author:
222
+ name: Will Wright
223
+ url: https://example.com
224
+ ```
225
+ 2. Your `_data/authors.yml`.
226
+ It may look like this:
227
+
228
+ ```yaml
229
+ will:
230
+ name: Will Wright
231
+ url: https://example.com
232
+ ```
233
+ 3. A `site.authors` or `site.author` object in your `_config.yml`.
234
+ Something like this will do:
235
+
236
+ ```yaml
237
+ authors:
238
+ will:
239
+ name: Will Wright
240
+ url: https://example.com
241
+ lucy:
242
+ name: Lucy Bradshaw
243
+ url: https://example.net
244
+
245
+ # or
246
+
247
+ author:
248
+ name: Will Wright
249
+ url: "https://willwright.blog"
250
+ ```
251
+
252
+ If none of these sources are available, Bean will just show the value of your `post.author` as it is.
253
+
254
+ ## Contributing
255
+
256
+ Bug reports and pull requests are welcome on GitHub at https://github.com/esporo/bean.
257
+
258
+ Be aware that, as this theme is intended to be used by my own fansite, not every suggestion may be applied. You are free to fork it and change it to fit your needs!
259
+
260
+ ## License
261
+
262
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/_config.yml ADDED
@@ -0,0 +1,78 @@
1
+ title: Bean
2
+ tagline: A modern, fun theme for Jekyll.
3
+ description: >-
4
+ Bean is a fun, colorful, theme for Jekyll.
5
+ It's made for @esporo, but you can use it as well.
6
+
7
+ # Build settings
8
+ permalink: "/:year/:month/:day/:title.html"
9
+ slug_mode: latin
10
+
11
+ # Theme Settings
12
+ bean:
13
+ show_excerpts: true
14
+ copyright_notice: >-
15
+ Site built using [Bean](https://github.com/esporo/bean)
16
+ date_formats:
17
+ day: "%v"
18
+ month: "%B, %Y"
19
+ year: "%Y"
20
+ translations:
21
+ jump_to_navigation: "Go to navigation"
22
+ jump_to_content: "Go to content"
23
+ archive_date_title: "Posts from %s" # don't forget `%s`, it will be replaced by the date
24
+ archive_tag_title: "Posts with the tag “%s”" # don't forget `%s`, it will be replaced by the tag name.
25
+ archive_category_title: "Posts filed under “%s”" # don't forget `%s`, it will be replaced by the category name.
26
+ post_tagged_with: "Tagged with:"
27
+ blog_pagination_title: "Blog Pagination"
28
+ blog_pagination_next_page: "Older posts"
29
+ blog_pagination_prev_page: "Newer posts"
30
+
31
+ # logo: /assets/images/logo.png
32
+
33
+ main_menu:
34
+ title: Navigate
35
+ items:
36
+ - label: Home
37
+ path: /
38
+ - label: About
39
+ path: /about/
40
+ - label: Bugs?
41
+ path: https://github.com/esporo/bean/issues
42
+ - label: Docs
43
+ path: hhttps://github.com/esporo/bean?tab=readme-ov-file#readme
44
+
45
+ footer_menu:
46
+ title: Socials
47
+ items:
48
+ - label: Discord
49
+ path: https://discord.gg/
50
+ - label: YouTube
51
+ path: https://youtube.com/
52
+ - label: Facebook
53
+ path: https://www.facebook.com/
54
+
55
+ # Plugin settings
56
+ plugins:
57
+ - jekyll-feed
58
+ - jekyll-json-feed
59
+ - jekyll-paginate
60
+ - jekyll-sitemap
61
+ - jekyll-seo-tag
62
+ - jekyll-archives
63
+
64
+ # Plugin: jekyll-paginate
65
+ paginate: 12
66
+ paginate_path: "/page/:num/"
67
+
68
+ # Plugin: jekyll-archives
69
+ jekyll-archives:
70
+ enabled:
71
+ - year
72
+ - month
73
+ - tags
74
+ layout: blog
75
+ permalinks:
76
+ year: "/:year/"
77
+ month: "/:year/:month/"
78
+ tag: "/tags/:name.html"
data/_data/authors.yml ADDED
@@ -0,0 +1,3 @@
1
+ arthur:
2
+ name: Arthur
3
+ url: https://arthr.me
@@ -0,0 +1,9 @@
1
+ - title: Arthur Freitas
2
+ url: https://arthr.me/
3
+ description: The author of this theme.
4
+ - title: Repository
5
+ url: https://github.com/esporo/bean/
6
+ description: If you find any bugs, file them here.
7
+ - title: RubyGems
8
+ url: https://rubygems.org/gem/jekyll-theme-bean/
9
+ description: Bean on RubyGems registry.
@@ -0,0 +1,4 @@
1
+ <!--
2
+ You can replace this file in your website with comments,
3
+ call-to-actions or whatever you want to add below your post.
4
+ -->
@@ -0,0 +1,12 @@
1
+ <h1 class="archive-title">
2
+ {%- if include.date -%}
3
+ {%- assign archive_date = include.date | date: site.bean.date_formats[include.type] -%}
4
+ {{ site.bean.translations.archive_date_title | replace: "%s", archive_date }}
5
+ {% else %}
6
+ {%- if include.type == "tag" -%}
7
+ {{ site.bean.translations.archive_tag_title | replace: "%s", include.title }}
8
+ {%- else -%}
9
+ {{ site.bean.translations.archive_category_title | replace: "%s", include.title }}
10
+ {%- endif -%}
11
+ {% endif %}
12
+ </h1>
@@ -0,0 +1,84 @@
1
+ <article class="post">
2
+ <header class="post-header">
3
+ <div class="post-meta">
4
+ <a class="post-permalink" href="{{- include.post.permalink | absolute_path -}}" rel="bookmark">
5
+ <time class="post-date" datetime="{{- include.post.date | date_to_xmlschema -}}">
6
+ {{ include.post.date | date: site.bean.date_formats.day }}
7
+ </time>
8
+ </a>
9
+
10
+ {% if include.post.author -%}
11
+ {%- assign author = include.post.author -%}
12
+
13
+ {%- if site.data.authors -%}
14
+ {%- assign author = site.data.authors[include.post.author] -%}
15
+ {%- elsif site.authors -%}
16
+ {%- assign author = site.authors[include.post.author] -%}
17
+ {%- endif -%}
18
+ {%- elsif site.author -%}
19
+ {% assign author = site.author %}
20
+ {%- endif -%}
21
+
22
+ {% if author -%}
23
+ <a class="post-author" rel="author" href="{{- author.url | default: site.url -}}">
24
+ {{ author.name | default: author }}
25
+ </a>
26
+ {%- endif %}
27
+ </div>
28
+
29
+ {% if page.layout == "post" -%}
30
+ {% if include.post.title and include.post.title != "" %}
31
+ <h1 class="post-title">
32
+ {{ include.post.title }}
33
+ </h1>
34
+ {%- endif %}
35
+ {%- else -%}
36
+ {% if include.post.title and include.post.title != "" -%}
37
+ <h2 class="post-title">
38
+ <a href="{{- include.post.url | relative_path -}}" rel="bookmark">
39
+ {{ include.post.title }}
40
+ </a>
41
+ </h2>
42
+ {%- endif %}
43
+ {%- endif %}
44
+ </header>
45
+
46
+ {% if include.post.title and include.post.title != "" %}
47
+ {% unless hide_posts_content or page.hide_posts_content -%}
48
+ <div class="post-content">
49
+
50
+ {% if page.layout != "post" and include.show_excerpts or page.show_excerpts or site.bean.show_excerpts %}
51
+ {{ post.excerpt }}
52
+ {% else %}
53
+ {{ include.content }}
54
+ {% endif %}
55
+
56
+ </div>
57
+ {%- endunless %}
58
+
59
+ {%- else -%}
60
+ <div class="post-content">
61
+ {{ include.content }}
62
+ </div>
63
+ {%- endif %}
64
+
65
+ {% if include.post.tags -%}
66
+ <footer class="post-footer">
67
+ <span class="post-meta">
68
+ {{ site.bean.translations.post_tagged_with }}
69
+ </span>
70
+
71
+ <ul class="post-meta post-tags">
72
+ {% for tag in include.post.tags -%}
73
+ {%- assign tag_url = site.jekyll-archives.permalinks.tag | replace: ":name", tag | replace: " ", "-" -%}
74
+ <li class="post-tag">
75
+
76
+ <a href="{{- tag_url -}}" rel="tag">
77
+ {{ tag }}
78
+ </a>
79
+ </li>
80
+ {%- endfor %}
81
+ </ul>
82
+ </footer>
83
+ {%- endif %}
84
+ </article>
@@ -0,0 +1,3 @@
1
+ <div class="sidebar">
2
+ {%- include widgets.html -%}
3
+ </div>
@@ -0,0 +1,9 @@
1
+ <aside class="sidebar-widget">
2
+ <h2 class="widget-title">
3
+ {{ include.title }}
4
+ </h2>
5
+
6
+ <div class="widget-content">
7
+ {{ include.content }}
8
+ </div>
9
+ </aside>
@@ -0,0 +1,22 @@
1
+ <head>
2
+ <meta charset="utf-8" />
3
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
4
+
5
+ {% if page.title -%}
6
+ <title>{{ page.title }} ({{ site.title }})</title>
7
+ {%- else -%}
8
+ <title>{{ site.title }} &mdash; {{ site.tagline }}</title>
9
+ {%- endif %}
10
+
11
+ {% seo title=false %}
12
+
13
+ <link rel="stylesheet" href="{%- link assets/css/reset.css -%}" />
14
+ <link rel="stylesheet" href="{%- link assets/css/base.css -%}" />
15
+ <link rel="stylesheet" href="{%- link assets/css/layout.css -%}" />
16
+ <link rel="stylesheet" href="{%- link assets/css/highlights.css -%}" />
17
+ <link rel="stylesheet" href="{%- link assets/css/theme.css -%}" />
18
+ <link rel="stylesheet" href="{%- link assets/fonts/fonts.css -%}" />
19
+
20
+ {% feed_meta %}
21
+ {% json_feed_meta %}
22
+ </head>
@@ -0,0 +1 @@
1
+ <!-- You can replace this file in your website with custom scripts that you may need. -->
@@ -0,0 +1,36 @@
1
+ <footer class="site-footer">
2
+ <div class="container">
3
+ <div class="site-info">
4
+ <div class="site-branding">
5
+ <h2 class="site-title">{{ site.title }}</h2>
6
+ <p class="site-tagline">{{ site.tagline }}</p>
7
+ </div>
8
+
9
+ <div class="site-description">
10
+ {{ site.description | markdownify }}
11
+ </div>
12
+
13
+ {% if site.bean.copyright_notice -%}
14
+ <div class="site-copyright">
15
+ {{ site.bean.copyright_notice | markdownify }}
16
+ </div>
17
+ {%- endif %}
18
+ </div>
19
+
20
+ {% if site.footer_menu.items -%}
21
+ <nav class="footer-menu">
22
+ {% if site.footer_menu.title -%}
23
+ <h2 class="screen-reader-text">
24
+ {{ site.footer_menu.title }}
25
+ </h2>
26
+ {%- endif %}
27
+
28
+ {% for item in site.footer_menu.items -%}
29
+ <a class="menu-item" {% if item.color -%} style="--item-color: {{ item.color }}" {%- endif %} href="{{ item.path }}">
30
+ {{ item.label }}
31
+ </a>
32
+ {%- endfor %}
33
+ </nav>
34
+ {%- endif %}
35
+ </div>
36
+ </footer>
@@ -0,0 +1,40 @@
1
+ {%- capture site_branding -%}
2
+ <a href="{{ '/'| absolute_url }}">
3
+ {% if site.logo -%}
4
+ <img class="site-logo" src="{{- site.logo -}}" alt="{{ site.title }}" role="presentation" />
5
+ <span class="screen-reader-text">{{ site.title }}</span>
6
+ {%- else -%}
7
+ {{ site.title }}
8
+ {%- endif %}
9
+ </a>
10
+ {%- endcapture -%}
11
+
12
+ <header class="site-header">
13
+ <div class="container">
14
+ {% if page.title -%}
15
+ <span class="site-title">
16
+ {{ site_branding }}
17
+ </span>
18
+ {%- else -%}
19
+ <h1 class="site-title">
20
+ {{ site_branding }}
21
+ </h1>
22
+ {%- endif %}
23
+
24
+ {% if site.main_menu -%}
25
+ <nav class="main-menu" id="navigation">
26
+ {% if site.main_menu.title -%}
27
+ <h2 class="screen-reader-text">
28
+ {{ site.main_menu.title }}
29
+ </h2>
30
+ {%- endif %}
31
+
32
+ {% for item in site.main_menu.items -%}
33
+ <a class="menu-item" {% if item.color -%} style="--item-color: {{ item.color }}" {%- endif %} href="{{ item.path }}">
34
+ {{ item.label }}
35
+ </a>
36
+ {%- endfor %}
37
+ </nav>
38
+ {%- endif %}
39
+ </div>
40
+ </header>
@@ -0,0 +1,33 @@
1
+ {% comment %}
2
+ Sidebar widgets
3
+
4
+ You can add custom widgets to the sidebar of your site by sending
5
+ both title and contents of your widget through an include. For example:
6
+
7
+ {% capture widget_content %}
8
+ <p>This will appear in my sidebar!</p>
9
+ {% endcapture %}
10
+
11
+ {% assign widget_title = "This is an example" %}
12
+
13
+ {% include blog/widget.html title=widget_title content=widget_content %}
14
+ {% endcomment %}
15
+
16
+ {% assign blogroll_title = "Useful links" %}
17
+
18
+ {% capture blogroll_content %}
19
+ <dl class="blogroll">
20
+ {%- for item in site.data.blogroll -%}
21
+ <dt>
22
+ <a href="{{ item.url }}" rel="external">
23
+ {{ item.title }}
24
+ </a>
25
+ </dt>
26
+ <dd>
27
+ {{ item.description }}
28
+ </dd>
29
+ {%- endfor -%}
30
+ </dl>
31
+ {% endcapture %}
32
+
33
+ {%- include blog/widget.html title=blogroll_title content=blogroll_content -%}