octopress-genesis-theme 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +35 -0
  6. data/Rakefile +2 -0
  7. data/assets/config.yml +15 -0
  8. data/assets/includes/archive-post.html +19 -0
  9. data/assets/includes/head.html +10 -0
  10. data/assets/includes/index-post.html +16 -0
  11. data/assets/includes/post-nav.html +18 -0
  12. data/assets/includes/primary-nav.html +9 -0
  13. data/assets/includes/site-footer.html +12 -0
  14. data/assets/includes/site-header.html +4 -0
  15. data/assets/layouts/base.html +13 -0
  16. data/assets/layouts/category-index.html +16 -0
  17. data/assets/layouts/default.html +15 -0
  18. data/assets/layouts/page.html +18 -0
  19. data/assets/layouts/paginated-posts.html +18 -0
  20. data/assets/layouts/post.html +28 -0
  21. data/assets/pages/archive.html +22 -0
  22. data/assets/pages/index.html +11 -0
  23. data/assets/stylesheets/_colors.scss +4 -0
  24. data/assets/stylesheets/_layout.scss +63 -0
  25. data/assets/stylesheets/_mixins.scss +62 -0
  26. data/assets/stylesheets/_sizes.scss +15 -0
  27. data/assets/stylesheets/_theme.scss +19 -0
  28. data/assets/stylesheets/index.scss +5 -0
  29. data/demo/Gemfile +5 -0
  30. data/demo/_config.yml +6 -0
  31. data/demo/_plugins/theme/config.yml +15 -0
  32. data/demo/_plugins/theme/stylesheets/_layout.scss +63 -0
  33. data/demo/_plugins/theme/stylesheets/_theme.scss +19 -0
  34. data/demo/_posts/2014-08-03-dang-that-was-fast.markdown +10 -0
  35. data/demo/_posts/2014-08-03-hi-guys.markdown +7 -0
  36. data/lib/octopress-genesis/category-generator.rb +157 -0
  37. data/lib/octopress-genesis/version.rb +5 -0
  38. data/lib/octopress-genesis.rb +26 -0
  39. data/octopress-genesis.gemspec +37 -0
  40. metadata +292 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 07dc3fcb2e6ce1975f001de0fdb9a527cc0c5b0e
