kiko-minus-gh 0.0.1

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: cee31bff3ede50de034e7de34f556bbc2bc1fe2dfc04bd5c92b0604485350e83
4
+ data.tar.gz: 80050a927fef41842d81e898b951dd1192f3d0b6d05f6a9745f9389a7b6dd097
5
+ SHA512:
6
+ metadata.gz: 41492a4083d0353b3111275f658fe27f86035729068ff0356cc63316dcba77d74aaa8e53ef331250eeeb491a80621fb7f94b8e5eb44dd2be607d84ad22c1827b
7
+ data.tar.gz: d993bc718d611365a2dbf961427d30b473c6bf906aa398459352e1d33ebea969dd4bfc6b0e2bf647ff6e3b74232771313a205df3c4699a5782f9d8782f4b3ec9
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 Areeb Khan
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,154 @@
1
+ # kiko-minus
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/kiko-minus.svg)](https://badge.fury.io/rb/kiko-minus)
4
+
5
+ kiko-minus is a minimalistic Jekyll theme based on [kiko-plus](https://github.com/aweekj/Kiko-plus).
6
+
7
+ While the design and styles are largely inherited from the original theme, kiko-minus strips away heavy dependencies like Google Analytics and Disqus in favor of lightweight alternatives. It comes with many additional features with an emphasis on privacy and speed, including automatically compressed images, gzip compression, and SEO optimization.
8
+
9
+ [Demo](https://areebk.gitlab.io/kiko-minus/)
10
+
11
+ ![Screenshot](screenshot.png)
12
+
13
+ ## Features
14
+ - Ready for use with GitLab or GitHub pages
15
+ - Syntax highlighting
16
+ - Automatic image compression
17
+ - Zopfli compression (gzip)
18
+ - Fully responsive
19
+ - Automatic sitemap generation
20
+ - Filtered pagination based on tags & collections
21
+ - Private comments with [ISSO](https://posativ.org/isso/)
22
+ - Analytics with [Fathom](https://usefathom.com/)
23
+ - Automatic Atom feed
24
+ - No JavaScript, third party requests, or cookies (unless using Fathom or ISSO)
25
+ - Structured data support (TODO)
26
+
27
+ ## Installation
28
+
29
+ You can use kiko-minus on your site after scaffolding with `jekyll new`:
30
+
31
+ Add this line to your Jekyll site's `Gemfile`:
32
+
33
+ ```ruby
34
+ gem "kiko-minus"
35
+ ```
36
+
37
+ Copy this [configuration](https://github.com/ask616/kiko-minus/blob/master/_config.yml) to your site's `_config.yml`.
38
+
39
+ And then execute:
40
+
41
+ $ bundle
42
+
43
+ Or install it yourself as:
44
+
45
+ $ gem install kiko-minus
46
+
47
+ Finally, make sure to follow the directions [below](https://github.com/ask616/kiko-minus#pagination) to enable pagination on your home page.
48
+
49
+ ## Contents
50
+ kiko-minus has an assortment of components to minimize additional needed configuration, so that all you need to do is add your posts to `_posts/` and be ready to go.
51
+
52
+ ### `_layouts/`
53
+ * `default.html` defines the basic structure of every page, including SEO tags, stylesheet imports, and favicons.
54
+ * `home.html` is used for the index page, and includes a navigation bar and the paginated list of all posts.
55
+ * `page.html` is used for individual pages i.e. an About or Contact page.
56
+ * `post.html` is for your blog posts, and can include a comment section if ISSO is enabled.
57
+ * `filtered-home.html` is meant to be used for filtered post lists i.e. pages listing all posts belonging to a category or tag. The sample [wikipedia](https://github.com/ask616/kiko-minus/blob/master/categories/wikipedia.md) page is an example use case to show all posts that are Wikipedia articles.
58
+ * `archive.html` shows a condensed view of many posts and their publishing dates.
59
+
60
+ ### `_includes/`
61
+ * `footer.html` is put at the bottom of every page to show copyright information.
62
+ * `post-list.html` renders out a list of posts as defined by pagination.
63
+ * `isso.html` contains the ISSO script tag and is included if comments are enabled. The tag also includes many of the configurable options as defined [here](https://posativ.org/isso/docs/configuration/client/).
64
+ * `fathom.html` contains the tracker code and is included if analytics are enabled. The tag requires the address of your server and the site ID as provided by your Fathom instance.
65
+
66
+ ### `_sass/`
67
+ `kiko-minus.scss` defines the main variables to be used in the rest of the styles, as well as a couple mixins to help make the site responsive. It also imports the rest of the partials.
68
+
69
+ Inside `kiko-minus/`:
70
+ * `_colors.scss` is copied from [Open color](https://yeun.github.io/open-color/) and defines a broad palette for easy use.
71
+ * `_layout.scss` defines the overall structure of the site.
72
+ * `_normalize.scss` is copied from [Normalize.css](https://necolas.github.io/normalize.css/) and is used to render the site consistently across all browsers.
73
+ * `_syntax-highlighting.scss` defines how code is highlighted.
74
+ * `_typography.scss` defines the look and feel of the elements on the site.
75
+
76
+ ### `assets/`
77
+ * `css/` contains a single `style.scss` file that imports the rest of the base kiko-minus styles. This is also where custom stylesheets can go, as explained [below](https://github.com/ask616/kiko-minus#custom-stylesheets).
78
+ * `img/` is where your images will go for use throughout the site. You can add subfolders here as is done in this sample to better organize. Be warned that the photos here will be optimized *in place*, and that the originals will be copied over to `assets/img_archive` (or as otherwise defined in your config), which isn't included in your website's build.
79
+
80
+ ### Misc
81
+ * `.image-optim-cache` is used by the image optimization [plugin](https://github.com/ask616/jekyll-image-optim) to keep track of what files have already been optimized. *Do not delete this!*
82
+ * `categories/` and `tags/` can be used to define category or tag filtered pages.
83
+ * `pages/` can be used for individual pages.
84
+ * `index.md` is the home page for your site.
85
+
86
+ ## Usage
87
+
88
+ ### Pagination
89
+ On your `index.md` and any other post list pages that you want paginated (such as category and tag pages), you'll need to add some configuration to each page's front matter. At the very least, you will need the following:
90
+
91
+ ```
92
+ pagination:
93
+ enabled: true
94
+ ```
95
+
96
+ For more configuration options, you can read the plugin's [docs](https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#site-configuration).
97
+
98
+ ### Custom Stylesheets
99
+ To add your own stylesheet, uncomment the `css` entry in `_config.yml`, and add the location of the stylesheet as its `src`.
100
+
101
+ ### ISSO Integration
102
+ To enable comments on your posts, set `isso.enabled` to `true` in your `_config.yml`, and add the location of the embed script as hosted by your ISSO server to `isso.script_src`. The other options can be deleted if you want the defaults as defined on ISSO's [website](https://posativ.org/isso/docs/configuration/client/).
103
+
104
+ ### Fathom Integration
105
+ To enable analytics throughout the site, set `fathom.enabled` to `true` in your `_config.yml`, and add the location of the tracker script (i.e. https://yoursite.tld/analytics/tracker.js) to `fathom.script_src` and your site ID to `fathom.site_id`.
106
+
107
+ If you don't know the location of the script and site ID, you can look at the tracking code provided on your Fathom dashboard:
108
+
109
+ ```
110
+ ...
111
+ m.parentNode.insertBefore(o,m)
112
+ })(document, window, '//mysite.dev/analytics/tracker.js', 'fathom');
113
+ fathom('set', 'siteId', 'ABCDE');
114
+ fathom('trackPageview');
115
+ ...
116
+
117
+ ```
118
+
119
+ In this case, the script is hosted at https://mysite.dev/analytics/tracker.js, and its site ID is ABCDE.
120
+
121
+ ### Gzip Compression
122
+ If configured, kiko-minus will automatically create gzipped versions of your text files that will be served by default if GitHub or GitLab pages, or if otherwise configured on your host. As explained in the plugin's [usage](https://github.com/philnash/jekyll-zopfli#usage), the site must be built in production mode to create the gzipped bundles by setting the `JEKYLL_ENV` environment variable as such:
123
+
124
+ ```
125
+ JEKYLL_ENV=production bundle exec jekyll build
126
+ ```
127
+
128
+ This is done because creating the bundles can be slow, and so should only be done in production mode.
129
+
130
+ ### Category and Tag Pages
131
+ The plugin [jekyll-paginate-v2](https://github.com/sverrirs/jekyll-paginate-v2/) lets us paginate on categories and tags (and much more!). The directions for enabling pagination can be found in their [docs](https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#paginate-categories-tags-locales), and an example is provided here with [wikipedia articles](https://github.com/ask616/kiko-minus/blob/master/categories/wikipedia.md) page. It is _highly_ recommended that you use the `filtered-home` layout for these pages.
132
+
133
+ ### Favicons
134
+ kiko-minus supports including a 16x16 and 32x32 px favicon for your site. Place them in the `assets/img/logos/` directory with the names `favicon-16x16.png` and `favicon-32x32.png`, respectively, and they'll automatically be loaded.
135
+
136
+ ### SEO Setup
137
+ This theme uses `jekyll-seo-tag` to help provide metadata to improve your SEO scores. You can supply information to the `_config.yml` as defined [here](https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md) (many of the options are already added to the config you copy over from this theme).
138
+
139
+ ## Contributing
140
+
141
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ask616/kiko-minus/issues. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
142
+
143
+ ## Development
144
+
145
+ To set up your environment to develop this theme, run `bundle install`.
146
+
147
+ Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
148
+
149
+ When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets/css` tracked with Git will be bundled.
150
+ To add a custom directory to your theme-gem, please edit the regexp in `kiko-minus.gemspec` accordingly.
151
+
152
+ ## License
153
+
154
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,13 @@
1
+ <script>
2
+ (function(f, a, t, h, o, m){
3
+ a[h]=a[h]||function(){
4
+ (a[h].q=a[h].q||[]).push(arguments)
5
+ };
6
+ o=f.createElement("script"),
7
+ m=f.getElementsByTagName("script")[0];
8
+ o.async=1; o.src=t; o.id="fathom-script";
9
+ m.parentNode.insertBefore(o,m)
10
+ })(document, window, "{{ site.fathom.script_src }}", "fathom");
11
+ fathom("set", "siteId", "{{ site.fathom.site_id }}");
12
+ fathom("trackPageview");
13
+ </script>
@@ -0,0 +1,4 @@
1
+ <div class="footer">
2
+ <hr />
3
+ © {{ site.copyright.year }} {{ site.copyright.name }}. All rights reserved.
4
+ </div>
@@ -0,0 +1,61 @@
1
+
2
+ <script data-isso="{{ site.isso.prefix }}"
3
+ src="{{ site.isso.script_src }}"
4
+
5
+ {% if site.isso.css %}
6
+ data-isso-css="{{ site.isso.css }}"
7
+ {% endif %}
8
+
9
+ {% if site.isso.lang %}
10
+ data-isso-lang="{{ site.isso.lang }}"
11
+ {% endif %}
12
+
13
+ {% if site.isso.reply_to_self %}
14
+ data-isso-reply-to-self="{{ site.isso.reply_to_self }}"
15
+ {% endif %}
16
+
17
+ {% if site.isso.require_author %}
18
+ data-isso-require-author="{{ site.isso.require_author }}"
19
+ {% endif %}
20
+
21
+ {% if site.isso.require_email %}
22
+ data-isso-require-email="{{ site.isso.require_email }}"
23
+ {% endif %}
24
+
25
+ {% if site.isso.max_comments_top %}
26
+ data-isso-max-comments-top="{{ site.isso.max_comments_top }}"
27
+ {% endif %}
28
+
29
+ {% if site.isso.max_comments_nested %}
30
+ data-isso-max-comments-nested="{{ site.isso.max_comments_nested }}"
31
+ {% endif %}
32
+
33
+ {% if site.isso.reveal_on_click %}
34
+ data-isso-reveal-on-click="{{ site.isso.reveal_on_click }}"
35
+ {% endif %}
36
+
37
+ {% if site.isso.avatar %}
38
+ data-isso-avatar="{{ site.isso.avatar }}"
39
+ {% endif %}
40
+
41
+ {% if site.isso.avatar_bg %}
42
+ data-isso-avatar-bg="{{ site.isso.avatar_bg }}"
43
+ {% endif %}
44
+
45
+ {% if site.isso.avatar_fg %}
46
+ data-isso-avatar-fg="{{ site.isso.avatar_fg }}"
47
+ {% endif %}
48
+
49
+ {% if site.isso.vote %}
50
+ data-isso-vote="{{ site.isso.vote }}"
51
+ {% endif %}
52
+
53
+ {% if site.isso.vote_levels %}
54
+ data-isso-vote-levels="{{ site.isso.vote_levels }}"
55
+ {% endif %}
56
+
57
+ {% if site.isso.feed %}
58
+ data-isso-feed="{{ site.isso.feed }}"
59
+ {% endif %}
60
+ >
61
+ </script>
@@ -0,0 +1,39 @@
1
+ {% for post in paginator.posts %}
2
+ <div class="post-list-item">
3
+ {% if post.link %}
4
+ <a href="{{ post.link }}">
5
+ {% else %}
6
+ <a href="{{ post.url | prepend: site.baseurl }}">
7
+ {% endif %}
8
+ <div class="post-list-item-date">
9
+ <time>{{ post.date | date_to_string }}</time>
10
+ </div>
11
+ <div class="post-list-item-title">
12
+ {{ post.title }}
13
+ </div>
14
+ {% if post.description %}
15
+ <div class="post-list-item-desc">
16
+ {{ post.description }}
17
+ </div>
18
+ {% endif %}
19
+ </a>
20
+ </div>
21
+ {% endfor %}
22
+
23
+ <div class="post-list-pagination">
24
+ <span class="post-list-pagination-previous">
25
+ {% if paginator.previous_page %}
26
+ <a href="{{ paginator.previous_page_path | prepend: site.baseurl }}" class="previous">
27
+ &#60; previous
28
+ </a>
29
+ {% endif %}
30
+ </span>
31
+
32
+ <span class="post-list-pagination-next">
33
+ {% if paginator.next_page %}
34
+ <a href="{{ paginator.next_page_path | prepend: site.baseurl }}" class="next">
35
+ next &#62;
36
+ </a>
37
+ {% endif %}
38
+ </span>
39
+ </div>
@@ -0,0 +1,33 @@
1
+ ---
2
+ layout: page
3
+ title: Archive
4
+ pagination:
5
+ enabled: true
6
+ per_page: 1000
7
+ ---
8
+
9
+ <div class="archive">
10
+ <div class="archive-list">
11
+ {% if site.posts.size == 0 %}
12
+ <h2>No posts found</h2>
13
+ {% else %}
14
+
15
+ {% for post in paginator.posts %}
16
+ <div class="archive-list-item">
17
+ {% if post.link %}
18
+ <a href="{{ post.link }}">
19
+ {% else %}
20
+ <a href="{{ post.url | prepend: site.baseurl }}">
21
+ {% endif %}
22
+ <span class="archive-list-item-title">
23
+ {{ post.title }}
24
+ </span>
25
+ <span class="archive-list-item-date">
26
+ <time>| {{ post.date | date_to_string }}</time>
27
+ </span>
28
+ </a>
29
+ </div>
30
+ {% endfor %}
31
+ {% endif %}
32
+ </div>
33
+ </div>
@@ -0,0 +1,34 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ site.lang | default: "en-US" }}">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ {%- seo -%}
8
+ {% feed_meta %}
9
+ <link rel="stylesheet" href="{{ "/assets/css/style.css" | relative_url }}">
10
+ {% if site.css %}
11
+ <link rel="stylesheet" href="{{ site.css.src | relative_url }}">
12
+ {% endif %}
13
+ <link rel="icon" type="image/png" sizes="32x32" href="{{ "/assets/img/logos/favicon-32x32.png" | relative_url }}">
14
+ <link rel="icon" type="image/png" sizes="16x16" href="{{ "/assets/img/logos/favicon-16x16.png" | relative_url }}">
15
+ </head>
16
+
17
+ <body>
18
+ <main class="page-content" aria-label="Content">
19
+ <div class="main-wrapper">
20
+ {{ content }}
21
+
22
+ {%- include footer.html -%}
23
+ </div>
24
+ </main>
25
+ </body>
26
+
27
+ {% if site.isso.enabled %}
28
+ {%- include isso.html -%}
29
+ {% endif %}
30
+
31
+ {% if site.fathom.enabled %}
32
+ {%- include fathom.html -%}
33
+ {% endif %}
34
+ </html>
@@ -0,0 +1,25 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <header>
6
+ <div class="header-title">
7
+ <a href="{{ site.url }}{{ site.baseurl }}">{{ site.title }}</a>
8
+ </div>
9
+
10
+ <nav class="header-nav">
11
+ {% for nav in site.nav %}
12
+ <a href="{{ nav.url | prepend: site.baseurl }}">{{ nav.name }}</a>
13
+ {% endfor %}
14
+ </nav>
15
+ </header>
16
+
17
+ <div class="post-list">
18
+ {% if site.posts.size == 0 %}
19
+ <h2>No posts found</h2>
20
+ {% else %}
21
+
22
+ {%- include post-list.html -%}
23
+
24
+ {% endif %}
25
+ </div>
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article class="page">
6
+ <header>
7
+ <div class="header-small">
8
+ <a href="{{ site.url }}{{ site.baseurl }}">{{ site.title | escape }}</a>
9
+ </div>
10
+
11
+ <div class="page-title">{{ page.title | escape }}</div>
12
+ </header>
13
+
14
+ <div class="page-content">
15
+ {{ content }}
16
+ </div>
17
+ </article>
@@ -0,0 +1,38 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article class="post">
6
+ <header>
7
+ <div class="header-small">
8
+ <a href="{{ site.url }}{{ site.baseurl }}">{{ site.title | escape }}</a>
9
+ </div>
10
+
11
+ <div class="page-title">{{ page.title | escape }}</div>
12
+
13
+ <span class="page-date">
14
+ <time>{{ page.date | date_to_string }}</time>
15
+ </span>
16
+ </header>
17
+
18
+ <div class="page-content">
19
+ {{ content }}
20
+
21
+ {% if page.tags.size > 0 %}
22
+ <div class="page-tags">
23
+ Tagged as
24
+ {% for tag in page.tags %}
25
+ <span class="page-tags-item">
26
+ {{ tag }}{% unless forloop.last %}, {% endunless %}
27
+ </span>
28
+ {% endfor %}
29
+ </div>
30
+ {% endif %}
31
+
32
+ {% if site.isso.enabled %}
33
+ <div class="comments-content">
34
+ <section id="isso-thread"></section>
35
+ </div>
36
+ {% endif %}
37
+ </div>
38
+ </article>