jekyll-oedipus-theme 0.5.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 247f35fd43d5ad6558f3dadfaff25f8c9810cfe6ea3756d497af92d387b20add
4
- data.tar.gz: 74731ab0f28e29cf73117da85608eb42845410fa3bafbfa8746cbd2806190066
3
+ metadata.gz: bc0780ba8e8bf872e38e50ccbc6a0a63d06bc51a1354aaa7b46a2f49ba93fc0f
4
+ data.tar.gz: 219abeaa45562318b7fa0c57005da5d8f83197fd87b642e3a0410fd36c75c699
5
5
  SHA512:
6
- metadata.gz: 8947a9c0a5fefdb3d636d8b990803384480dd12758da5a52836e5aef94c34ea67f943bf51a3b7f3e2dc09e13db183cc6c7cdb72a02f6dfa5889222c5704c4590
7
- data.tar.gz: 0e8400076d1f4ff7f32c741f6e729a55fb47ddabd82470fc62eb21ebd3024c130853a4452a0a86ffa3b990f44311eb0d7a660d6f9f9bb2428929f2582c5a4bfe
6
+ metadata.gz: 66cf6caec4e95deb4c4083df8851d89e3fdcf50ad69ccec4c6d835b34e419a54021b048e5acb5c9fc57f0723ec5adde321b61012a8aa3377345a84a0286aa686
7
+ data.tar.gz: 5bc54dfaaf231fd4d4aa907e4997dcfe0ce52582a539bf9a4df786d79fcd0a97676d16a3e3eae1216b70c809cb6f12d28051a120df5684a9b271abe96e029296
data/README.md CHANGED
@@ -6,7 +6,7 @@ Build a motherfucking website with Jekyll (patricide optional).
6
6
 
7
7
  ## Screenshot
8
8
 
