octopress-genesis-theme 0.0.1 → 0.0.2

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +56 -15
  4. data/assets/config.yml +7 -0
  5. data/assets/includes/index-post.html +6 -4
  6. data/assets/includes/post-nav.html +2 -2
  7. data/assets/includes/primary-nav.html +2 -2
  8. data/assets/includes/social/page-header.html +1 -0
  9. data/assets/includes/social/post-footer.html +1 -0
  10. data/assets/includes/social/post-header.html +1 -0
  11. data/assets/layouts/default.html +4 -4
  12. data/assets/layouts/page.html +3 -5
  13. data/assets/layouts/paginated-posts.html +2 -2
  14. data/assets/layouts/post.html +18 -8
  15. data/assets/pages/index.html +2 -2
  16. data/assets/stylesheets/_colors.scss +13 -1
  17. data/assets/stylesheets/_entry.scss +85 -0
  18. data/assets/stylesheets/_fonts.scss +3 -0
  19. data/assets/stylesheets/_grid.scss +153 -0
  20. data/assets/stylesheets/_header.scss +50 -0
  21. data/assets/stylesheets/_layout.scss +18 -10
  22. data/assets/stylesheets/_post-nav.scss +38 -0
  23. data/assets/stylesheets/_sizes.scss +6 -4
  24. data/assets/stylesheets/_theme.scss +20 -11
  25. data/assets/stylesheets/_typography.scss +90 -0
  26. data/assets/stylesheets/index.scss +11 -0
  27. data/demo/Gemfile +1 -1
  28. data/demo/_config.yml +1 -0
  29. data/demo/_plugins/theme/config.yml +6 -2
  30. data/demo/_plugins/theme/stylesheets/_colors.scss +16 -0
  31. data/demo/_plugins/theme/stylesheets/_entry.scss +85 -0
  32. data/demo/_plugins/theme/stylesheets/_header.scss +51 -0
  33. data/demo/_plugins/theme/stylesheets/_post-nav.scss +38 -0
  34. data/demo/_plugins/theme/stylesheets/_sizes.scss +17 -0
  35. data/demo/_plugins/theme/stylesheets/_typography.scss +91 -0
  36. data/demo/_plugins/theme/stylesheets/index.scss +16 -0
  37. data/demo/_posts/2014-08-03-dang-that-was-fast.md +17 -0
  38. data/demo/_posts/2014-08-03-hi-guys.markdown +1 -0
  39. data/demo/images/panorama.jpg +0 -0
  40. data/demo/page.html +175 -0
  41. data/lib/octopress-genesis/version.rb +1 -1
  42. metadata +21 -5
  43. data/demo/_plugins/theme/stylesheets/_layout.scss +0 -63
  44. data/demo/_plugins/theme/stylesheets/_theme.scss +0 -19
  45. data/demo/_posts/2014-08-03-dang-that-was-fast.markdown +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07dc3fcb2e6ce1975f001de0fdb9a527cc0c5b0e
4
- data.tar.gz: 200f33e9fb039f84365836909e371f4726dba048
3
+ metadata.gz: d44474e2d922073c99ef5837f3d6a516ce9116fa
4
+ data.tar.gz: 9b74336892b62ea103047bb62f71e373b4099414
5
5
  SHA512:
6
- metadata.gz: ad5fd96e4409cab63413616a0558f5f7056b85e8ac6519fe4f306a7133b9d3f42cba83b03349aea88ae8a18fdb6745cdd18464526f85d570645b1e44dde53f10
7
- data.tar.gz: ffe997c8f177c41406fb82f05988ed998f7b6a55c482610e6b453a3e435fbabab4b53a3a544df2405bf3be89ae13eb5977088eb616dea881e44dbbb88834032b
6
+ metadata.gz: 4c8e7718cf9bf8b7ee291af3a82e8b6fe76f981cef5fd1f19dfdf729d8a35d8b64230ce2c5ec553847d74796158d66ddcfcc85493567ecc126706b9c5d2c5ebe
7
+ data.tar.gz: b54e9dc8daca7c709576a228d7160c182cfa804a73e359b0c6897b6ba81c0fd3b16036ad9fb3ae072ddfab2978d5ebd8048edb6be123614e656b7bc8b24a03ed
data/.gitignore CHANGED
@@ -22,3 +22,4 @@ tmp
22
22
  mkmf.log
