jekyll-theme-hamilton 0.1.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: 0fe5d8c00a876078fde732497524153987470fbeb52f84abbcc47beb0752a4ae
4
+ data.tar.gz: 25d5d86c79ddcfab4f1db055a68ccbfceb0b910acd86188d358247362b9e94ed
5
+ SHA512:
6
+ metadata.gz: 856d8372109aacce8627e0bff10d689384a823251fbeaf972d7c986ae3d14395954fdacb64e7dc14f6acdba883dec60a0df0910e29af7c75da340a4408e2cdcf
7
+ data.tar.gz: 367509177af43d5e0f2a45c55d870a334fc14c028f5b72d68329587aa54efe952d6f4918f5815855d49d97b71bf05db0b66d9e61d474c2d13350248bba368bf3
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2020 ngzhio
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,156 @@
1
+ # Hamilton <!-- omit in toc -->
2
+
3
+ Another minimal style of Jekyll theme for writers. The original purpose of this theme is to be a replacement of the default Jekyll theme -- [Minima](https://github.com/jekyll/minima). Hamilton is an enhancement of Minima but still, keep in minimal.
4
+
5
+ Please check out the [demo](https://ngzhio.github.io/jekyll-theme-hamilton/).
6
+
7
+ ![screenshot](screenshot.png)
8
+
9
+ ## Features <!-- omit in toc -->
10
+
11
+ - [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag)
12
+ - [Jekyll Feed](https://github.com/jekyll/jekyll-feed)
13
+ - [Jekyll Sitemap](https://github.com/jekyll/jekyll-sitemap)
14
+ - [Google Analytics](https://analytics.google.com/)
15
+ - [MathJax](https://www.mathjax.org/)
16
+ - [Disqus](https://disqus.com/)
17
+ - [Font Awesome](https://fontawesome.com/)
18
+ - Customizable head
19
+ - Configurable page navigation
20
+ - Customizable styles and skins
21
+ - Archive pages implemented in pure Liquid
22
+
23
+ ## Table of Contents <!-- omit in toc -->
24
+
25
+ - [Installation](#installation)
26
+ - [Configuration](#configuration)
27
+ - [Optional Parameters](#optional-parameters)
28
+ - [Archive Pages](#archive-pages)
29
+ - [MathJax](#mathjax)
30
+ - [Customization](#customization)
31
+ - [Metadata](#metadata)
32
+ - [Navigation](#navigation)
33
+ - [Social Media](#social-media)
34
+ - [Skins](#skins)
35
+ - [More Customized Styles](#more-customized-styles)
36
+ - [License](#license)
37
+
38
+ ## Installation
39
+
40
+ You can choose one of the following methods to install Hamilton:
41
+
42
+ - Directly specify the `jekyll-theme-hamilton` gem.
43
+
44
+ 1. Add `gem 'jekyll-theme-hamilton'` into your `Gemfile`.
45
+ 2. Add the below lines into your `_config.yml`.
46
+
47
+ ```yml
48
+ plugins:
49
+ - jekyll-theme-hamilton
50
+ ```
51
+
52
+ - If your site is hosted on GitHub Pages, you can use [`jekyll-remote-theme`](https://github.com/benbalter/jekyll-remote-theme) to import the master branch of Hamilton.
53
+
54
+ 1. Add `gem 'jekyll-remote-theme'` into your `Gemfile`.
55
+ 2. Add the below lines into your `_config.yml`.
56
+
57
+ ```yml
58
+ plugins:
59
+ - jekyll-remote-theme
60
+
61
+ remote-theme: ngzhio/jekyll-theme-hamilton
62
+ ```
63
+
64
+ ## Configuration
65
+
66
+ After installation, you can run `jekyll serve` to check out your site, but before that, *make sure* the below **required parameters** are configured in your `_config.yml`.
67
+
68
+ | Parameters | Types | Specifications |
69
+ |:---------- |:----- |:-------------- |
70
+ | `title` | string | The site title |
71
+ | `disqus` | string | The Disqus shortname; Unless you don't want to enable the comments system, you must specify this parameter. It is used in the production environment. |
72
+ | `google_analytics` | string | The Google Analytics tracking ID; It is used in the production environment. |
73
+
74
+ ### Optional Parameters
75
+
76
+ | Parameters | Types | Specifications |
77
+ |:---------- |:----- |:-------------- |
78
+ | `author` | string | The author name of the site; It would be showed in the copyright statement. |
79
+ | `skin` | string | The skin name. See more information on the [Customization](#customization) section. |
80
+ | `lang` | string | The language of the site; The default value is `en`. |
81
+ | `paginate` | int | The number of posts on each page. To enable pagination, you must use a third-party plugin, e.g. [`jekyll-paginate`](https://github.com/jekyll/jekyll-paginate), [`jekyll-paginate-v2`](https://github.com/sverrirs/jekyll-paginate-v2), or [`jekyll-pagination`](https://github.com/prometheus-ev/jekyll-pagination). |
82
+ | `date_format` | string | The date format; The default value is `%b %-d, %Y`. |
83
+
84
+ ## Archive Pages
85
+
86
+ Hamilton implements some archive templates in pure Liquid. For example, if you want to create a category archive page, set the below parameters on that page:
87
+
88
+ ```yml
89
+ ---
90
+ layout: archive-taxonomies
91
+ type: categories
92
+ ---
93
+ ```
94
+
95
+ Or a tag archive page:
96
+
97
+ ```yml
98
+ layout: archive-taxonomies
99
+ type: tags
100
+ ```
101
+
102
+ Or archive by years:
103
+
104
+ ```yml
105
+ layout: archive-years
106
+ ```
107
+
108
+ ## MathJax
109
+
110
+ You can enable MathJax on each post or page, just set `math: true` on that page.
111
+
112
+ ## Customization
113
+
114
+ ### Metadata
115
+
116
+ You can create a file `_includes/custom-head.html` in your repository, and add any metadata into that page, e.g. favicons.
117
+
118
+ ### Navigation
119
+
120
+ You can create a file `_data/navigation.yml` to configure links to some pages. For example,
121
+
122
+ ```yml
123
+ - title: About
124
+ url: /about/
125
+ - title: Categories
126
+ url: /categories/
127
+ - title: Tags
128
+ url: /tags/
129
+ ```
130
+
131
+ ### Social Media
132
+
133
+ You can create a file `_data/social.yml` to configure links to your social media. For example,
134
+
135
+ ```yml
136
+ - title: Twitter
137
+ url: https://twitter.com/ngzhio
138
+ icon: fab fa-twitter
139
+ - title: GitHub
140
+ url: https://github.com/ngzhio/jekyll-theme-hamilton
141
+ icon: fab fa-github
142
+ ```
143
+
144
+ ### Skins
145
+
146
+ You can select a skin by setting `skin` in `_config.yml`. The built-in skins include `daylight`, `midnight`, `sunrise`, and `sunset`. If you don't specify any skin, Hamilton would dynamically select one in these built-in skins according to different hours in a day.
147
+
148
+ You can also customize a new skin, for example, a skin called `solarized`. You need to copy [`_sass/hamilton/skins/daylight.scss`](_sass/hamilton/skins/daylight.scss) into your repository and then rename it to `solarized.scss`, and adjust some colors in that file. Finally, specify `skin: solarized` in `_config.yml`.
149
+
150
+ ### More Customized Styles
151
+
152
+ If you want to create more CSS styles in your site, creating a file `_sass/hamilton/custom-styles.scss`, and putting your code in there, Hamilton would automatically refer to them.
153
+
154
+ ## License
155
+
156
+ The theme is available as open source under the terms of the [MIT License](LICENSE.txt).
@@ -0,0 +1,6 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons:
3
+
4
+ 1. Head over to https://realfavicongenerator.net/ to add your own favicons.
5
+ 2. Customize default _includes/custom-head.html in your source directory and insert the given code snippet.
6
+ {% endcomment %}
@@ -0,0 +1,17 @@
1
+ <div id="disqus_thread"></div>
2
+ <script>
3
+ var disqus_config = function () {
4
+ this.page.url = '{{ page.url | absolute_url }}';
5
+ this.page.identifier = '{{ page.url | absolute_url }}';
6
+ };
7
+
8
+ (function() {
9
+ var d = document, s = d.createElement('script');
10
+
11
+ s.src = 'https://{{ site.disqus }}.disqus.com/embed.js';
12
+
13
+ s.setAttribute('data-timestamp', +new Date());
14
+ (d.head || d.body).appendChild(s);
15
+ })();
16
+ </script>
17
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
@@ -0,0 +1,41 @@
1
+ <footer id="footer" class="site-footer">
2
+ <div class="wrapper">
3
+ <p class="feed-subscribe">
4
+ <a href="{{ 'feed.xml' | relative_url }}">
5
+ <i class="feed-icon fas fa-rss"></i><span>Subscribe</span>
6
+ </a>
7
+ </p>
8
+
9
+ {% if site.data.social %}
10
+ <div class="social-icons">
11
+ {% for social in site.data.social %}
12
+ <a class="social-icon" href="{{ social.url }}"><i class="{{ social.icon | default: 'fas fa-link' }} fa-2x" title="{{ social.title }}"></i></a>
13
+ {% endfor %}
14
+ </div>
15
+ {% endif %}
16
+
17
+ <div class="copyright">
18
+ {% assign year_from = site.posts[-1].date | date: '%Y' %}
19
+ {% assign year_to = site.time | date: '%Y' %}
20
+ {% if year_from == nil or year_from == year_to %}
21
+ {% assign year_string = year_from %}
22
+ {% else %}
23
+ {% assign year_string = year_from | append: '&nbsp;' | append: '-' | append: '&nbsp;' | append: year_to %}
24
+ {% endif %}
25
+
26
+ {% if site.author %}
27
+ {% if site.email %}
28
+ <p>© {{ year_string }} <a class="u-email" href="mailto:{{ site.email }}">{{ site.author }}</a>; All rights reserved.</p>
29
+ {% else %}
30
+ <p>© {{ year_string }} {{ site.author }}; All rights reserved.</p>
31
+ {% endif %}
32
+ {% endif %}
33
+
34
+ <p>
35
+ Powered by <a href="https://jekyllrb.com/">Jekyll</a> & <a href="https://github.com/ngzhio/jekyll-theme-hamilton">Hamilton</a>
36
+ </p>
37
+
38
+ </div>
39
+ </div>
40
+ </footer>
41
+
@@ -0,0 +1,9 @@
1
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
2
+ <script>
3
+ window['ga-disable-{{ site.google_analytics }}'] = window.doNotTrack === "1" || navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1";
4
+ window.dataLayer = window.dataLayer || [];
5
+ function gtag(){dataLayer.push(arguments);}
6
+ gtag('js', new Date());
7
+
8
+ gtag('config', '{{ site.google_analytics }}');
9
+ </script>
@@ -0,0 +1,45 @@
1
+ <meta charset="utf-8">
2
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1">
4
+
5
+ {% seo %}
6
+
7
+ {% feed_meta %}
8
+
9
+ {% if jekyll.environment == 'production' and site.google_analytics %}
10
+ {% include google-analytics.html %}
11
+ {% endif %}
12
+
13
+ {% if page.math %}
14
+ {% include mathjax.html %}
15
+ {% endif %}
16
+
17
+ <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
18
+ <link rel="stylesheet" href="{{ '/assets/css/skin.css' | relative_url }}">
19
+
20
+ <!-- Begin selecting skin -->
21
+ {% unless site.skin %}
22
+ <script>
23
+ const hour = (new Date()).getHours();
24
+ let filename = "";
25
+ if (hour >= 5 && hour < 7) {
26
+ filename = "{{ '/assets/css/skin-sunrise.css' | relative_url }}";
27
+ } else if (hour >= 7 && hour < 17) {
28
+ filename = "{{ '/assets/css/skin-daylight.css' | relative_url }}";
29
+ } else if (hour >= 17 && hour < 19) {
30
+ filename = "{{ '/assets/css/skin-sunset.css' | relative_url }}";
31
+ } else {
32
+ filename = "{{ '/assets/css/skin-midnight.css' | relative_url }}";
33
+ }
34
+ const elem = document.createElement("link");
35
+ elem.setAttribute("rel", "stylesheet");
36
+ elem.setAttribute("type", "text/css");
37
+ elem.setAttribute("href", filename);
38
+ document.getElementsByTagName("head")[0].appendChild(elem);
39
+ </script>
40
+ {% endunless %}
41
+ <!-- End selecting skin -->
42
+
43
+ <script async src="https://use.fontawesome.com/releases/v5.0.12/js/all.js"></script>
44
+
45
+ {% include custom-head.html %}
@@ -0,0 +1,27 @@
1
+ <header class="site-header">
2
+
3
+ <div class="wrapper">
4
+ <a class="site-title" rel="author" href="{{ "/" | relative_url }}">{{ site.title | escape }}</a>
5
+
6
+ {% if site.data.navigation %}
7
+ <nav class="site-nav">
8
+ <input type="checkbox" id="nav-trigger" class="nav-trigger" />
9
+ <label for="nav-trigger" title="nav-trigger">
10
+ <span class="menu-icon">
11
+ <svg viewBox="0 0 18 15" width="18px" height="15px">
12
+ <path d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.032C17.335,0,18,0.665,18,1.484L18,1.484z M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.032C17.335,6.031,18,6.696,18,7.516L18,7.516z M18,13.516C18,14.335,17.335,15,16.516,15H1.484 C0.665,15,0,14.335,0,13.516l0,0c0-0.82,0.665-1.483,1.484-1.483h15.032C17.335,12.031,18,12.695,18,13.516L18,13.516z"/>
13
+ </svg>
14
+ </span>
15
+ </label>
16
+
17
+ <div class="trigger">
18
+ {% for nav in site.data.navigation %}
19
+ {% if nav.title %}
20
+ <a class="page-link {% if page.url == nav.url %}current-page{% endif %}" href="{{ nav.url | relative_url }}">{{ nav.title | escape }}</a>
21
+ {% endif %}
22
+ {% endfor %}
23
+ </div>
24
+ </nav>
25
+ {% endif %}
26
+ </div>
27
+ </header>
@@ -0,0 +1,9 @@
1
+ {% capture align %}align-{{ include.align | default: "center" }}{% endcapture %}
2
+ {% if include.caption %}
3
+ <figure class="{{ align }}">
4
+ <img class="{{ align }}" src="{{ include.src | absolute_url }}" alt="{{ include.caption }}" {% if include.width %}width="{{ include.width }}"{% endif %} {% if include.height %}height="{{ include.height }}"{% endif %}/>
5
+ <figcaption class="{{ align }}">{{ include.caption }}</figcaption>
6
+ </figure>
7
+ {% else %}
8
+ <img class="{{ align }}" src="{{ include.src | absolute_url }}" alt="{{ include.alt }}" {% if include.width %}width="{{ include.width }}"{% endif %} {% if include.height %}height="{{ include.height }}"{% endif %}/>
9
+ {% endif %}
@@ -0,0 +1,2 @@
1
+ <script async src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
2
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
@@ -0,0 +1,76 @@
1
+ ---
2
+ layout: page
3
+ ---
4
+
5
+ {{ content }}
6
+
7
+ {% comment %} Check the type of archive {% endcomment %}
8
+ {%- if page.type == 'categories' -%}
9
+ {%- assign taxonomies = site.categories -%}
10
+ {%- elsif page.type == 'tags' -%}
11
+ {%- assign taxonomies = site.tags -%}
12
+ {%- else -%}
13
+ {%- assign taxonomies = none -%}
14
+ {%- endif -%}
15
+
16
+ {% comment %} Calculate the max count of taxonomies {% endcomment %}
17
+ {%- assign max_count = 0 -%}
18
+ {%- for taxonomy in taxonomies -%}
19
+ {%- assign posts = taxonomy[1] -%}
20
+ {%- if posts.size > max_count -%}
21
+ {%- assign max_count = posts.size -%}
22
+ {%- endif -%}
23
+ {%- endfor -%}
24
+
25
+ <div class="taxonomies-wrapper">
26
+ <ul class="taxonomies">
27
+ {%- for i in (1..max_count) reversed -%}
28
+ {%- for taxonomy in taxonomies -%}
29
+ {%- assign taxonomy_name = taxonomy[0] -%}
30
+ {%- assign slugified_taxonomy_name = taxonomy_name | slugify -%}
31
+ {%- assign posts = taxonomy[1] -%}
32
+ {%- if posts.size == i -%}
33
+ <li>
34
+ {%- capture link -%}{{ page.permalink }}#{{ slugified_taxonomy_name }}{%- endcapture -%}
35
+ <a class="taxonomy" href="{{ link | relative_url }}">
36
+ <span>
37
+ {%- if page.type == 'tags' -%}
38
+ {{ slugified_taxonomy_name }}
39
+ {%- else -%}
40
+ {{ taxonomy_name }}
41
+ {%- endif -%}
42
+ </span>
43
+ <span class="taxonomy-count">{{ posts.size }}</span>
44
+ </a>
45
+ </li>
46
+ {%- endif -%}
47
+ {%- endfor -%}
48
+ {%- endfor -%}
49
+ </ul>
50
+ </div>
51
+
52
+ {% comment %} Show posts by taxonomy {% endcomment %}
53
+ {%- for i in (1..max_count) reversed -%}
54
+ {%- for taxonomy in taxonomies -%}
55
+ {%- assign taxonomy_name = taxonomy[0] -%}
56
+ {%- assign slugified_taxonomy_name = taxonomy_name | slugify -%}
57
+ {%- assign posts = taxonomy[1] -%}
58
+ {%- if posts.size == i -%}
59
+ <h2 id="{{ slugified_taxonomy_name }}">
60
+ {%- if page.type == 'tags' -%}
61
+ {{ slugified_taxonomy_name }}
62
+ {%- else -%}
63
+ {{ taxonomy_name }}
64
+ {%- endif -%}
65
+ </h2>
66
+ <ul class="post-list-by-taxonomy">
67
+ {%- for post in posts -%}
68
+ <li>
69
+ <time datetime="{{ page.date | date_to_xmlschema }}">{{ post.date | date: "%Y-%m-%d" }}</time> &raquo; <a href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
70
+ </li>
71
+ {%- endfor -%}
72
+ </ul>
73
+ <a href="#" class="back-to-top">Top &#8648;</a>
74
+ {%- endif -%}
75
+ {%- endfor -%}
76
+ {%- endfor -%}
@@ -0,0 +1,37 @@
1
+ ---
2
+ layout: page
3
+ ---
4
+
5
+ {{ content }}
6
+
7
+ {%- assign taxonomies = site.posts | group_by_exp: "post", "post.date | date: '%Y'" -%}
8
+
9
+ <div class="taxonomies-wrapper">
10
+ <ul class="taxonomies">
11
+ {%- for taxonomy in taxonomies -%}
12
+ <li>
13
+ {%- capture link -%}{{ page.permalink }}#{{ taxonomy.name }}{%- endcapture -%}
14
+ <a class="taxonomy" href="{{ link | relative_url }}">
15
+ <span>{{ taxonomy.name }}</span>
16
+ <span class="taxonomy-count">{{ taxonomy.size }}</span>
17
+ </a>
18
+ </li>
19
+ {%- endfor -%}
20
+ </ul>
21
+ </div>
22
+
23
+ {% comment %} Show posts by taxonomy {% endcomment %}
24
+ {%- for taxonomy in taxonomies -%}
25
+ <h2 id="{{ taxonomy.name }}">
26
+ {{ taxonomy.name }}
27
+ </h2>
28
+ <ul class="post-list-by-taxonomy">
29
+ {%- assign posts = taxonomy.items -%}
30
+ {%- for post in posts -%}
31
+ <li>
32
+ <time datetime="{{ page.date | date_to_xmlschema }}">{{ post.date | date: "%Y-%m-%d" }}</time> &raquo; <a href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
33
+ </li>
34
+ {%- endfor -%}
35
+ </ul>
36
+ <a href="#" class="back-to-top">Top &#8648;</a>
37
+ {%- endfor -%}
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+
4
+ <head>
5
+ {% include head.html %}
6
+ </head>
7
+
8
+ <body>
9
+
10
+ {% include header.html %}
11
+
12
+ <main class="page-content" aria-label="Content">
13
+ {{ content }}
14
+ </main>
15
+
16
+ {% include footer.html %}
17
+
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,56 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="home wrapper">
6
+
7
+ {{ content }}
8
+
9
+ {% if site.paginate %}
10
+ {% assign posts = paginator.posts %}
11
+ {% else %}
12
+ {% assign posts = site.posts %}
13
+ {% endif %}
14
+
15
+ {%- if posts.size > 0 -%}
16
+ {%- if page.list_title -%}
17
+ <h2 class="post-list-heading">{{ page.list_title }}</h2>
18
+ {%- endif -%}
19
+ <ul class="post-list">
20
+ {%- assign date_format = site.date_format | default: "%b %-d, %Y" -%}
21
+ {%- for post in posts -%}
22
+ <li>
23
+ <h3>
24
+ <a class="post-link" href="{{ post.url | relative_url }}">
25
+ {{ post.title | escape }}
26
+ </a>
27
+ </h3>
28
+ <span class="post-meta">{{ post.date | date: date_format }}</span>
29
+ {%- if page.show_excerpts != false -%}
30
+ <p>{{ post.excerpt }}</p>
31
+ {%- endif -%}
32
+ </li>
33
+ {%- endfor -%}
34
+ </ul>
35
+
36
+ {% if site.paginate %}
37
+ <div class="pager">
38
+ <ul class="pagination">
39
+ {%- if paginator.previous_page %}
40
+ <li><a href="{{ paginator.previous_page_path | relative_url }}" class="previous-page">{{ paginator.previous_page }}</a></li>
41
+ {%- else %}
42
+ <li><div class="pager-edge">•</div></li>
43
+ {%- endif %}
44
+ <li><div class="current-page">{{ paginator.page }}</div></li>
45
+ {%- if paginator.next_page %}
46
+ <li><a href="{{ paginator.next_page_path | relative_url }}" class="next-page">{{ paginator.next_page }}</a></li>
47
+ {%- else %}
48
+ <li><div class="pager-edge">•</div></li>
49
+ {%- endif %}
50
+ </ul>
51
+ </div>
52
+ {%- endif %}
53
+
54
+ {%- endif -%}
55
+
56
+ </div>
@@ -0,0 +1,19 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article class="post">
6
+
7
+ <header class="post-header">
8
+ <div class="wrapper">
9
+ <h1 class="post-title">{{ page.title | escape }}</h1>
10
+ </div>
11
+ </header>
12
+
13
+ <div class="wrapper">
14
+ <div class="post-content">
15
+ {{ content }}
16
+ </div>
17
+ </div>
18
+
19
+ </article>
@@ -0,0 +1,58 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article class="post h-entry" itemscope itemtype="http://schema.org/BlogPosting">
6
+
7
+ <header class="post-header">
8
+
9
+ <div class="wrapper">
10
+
11
+ <h1 class="post-title p-name" itemprop="name headline">{{ page.title | escape }}</h1>
12
+ <p class="post-meta">
13
+ {%- assign date_format = site.date_format | default: "%b %-d, %Y" -%}
14
+ <time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
15
+ {{ page.date | date: date_format }}
16
+ </time>
17
+ {%- if page.modified_date -%}
18
+ ~
19
+ {%- assign mdate = page.modified_date | date_to_xmlschema -%}
20
+ <time class="dt-modified" datetime="{{ mdate }}" itemprop="dateModified">
21
+ {{ mdate | date: date_format }}
22
+ </time>
23
+ {%- endif -%}
24
+ {%- if page.author -%}
25
+ • {% for author in page.author %}
26
+ <span itemprop="author" itemscope itemtype="http://schema.org/Person">
27
+ <span class="p-author h-card" itemprop="name">{{ author }}</span></span>
28
+ {%- if forloop.last == false %}, {% endif -%}
29
+ {% endfor %}
30
+ {%- endif -%}
31
+ </p>
32
+
33
+ {% if page.tags.size > 0 %}
34
+ <p class="post-meta post-tags">
35
+ {% assign tags = page.tags | sort %}
36
+ {% for tag in tags %}
37
+ <span class="post-tag">
38
+ {% assign slugified_tag = tag | slugify %}
39
+ <a href="{{ '/tags/#:tag' | replace: ':tag', slugified_tag | relative_url }}">#{{ slugified_tag }}</a>
40
+ </span>
41
+ {% endfor %}
42
+ </p>
43
+ {% endif %}
44
+ </div>
45
+
46
+ </header>
47
+
48
+ <div class="wrapper">
49
+ <div class="post-content e-content" itemprop="articleBody">
50
+ {{ content }}
51
+
52
+ {% if page.comments != false and jekyll.environment == "production" %}
53
+ {% include disqus.html %}
54
+ {% endif %}
55
+ </div>
56
+ </div>
57
+
58
+ </article>