4
+ data.tar.gz: 200f33e9fb039f84365836909e371f4726dba048
5
+ SHA512:
6
+ metadata.gz: ad5fd96e4409cab63413616a0558f5f7056b85e8ac6519fe4f306a7133b9d3f42cba83b03349aea88ae8a18fdb6745cdd18464526f85d570645b1e44dde53f10
7
+ data.tar.gz: ffe997c8f177c41406fb82f05988ed998f7b6a55c482610e6b453a3e435fbabab4b53a3a544df2405bf3be89ae13eb5977088eb616dea881e44dbbb88834032b
data/.gitignore ADDED
@@ -0,0 +1,24 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
23
+ _site
24
+ .sass-cache
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in octopress-genesis.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Brandon Mathis
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # Octopress Genesis (A work in progress)
2
+
3
+ A new theme build on Octopress Ink.
4
+
5
+ TODO:
6
+ - Add support for Javascript embedded comment integration.
7
+ - Add support for social embeds.
8
+ - Add tall site footer design with support for social integration.
9
+ - Add stylesheets.
10
+ - Add page layout.
11
+ - Add sections (recent posts).
12
+ - Add system for searching.
13
+ - Add footer navigation.
14
+
15
+ ## Installation
16
+
17
+ To play around:
18
+
19
+ 1. Clone this repository, `git clone git@github.com:octopress/genesis-theme`
20
+ 2. Install gems, `bundle install`
21
+ 3. Check out the demo `cd demo; bundle exec jekyll build`
22
+
23
+ Note: this may not work, it's in active development.
24
+
25
+ ## Usage
26
+
27
+ TODO: Write usage instructions here
28
+
29
+ ## Contributing
30
+
31
+ 1. Fork it ( https://github.com/octopress/genesis-theme/fork )
32
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
33
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
34
+ 4. Push to the branch (`git push origin my-new-feature`)
35
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/assets/config.yml ADDED
@@ -0,0 +1,15 @@
1
+ # Settings for main header
2
+ header:
3
+ title: My Octopress Blog
4
+ subtitle: A clever subtitle (optional)
5
+
6
+ # Links for main navigation
7
+ nav:
8
+ - { url: '/', title: 'Home' }
9
+ - { url: '/archive', title: 'Archive' }
10
+ - { url: '/feed', title: 'RSS' }
11
+
12
+ # Settings for category index generator
13
+ category:
14
+ prefix: Category
15
+ url: category
@@ -0,0 +1,19 @@
1
+ <article class="archive {{ post.class }}" role="article">
2
+ <header class="archive-entry-header">
3
+ <h1 class="archive-entry-title">{{ post.title_link }}</h1>
4
+ <div class="archive-entry-date">{{ post.date_html }}</div>
5
+ </header>
6
+
7
+ {% assign bullet = " <span class='separator'>&bull;</span> " %}
8
+
9
+ <footer class='archive-entry-footer' role='contentinfo'>
10
+ <p>
11
+ {% filter join_lines:bullet | compact_newlines %}
12
+ {{ post.permalink }}
13
+ {% if categories and categories != '' %}
14
+ <span class="article-categories">posted in {{ categories }}</span>
15
+ {% endif %}
16
+ {% endfilter %}
17
+ </p>
18
+ </footer>
19
+ </article>
@@ -0,0 +1,10 @@
1
+ <meta charset="utf-8">
2
+ {% if site.author %}<meta name="author" content="{{ site.author }}">{% endif %}
3
+ <meta name="HandheldFriendly" content="True">
4
+ <meta name="MobileOptimized" content="320">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <link href="{{ page.url | canonical_url }}" rel="canonical">
7
+ <meta name='generator' content='{{ octopress.version }}'>
8
+ {% if page.description %}<meta name="description" content="{{ page.description | strip_html }}">{% endif %}
9
+ {% css_asset_tag %}
10
+ {% yield head %}
@@ -0,0 +1,16 @@
1
+ {% assign post_content = (theme.index.excerpt_posts ? post.excerpt : post.content) %}
2
+ {% assign excerpted = true if post_content != post.content %}
3
+ {% assign permalink_label = (excerpted ? theme.index.excerpt_label : theme.index.permalink_label) %}
4
+
5
+ <article class="entry {% return post.class | join: " " | classify if post.class %}" role="article">
6
+ <header class="entry-header">
7
+ <h1 class="entry-title">{{ post.title_link }}</h1>
8
+ <div class="entry-meta">{{ post.date_time_html }}</div>
9
+ </header>
10
+
11
+ <div class="entry-content">{{ post_content }}</div>
12
+
13
+ <footer class='entry-footer'>
14
+ <a class='permalink' rel="full-article" href="{{ post.url }}">{{ permalink_label }}</a>
15
+ </footer>
16
+ </article>
@@ -0,0 +1,18 @@
1
+ {% if page.previous.url or page.next.url %}
2
+ <nav role="pagination" class="post-nav">
3
+ {% if page.previous.url %}
4
+ <a class="previous-post" href="{{page.previous.url}}" title="Previous Article: {{page.previous.title_text}}">
5
+ <div class=-'previous-post-post-marker'><span class='previous-post-arrow'>&larr;</span> Previous Article</div>
6
+ <h6 class='previous-post-title'>{{page.previous.title_html}}</h6>
7
+ <div class="previous-post-date">{{ page.previous.date_html }}</div>
8
+ </a>
9
+ {% endif %}
10
+ {% if page.next.url %}
11
+ <a class="next-post" href="{{page.next.url}}" title="Next Article: {{page.next.title_text}}">
12
+ <div class=-'next-post-post-marker'>Next Article <span class='next-post-arrow'>&rarr;</span></div>
13
+ <h6 class='next-post-title'>{{page.next.title_html}}</h6>
14
+ <div class="next-post-date">{{ page.next.date_html }}</div>
15
+ </a>
16
+ {% endif %}
17
+ </nav>
18
+ {% endif %}
@@ -0,0 +1,9 @@
1
+ <nav class='site-nav' role="navigation">
2
+ {% for link in theme.nav %}
3
+ {% assign url = link.url | expand_url %}
4
+ {% assign page_url = page.url | expand_url | remove:'index.html' %}
5
+ {% assign class = (url == page_url ? 'here ' : '') %}
6
+ {% assign class += link.class | classify if link.class %}
7
+ <a class="primary-nav-link {{ class }}" href="{{ url }}">{{ link.title }}</a>
8
+ {% endfor %}
9
+ </nav>
@@ -0,0 +1,12 @@
1
+ <footer class='site-footer' role="contentinfo">
2
+ <p class='footer-copyright'>Copyright © {{ site.time | date: "%Y" }} - {{ site.author }} - Powered by Octopress</p>
3
+ {% if theme.footer-nav %}
4
+ <nav class='footer-nav' role="navigation">
5
+ {% for link in theme.footer-nav %}
6
+ {% assign url = link.url | expand_url %}
7
+ {% assign class = link.class | classify if link.class %}
8
+ <a class="primary-nav-link {{ class }}" href="{{ url }}">{{ link.title }}</a>
9
+ {% endfor %}
10
+ </nav>
11
+ {% endif %}
12
+ </footer>
@@ -0,0 +1,4 @@
1
+ <header role="banner" class="site-header">
2
+ <h1 class="site-title"><a class="site-title-link" href="{% return site.root || '/' %}">{{ theme.header.title}}</a></h1>
3
+ {% if theme.header.subtitle %}<p class='site-subtitle'>{{ theme.header.subtitle }}</p>{% endif %}
4
+ </header>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{% return page.lang || site.lang || 'en' %}">
3
+ <head>
4
+ <title>{% return post.title_text || page.title %}</title>
5
+ {% include theme:head.html | expand_urls %}
6
+ </head>
7
+ <body>
8
+ <div class="site">
9
+ <div class="site-content">{{ content | expand_urls }}</div>
10
+ {% js_asset_tag %}
11
+ </div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,16 @@
1
+ ---
2
+ layout: theme:default
3
+ ---
4
+ <div class="category-archive">
5
+ {% for post in site.categories[page.category] %}
6
+ {% assign post_year = post.date | date: "%Y" %}
7
+ {% if post_year != current_year %}
8
+ {% if current_year %}</div>{% endif %}
9
+ {% assign current_year = post_year %}
10
+ <div class='archive-year'>
11
+ <h2 class='archive-year-heading'>{{ post_year }}</h2>
12
+ {% endif %}
13
+ {% include theme:archive-post.html %}
14
+ {% endfor %}
15
+ </div>
16
+ </div>
@@ -0,0 +1,15 @@
1
+ ---
2
+ layout: theme:base
3
+ ---
4
+ <div class="site-top">
5
+ {% include theme:site-header.html | compact_newlines %}
6
+ {% include theme:primary-nav.html | compact_newlines %}
7
+ </div>
8
+ <div class="site-main">
9
+ <div class="main {% return 'with-sidebar' if sidebar %}">
10
+ <div class="main-content">{{ content }}</div>
11
+ </div>
12
+ </div>
13
+ <div class="site-bottom">
14
+ {% include theme:site-footer.html %}
15
+ </div>
@@ -0,0 +1,18 @@
1
+ ---
2
+ layout: theme:default
3
+ ---
4
+ <article class="page entry {{ page.class }}" role="article">
5
+ <header class="entry-header">
6
+ <h1 class="entry-title">{{ page.title_html }}</h1>
7
+ {% yield header %}
8
+ </header>
9
+
10
+ <div class="entry-content">{{ page.content }}</div>
11
+
12
+ <footer class='entry-footer' role='contentinfo'>
13
+ <div class="entry-meta">{{ page.date_html }}</div>
14
+ </footer>
15
+ </article>
16
+ {% wrap include theme:comments/embed.html if page.comments %}
17
+ <div class='entry-comments'>{{ yield }}</div>
18
+ {% endwrap %}
@@ -0,0 +1,18 @@
1
+ ---
2
+ layout: theme:default
3
+ ---
4
+ <div class="posts-index">
5
+ {% for post in paginator.posts %}
6
+ {% include theme:index-post.html %}
7
+ {% endfor %}
8
+ </div>
9
+
10
+ <nav class="post-index-navigation pagination" role="navigation">
11
+ {% if paginator.next_page %}
12
+ <a class="pagination-prev" title="Older posts" href="{{paginator.next_page_path}}">&larr; Older</a>
13
+ {% endif %}
14
+ <a class='archive-link' href="/archive">Post Archive</a>
15
+ {% if paginator.previous_page %}
16
+ <a class="pagination-next" title="Newer posts" href="{{paginator.previous_page_path}}">Newer &rarr;</a>
17
+ {% endif %}
18
+ </nav>
@@ -0,0 +1,28 @@
1
+ ---
2
+ layout: theme:default
3
+ ---
4
+ <article class="post entry {{ page.class }} {% return 'linkpost' if entry.linkpost %}" role="article">
5
+ <header class="entry-header">
6
+ <h1 class="entry-title">{{ page.title_link }}</h1>
7
+ <div class="entry-meta">{{ page.date_html }}</div>
8
+ {% yield header %}
9
+ </header>
10
+
11
+ <div class="entry-content">{{ page.content }}</div>
12
+
13
+ <footer class='entry-footer' role='contentinfo'>
14
+ <p class="entry-meta">
15
+ {% yield footer %}
16
+ {% assign author = page.author || site.author %}
17
+ {% if author %}
18
+ Written by {{ author }} &bull;
19
+ {% endif %}
20
+ {{ page.date_time_html }}
21
+ {% if page.categories %} &bull; <span class="categories">{{ page.categories | category_links }}</span>{% endif %}
22
+ </p>
23
+ {% include theme:post-nav.html %}
24
+ </footer>
25
+ </article>
26
+ {% wrap include theme:comments/embed.html if post.comments %}
27
+ <div class='entry-comments'>{{ yield }}</div>
28
+ {% endwrap %}
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Archive
3
+ layout: theme:default
4
+ permalink: /archive/
5
+ ---
6
+ <div class="post-archive">
7
+ {% for post in site.posts reverse %}
8
+ {% assign post_year = post.date | date: "%Y" %}
9
+ {% if post_year != current_year %}
10
+ {% if current_year %}</div>{% endif %}
11
+ {% assign current_year = post_year %}
12
+ <div class='archive-year'>
13
+ <h2 class='archive-year-heading'>{{ post_year }}</h2>
14
+ {% endif %}
15
+ {% include theme:archive-post.html %}
16
+ {% endfor %}
17
+ </div>
18
+ </div>
19
+
20
+
21
+
22
+
@@ -0,0 +1,11 @@
1
+ ---
2
+ layout: theme:default
3
+ ---
4
+ <div class="posts-index">
5
+ {% for post in site.posts limit: 10 %}
6
+ {% include theme:index-post.html %}
7
+ {% endfor %}
8
+ </div>
9
+ <nav class="post-index-navigation" role="navigation">
10
+ <a class='archive-link' href="{{ theme.permalinks.archive }}">Post Archive</a>
11
+ </nav>
@@ -0,0 +1,4 @@
1
+ $site-bg: #edefef;
2
+ $main-bg: #f5f6f6;
3
+ $site-text-color: #444;
4
+ $link-color: #4A89DC;
@@ -0,0 +1,63 @@
1
+ * { box-sizing: border-box; }
2
+
3
+ html, body, .site {
4
+ height: 100%;
5
+ width: 100%;
6
+ padding: 0;
7
+ margin: 0;
8
+ }
9
+
10
+ .site {
11
+ position: relative;
12
+ }
13
+
14
+ .site-content {
15
+ width: 100%;
16
+ height: 100%;
17
+ display: table;
18
+ table-layout: fixed;
19
+ }
20
+
21
+ .site-main, .site-top, .site-bottom {
22
+ display: table-row;
23
+ }
24
+
25
+ .site-main {
26
+ height: 100%;
27
+ }
28
+
29
+ .main {
30
+ transition: transform .2s ease-out;
31
+ position: relative;
32
+ z-index: 1;
33
+ height: 100%;
34
+ display: table;
35
+ width: 100%;
36
+ float: right;
37
+ border-top: 1px solid transparent;
38
+ }
39
+
40
+ .site-header, .site-nav, .main-content,
41
+ .site-footer {
42
+ @include pad-box;
43
+ }
44
+
45
+ @include at-least($large) {
46
+ .main-content, .main-sidebar {
47
+ display: table-cell;
48
+ vertical-align: top;
49
+ }
50
+
51
+ .main-sidebar {
52
+ width: $main-sidebar-width;
53
+ }
54
+ }
55
+
56
+ @include at-least($max) {
57
+ .site {
58
+ width: $max;
59
+ margin-left: auto;
60
+ margin-right: auto;
61
+ }
62
+ }
63
+
@@ -0,0 +1,62 @@
1
+ @mixin until($size) {
2
+ $size: $size - 1;
3
+ @media all and (max-width: $size) { @content; }
4
+ }
5
+
6
+ @mixin at-least($size) {
7
+ @media all and (min-width: $size) { @content; }
8
+ }
9
+
10
+ @mixin between($small-width, $large-width) {
11
+ $large-width: $large-width - 1;
12
+ @media (max-width: $large-width) and (min-width: $small-width) { @content; }
13
+ }
14
+
15
+ @mixin pad-box($v: $v-pad-box, $h: $h-pad-box) {
16
+ @if $v {
17
+ @include v-pad-box($v);
18
+ }
19
+ @if $h {
20
+ @include h-pad-box($h);
21
+ }
22
+ }
23
+
24
+ @mixin invert-h-pad($h: $h-pad-box) {
25
+ margin: {
26
+ left: - nth($h, 1);
27
+ right: - nth($h, 1);
28
+ }
29
+ @include at-least($medium) {
30
+ margin: {
31
+ left: - nth($h, 2);
32
+ right: - nth($h, 2);
33
+ }
34
+ }
35
+ }
36
+
37
+ @mixin v-pad-box($v: $v-pad-box) {
38
+ padding: {
39
+ top: nth($v, 1);
40
+ bottom: nth($v, 1);
41
+ }
42
+ @include at-least($medium) {
43
+ padding: {
44
+ top: nth($v, 2);
45
+ bottom: nth($v, 2);
46
+ }
47
+ }
48
+ }
49
+
50
+ @mixin h-pad-box($h: $h-pad-box) {
51
+ padding: {
52
+ left: nth($h, 1);
53
+ right: nth($h, 1);
54
+ }
55
+ @include at-least($medium) {
56
+ padding: {
57
+ left: nth($h, 2);
58
+ right: nth($h, 2);
59
+ }
60
+ }
61
+ }
62
+
@@ -0,0 +1,15 @@
1
+ // Global breakpoints
2
+ $tiny: 320px;
3
+ $small: 600px;
4
+ $medium: 750px;
5
+ $large: 900px;
6
+ $x-large: 1020px;
7
+ $max: 1300px;
8
+
9
+
10
+ // Item widths
11
+ $main-sidebar-width: 300px;
12
+
13
+ $h-pad-box: 10px, 40px;
14
+ $v-pad-box: 10px, 30px;
15
+
@@ -0,0 +1,19 @@
1
+ html {
2
+ background: $site-bg;
3
+ color: $site-text-color;
4
+ @include at-least($max) {
5
+ background: $main-bg;
6
+ }
7
+ }
8
+
9
+ .site-top, .site-bottom {
10
+ background: $site-bg;
11
+ }
12
+
13
+ a {
14
+ color: $link-color;
15
+ }
16
+
17
+ .main {
18
+ background: $main-bg;
19
+ }
@@ -0,0 +1,5 @@
1
+ @import "colors";
2
+ @import "sizes";
3
+ @import "mixins";
4
+ @import "theme";
5
+ @import "layout";
data/demo/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '../'
4
+ gem 'octopress-ink'#, path: '../../ink'
5
+ gem 'jekyll-paginate', path: '../../jekyll-paginate'
data/demo/_config.yml ADDED
@@ -0,0 +1,6 @@
1
+ exclude:
2
+ - Gemfile*
3
+ gems:
4
+ - octopress-genesis
5
+ url: http://example.com/
6
+ paginate: 10
@@ -0,0 +1,15 @@
1
+ # Settings for main header
2
+ header:
3
+ title: My Octopress Blog
4
+ subtitle: A clever subtitle (optional)
5
+
6
+ # Links for main navigation
7
+ nav:
8
+ - { url: '/', title: 'Home' }
9
+ - { url: '/archive', title: 'Archive' }
10
+ - { url: '/feed', title: 'RSS' }
11
+
12
+ # Settings for category index generator
13
+ category:
14
+ prefix: Category
15
+ url: category
@@ -0,0 +1,63 @@
1
+ * { box-sizing: border-box; }
2
+
3
+ html, body, .site {
4
+ height: 100%;
5
+ width: 100%;
6
+ padding: 0;
7
+ margin: 0;
8
+ }
9
+
10
+ .site {
11
+ position: relative;
12
+ }
13
+
14
+ .site-content {
15
+ width: 100%;
16
+ height: 100%;
17
+ display: table;
18
+ table-layout: fixed;
19
+ }
20
+
21
+ .site-main, .site-top, .site-bottom {
22
+ display: table-row;
23
+ }
24
+
25
+ .site-main {
26
+ height: 100%;
27
+ }
28
+
29
+ .main {
30
+ transition: transform .2s ease-out;
31
+ position: relative;
32
+ z-index: 1;
33
+ height: 100%;
34
+ display: table;
35
+ width: 100%;
36
+ float: right;
37
+ border-top: 1px solid transparent;
38
+ }
39
+
40
+ .site-header, .site-nav, .main-content,
41
+ .site-footer {
42
+ @include pad-box;
43
+ }
44
+
45
+ @include at-least($large) {
46
+ .main-content, .main-sidebar {
47
+ display: table-cell;
48
+ vertical-align: top;
49
+ }
50
+
51
+ .main-sidebar {
52
+ width: $main-sidebar-width;
53
+ }
54
+ }
55
+
56
+ @include at-least($max) {
57
+ .site {
58
+ width: $max;
59
+ margin-left: auto;
60
+ margin-right: auto;
61
+ }
62
+ }
63
+
@@ -0,0 +1,19 @@
1
+ html {
2
+ background: $site-bg;
3
+ color: $site-text-color;
4
+ @include at-least($max) {
5
+ background: $main-bg;
6
+ }
7
+ }
8
+
9
+ .site-top, .site-bottom {
10
+ background: $site-bg;
11
+ }
12
+
13
+ a {
14
+ color: $link-color;
15
+ }
16
+
17
+ .main {
18
+ background: $main-bg;
19
+ }
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: theme:post
3
+ title: "Dang That Was Fast"
4
+ date: 2014-08-03T23:18:12-05:00
5
+ categories:
6
+ - 'hi'
7
+ - 'guys'
8
+ ---
9
+
10
+ Wooo new post!
@@ -0,0 +1,7 @@
1
+ ---
2
+ layout: theme:post
3
+ title: "Hi Guys"
4
+ date: 2014-08-03T22:59:25-05:00
5
+ ---
6
+
7
+ Testing!
@@ -0,0 +1,157 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Jekyll category page generator.
4
+ # http://recursive-design.com/projects/jekyll-plugins/
5
+ #
6
+ # Version: 0.1.4 (201101061053)
7
+ #
8
+ # Copyright (c) 2010 Dave Perrett, http://recursive-design.com/
9
+ # Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
10
+ #
11
+ # A generator that creates category pages for jekyll sites.
12
+ #
13
+ # Included filters :
14
+ # - category_links: Outputs the list of categories as comma-separated <a> links.
15
+ #
16
+ # Available theme/config.yml settings :
17
+ # - category:
18
+ # url: The subfolder to build category pages in (default is 'categories').
19
+ # prefix: The string used before the category name in the page title (default is 'Category').
20
+
21
+ module Jekyll
22
+
23
+ # The CategoryIndex class creates a single category page for the specified category.
24
+ class CategoryIndex < Page
25
+
26
+ # Initializes a new CategoryIndex.
27
+ #
28
+ # +base+ is the String path to the <source>.
29
+ # +category_dir+ is the String path between <source> and the category folder.
30
+ # +category+ is the category currently being processed.
31
+ def initialize(site, base, category_dir, category)
32
+ @site = site
33
+ @base = base
34
+ @dir = category_dir
35
+ @name = 'index.html'
36
+ @config = Octopress::Ink::Plugins.config['theme']['category']
37
+ self.process(@name)
38
+
39
+ layout = @site.layouts['theme:category-index']
40
+ self.content = layout.content
41
+ self.data = layout.data
42
+ self.data['category'] = category
43
+ # Set the title for this page.
44
+ prefix = 'Category'
45
+ self.data['title'] = "#{@config['prefix']}: #{category}"
46
+ # Set the meta-description for this page.
47
+ self.data['description'] = "#{prefix}: #{category}"
48
+ end
49
+
50
+ end
51
+
52
+ # The Site class is a built-in Jekyll class with access to global site config information.
53
+ class Site
54
+
55
+ # Creates an instance of CategoryIndex for each category page, renders it, and
56
+ # writes the output to a file.
57
+ #
58
+ # +category_dir+ is the String path to the category folder.
59
+ # +category+ is the category currently being processed.
60
+ def write_category_index(category_dir, category)
61
+ index = CategoryIndex.new(self, self.source, category_dir, category)
62
+ index.render(self.layouts, site_payload)
63
+ index.write(self.dest)
64
+ # Record the fact that this page has been added, otherwise Site::cleanup will remove it.
65
+ self.pages << index
66
+
67
+ end
68
+
69
+ # Loops through the list of category pages and processes each one.
70
+ def write_category_indexes
71
+ if self.layouts.key? 'theme:category-index'
72
+ config = Octopress::Ink::Plugins.config['theme']['category']
73
+ url = config['url']
74
+ self.categories.keys.each do |category|
75
+ self.write_category_index(File.join(url, category), category) if url
76
+ end
77
+
78
+ # Throw an exception if the layout couldn't be found.
79
+ else
80
+ raise <<-ERR
81
+
82
+
83
+ ===============================================
84
+ Error for category_generator.rb plugin
85
+ -----------------------------------------------
86
+ No 'category_index.html' in source/_layouts/
87
+ Perhaps you haven't installed a theme yet.
88
+ ===============================================
89
+
90
+ ERR
91
+ end
92
+ end
93
+
94
+ end
95
+
96
+
97
+ # Jekyll hook - the generate method is called by jekyll, and generates all of the category pages.
98
+ class GenerateCategories < Generator
99
+ safe true
100
+ priority :low
101
+
102
+ def generate(site)
103
+ site.write_category_indexes
104
+ end
105
+
106
+ end
107
+
108
+
109
+ # Adds some extra filters used during the category creation process.
110
+ module Filters
111
+
112
+ # Outputs a list of categories as comma-separated <a> links. This is used
113
+ # to output the category list for each post on a category page.
114
+ #
115
+ # +categories+ is the list of categories to format.
116
+ #
117
+ # Returns string
118
+ #
119
+ def category_links(categories)
120
+ categories = categories.sort!.map { |c| category_link c }
121
+
122
+ case categories.length
123
+ when 0
124
+ ""
125
+ when 1
126
+ categories[0].to_s
127
+ else
128
+ "#{categories[0...-1].join(', ')}, #{categories[-1]}"
129
+ end
130
+ end
131
+
132
+ # Outputs a single category as an <a> link.
133
+ #
134
+ # +category+ is a category string to format as an <a> link
135
+ #
136
+ # Returns string
137
+ #
138
+ def category_link(category)
139
+ dir = @context.registers[:site].config['category_dir']
140
+ # TODO: URLize categories
141
+ url = File.join('/', Octopress::Ink::Plugins.config['theme']['category']['url'], sluggify(category))
142
+ "<a class='category' href='#{url}/'>#{category}</a>"
143
+ end
144
+
145
+ # returns a string which is ready for urlizing.
146
+ def sluggify(input)
147
+ value = input.gsub(/[^\x00-\x7F]/u, '')
148
+ value.gsub!(/[']+/, '')
149
+ value.gsub!(/\W+/, ' ')
150
+ value.strip!
151
+ value.downcase!
152
+ value.gsub!(' ', '-')
153
+ value
154
+ end
155
+ end
156
+
157
+ end
@@ -0,0 +1,5 @@
1
+ module Octopress
2
+ module Genesis
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,26 @@
1
+ require 'octopress-ink'
2
+ require 'octopress-linkblog'
3
+ require 'octopress-autoprefixer'
4
+ require 'octopress-date-format'
5
+ require 'octopress-comment-tag'
6
+ require 'octopress-wrap-tag'
7
+ require 'octopress-assign-tag'
8
+ require 'octopress-return-tag'
9
+ require 'octopress-include-tag'
10
+ require 'octopress-content-for'
11
+ require 'octopress-filter-tag'
12
+
13
+ require 'octopress-genesis/version'
14
+ require 'octopress-genesis/category-generator'
15
+
16
+ Octopress::Ink.add_plugin({
17
+ name: "Octopress Genesis",
18
+ slug: "theme",
19
+ assets_path: File.expand_path(File.join(File.dirname(__FILE__), "../assets")),
20
+ type: "theme",
21
+ version: Octopress::Genesis::VERSION,
22
+ description: "",
23
+ website: ""
24
+ })
25
+
26
+
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'octopress-genesis/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "octopress-genesis-theme"
8
+ spec.version = Octopress::Genesis::VERSION
9
+ spec.authors = ["Brandon Mathis"]
10
+ spec.email = ["brandon@imathis.com"]
11
+ spec.summary = %q{A Jekyll theme built on Octopress Ink}
12
+ spec.description = %q{A Jekyll theme built on Octopress Ink}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency "octopress-ink"
22
+ spec.add_runtime_dependency "octopress-linkblog", "~> 1.0"
23
+ spec.add_runtime_dependency "octopress-date-format", "~> 2.0"
24
+ spec.add_runtime_dependency "octopress-autoprefixer", "~> 1.0"
25
+ spec.add_runtime_dependency "octopress-wrap-tag", "~> 1.0"
26
+ spec.add_runtime_dependency "octopress-assign-tag", "~> 1.0"
27
+ spec.add_runtime_dependency "octopress-filter-tag", "~> 1.0"
28
+ spec.add_runtime_dependency "octopress-comment-tag", "~> 1.0"
29
+ spec.add_runtime_dependency "octopress-return-tag", "~> 1.0"
30
+ spec.add_runtime_dependency "octopress-content-for", "~> 1.0"
31
+
32
+ spec.add_development_dependency "bundler", "~> 1.6"
33
+ spec.add_development_dependency "rake"
34
+ spec.add_development_dependency "octopress"
35
+ spec.add_development_dependency "clash"
36
+ spec.add_development_dependency "pry-byebug"
37
+ end
metadata ADDED
@@ -0,0 +1,292 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: octopress-genesis-theme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Brandon Mathis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: octopress-ink
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: octopress-linkblog
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: octopress-date-format
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: octopress-autoprefixer
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: octopress-wrap-tag
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: octopress-assign-tag
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: octopress-filter-tag
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: octopress-comment-tag
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: octopress-return-tag
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: octopress-content-for
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: bundler
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.6'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '1.6'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: octopress
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: clash
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: pry-byebug
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ description: A Jekyll theme built on Octopress Ink
224
+ email:
225
+ - brandon@imathis.com
226
+ executables: []
227
+ extensions: []
228
+ extra_rdoc_files: []
229
+ files:
230
+ - ".gitignore"
231
+ - Gemfile
232
+ - LICENSE.txt
233
+ - README.md
234
+ - Rakefile
235
+ - assets/config.yml
236
+ - assets/includes/archive-post.html
237
+ - assets/includes/head.html
238
+ - assets/includes/index-post.html
239
+ - assets/includes/post-nav.html
240
+ - assets/includes/primary-nav.html
241
+ - assets/includes/site-footer.html
242
+ - assets/includes/site-header.html
243
+ - assets/layouts/base.html
244
+ - assets/layouts/category-index.html
245
+ - assets/layouts/default.html
246
+ - assets/layouts/page.html
247
+ - assets/layouts/paginated-posts.html
248
+ - assets/layouts/post.html
249
+ - assets/pages/archive.html
250
+ - assets/pages/index.html
251
+ - assets/stylesheets/_colors.scss
252
+ - assets/stylesheets/_layout.scss
253
+ - assets/stylesheets/_mixins.scss
254
+ - assets/stylesheets/_sizes.scss
255
+ - assets/stylesheets/_theme.scss
256
+ - assets/stylesheets/index.scss
257
+ - demo/Gemfile
258
+ - demo/_config.yml
259
+ - demo/_plugins/theme/config.yml
260
+ - demo/_plugins/theme/stylesheets/_layout.scss
261
+ - demo/_plugins/theme/stylesheets/_theme.scss
262
+ - demo/_posts/2014-08-03-dang-that-was-fast.markdown
263
+ - demo/_posts/2014-08-03-hi-guys.markdown
264
+ - lib/octopress-genesis.rb
265
+ - lib/octopress-genesis/category-generator.rb
266
+ - lib/octopress-genesis/version.rb
267
+ - octopress-genesis.gemspec
268
+ homepage: ''
269
+ licenses:
270
+ - MIT
271
+ metadata: {}
272
+ post_install_message:
273
+ rdoc_options: []
274
+ require_paths:
275
+ - lib
276
+ required_ruby_version: !ruby/object:Gem::Requirement
277
+ requirements:
278
+ - - ">="
279
+ - !ruby/object:Gem::Version
280
+ version: '0'
281
+ required_rubygems_version: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ requirements: []
287
+ rubyforge_project:
288
+ rubygems_version: 2.2.2
289
+ signing_key:
290
+ specification_version: 4
291
+ summary: A Jekyll theme built on Octopress Ink
292
+ test_files: []