fundamental 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
+ SHA1:
3
+ metadata.gz: 4c24efacbd4a874fa577acff1ae7438996ff53a0
4
+ data.tar.gz: 82d2877b9df2d41abaa79362e651dab846cd5346
5
+ SHA512:
6
+ metadata.gz: e6276b0cc4f6cc6a5df29795d8f164ce74c380e685ade583a0d3964571fc913e6b6ab3b0b3bb87401606c5f0ef25295a0e65bf837f8085cf2aa8e4ecc4e0ffa3
7
+ data.tar.gz: 85ae16d50901c96911e8bf4891838aedd8e44a8db01ae82bac4bcfb8200bae5453f1a500b117eb3db281d29cc707559f893ca8802eaa2a158c3550377d1957dc
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Theo M Jones
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,158 @@
1
+ # ![Fundamental Logotype](http://theomjones.com/fundamental/assets/images/logo.svg)
2
+
3
+ Fundamental is a clean, fully responsive, lightweight Jekyll theme for blogging. No frameworks, no JavaScript. It uses system fonts, so no external stylesheets are loaded. The CSS is just 2Kb gzipped.
4
+
5
+ View the [demo here](http://theomjones.com/fundamental).
6
+
7
+ ## Features
8
+
9
+ - Tag support
10
+ - Archive support
11
+ - Breadcrumbs
12
+ - Editable color palette via: (`_variables.scss`)
13
+ - Automatic header navigation
14
+ - Syntax highlighting
15
+
16
+
17
+ ![alt text](http://theomjones.com/fundamental/screenshot.png)
18
+
19
+
20
+ ## Installation
21
+
22
+ Add this line to your Jekyll site's `Gemfile`:
23
+
24
+ ```ruby
25
+ gem "fundamental"
26
+ ```
27
+
28
+ And add this line to your Jekyll site's `_config.yml`:
29
+
30
+ ```yaml
31
+ theme: fundamental
32
+ ```
33
+
34
+ And then execute:
35
+
36
+ $ bundle
37
+
38
+ Or install it yourself as:
39
+
40
+ $ gem install fundamental
41
+
42
+ ## Usage
43
+
44
+ ### Getting Started
45
+
46
+ After installing you should have a `config.yml` file in your base directory. If not, [grab the default one from the repository](https://github.com/theomjones/fundamental/blob/master/_config.yml).
47
+
48
+ ##### Plugins
49
+ Fundamemtal uses these plugins. When you have installed the Fundamental gem, run `bundle install` to install the required plugins. They can be turned on and off in your configuration file.
50
+
51
+ 1. [jekyll-feed](https://github.com/jekyll/jekyll-feed)
52
+ 2. [jekyll-archives](https://github.com/jekyll/jekyll-archives)
53
+ 3. [jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag)
54
+
55
+ #### Navigation
56
+ The top navigation loops through the sites pages that have `menu: true` in the front matter. This makes it easy to add new pages to your site. You can also order the pages by setting the value of `order`.
57
+
58
+ For instance: `order: 2` will place this item second (to the right of the first item).
59
+
60
+ #### Config
61
+ The usual configuration settings can be found at the top of `config.yml`.
62
+
63
+ You can turn the themes components off and on by setting these to `true` or `false`.
64
+
65
+ ```yaml
66
+ enabled:
67
+ breadcrumbs: true
68
+ tags: true
69
+ # Enable RSS menu item
70
+ rss: false
71
+ seo: true
72
+ ```
73
+
74
+ #### Layouts
75
+ For blog posts use the `post.html` layout (this is already set as default via config file.) For normal pages use the `page.html` layout. Naturally, the blog layout is used for the blog page on the home screen. All of these layouts inherit from the `default` layout.
76
+
77
+ The other layouts are for the `jekyll-archives` plugin.
78
+
79
+ ###### File Structure
80
+
81
+ ├── _layouts
82
+ │   ├── archive.html
83
+ │   ├── blog.html
84
+ │   ├── default.html
85
+ │   ├── month.html
86
+ │   ├── page.html
87
+ │   ├── post.html
88
+ │   └── tag_page.html
89
+
90
+
91
+ ---
92
+
93
+ #### Includes
94
+ The includes are fairly self explanatory aside from info/item. `info.html` is the post information include in the `post` layout. Item is the blog item that gets outputted on the homepage. `tag-cloud.html` is the recurrrent tag list you see on the homepage/throughout the sites pages.
95
+ ######File structure
96
+
97
+
98
+ ├── _includes
99
+ │   ├── breadcrumbs.html
100
+ │   ├── footer.html
101
+ │   ├── head.html
102
+ │   ├── header.html
103
+ │   ├── info.html
104
+ │   ├── item.html
105
+ │   └── tag-cloud.html
106
+
107
+
108
+ ---
109
+
110
+
111
+ #### Sass
112
+ Sass is split into logical sections. The `main.scss` file is in `/assets/`.
113
+ To overwrite these files, add one with the equivalent name to your `_sass` directory (make one if it doesn't already exist). Jekyll will look in here before defaulting back to the theme files.
114
+
115
+ ##### Sass Folder Structure
116
+
117
+ ├── _sass
118
+ │   ├── _blog.scss
119
+ │   ├── _footer.scss
120
+ │   ├── _fundamentals.scss
121
+ │   ├── _globals.scss
122
+ │   ├── _header.scss
123
+ │   ├── _post.scss
124
+ │   ├── _syntax.scss
125
+ │   ├── _tables.scss
126
+ │   ├── _typography.scss
127
+ │   └── _variables.scss
128
+
129
+ ###### Variables
130
+
131
+ The first file to customise would be `_variables.scss`, you're probably best copying it from the repo and editing it. You can overwrite any of these variables with your own. There are four palette variables:
132
+
133
+ - `$base: #f5f2f2;` - the body background colour.
134
+ - `$textColor: #444;`
135
+ - `$accent: #4845DF;` - the purple colour
136
+ - `$tertiary: lighten($accent, 5%);` - lighter version of accent
137
+
138
+ There is one breakpoint: `$break: 600px;`
139
+
140
+ `$font` uses a system font stack. Change this to whatever you wish.
141
+ `$font: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;`
142
+
143
+
144
+
145
+ ## Contributing
146
+
147
+ Bug reports and pull requests are welcome on [GitHub](https://github.com/theomjones/fundamental). 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.
148
+
149
+ ## License
150
+
151
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
152
+
153
+ ## More Screenshots
154
+ ### Blog Post
155
+ ![alt text](http://theomjones.com/fundamental/assets/images/screenshot2.png)
156
+
157
+ ### 404 Page
158
+ ![alt text](http://theomjones.com/fundamental/assets/images/screenshot3.png)
@@ -0,0 +1,22 @@
1
+
2
+ {% if site.enabled.breadcrumbs %}
3
+ {% capture url_parts %} {{ page.url | remove: "/index.html" | replace:'/'," " }}{% endcapture %}
4
+ {% capture num_parts %}{{ url_parts | number_of_words | minus: 1 }}{% endcapture %}
5
+ {% assign previous="" %}
6
+ <ol class="crumbs">
7
+ {% if num_parts == "0" or num_parts == "-1" %}
8
+ <li><a href="{{ '/' | relative_url }}">Home</a> &nbsp; </li>
9
+ {% else %}
10
+ <li><a href="{{ '/' | relative_url }}">Home</a> / </li>
11
+
12
+ {% for unused in page.content limit:num_parts %}
13
+ {% capture first_word %}{{ url_parts | truncatewords:1 | remove:"..."}}{% endcapture %}
14
+ {% capture previous %}{{ previous }}/{{ first_word }}{% endcapture %}
15
+
16
+ <li><a href="{{previous | relative_url }}">{{ first_word }}</a> </li>
17
+ {% capture url_parts %}{{ url_parts | remove_first:first_word }}{% endcapture %}
18
+ {% endfor %}
19
+ {% endif %}
20
+ <li>/ {{page.title}}</li>
21
+ </ol>
22
+ {% endif %}
@@ -0,0 +1,3 @@
1
+ <footer>
2
+ <p>Fundamental was built with &hearts; by <a href="http://theomjones.com">Theo</a>. For everyone.</p>
3
+ </footer>
@@ -0,0 +1,11 @@
1
+ <head>
2
+ <meta charset="UTF-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
4
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
5
+ <link rel="stylesheet" href="{{ "assets/main.css" | relative_url }}">
6
+ {% if site.favicon == true %}
7
+ <link rel="shortcut icon" href="{{site.baseurl}}/favicon.ico" type="image/x-icon">
8
+ <link rel="icon" href="{{site.baseurl}}/favicon.ico" type="image/x-icon">
9
+ {% endif %}
10
+ {% seo %}
11
+ </head>
@@ -0,0 +1,17 @@
1
+ <header>
2
+ <!-- <img class="logo" src="{% link assets/images/logo.svg %}" alt="Logo"> -->
3
+ <div class="title"><a href="{{ '/' | relative_url }}">{{ site.title }}</a></div>
4
+ <nav>
5
+ <ul>
6
+ {% assign menu_items = site.pages | sort: 'order' %}
7
+ {% for p in menu_items %}
8
+ {% if p.menu == true %}
9
+ <li><a href="{{ p.url | relative_url }}"{% if p.url == page.url %}class="active"{% endif %}>{{ p.title }}</a></li>
10
+ {% endif %}
11
+ {% endfor %}
12
+ {% if site.enabled.rss == true %}
13
+ <li><a href="{{ "/feed.xml" | relative_url }}">RSS</a></li>
14
+ {% endif %}
15
+ </ul>
16
+ </nav>
17
+ </header>
@@ -0,0 +1,13 @@
1
+ <div class="info">
2
+ <span>{{ page.date | date_to_string }}</span>
3
+ {% if site.enabled.tags == true %}
4
+ &EmptyVerySmallSquare;
5
+ {% if page.tags %}
6
+ <span class="tags">
7
+ {% for t in page.tags %}
8
+ <a href="{{site.baseurl}}/tag/{{t | downcase }}">{{t}}</a>{% if forloop.last == false %},{% endif %}
9
+ {% endfor %}
10
+ </span>
11
+ {% endif %}
12
+ {% endif %}
13
+ </div>
@@ -0,0 +1,18 @@
1
+ <li class="item">
2
+ <div class="item-head">
3
+ <h2><a href="{{ p.url | relative_url }}">{{ p.title }}</a></h2>
4
+ <span>{{ p.date | date_to_string }}</span>
5
+ {% if site.enabled.tags == true %}
6
+ &EmptyVerySmallSquare;
7
+ {% if p.tags %}
8
+ <span class="tags">
9
+ {% for t in p.tags %}
10
+ <a href="{{site.baseurl}}/tag/{{t | downcase }}">{{t}}</a>{% if forloop.last == false %},{% endif %}
11
+ {% endfor %}
12
+ </span>
13
+ {% endif %}
14
+ {% endif %}
15
+ <!-- <span><a href="https://twitter.com/{{site.author.twitter}}">@{{ site.author.twitter }}</a></span> -->
16
+ </div>
17
+ <p>{{ p.excerpt | truncatewords: 20 }}</p>
18
+ </li>
@@ -0,0 +1,9 @@
1
+ {% if site.enabled.tags == true %}
2
+ <div class="tag-cloud">
3
+ <h3>Tags</h3>
4
+ {% for tag in site.tags %}
5
+ {% comment %} Do not remove the [0]. This breaks Jekyll :( {% endcomment %}
6
+ <a href="{{site.baseurl}}/tag/{{tag[0] | downcase }}">{{tag[0]}}</a>
7
+ {% endfor %}
8
+ </div>
9
+ {% endif %}
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ {% include breadcrumbs.html %}
5
+ <h1>Archive of posts from {{ page.date | date: "%Y" }}</h1>
6
+
7
+ <ul class="posts">
8
+ {% for post in page.posts %}
9
+ <li>
10
+ <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
11
+ <a class="post-link" href="{{ post.url | relative_url }}">{{ post.title }}</a>
12
+ </li>
13
+ {% endfor %}
14
+ </ul>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
6
+ <div class="flex">
7
+ {% include tag-cloud.html %}
8
+ <!-- Post Loop -->
9
+ <ul class="post-loop">
10
+ {% for p in site.posts %}
11
+ {% include item.html %}
12
+ {% endfor %}
13
+ </ul>
14
+ </div>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ {% include head.html %}
4
+ <body>
5
+ {% include header.html %}
6
+ <main>
7
+ <div class="container">
8
+ {{ content }}
9
+ </div>
10
+ </main>
11
+ {% include footer.html %}
12
+ </body>
13
+ </html>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ {% include breadcrumbs.html %}
5
+ <h1>{{ page.date | date: "%B" }}'s Archive</h1>
6
+
7
+ <ul class="posts">
8
+ {% for post in page.posts %}
9
+ <li>
10
+ <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
11
+ <a class="post-link" href="{{ post.url | relative_url }}">{{ post.title }}</a>
12
+ </li>
13
+ {% endfor %}
14
+ </ul>
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% include breadcrumbs.html %}
6
+
7
+ {{ content }}
8
+
9
+ {% include tag-cloud.html %}
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% include breadcrumbs.html %}
6
+ <h1>{{ page.title }}</h1>
7
+ {% include info.html %}
8
+ {{ content }}
9
+
10
+ <div class="post-navigation">
11
+ {% if page.previous.url %}
12
+ <a class="prev" href="{{ page.previous.url | relative_url }}">&laquo; {{page.previous.title}}</a>
13
+ {% endif %}
14
+ {% if page.next.url %}
15
+ <a class="next" href="{{page.next.url | relative_url }}">{{page.next.title}} &raquo;</a>
16
+ {% endif %}
17
+ </div>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ type: 'tag_page'
4
+ ---
5
+
6
+ <h1>#{{ page.title }}</h1>
7
+ <ul class="posts">
8
+ {% for post in page.posts %}
9
+ <li>
10
+ <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a> -
11
+ <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
12
+ </li>
13
+ {% endfor %}
14
+ </ul>
data/_sass/_blog.scss ADDED
@@ -0,0 +1,25 @@
1
+ .post-loop {
2
+ padding-left: 0;
3
+ li {
4
+ list-style: none;
5
+ }
6
+ h2 {
7
+ a {
8
+ text-decoration: none;
9
+ }
10
+ }
11
+ }
12
+
13
+ .item-head {
14
+ margin-bottom: 15px;
15
+ }
16
+
17
+ .item {
18
+ margin: 50px 0;
19
+ padding-bottom: 20px;
20
+ border-bottom: dotted 1px rgba($textColor, .2);
21
+ @media screen and (max-width: $break) {
22
+ margin: 15px 0;
23
+ padding-bottom: 0;
24
+ }
25
+ }
@@ -0,0 +1,4 @@
1
+ footer {
2
+ text-align: center;
3
+ padding: 0 20px;
4
+ }
@@ -0,0 +1,56 @@
1
+ html {
2
+ -ms-text-size-adjust: 100%;
3
+ -webkit-text-size-adjust: 100%;
4
+ }
5
+ body {
6
+ -moz-osx-font-smoothing: grayscale;
7
+ -webkit-font-smoothing: antialiased;
8
+ margin: 20px 0;
9
+ }
10
+ h1,
11
+ h2,
12
+ h3,
13
+ h4,
14
+ p,
15
+ blockquote,
16
+ figure,
17
+ ol,
18
+ ul {
19
+ margin: 0;
20
+ padding: 0;
21
+ }
22
+ main,
23
+ li {
24
+ display: block;
25
+ }
26
+
27
+ strong {
28
+ font-weight: bold;
29
+ }
30
+ a,
31
+ button {
32
+ color: inherit;
33
+ transition: .2s;
34
+ }
35
+
36
+ button {
37
+ overflow: visible;
38
+ border: 0;
39
+ font: inherit;
40
+ -webkit-font-smoothing: inherit;
41
+ letter-spacing: inherit;
42
+ background: none;
43
+ cursor: pointer;
44
+ }
45
+ ::-moz-focus-inner {
46
+ padding: 0;
47
+ border: 0;
48
+ }
49
+ :focus {
50
+ outline: 0;
51
+ }
52
+ img {
53
+ max-width: 100%;
54
+ height: auto;
55
+ border: 0;
56
+ }
@@ -0,0 +1,82 @@
1
+ body {
2
+ font-family: $font;
3
+ font-size: 1.2rem;
4
+ color: $textColor;
5
+ background: $base;
6
+ @media screen and (max-width: $break) {
7
+ font-size: 1.2rem;
8
+ }
9
+ // sticky footer
10
+ display: flex;
11
+ flex-direction: column;
12
+ min-height: 100vh;
13
+ overflow-x: hidden;
14
+ }
15
+
16
+ main {
17
+ flex: 1;
18
+ }
19
+
20
+ .flex {
21
+ display: flex;
22
+ justify-content: space-between;
23
+ @media screen and (max-width: $break) {
24
+ flex-wrap: wrap-reverse;
25
+ }
26
+ }
27
+
28
+ //Structure
29
+ .container {
30
+ max-width: 800px;
31
+ margin: 0 auto;
32
+ padding: 5rem 20px;
33
+ @media screen and (max-width: $break) {
34
+ padding: 1.5rem 20px;
35
+ }
36
+ }
37
+
38
+ hr {
39
+ border: none;
40
+ background: rgba($textColor, .2);
41
+ height: 3px;
42
+ margin: 30px 0;
43
+ }
44
+
45
+ img {
46
+ border-radius: 5px;
47
+ }
48
+
49
+ // Crumbs
50
+
51
+ .crumbs {
52
+ padding: 0;
53
+ margin-top: 2rem;
54
+ @media screen and (max-width: $break) {
55
+ font-size: .9rem;
56
+ }
57
+ li {
58
+ display: inline-block;
59
+ list-style: none;
60
+ }
61
+ }
62
+
63
+ .tag-cloud {
64
+ margin-right: 50px;
65
+ margin-top: 10px;
66
+ a {
67
+ display: block;
68
+ margin-top: 4px;
69
+ }
70
+ h3 {
71
+ font-size: 1.5rem;
72
+ }
73
+ }
74
+
75
+ ._404 {
76
+ display: flex;
77
+ justify-content: flex-start;
78
+ }
79
+
80
+ .post-list {
81
+ @extend .tag-cloud;
82
+ }
@@ -0,0 +1,50 @@
1
+ header {
2
+ width: 100%;
3
+ max-width: 1200px;
4
+ margin: 0 auto;
5
+ display: flex;
6
+ justify-content: flex-end;
7
+ align-content: center;
8
+ flex-wrap: wrap;
9
+ @media screen and (max-width: $break) {
10
+ justify-content: flex-start;
11
+ ul {
12
+ margin: 0 0 0 10px;
13
+ }
14
+ }
15
+ ul {
16
+ list-style: none;
17
+ padding-left: 0;
18
+ margin-right: 50px;
19
+ @media screen and (max-width: 400px) {
20
+ margin-left: 10px;
21
+ margin-top: 5px;
22
+ }
23
+ }
24
+ li {
25
+ display: inline-block;
26
+ margin: 0 10px;
27
+ }
28
+ }
29
+
30
+ .title {
31
+ margin: auto;
32
+ margin-left: 50px;
33
+ @media screen and (max-width: 400px) {
34
+ margin-left: 20px;
35
+ }
36
+ a {
37
+ text-decoration: none;
38
+ color: $textColor;
39
+ }
40
+ }
41
+
42
+ .active {
43
+ position: relative;
44
+ &:before {
45
+ content: '‥';
46
+ position: absolute;
47
+ bottom: -15px;
48
+ left: 45%;
49
+ }
50
+ }
data/_sass/_post.scss ADDED
@@ -0,0 +1,17 @@
1
+ .post-navigation {
2
+ margin: 60px auto auto auto;
3
+ display: flex;
4
+ width: 100%;
5
+ flex-wrap: wrap;
6
+ justify-content: space-between;
7
+ a {
8
+ margin: 10px 0;
9
+ font-weight: 800;
10
+ font-size: 1rem;
11
+ }
12
+ }
13
+
14
+ .info {
15
+ margin-bottom: 60px;
16
+ margin-top: -45px;
17
+ }
@@ -0,0 +1,64 @@
1
+ .highlight .c { color: #999988; font-style: italic } /* Comment */
2
+ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
3
+ .highlight .k { font-weight: bold } /* Keyword */
4
+ .highlight .o { font-weight: bold } /* Operator */
5
+ .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
6
+ .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
7
+ .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
8
+ .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
9
+ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
10
+ .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
11
+ .highlight .ge { font-style: italic } /* Generic.Emph */
12
+ .highlight .gr { color: #aa0000 } /* Generic.Error */
13
+ .highlight .gh { color: #999999 } /* Generic.Heading */
14
+ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
15
+ .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
16
+ .highlight .go { color: #888888 } /* Generic.Output */
17
+ .highlight .gp { color: #555555 } /* Generic.Prompt */
18
+ .highlight .gs { font-weight: bold } /* Generic.Strong */
19
+ .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
20
+ .highlight .gt { color: #aa0000 } /* Generic.Traceback */
21
+ .highlight .kc { font-weight: bold } /* Keyword.Constant */
22
+ .highlight .kd { font-weight: bold } /* Keyword.Declaration */
23
+ .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
24
+ .highlight .kr { font-weight: bold } /* Keyword.Reserved */
25
+ .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
26
+ .highlight .m { color: #009999 } /* Literal.Number */
27
+ .highlight .s { color: #d14 } /* Literal.String */
28
+ .highlight .na { color: #008080 } /* Name.Attribute */
29
+ .highlight .nb { color: #0086B3 } /* Name.Builtin */
30
+ .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
31
+ .highlight .no { color: #008080 } /* Name.Constant */
32
+ .highlight .ni { color: #800080 } /* Name.Entity */
33
+ .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
34
+ .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
35
+ .highlight .nn { color: #555555 } /* Name.Namespace */
36
+ .highlight .nt { color: #000080 } /* Name.Tag */
37
+ .highlight .nv { color: #008080 } /* Name.Variable */
38
+ .highlight .ow { font-weight: bold } /* Operator.Word */
39
+ .highlight .w { color: #bbbbbb } /* Text.Whitespace */
40
+ .highlight .mf { color: #009999 } /* Literal.Number.Float */
41
+ .highlight .mh { color: #009999 } /* Literal.Number.Hex */
42
+ .highlight .mi { color: #009999 } /* Literal.Number.Integer */
43
+ .highlight .mo { color: #009999 } /* Literal.Number.Oct */
44
+ .highlight .sb { color: #d14 } /* Literal.String.Backtick */
45
+ .highlight .sc { color: #d14 } /* Literal.String.Char */
46
+ .highlight .sd { color: #d14 } /* Literal.String.Doc */
47
+ .highlight .s2 { color: #d14 } /* Literal.String.Double */
48
+ .highlight .se { color: #d14 } /* Literal.String.Escape */
49
+ .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
50
+ .highlight .si { color: #d14 } /* Literal.String.Interpol */
51
+ .highlight .sx { color: #d14 } /* Literal.String.Other */
52
+ .highlight .sr { color: #009926 } /* Literal.String.Regex */
53
+ .highlight .s1 { color: #d14 } /* Literal.String.Single */
54
+ .highlight .ss { color: #990073 } /* Literal.String.Symbol */
55
+ .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
56
+ .highlight .vc { color: #008080 } /* Name.Variable.Class */
57
+ .highlight .vg { color: #008080 } /* Name.Variable.Global */
58
+ .highlight .vi { color: #008080 } /* Name.Variable.Instance */
59
+ .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
60
+
61
+ /* Make line numbers unselectable: excludes line numbers from copy-paste user ops */
62
+ .highlight .lineno {-webkit-user-select: none;-moz-user-select: none; -o-user-select: none;}
63
+ .lineno::-moz-selection {background-color: transparent;} /* Mozilla specific */
64
+ .lineno::selection {background-color: transparent;} /* Other major browsers */
@@ -0,0 +1,26 @@
1
+ table:not(figure) {
2
+ border-collapse: collapse;
3
+ margin: 20px 0;
4
+ border-bottom: 1px solid rgba($textColor, .3);
5
+ th {
6
+ text-align: left;
7
+ padding: 10px 15px;
8
+ border-bottom: solid 2px rgba($textColor, .3);
9
+ }
10
+ tr {
11
+ border-bottom: 1px solid rgba($textColor, .1);
12
+ td:first-child {
13
+ border-left: 1px solid rgba($textColor, .3);
14
+ }
15
+ }
16
+ td {
17
+ padding: 10px 15px;
18
+ border-right: 1px solid rgba($textColor, .3);
19
+ }
20
+ }
21
+
22
+ .highlight {
23
+ table, tr, td, thead, th {
24
+ border: none;
25
+ }
26
+ }
@@ -0,0 +1,98 @@
1
+ h1, h2, h3, h4, h5, h6 {
2
+ margin-top: 50px;
3
+ margin-bottom: 20px;
4
+ }
5
+
6
+ h1 {
7
+ font-size: 4rem;
8
+ margin: 30px 0 50px 0;
9
+ color: $accent;
10
+ @media screen and (max-width: $break) {
11
+ font-size: 3rem;
12
+ margin-top: 5px;
13
+ }
14
+ }
15
+ h2 {
16
+ font-size: 3rem;
17
+ margin: 10px 0;
18
+ @media screen and (max-width: $break) {
19
+ font-size: 2.5rem;
20
+ }
21
+ }
22
+ h3 {
23
+ font-size: 2.5rem;
24
+ }
25
+ h4 {
26
+ font-size: 2rem;
27
+ }
28
+
29
+ h5 {
30
+ font-size: 1.5rem;
31
+ }
32
+
33
+ h6 {
34
+ font-size: 1rem;
35
+ }
36
+
37
+ p {
38
+ line-height: 1.9;
39
+ margin: 25px 0;
40
+ @media screen and (max-width: $break) {
41
+ margin: 15px 0;
42
+ }
43
+ }
44
+
45
+ a {
46
+ color: $accent;
47
+ &:hover {
48
+ opacity: .7;
49
+ }
50
+ }
51
+
52
+ blockquote {
53
+ font-size: 2rem;
54
+ opacity: .8;
55
+ padding: 5px 30px;
56
+ border-left: 4px solid rgba($tertiary, .6);
57
+ margin: 3rem 0;
58
+ background: rgba($tertiary, .1);
59
+ p {
60
+ line-height: 1.5;
61
+ }
62
+ }
63
+
64
+ figure {
65
+ overflow-x: scroll;
66
+ background: lighten($accent, 35%);
67
+ padding: 10px 10px 0 10px;
68
+ border-radius: 3px;
69
+ }
70
+
71
+
72
+ ol, ul {
73
+ padding-left: 25px;
74
+ li {
75
+ list-style-position: outside;
76
+ margin: 8px 0;
77
+ display: list-item;
78
+ }
79
+ }
80
+
81
+ ol {
82
+ li {
83
+ list-style: decimal;
84
+ list-style-position: outside;
85
+ }
86
+ }
87
+
88
+ ul {
89
+ li {
90
+ list-style: disc;
91
+ list-style-position: outside;
92
+ }
93
+ }
94
+
95
+ code {
96
+ background: lighten($accent, 30%);
97
+ padding: 0;
98
+ }
@@ -0,0 +1,12 @@
1
+ $font: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
2
+
3
+
4
+ //Palette
5
+
6
+ $base: #f5f2f2;
7
+ $textColor: #444;
8
+ $accent: #4845DF;
9
+ $tertiary: lighten($accent, 5%);
10
+
11
+ //Structure
12
+ $break: 600px;
@@ -0,0 +1 @@
1
+ <svg width="690" height="62" viewBox="0 0 690 62" xmlns="http://www.w3.org/2000/svg"><path d="M16.215 60V37.67h23.2V26.01h-23.2V12.395H41.74V.11H.983V60h15.232zM70.57.11H55.338v38.64c0 13.447 10.21 22.288 25.816 22.288 15.564 0 25.773-8.84 25.773-22.288V.11h-15.23v37.02c0 6.974-3.778 11.124-10.543 11.124-6.807 0-10.584-4.15-10.584-11.123V.11zM137.293 60V24.846h.332L163.15 60h12.036V.11h-14.443v34.822h-.332L135.01.11h-12.16V60h14.443zM191.11.11h24.32c18.096 0 28.72 10.5 28.72 29.592C244.15 48.835 233.486 60 215.43 60h-24.32V.11zm15.23 12.285v35.32h7.098c9.92 0 15.232-6.018 15.232-17.97 0-11.25-5.603-17.35-15.232-17.35h-7.097zM294.855 60l-3.777-13.157h-19.59L267.67 60h-15.524L272.276.11h18.635L311.04 60h-16.186zm-13.738-47.19l-6.682 23.076h13.655l-6.642-23.076h-.332zM389.386 60V.11h-17.6L356.68 38.584h-.332L341.24.11h-17.597V60h13.405V22.605h.333l14.776 36.772h8.716l14.817-36.772h.29V60h13.405zm56.97-12.285h-25.817V35.513h24.28V24.307h-24.28V12.395h25.815V.11h-41.048V60h41.048V47.715zM476.263 60V24.846h.332L502.12 60h12.037V.11h-14.443v34.822h-.332L473.982.11h-12.16V60h14.442zm82.91 0V12.395h16.52V.11h-48.23v12.285h16.52V60h15.19zm61.245 0l-3.778-13.157h-19.59L593.234 60H577.71L597.84.11h18.636L636.606 60h-16.187zm-13.74-47.19L600 35.886h13.654l-6.64-23.076h-.333zm82.538 34.905H664.44V.11h-15.232V60h40.01V47.715z" fill="#6e6cdd" fill-rule="evenodd"/></svg>
data/assets/main.scss ADDED
@@ -0,0 +1,19 @@
1
+ ---
2
+ ---
3
+
4
+ @import 'fundamentals';
5
+
6
+ @import 'variables';
7
+
8
+ @import 'syntax';
9
+ @import 'globals';
10
+ @import 'typography';
11
+
12
+ //Components
13
+ @import 'header';
14
+ @import 'footer';
15
+ @import 'tables';
16
+
17
+ //Pages
18
+ @import "blog";
19
+ @import 'post';
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fundamental
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Theo M Jones
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-07-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll-archives
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.1.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.1.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: jekyll-seo-tag
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.12'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.12'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.0'
83
+ description:
84
+ email:
85
+ - theomjones@gmail.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - LICENSE.txt
91
+ - README.md
92
+ - _includes/breadcrumbs.html
93
+ - _includes/footer.html
94
+ - _includes/head.html
95
+ - _includes/header.html
96
+ - _includes/info.html
97
+ - _includes/item.html
98
+ - _includes/tag-cloud.html
99
+ - _layouts/archive.html
100
+ - _layouts/blog.html
101
+ - _layouts/default.html
102
+ - _layouts/month.html
103
+ - _layouts/page.html
104
+ - _layouts/post.html
105
+ - _layouts/tag_page.html
106
+ - _sass/_blog.scss
107
+ - _sass/_footer.scss
108
+ - _sass/_fundamentals.scss
109
+ - _sass/_globals.scss
110
+ - _sass/_header.scss
111
+ - _sass/_post.scss
112
+ - _sass/_syntax.scss
113
+ - _sass/_tables.scss
114
+ - _sass/_typography.scss
115
+ - _sass/_variables.scss
116
+ - assets/images/logo.svg
117
+ - assets/main.scss
118
+ homepage: https://theomjones.com/fundamental
119
+ licenses:
120
+ - MIT
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options: []
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ requirements: []
137
+ rubyforge_project:
138
+ rubygems_version: 2.6.11
139
+ signing_key:
140
+ specification_version: 4
141
+ summary: A totally minimal Jekyll theme. Just the fundamentals.
142
+ test_files: []