fundamental 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []