jekyll-oceanic 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b7560ddef689732ed2d2981f02347dee48d3dfa33221c52156fad5d6a6f06ef5
4
+ data.tar.gz: f5950e59454449092f7a486cbc6ff93ccf83b98bb3dcc1fd29079024d8b8e0f4
5
+ SHA512:
6
+ metadata.gz: b5e8034bcc70e76300734055224050a594796530e2104cbcf96b31d9714aa73698c938e11e8aabeb113584149e4ed38688fa3564f1f788d7a55dceefc3568ed0
7
+ data.tar.gz: c096fd8f9d30f1013099a16b3e3dfb33493c2081988593ed7418e3daa0081433ddaea122baa88537a164daeb5f24cb780f646584f02fe64dc48bfc7d7666acb3
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Karl Nicoll
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 all
13
+ 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 THE
21
+ SOFTWARE.
@@ -0,0 +1,96 @@
1
+ # Oceanic - A Minimalist, Blue Theme For Jekyll
2
+
3
+ Oceanic is intended as a simple theme for Jekyll websites, with a main focus
4
+ on blogs.
5
+
6
+ ## Features
7
+
8
+ * Bright and minimalist theme.
9
+ * Skinning options with custom SASS parameters to tweak colours, fonts and some
10
+ sizes.
11
+ * Code syntax highlighting through Rouge support. Syntax highlighting can also
12
+ be skinned with custom colours if preferred.
13
+ * Configuration is easy to customize to specify:
14
+
15
+ * Specify avatar image
16
+ * Social media links
17
+ * Theme skin
18
+ * Pagination options
19
+ * Category/Tag options
20
+ * and more...
21
+
22
+ ## Screenshots
23
+
24
+ See [HERE](SCREENSHOTS.md)
25
+
26
+ ## Usage
27
+
28
+ ### Step 1: Installation
29
+
30
+ First, add this line to your Jekyll site's `Gemfile`:
31
+
32
+ ```ruby
33
+ gem "jekyll-oceanic"
34
+ ```
35
+
36
+ Next, add this line to your Jekyll site's `_config.yml`:
37
+
38
+ ```yaml
39
+ theme: jekyll-oceanic
40
+ ```
41
+
42
+ Finally, execute:
43
+
44
+ ```shell
45
+ $ bundle config set path .bundle
46
+ $ bundle install
47
+ ...
48
+ ```
49
+
50
+ or install it system-wide with:
51
+
52
+ ```shell
53
+ $ gem install jekyll-oceanic
54
+ ...
55
+ ```
56
+
57
+ ### Step 2: Configuration
58
+
59
+ Once installed, the theme should run out of the box with no configuration
60
+ required. However, you will want to customize in order to set up your website
61
+ the way you want.
62
+
63
+ See [HERE](CONFIGURATION.md) for a rundown of the various configuration
64
+ options.
65
+
66
+ ## Customization
67
+
68
+ The theme can be easily customized by creating *skins*. Skins are
69
+ [Sass](https://sass-lang.com/) files that define colors, fonts, and various
70
+ other style properties that can be adjusted.
71
+
72
+ See HERE for a brief introduction to skinning.
73
+
74
+ ## Contributing
75
+
76
+ Bug reports and pull requests are welcome on GitHub at
77
+ https://github.com/karlnicoll/jekyll-oceanic. This project is intended to be a
78
+ safe, welcoming space for collaboration, and contributors are expected to
79
+ adhere to the [Contributor Covenant](http://contributor-covenant.org) code of
80
+ conduct.
81
+
82
+ ## Development
83
+
84
+ To set up your environment to develop this theme, run `bundle install`.
85
+
86
+ Your theme is setup just like a normal Jekyll site! To test your theme, run
87
+ `bundle exec jekyll serve` and open your browser at `http://localhost:4000`.
88
+ This starts a Jekyll server using your theme. Add pages, documents, data, etc.
89
+ like normal to test your theme's contents. As you make modifications to your
90
+ theme and to your content, your site will regenerate and you should see the
91
+ changes in the browser after a refresh, just like normal.
92
+
93
+ ## License
94
+
95
+ The theme is available as open source under the terms of the
96
+ [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,106 @@
1
+ # Theme. Always "jekyll-oceanic" if using this theme.
2
+ theme: jekyll-oceanic
3
+
4
+ # Your name (or the company name for a company site). This is displayed
5
+ # in the header.
6
+ author:
7
+ name: "Oceanic"
8
+
9
+ # A description of you, or of the site. This is displayed in the header.
10
+ description: A minimalist, blue, Jekyll theme.
11
+
12
+ # Show the first openings of posts when listing. Set to false to just
13
+ # display titles and dates.
14
+ show_excerpts: true
15
+
16
+ # Custom theme settings. Specify the specific skin or syntax
17
+ # highlighting here.
18
+ oceanic:
19
+ skin: default
20
+ code-skin: default
21
+
22
+ # If you wish to have a photo or logo in the header, specify the
23
+ # following values:
24
+ #
25
+ # * url - the url (or local path) of the image to use as the avatar
26
+ # (default: no avatar).
27
+ # * width - the width of the image (default: 100px).
28
+ # * height - the height of the image (default: 100px).
29
+ #
30
+ avatar:
31
+ url: "/assets/img/avatar.jpg"
32
+ width: "100px"
33
+ height: "100px"
34
+
35
+ # Social media links. If the link is specified, an icon is shown in the
36
+ # header as a link.
37
+ social:
38
+ facebook: https://www.facebook.com/jekyll.user
39
+ github: https://www.github.com/jekyll.user
40
+ linkedin: https://www.linkedin.com/in/jekylluser
41
+ stackoverflow: https://stackoverflow.com/users/00000/stack-user
42
+ steam: https://steamcommunity.com/id/jekylluser/
43
+ twitter: https://www.twitter.com/jekylluser
44
+
45
+ # If specified, sets the number of blog entries to display from the
46
+ # homepage. More blog entries can be found by navigating to a
47
+ # separate post list.
48
+ homepage_blog_entries: 5
49
+
50
+ # Pagination settings. The Oceanic template uses jekyll-paginate-v2 to
51
+ # allow pagination of posts.
52
+ pagination:
53
+ enabled: true
54
+ debug: false
55
+ collection: posts
56
+ per_page: 1
57
+ permalink: "/page:num/"
58
+ title: ':title'
59
+ limit: 0
60
+ sort_field: date
61
+ sort_reverse: true
62
+ category: posts
63
+ tag: ''
64
+ locale: ''
65
+
66
+ # The Oceanic template provides layout support for the jekyll-archives
67
+ # plugin. If you are using it, it can be configured here.
68
+ autopages:
69
+ enabled: true
70
+
71
+ categories:
72
+ enabled: true
73
+ layouts:
74
+ - 'autopage.html'
75
+ title: 'Posts in category :cat'
76
+
77
+ tags:
78
+ enabled: false
79
+ layouts:
80
+ - 'autopage.html'
81
+
82
+ collections:
83
+ enabled: false
84
+
85
+ # Specify the code highlighter. Oceanic is tested against the Rouge
86
+ # syntax highlighter.
87
+ highlighter: rouge
88
+
89
+ # The Oceanic template provides layout support for the jekyll-archives
90
+ # plugin. If you are using it, it can be configured here.
91
+ # jekyll-archives:
92
+ # enabled:
93
+ # - categories
94
+ # - tags
95
+ # layout: archive
96
+ # permalinks:
97
+ # year: '/:year/'
98
+ # month: '/:year/:month/'
99
+ # day: '/:year/:month/:day/'
100
+ # tag: '/tag/:name/'
101
+ # category: '/category/:name/'
102
+
103
+ plugins:
104
+ - jekyll-feed
105
+ - jekyll-paginate-v2
106
+ - jekyll-seo-tag
@@ -0,0 +1,68 @@
1
+ {%- if include.postlist.size > 0 and include.postlist.size -%}
2
+ {%- assign date_format = site.date_format | default: "%b %-d, %Y" -%}
3
+ <ol class="blog-entries">
4
+ {%- for post in include.postlist -%}
5
+ <li role="article">
6
+ <h3><a href="{{ post.url | relative_url }}">{{ post.title | escape }}</a></h3>
7
+ <aside>Published: {{ post.date | date: date_format }}</aside>
8
+ {{ post.excerpt }}
9
+ <a href="{{ post.url | relative_url }}">Continue reading...</a></h3>
10
+ </li>
11
+ {%- endfor -%}
12
+ </ol>
13
+
14
+ {% if include.paginator and include.paginator.total_pages > 1 %}
15
+ {%- if page.pagination.permalink -%}
16
+ {% assign page_permalink = page.pagination.permalink %}
17
+ {%- else -%}
18
+ {% assign page_permalink = site.pagination.permalink %}
19
+ {%- endif -%}
20
+ {%- comment -%}
21
+ #
22
+ # HACK: We need the paginator's base directory in order to provide
23
+ # page direct links. Unfortunately, there is no particularly easy
24
+ # way of working out the directory from the include.paginator. For example,
25
+ # `page.dir` could return '/blog/page2/' on the second paginator
26
+ # page, which is not the desired directory (we'd actually want
27
+ # '/blog/'). So generate here using a bit of a hack.
28
+ #
29
+ # * On the first page, generation from page.dir is valid.
30
+ # * On subsequent pages, work out the page-y portion of the URL and
31
+ # replace it.
32
+ #
33
+ {%- endcomment -%}
34
+ {%- if 1 == include.paginator.page -%}
35
+ {%- assign page_path_format = page.dir | append: page_permalink | replace: "//", "/" -%}
36
+ {%- else -%}
37
+ {%- assign current_page_subdirectory = page_permalink | replace: ':num', include.paginator.page -%}
38
+ {%- assign page_path_format = page.dir | remove_first: current_page_subdirectory | append: page_permalink -%}
39
+ {%- endif -%}
40
+ <ul class="pages">
41
+ {%- if include.paginator.previous_page -%}
42
+ <li><a title="Go to last page" href="{{ include.paginator.first_page_path | relative_url }}">&laquo;</a></li>
43
+ <li><a title="Go to previous page" href="{{ include.paginator.previous_page_path | relative_url }}">&lsaquo;</a></li>
44
+ {%- else -%}
45
+ <li><span title="Go to previous page">&laquo;</span></li>
46
+ <li><span title="Go to first page">&lsaquo;</span></li>
47
+ {%- endif -%}
48
+ {%- for page_number in (1..include.paginator.total_pages) -%}
49
+ {%- if page_number == include.paginator.page -%}
50
+ <li><a title="Refresh this page" href="{{ include.paginator.current_page_path }}">&#x25C9;</a></li>
51
+ {%- elsif page_number == 1 -%}
52
+ <li><a title="Go to page 1" href="{{ include.paginator.first_page_path | relative_url }}">&#x025CB;</a></li>
53
+ {%- else -%}
54
+ <li><a title="Go to page {{page_number}}" href="{{ page_path_format | relative_url | replace: ':num', page_number }}">&#x025CB;</a></li>
55
+ {%- endif -%}
56
+ {%- endfor -%}
57
+
58
+ {%- if include.paginator.next_page -%}
59
+ <li><a title="Go to next page" href="{{ include.paginator.next_page_path | relative_url }}">&rsaquo;</a></li>
60
+ <li><a title="Go to last page" href="{{ include.paginator.last_page_path | relative_url }}">&raquo;</a></li>
61
+ {%- else -%}
62
+ <li><span title="Go to next page">&rsaquo;</span></li>
63
+ <li><span title="Go to last page">&raquo;</span></li>
64
+ {%- endif -%}
65
+ </ul>
66
+ {%- endif %}
67
+
68
+ {%- endif -%}
@@ -0,0 +1,3 @@
1
+ <footer>
2
+ ~~ Bottom of Page ~~
3
+ </footer>
@@ -0,0 +1,6 @@
1
+ <title>{{site.author.name}}{% if page.title and page.url != "/" and page.url != "/index.html" %} | {{page.title}}{% endif %}</title>
2
+ <link rel="stylesheet" href="{{ "/assets/css/style.css" | relative_url }}">
3
+ <link rel="shortcut icon" type="image/png" href="{{ "/assets/img/favicon.png" | relative_url }}">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
+ <meta charset="UTF-8">
6
+ {% seo title=false %}
@@ -0,0 +1,66 @@
1
+ <header>
2
+ <div class="profile-area">
3
+ {% if site.oceanic.avatar-url != blank %}
4
+ <div class="avatar-wrap"><div class="avatar"></div></div>
5
+ {% endif %}
6
+ <div class="header-text-wrap">
7
+ <div class="header-text">
8
+ <h1>{{ site.author.name }}</h1>
9
+ <h2>{{ site.description }}</h2>
10
+ </div>
11
+ </div>
12
+ </div>
13
+
14
+ <input type="checkbox" id="oceanic-theme-display-nav" />
15
+ <label for="oceanic-theme-display-nav" style="width:100%;">
16
+ <svg viewBox="0 0 750 260">
17
+ <use xlink:href="{{ '/assets/img/icons.svg#menu' | relative_url }}"></use>
18
+ </svg>
19
+ </label>
20
+
21
+ <nav>
22
+ {%- assign pages = site.pages | where_exp: "item", "item.nav and item.nav.enabled and item.title and item.autogen == nil" | sort "title", "last" -%}
23
+ <ul>
24
+ {%- assign: index_page_url = "/" | relative_url -%}
25
+ <li{% if page.url == "/" %} class="current"{% endif %}><a href="{{ "/" | relative_url }}">Home</a></li>
26
+ {%- for my_page in pages -%}
27
+ {%- if my_page.title and "/" != my_page.url -%}
28
+ {%- if page.url == my_page.url -%}
29
+ <li class="current">
30
+ {%- elsif my_page.pagegroup -%}
31
+ {%- if page.pagegroup -%}
32
+ {%- if page.pagegroup == my_page.pagegroup -%}
33
+ <li class="current">
34
+ {%- else -%}
35
+ <li>
36
+ {%- endif -%}
37
+ {%- elsif layout.pagegroup -%}
38
+ {%- if layout.pagegroup == my_page.pagegroup -%}
39
+ <li class="current">
40
+ {% else %}
41
+ <li>
42
+ {% endif %}
43
+ {% else %}
44
+ <li>
45
+ {% endif %}
46
+ {% else %}
47
+ <li>
48
+ {% endif %}
49
+ <a href="{{ my_page.url | relative_url }}"> {{ my_page.title | escape }}</a>
50
+ </li>
51
+ {%- endif -%}
52
+ {%- endfor -%}
53
+ </ul>
54
+ </nav>
55
+
56
+ <div class="social-icons">
57
+ <ul>
58
+ {%- if site.oceanic.social.facebook -%}<li><a rel="me" href="{{ site.oceanic.social.facebook }}" title="{{ site.author.name | append: " at Facebook" }}"><svg viewBox="0 0 24 24"><use xlink:href="{{ '/assets/img/icons.svg#facebook' | relative_url }}"></use></svg></a></li>{%- endif -%}
59
+ {%- if site.oceanic.social.twitter -%}<li><a rel="me" href="{{ site.oceanic.social.twitter }}" title="{{ site.author.name | append: " at Twitter" }}"><svg viewBox="0 0 24 24"><use xlink:href="{{ '/assets/img/icons.svg#twitter' | relative_url }}"></use></svg></a></li>{%- endif -%}
60
+ {%- if site.oceanic.social.linkedin -%}<li><a rel="me" href="{{ site.oceanic.social.linkedin }}" title="{{ site.author.name | append: " at LinkedIn" }}"><svg viewBox="0 0 24 24"><use xlink:href="{{ '/assets/img/icons.svg#linkedin' | relative_url }}"></use></svg></a></li>{%- endif -%}
61
+ {%- if site.oceanic.social.stackoverflow -%}<li><a rel="me" href="{{ site.oceanic.social.stackoverflow }}" title="{{ site.author.name | append: " at StackOverflow" }}"><svg viewBox="0 0 24 24"><use xlink:href="{{ '/assets/img/icons.svg#stackoverflow' | relative_url }}"></use></svg></a></li>{%- endif -%}
62
+ {%- if site.oceanic.social.github -%}<li><a rel="me" href="{{ site.oceanic.social.github }}" title="{{ site.author.name | append: " at Github" }}"><svg viewBox="0 0 24 24"><use xlink:href="{{ '/assets/img/icons.svg#github' | relative_url }}"></use></svg></a></li>{%- endif -%}
63
+ {%- if site.oceanic.social.steam -%}<li><a rel="me" href="{{ site.oceanic.social.steam }}" title="{{ site.author.name | append: " at Steam" }}"><svg viewBox="0 0 24 24"><use xlink:href="{{ '/assets/img/icons.svg#steam' | relative_url }}"></use></svg></a></li>{%- endif -%}
64
+ </ul>
65
+ </div>
66
+ </header>
@@ -0,0 +1 @@
1
+ {% assign error_page = "/404.html" %}
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: default
3
+ pagegroup: __blog
4
+ ---
5
+
6
+ <h1>Archive of posts with {{ page.type }} '{{ page.title }}'</h1>
7
+
8
+ {%- assign postlist = page.posts | sort: "date" -%}
9
+ {% include bloglist.html postlist=postlist %}
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: default
3
+ pagegroup: __blog
4
+ pagination:
5
+ sort_reverse: false
6
+ ---
7
+
8
+ <h1>{{ page.title }}</h1>
9
+
10
+ {% include bloglist.html postlist=paginator.posts paginator=paginator %}
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>{{page.title}}</h1>
6
+
7
+ {{ content }}
8
+
9
+ {% if page.pagination.enabled %}
10
+ {% assign posts = paginator.posts %}
11
+ {% assign my_paginator = paginator %}
12
+ {% else %}
13
+ {% assign posts = site.posts %}
14
+ {% assign my_paginator = nil %}
15
+ {% endif %}
16
+
17
+ {% include bloglist.html postlist=posts paginator=my_paginator %}
@@ -0,0 +1,35 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>{{page.title}}</h1>
6
+
7
+ {{content}}
8
+
9
+ {%- comment -%}
10
+ #
11
+ # The code below detects if jekyll-archives is being used, or if
12
+ # the "autopages" feature of jekyll-paginate-v2 is being used.
13
+ #
14
+ {%- endcomment -%}
15
+ {%- if site.jekyll-archives.enabled contains "categories" -%}
16
+ {%- assign permalink_stub = site.jekyll-archives.permalinks["category"] -%}
17
+ {%- assign cat_name_placeholder = ":name" -%}
18
+ {%- elsif site.autopages.enabled and site.autopages.categories -%}
19
+ {%- assign permalink_stub = site.autopages.categories.permalink | default: '/category/:cat/' -%}
20
+ {%- assign cat_name_placeholder = ":cat" -%}
21
+ {%- else -%}
22
+ <aside>Error: Unable to detect category index plugin.</aside>
23
+ {%- endif -%}
24
+
25
+ <h2>Available Categories:</h2>
26
+
27
+ <ul class="cat-tag-col-list">
28
+ {% for category in site.categories %}
29
+ <li>
30
+ <a href={{ permalink_stub | replace: cat_name_placeholder, category[0] | relative_url }}>
31
+ {{ category[0] }}
32
+ </a>
33
+ </li>
34
+ {% endfor %}
35
+ </ul>