23
23
  _site
24
24
  .sass-cache
25
+ .DS_Store
data/README.md CHANGED
@@ -2,29 +2,70 @@
2
2
 
3
3
  A new theme build on Octopress Ink.
4
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.
5
+ Note: This theme is in alpha development. What's left to do? See [the issues](https://github.com/octopress/genesis-theme/issues/).
14
6
 
15
7
  ## Installation
16
8
 
17
- To play around:
9
+ Add this line to your application's Gemfile:
18
10
 
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`
11
+ gem 'octopress-genesis-theme'
22
12
 
23
- Note: this may not work, it's in active development.
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install octopress-genesis-theme
20
+
21
+ Next add it to your gems list in Jekyll's `_config.yml`
22
+
23
+ gems:
24
+ - octopress-genesis-theme
24
25
 
25
26
  ## Usage
26
27
 
27
- TODO: Write usage instructions here
28
+ This is best demonstrated on a new Jekyll site:
29
+
30
+ - Create a new Jekyll site.
31
+ - Add some posts or pages.
32
+ - Ensure that posts have the layout `theme:post`, and pages `theme:page`
33
+ - Run `jekyll server` and check it out.
34
+
35
+ ## Configuration
36
+
37
+ To configure this theme, create a `_plugins/theme/config.yml` and add your settings. Here are
38
+ the defaults.
39
+
40
+ ```yaml
41
+ # Settings for main header
42
+ header:
43
+ title: My Octopress Blog
44
+ subtitle: A clever subtitle (optional)
45
+
46
+ # Links for main navigation
47
+ nav:
48
+ - { url: '/', title: 'Home' }
49
+ - { url: '/archive', title: 'Archive' }
50
+ - { url: '/feed', title: 'RSS' }
51
+
52
+ # Settings for category index generator
53
+ category:
54
+ prefix: Category
55
+ url: category
56
+
57
+ post_index:
58
+ excerpt_posts: true
59
+ permalink_label: "Permalink"
60
+ read_more_label: "Continue Reading →"
61
+
62
+ # Center the text in post and page headings.
63
+ center-headings: true
64
+ ```
65
+
66
+ You can also easily overwrite stylesheets, layouts, partials and basically everything about
67
+ this plugin by adding a copy of that file in the `_plugins/theme` directory. More on that
68
+ later.
28
69
 
29
70
  ## Contributing
30
71
 
data/assets/config.yml CHANGED
@@ -13,3 +13,10 @@ nav:
13
13
  category:
14
14
  prefix: Category
15
15
  url: category
16
+
17
+ post_index:
18
+ excerpt_posts: true
19
+ permalink_label: "Permalink"
20
+ read_more_label: "Continue Reading →"
21
+
22
+ center-headings: true
@@ -1,11 +1,13 @@
1
- {% assign post_content = (theme.index.excerpt_posts ? post.excerpt : post.content) %}
1
+ {% assign post_content = (theme.post_index.excerpt_posts ? post.excerpt : post.content) %}
2
2
  {% assign excerpted = true if post_content != post.content %}
3
- {% assign permalink_label = (excerpted ? theme.index.excerpt_label : theme.index.permalink_label) %}
3
+ {% assign classnames = post.class | join: " " | classify if post.class %}
4
+ {% assign classnames += " excerpt" if excerpted %}
5
+ {% assign permalink_label = (excerpted ? theme.post_index.read_more_label : theme.post_index.permalink_label) %}
4
6
 
5
- <article class="entry {% return post.class | join: " " | classify if post.class %}" role="article">
7
+ <article class="entry {{ classnames }}" role="article">
6
8
  <header class="entry-header">
7
9
  <h1 class="entry-title">{{ post.title_link }}</h1>
8
- <div class="entry-meta">{{ post.date_time_html }}</div>
10
+ <div class="entry-meta">{{ post.date_html }}</div>
9
11
  </header>
10
12
 
11
13
  <div class="entry-content">{{ post_content }}</div>
@@ -2,14 +2,14 @@
2
2
  <nav role="pagination" class="post-nav">
3
3
  {% if page.previous.url %}
4
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>
5
+ <div class='previous-post-marker'><span class='previous-post-arrow'>&larr;</span> Previous Article</div>
6
6
  <h6 class='previous-post-title'>{{page.previous.title_html}}</h6>
7
7
  <div class="previous-post-date">{{ page.previous.date_html }}</div>
8
8
  </a>
9
9
  {% endif %}
10
10
  {% if page.next.url %}
11
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>
12
+ <div class='next-post-marker'>Next Article <span class='next-post-arrow'>&rarr;</span></div>
13
13
  <h6 class='next-post-title'>{{page.next.title_html}}</h6>
14
14
  <div class="next-post-date">{{ page.next.date_html }}</div>
15
15
  </a>
@@ -2,8 +2,8 @@
2
2
  {% for link in theme.nav %}
3
3
  {% assign url = link.url | expand_url %}
4
4
  {% assign page_url = page.url | expand_url | remove:'index.html' %}
5
- {% assign class = (url == page_url ? 'here ' : '') %}
5
+ {% assign class = (url == page_url ? 'active ' : '') %}
6
6
  {% assign class += link.class | classify if link.class %}
7
- <a class="primary-nav-link {{ class }}" href="{{ url }}">{{ link.title }}</a>
7
+ <a class="site-nav-link {{ class }}" href="{{ url }}">{{ link.title }}</a>
8
8
  {% endfor %}
9
9
  </nav>
@@ -0,0 +1 @@
1
+ <!-- Page header social buttons go here -->
@@ -0,0 +1 @@
1
+ <!-- Post footer social buttons go here -->
@@ -0,0 +1 @@
1
+ <!-- Post header social buttons go here -->
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  layout: theme:base
3
3
  ---
4
- <div class="site-top">
4
+ <div class="site-top"><div class="site-top-content">
5
5
  {% include theme:site-header.html | compact_newlines %}
6
6
  {% include theme:primary-nav.html | compact_newlines %}
7
- </div>
7
+ </div></div>
8
8
  <div class="site-main">
9
9
  <div class="main {% return 'with-sidebar' if sidebar %}">
10
10
  <div class="main-content">{{ content }}</div>
11
11
  </div>
12
12
  </div>
13
- <div class="site-bottom">
13
+ <div class="site-bottom"><div class="site-bottom-content">
14
14
  {% include theme:site-footer.html %}
15
- </div>
15
+ </div></div>
@@ -4,14 +4,12 @@ layout: theme:default
4
4
  <article class="page entry {{ page.class }}" role="article">
5
5
  <header class="entry-header">
6
6
  <h1 class="entry-title">{{ page.title_html }}</h1>
7
- {% yield header %}
7
+ <div class="entry-meta">{{ page.date_html }}</div>
8
+ <div class="entry-social top">{% include theme:social/page-header.html %}</div>
8
9
  </header>
9
10
 
10
- <div class="entry-content">{{ page.content }}</div>
11
+ <div class="entry-content">{{ content }}</div>
11
12
 
12
- <footer class='entry-footer' role='contentinfo'>
13
- <div class="entry-meta">{{ page.date_html }}</div>
14
- </footer>
15
13
  </article>
16
14
  {% wrap include theme:comments/embed.html if page.comments %}
17
15
  <div class='entry-comments'>{{ yield }}</div>
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  layout: theme:default
3
3
  ---
4
- <div class="posts-index">
4
+ <div class="post-index">
5
5
  {% for post in paginator.posts %}
6
6
  {% include theme:index-post.html %}
7
7
  {% endfor %}
8
8
  </div>
9
9
 
10
- <nav class="post-index-navigation pagination" role="navigation">
10
+ <nav class="post-index-nav pagination" role="navigation">
11
11
  {% if paginator.next_page %}
12
12
  <a class="pagination-prev" title="Older posts" href="{{paginator.next_page_path}}">&larr; Older</a>
13
13
  {% endif %}
@@ -1,28 +1,38 @@
1
1
  ---
2
2
  layout: theme:default
3
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>
4
+ <article class="post entry {{ page.class }} {% return 'graphic-title' if page.title-graphic %} {% return 'linkpost' if entry.linkpost %}" role="article">
5
+ {% if page.title-graphic %}
6
+ <header class="entry-header" style='background-image: url("{{ page.title-graphic }}")'>
7
+ {% else %}
8
+ <header class="entry-header">
9
+ {% endif %}
10
+ {% assign title = (page.linkpost ? page.title_link : page.title_html) %}
11
+ <h1 class="entry-title">{{ title }}</h1>
12
+ {% if page.subtitle %}<p class="entry-subtitle">{{ page.subtitle }}</p>{% endif %}
7
13
  <div class="entry-meta">{{ page.date_html }}</div>
14
+ <div class="entry-social header">{% include theme:social/post-header.html %}</div>
8
15
  {% yield header %}
9
16
  </header>
10
17
 
11
- <div class="entry-content">{{ page.content }}</div>
18
+ <div class="entry-content">{{ content }}</div>
12
19
 
13
20
  <footer class='entry-footer' role='contentinfo'>
14
21
  <p class="entry-meta">
15
22
  {% yield footer %}
16
23
  {% assign author = page.author || site.author %}
17
24
  {% if author %}
18
- Written by {{ author }} &bull;
25
+ <div class='author-credit'>Written by: {{ author }}</div>
26
+ {% endif %}
27
+ <div class='posted-date'>Published: {{ page.date_time_html }}</div>
28
+ {% if page.categories %}
29
+ <div class="categories">Categories: {{ page.categories | category_links }}</div>
19
30
  {% endif %}
20
- {{ page.date_time_html }}
21
- {% if page.categories %} &bull; <span class="categories">{{ page.categories | category_links }}</span>{% endif %}
22
31
  </p>
23
- {% include theme:post-nav.html %}
32
+ <div class="entry-social footer">{% include theme:social/post-footer.html %}</div>
24
33
  </footer>
25
34
  </article>
35
+ {% include theme:post-nav.html %}
26
36
  {% wrap include theme:comments/embed.html if post.comments %}
27
37
  <div class='entry-comments'>{{ yield }}</div>
28
38
  {% endwrap %}
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  layout: theme:default
3
3
  ---
4
- <div class="posts-index">
4
+ <div class="post-index">
5
5
  {% for post in site.posts limit: 10 %}
6
6
  {% include theme:index-post.html %}
7
7
  {% endfor %}
8
8
  </div>
9
- <nav class="post-index-navigation" role="navigation">
9
+ <nav class="post-index-nav" role="navigation">
10
10
  <a class='archive-link' href="{{ theme.permalinks.archive }}">Post Archive</a>
11
11
  </nav>
@@ -1,4 +1,16 @@
1
1
  $site-bg: #edefef;
2
2
  $main-bg: #f5f6f6;
3
- $site-text-color: #444;
3
+ $page-border: #dadede;
4
+
5
+ $accent-color: #e46767; // pale red
6
+
7
+ $text-color: #444;
8
+ $medium-text-color: #666;
9
+ $light-text-color: #888;
4
10
  $link-color: #4A89DC;
11
+
12
+ $site-header-bg: #edefef;
13
+ $site-title-color: #555;
14
+ $site-nav-color: #333;
15
+
16
+ $gray: #8d9297;
@@ -0,0 +1,85 @@
1
+ .entry {
2
+ margin: { top: 4em; bottom: 4em; }
3
+ + .entry {
4
+ border-top: 1px solid $page-border;
5
+ padding-top: 2em;
6
+ }
7
+ }
8
+
9
+ .article-link {
10
+ text-decoration: none;
11
+ color: inherit;
12
+ &:hover {
13
+ color: $link-color;
14
+ }
15
+ }
16
+
17
+ .entry-header {
18
+ @if ($center-headings) {
19
+ text-align: center;
20
+ }
21
+ }
22
+
23
+ .entry-title {
24
+ margin-bottom: 0;
25
+ font-size: 2.4rem;
26
+ @include at-least($medium) {
27
+ font-size: 2.8rem;
28
+ }
29
+ }
30
+
31
+ .entry-meta {
32
+ color: $medium-text-color;
33
+ }
34
+
35
+ .entry-content {
36
+ margin: { top: 3rem; bottom: 3rem; }
37
+ }
38
+
39
+ .entry {
40
+ margin: { left: auto; right: auto; }
41
+ }
42
+
43
+ .entry-meta, .entry-subtitle, .entry-footer {
44
+ font-family: $meta-font;
45
+ font-weight: 400;
46
+ font-size: .9rem;
47
+ }
48
+
49
+ .entry-header > * {
50
+ position: relative;
51
+ z-index: 1;
52
+ }
53
+ .entry-subtitle {
54
+ font-size: 1.4rem;
55
+ margin-top: 0;
56
+ }
57
+
58
+ .graphic-title {
59
+ margin-top: 0;
60
+ .entry-header {
61
+ background-size: cover;
62
+ background-position: center center;
63
+ padding: { top: 10%; bottom: 10%; }
64
+ }
65
+
66
+ &.light-title {
67
+ .entry-header, .entry-meta {
68
+ color: #fff;
69
+ text-shadow: rgba(#000, .5) 0 1px 1px;
70
+ }
71
+ .entry-header {
72
+ position: relative;
73
+ &:after {
74
+ content: "";
75
+ position: absolute;
76
+ z-index: 0;
77
+ left: 0;
78
+ top: 0;
79
+ bottom: 0;
80
+ right: 0;
81
+ background: rgba(#000, .08);
82
+ }
83
+ }
84
+ }
85
+ }
@@ -0,0 +1,3 @@
1
+ $title-font: "Source Serif Pro", Georgia, Times, 'Times New Roman', serif;
2
+ $body-font: "Source Serif Pro", Georgia, Times, 'Times New Roman', serif;
3
+ $meta-font: "Source Sans Pro", "Helvetica Neue", Arial, sans;
@@ -0,0 +1,153 @@
1
+ /* ==========================================================================
2
+ * Grid core - Based on Griddle, Heavily customized.
3
+ * ========================================================================== */
4
+
5
+ @mixin destroy-margins {
6
+ @include destroy-top-margins;
7
+ @include destroy-bottom-margins;
8
+ }
9
+
10
+ @mixin destroy-top-margins {
11
+ > :first-child,
12
+ > :first-child > :first-child,
13
+ > :first-child > :first-child > :first-child { margin-top: 0; }
14
+ }
15
+
16
+ @mixin destroy-bottom-margins {
17
+ > :last-child,
18
+ > :last-child > :last-child,
19
+ > :last-child > :last-child > :last-child { margin-bottom: 0; }
20
+ }
21
+
22
+ // Remove inner elements' top and bottom margin
23
+ %destroy-margins {
24
+ @include destroy-margins;
25
+ }
26
+
27
+
28
+ $grid-gutter: 4%;
29
+ $margin: 30px;
30
+
31
+ $grid-gutter-none: 0;
32
+ $grid-gutter-small: 2%;
33
+ $grid-gutter-large: 8%;
34
+
35
+ .grid {
36
+ display: block;
37
+ padding: 0;
38
+ $m: -.5 * $grid-gutter;
39
+ margin: { left: $m; right: $m; }
40
+ letter-spacing: -5px;
41
+ text-rendering: optimizespeed;
42
+
43
+ // Nested `grid` object adjustments
44
+ > .grid {
45
+ overflow: hidden;
46
+ margin-right: 0;
47
+ margin-left: 0;
48
+ }
49
+
50
+ /* ==========================================================================
51
+ * Gutter sizing
52
+ * ========================================================================== */
53
+
54
+ // No gutter (0%)
55
+ &.no-gutter {
56
+ $m: -.5 * $grid-gutter-none;
57
+ margin: { left: $m; right: $m; }
58
+ > .grid-cell {
59
+ padding: 0 0.5 * $grid-gutter-none;
60
+ }
61
+
62
+ &.match-gutters {
63
+ > .grid-cell {
64
+ padding: 0;
65
+ margin: { left: 0; right: 0; }
66
+ }
67
+ }
68
+ }
69
+
70
+ // Small gutter (2%)
71
+ &.small-gutter {
72
+ $m: -.5 * $grid-gutter-small;
73
+ margin: { left: $m; right: $m; }
74
+ > .grid-cell {
75
+ padding: 0 0.5 * $grid-gutter-small;
76
+ }
77
+
78
+ &.match-gutters {
79
+ > .grid-cell {
80
+ padding: 0 0.5 * $grid-gutter-small;
81
+ margin: { bottom: $grid-gutter-small; }
82
+ }
83
+ }
84
+ }
85
+
86
+ // Large gutter (8%)
87
+ &.large-gutter {
88
+ $m: -.5 * $grid-gutter-large;
89
+ margin: { left: $m; right: $m; }
90
+ > .grid-cell {
91
+ padding: 0 0.5 * $grid-gutter-large;
92
+ }
93
+
94
+ &.match-gutters {
95
+ > .grid-cell {
96
+ padding: 0 0.5 * $grid-gutter-large;
97
+ margin: { bottom: $grid-gutter-large; }
98
+ }
99
+ }
100
+ }
101
+
102
+
103
+ /* ==========================================================================
104
+ * Adhere to set gutter spacing & ignore inner elements' margin
105
+ * ========================================================================== */
106
+
107
+ &.match-gutters {
108
+ > .grid-cell {
109
+ padding: 0.5 * $grid-gutter;
110
+ @extend %destroy-margins;
111
+ }
112
+ }
113
+ }
114
+
115
+
116
+ // Grid cells - Apply `.x-of-x` classes to set width.
117
+ .grid-cell {
118
+ display: inline-block;
119
+ width: 100%;
120
+ margin: 0;
121
+ padding: 0 .5 * $grid-gutter;
122
+ text-align: left;
123
+ vertical-align: top;
124
+ letter-spacing: normal;
125
+ word-spacing: normal;
126
+ text-rendering: auto;
127
+ &.auto {
128
+ width: auto;
129
+ }
130
+ }
131
+
132
+ /* =====================================================================
133
+ * Cell sizing
134
+ * ===================================================================== */
135
+
136
+ $cell-sizes: (1:one, 2:two, 3:three, 4:four, 5:five, 6:six);
137
+
138
+ @mixin grid-cell($num) {
139
+ @for $i from 1 to $num {
140
+ .#{map-get($cell-sizes, $i)}-of-#{map-get($cell-sizes, $num)} {
141
+ width: 100%*$i/$num;
142
+ }
143
+ }
144
+ }
145
+
146
+ @include grid-cell(6);
147
+ @include grid-cell(5);
148
+ @include grid-cell(4);
149
+ @include grid-cell(3);
150
+ @include grid-cell(2);
151
+ .small-golden { width: 38.2%; }
152
+ .large-golden { width: 61.8%; }
153
+