9
- ![Oedipus rendered on a Thinkpad T60 in Firefox ESR](https://github.com/matthewgraybosch/jekyll-oedipus-theme/blob/main/screenshot.png?raw=true)
9
+ ![Oedipus rendered on a Thinkpad T60 in Firefox ESR](https://raw.githubusercontent.com/matthewgraybosch/jekyll-oedipus-theme/main/screenshot.png)
10
10
 
11
11
  ## Installation
12
12
 
@@ -32,19 +32,114 @@ Or install it yourself as:
32
32
 
33
33
  ## Usage
34
34
 
35
- TODO: Write usage instructions here. Describe your available layouts, includes, sass and/or assets.
35
+ **Oedipus** can be customized to a great extent in [`_config.yml`](https://github.com/matthewgraybosch/jekyll-oedipus-theme/blob/main/_config.yml), but if you want to [override any part of the theme](https://jekyllrb.com/docs/themes/), you'll want a list of what's included.
36
+
37
+ ### _config.yml
38
+
39
+ All options for this theme are contained under the "site.oedipus" root. Therefore, the "rights" option listed below is actually "site.oedipus.rights".
40
+
41
+ - **rights**: a string that goes into the copyright line in the page footer
42
+ - **license.text.name**: a string identifying the license for your site's text
43
+ - **license.text.url**: the URL of the license for your site's text
44
+ - **license.code.name**: a string identifying the license for your site's code
45
+ - **license.code.url**: the URL of the license for your site's code
46
+ - **made-with**: a string indicating how the site was made.
47
+
48
+ The stylesheet for Oedipus is also configurable, and all style options are contained under "site.oedipus.style". The default colors were selected from [Color Safe](http://colorsafe.co/) for accessibility. The dark theme takes each of these variables and applies the [Sass `invert()`](https://sass-lang.com/documentation/modules/color) function to them.
49
+
50
+ - **bg-color**: set background color
51
+ - **fg-color**: set text color
52
+ - **link-color**: set default link color
53
+ - **link-hover-color**: change a link to this color on mouseover
54
+ - **link-active-color**: change a link to this color when clicked
55
+ - **link-visited-color**: change visited links to this color
56
+ - **border-thickness**: set the thickness for borders
57
+ - **hr-border-thickness**: set thickness for <hr> elements. Set this to half your intended value.
58
+ - **html-font-size**: allows use of [rem units](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units) for consistent scaling. Defaults to "medium".
59
+ - **body-margin**: control distance between text and screen edges
60
+ - **content-font-size**: Sets font-size for most text.
61
+ - **content-font-family**: Sets the font-family for most text. Use this to define a custom font stack.
62
+ - **content-line-height**: Sets separation between lines of text.
63
+ - **preformatted-font-size**: Sets font-size for preformatted-text and code.
64
+ - **preformatted-font-family**: Sets the font-family for most preformatted-text and code. Use this to define a custom font stack.
65
+ - **content-width**: Sets the content width in <main> and <article>
66
+ - **content-centered**: When true, Oedipus will horizontally center content.
67
+ - **compact-header**: When true, Oedipus will place the site title and description inside the masthead's <h1>.
68
+ - **home-header-icon** When true, any page assigned the "home" layout will show `/assets/favicon.svg` as part of the masthead.
36
69
 
37
70
  ### Layouts
38
71
 
39
- * **base.html**: a wrapper layout that sets language and encoding, sets up a skip navigation link, and links to favicons, stylesheets, and feeds.
72
+ * **base.html**: a wrapper layout that sets language and encoding, sets up a skip navigation link, and links to favicons, stylesheets, and feeds. Also provides a target for `jekyll-seo-tag`.
73
+ * **default.html**: this wraps around **page.html** and **post.html** to provide headers, footers, and navigation.
74
+ * **home.html**: for your site's home page. It provides custom headers and footers in case you don't want nav bars on your landing page.
75
+ * **page.html**: for pages and other non-blog material. It wraps content inside a <main> element.
76
+ * **post.html**: for blog posts. It wraps content inside an <article> element and provides a footer for subscription and contact info.
77
+
78
+ ### Includes
79
+
80
+ * **masthead.html**: displays the site's title and description.
81
+ * **skip.html**: implements a [skip navigation](https://webaim.org/techniques/skipnav/) link.
82
+ * **navbar.html**: implements a navigation bar. It accepts "id", "label", and "source" arguments. Source is a data source accessible via `site.data`.
83
+ * **navlist.html**: implements an unordered navigation list and takes the same arguments as navbar.html.
84
+ * **header.html**: the default header for most pages and posts. Includes a navigation bar.
85
+ * **article-header.html**: a sub-header for posts that contains the post title and summary
86
+ * **home-header.html**: a header for the home page, sans nav bar.
87
+ * **footer.html**: the default footer for most pages and posts. Includes a navigation bar.
88
+ * **article-footer.html**: a sub-footer for posts that contains feed and contact links in lieu of a comments section
89
+ * **home-footer.html**: a footer for the home page, sans nav bar.
90
+ * **posts-list.html**: lists all posts as a set of <article> blocks.
91
+ * **recent-posts-list.html**: lists the *n* most recent posts, where the "limit" argument = *n*.
92
+ * **posts-table.html**: lists all posts in a table
93
+ * **recent-posts-table.html**: lists the *n* most recent posts in a table, where the "limit" argument = *n*.
94
+ * **copyright.html**: shows copyright info. used in footers.
95
+ * **license.html**: shows license links for text and code. used in footers.
96
+ * **made-with.html**: can be used to credit tools or represent a location. used in footers.
97
+
98
+ ### Sass
99
+
100
+ Oedipus' stylesheets are built with Sass, which is included with Jekyll.
101
+
102
+ - **assets/style.scss**: wrapper file for the main stylesheet. It contains logic to override Sass variables with custom values from `_config.yml`.
103
+ - **assets/print.scss**: wrapper file for the print stylesheet
104
+ - **_sass/variables.scss**: contains variables with default values
105
+ - **_sass/main.scss**: contains style definitions for the screen
106
+ - **_sass/skip.scss**: implements Sass to hide the [skip navigation](https://webaim.org/techniques/skipnav/) link until tabbed into
107
+ - **_sass/dark.scss**: provides dark mode support.
108
+
109
+ ### Data
110
+
111
+ Oedipus comes with two _data files: `header-nav.yml` and `footer-nav.yml`, which I use to build nav bars. They both contain entries in the following format:
112
+
113
+ ```
114
+ - name: home
115
+ url: /
116
+ desc: front page
117
+ ```
118
+
119
+ ### Assets
120
+
121
+ The only asset Oedipus provides, in addition to the stylesheets, is [favicon.svg](https://raw.githubusercontent.com/matthewgraybosch/jekyll-oedipus-theme/main/assets/favicon.svg). You can and should generate your own. I recommend using [Formito's generator](https://formito.com/tools/favicon). You can also use [favicon.io](https://favicon.io/), but you'll want to modify **base.html** and **home-header.html** since this site doesn't generate SVG.
40
122
 
41
123
  ## Contributing
42
124
 
43
- I built this theme for my own use. If you find this theme useful, you are welcome to it. If you wish to customize it, by all means fork it. However, I will not accept pull requests unless they suit my tastes. Any support I provide is at my own discretion.
125
+ I built this theme for my own use. If you find this theme useful, you are welcome to it. If you wish to customize it, by all means fork it. I will fix bugs and consider pull requests at my own discretion.
44
126
 
45
- The code of conduct is simple: **don't annoy me**.
127
+ ### Code of Conduct
128
+
129
+ This is not a professional project, and I am not interested in collaborating with others here. I am most certainly *not* interested in fostering "community", let alone providing an "open and welcoming environment". Nevertheless, I suppose a rudimentary and informal code of conduct is necessary.
130
+
131
+ 1. If you mess with me, you're banned.
132
+ 2. If you mess with other contributors on this project, you're fucking with me.
133
+ 3. When in doubt, refer to rule 1.
134
+
135
+ (with apologies to Matthew Woodring Stover)
46
136
 
47
137
  ## License
48
138
 
49
139
  The theme is available as open source under the terms of the [GNU GPL-3.0](https://opensource.org/licenses/GPL-3.0).
50
140
 
141
+ ### Commercial/Corporate/Government Use
142
+
143
+ I cannot prevent commercial use of this theme, but under no circumstance will I provide free technical support for commercial, corporate, or government projects. Issues and pull requests from people using Oedipus in a commercial, corporate, or government project will be summarily dismissed.
144
+
145
+ Note: I regard inclusion of this theme on a curated site supported by advertising as commercial use. Don't do it and then expect me to provide support to your visitors.
data/_config.yml CHANGED
@@ -19,7 +19,7 @@ plugins:
19
19
  - jekyll-seo-tag
20
20
 
21
21
  sass:
22
- style: expanded
22
+ style: compressed
23
23
 
24
24
  permalink: /blog/:year/:month/:day/:title/
25
25
 
@@ -32,7 +32,7 @@ oedipus:
32
32
  code:
33
33
  name: "GNU GPL-3.0"
34
34
  url: "https://opensource.org/licenses/GPL-3.0/"
35
- madeWith: "♥ in Pennsylvania"
35
+ made-with: "♥ in Pennsylvania"
36
36
  style:
37
37
  bg-color: "#FFFFFF"
38
38
  fg-color: "#000000"
@@ -50,6 +50,6 @@ oedipus:
50
50
  preformatted-font-size: 1rem
51
51
  preformatted-font-family: monospace
52
52
  content-width: 40rem
53
- content-centered: false
54
- compact-header: true
53
+ content-centered: true
54
+ compact-header: false
55
55
  home-header-icon: true
@@ -0,0 +1,9 @@
1
+ <footer>
2
+ <p>
3
+ Thanks for reading.<br />
4
+ The best way to subscribe is with a feed reader:
5
+ <a href="/feed.xml" title="subscribe to the Atom feed">Atom</a>
6
+ <a href="/feed.json" title="subscribe to the JSON feed">JSON</a><br />
7
+ Questions or comments? Email <a href="mailto:{{ site.email }}" title="please allow up to 7 days for a reply">{{ site.email }}</a>.
8
+ </p>
9
+ </footer>
@@ -0,0 +1,4 @@
1
+ <header>
2
+ <h1>{{ page.title }}</h1>
3
+ <p><em>{{ page.description }}</em></p>
4
+ </header>
@@ -0,0 +1,6 @@
1
+ {% if site.oedipus.rights %}
2
+ &copy; {{ site.time | date: "%Y" }} {{ site.author }}, {{ site.oedipus.rights }}
3
+ {% else %}
4
+ &copy; {{ site.time | date: "%Y" }} {{ site.author }}
5
+ {% endif %}
6
+ <br />
@@ -1,8 +1,8 @@
1
1
  <footer>
2
2
  <p>
3
- &copy; {{ site.time | date: "%Y" }} {{ site.author }}, {{ site.oedipus.rights }}<br />
3
+ {% include copyright.html %}
4
4
  {% include license.html %}
5
- made with {{ site.oedipus.madeWith }}
5
+ {% include made-with.html %}
6
6
  </p>
7
7
  {% include navbar.html id="footer-nav" label="bottom navigation" source=site.data.footer-nav %}
8
8
  </footer>
@@ -1,7 +1,7 @@
1
1
  <footer>
2
2
  <p>
3
- &copy; {{ site.time | date: "%Y" }} {{ site.author }}, {{ site.oedipus.rights }}<br />
3
+ {% include copyright.html %}
4
4
  {% include license.html %}
5
- made with {{ site.oedipus.madeWith }}
5
+ {% include made-with.html %}
6
6
  </p>
7
7
  </footer>
@@ -0,0 +1,3 @@
1
+ {% if site.oedipus.made-with %}
2
+ made with {{ site.oedipus.made-with }}
3
+ {% endif %}
data/_layouts/base.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <meta charset="{{ site.encoding }}">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <link rel="icon" type="image/svg+xml" href="/assets/favicon.svg" />
7
- <link rel="icon" type="image/ico" href="/assets/favicon.ico" />
7
+ <link rel="icon" href="data:,">
8
8
  <link rel="stylesheet" type="text/css" href="/assets/style.css" />
9
9
  <link rel="alternate" type="application/atom+xml" href="/feed.xml" title="{{ site.title }} Atom Feed">
10
10
  <link rel="alternate" type="text/json" href="/feed.json" title="{{ site.title }} JSON Feed">
data/_layouts/post.html CHANGED
@@ -3,19 +3,9 @@ layout: default
3
3
  ---
4
4
 
5
5
  <article id="content">
6
- <header>
7
- <h1>{{ page.title }}</h1>
8
- <p><em>{{ page.description }}</em></p>
9
- </header>
6
+ {% include article-header.html %}
10
7
  <section>
11
8
  {{ content }}
12
9
  </section>
13
- <footer>
14
- <p>
15
- Thanks for reading.<br />
16
- The best way to subscribe is with a feed reader:
17
- <a href="/feed.xml" title="subscribe to the Atom feed">Atom</a>
18
- <a href="/feed.json" title="subscribe to the JSON feed">JSON</a><br />
19
- Questions or comments? Email <a href="mailto:{{ site.email }}" title="please allow up to 7 days for a reply">{{ site.email }}</a>.</p>
20
- </footer>
10
+ {% include article-footer.html %}
21
11
  </article>
data/_sass/dark.scss CHANGED
@@ -36,8 +36,8 @@
36
36
  }
37
37
 
38
38
  article {
39
- hr {
40
- border: $hr-border-thickness dashed invert($fg-color);
39
+ footer {
40
+ border-top: $hr-border-thickness dashed invert($fg-color);
41
41
  }
42
42
  }
43
43
 
data/_sass/main.scss CHANGED
@@ -13,7 +13,7 @@ html {
13
13
 
14
14
  a {
15
15
  color: $link-color;
16
- text-underline-offset: $border-thickness * 1.5;
16
+ text-underline-offset: 6px;
17
17
  }
18
18
 
19
19
  a:hover {
@@ -33,10 +33,10 @@ html {
33
33
  }
34
34
 
35
35
  header, footer, nav {
36
- text-align: content-alignment;
36
+ text-align: $content-alignment;
37
37
 
38
38
  h1 {
39
- font-size: 1rem;
39
+ font-size: $content-font-size;
40
40
  margin-bottom: 1rem;
41
41
 
42
42
  em {
@@ -128,19 +128,19 @@ html {
128
128
 
129
129
  main, article {
130
130
  h1 {
131
- font-size: 1.6rem;
131
+ font-size: $content-font-size * 2;
132
132
  }
133
133
 
134
134
  h2 {
135
- font-size: 1.4rem;
135
+ font-size: $content-font-size * 1.6;
136
136
  }
137
137
 
138
138
  h3 {
139
- font-size: 1.2rem;
139
+ font-size: $content-font-size * 1.2;
140
140
  }
141
141
 
142
142
  h4, h5, h6 {
143
- font-size: 1.1rem;
143
+ font-size: $content-font-size * 1.1;
144
144
  }
145
145
  }
146
146
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-oedipus-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Graybosch
@@ -102,11 +102,15 @@ files:
102
102
  - LICENSE.txt
103
103
  - README.md
104
104
  - _config.yml
105
+ - _includes/article-footer.html
106
+ - _includes/article-header.html
107
+ - _includes/copyright.html
105
108
  - _includes/footer.html
106
109
  - _includes/header.html
107
110
  - _includes/home-footer.html
108
111
  - _includes/home-header.html
109
112
  - _includes/license.html
113
+ - _includes/made-with.html
110
114
  - _includes/masthead.html
111
115
  - _includes/navbar.html
112
116
  - _includes/navlist.html
@@ -125,7 +129,6 @@ files:
125
129
  - _sass/paper.scss
126
130
  - _sass/skip.scss
127
131
  - _sass/variables.scss
128
- - assets/favicon.ico
129
132
  - assets/favicon.svg
130
133
  - assets/print.scss
131
134
  - assets/style.scss
data/assets/favicon.ico DELETED
Binary file