jekyll-whiteglass 1.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c9e9f63cb0a3cf6a4036958961e811ae0db623b8
4
+ data.tar.gz: 110faf6083e945f056e506b642c8010b2fe62f5a
5
+ SHA512:
6
+ metadata.gz: c206fe2cd40cf34da5da87c800ce295ab05dbac49e0dd575bf4d716f5de60f3d59a12e01d253c645de57695604128c75796323c9a60e62a820d035136175cd69
7
+ data.tar.gz: a4e573ea0a9fbb2c9e4bfe2713df2f8138c946f839ee03fdfb3136d9b00763ca42162d9cd559ca1d37bb55919b274bc3db0306da55b54c3beea01d3f0e7bfbeb
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Chayoung You
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.
@@ -0,0 +1,186 @@
1
+ # whiteglass
2
+
3
+ [![Build Status](https://travis-ci.org/yous/whiteglass.svg?branch=master)](https://travis-ci.org/yous/whiteglass)
4
+ [![Dependency Status](https://gemnasium.com/badges/github.com/yous/whiteglass.svg)](https://gemnasium.com/github.com/yous/whiteglass)
5
+
6
+ Minimal, responsible Jekyll theme for hackers.
7
+
8
+ ## Installation
9
+
10
+ Add this line to your Jekyll site's Gemfile:
11
+
12
+ ``` ruby
13
+ gem "jekyll-whiteglass"
14
+ ```
15
+
16
+ And add this line to your Jekyll site's `_config.yml`:
17
+
18
+ ``` yaml
19
+ theme: jekyll-whiteglass
20
+ ```
21
+
22
+ And then execute:
23
+
24
+ ``` sh
25
+ bundle
26
+ ```
27
+
28
+ Or install it yourself as:
29
+
30
+ ``` sh
31
+ gem install jekyll-whiteglass
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ### Customization
37
+
38
+ To override the default structure and style of whiteglass, simply create the
39
+ concerned directory at the root of your site, copy the file you wish to
40
+ customize to that directory, and then edit the file. e.g., to override the
41
+ [`_includes/head_custom.html`](_includes/head_custom.html) file to specify a
42
+ custom style path, create an `_includes` directory, copy
43
+ `_includes/head_custom.html` from jekyll-whiteglass gem folder to
44
+ `<your-site>/_includes` and start editing that file.
45
+
46
+ The site's default CSS is in the gem itself,
47
+ [`assets/main.scss`](assets/main.scss). To override the default CSS, the file
48
+ has to exist at your site source. Do either of the following:
49
+
50
+ - Create a new instance of `main.scss` at site source
51
+ - Create a new file `main.scss` at `<your-site>/assets/`
52
+ - Add the frontmatter dashes, and
53
+ - Add `@import "whiteglass";`, to `<your-site>/assets/main.scss`
54
+ - Add your custom CSS
55
+ - Download the file from this repo
56
+ - Create a new file `main.scss` at `<your-site>/assets/`
57
+ - Copy the contents at [`assets/main.scss`](assets/main.scss) onto the `main.scss` you just created, and edit away
58
+ - Copy directly from jekyll-whiteglass gem
59
+ - Go to your local jekyll-whiteglass gem installation directory (run `bundle show jekyll-whiteglass` to get the path to it)
60
+ - Copy the `assets/` folder from there into the root of `<your-site>`
61
+ - Change whatever values you want, inside `<your-site>/assets/main.scss`
62
+
63
+ ### Locale
64
+
65
+ `site.lang` is used to declare the primary language for each web page within the
66
+ site.
67
+
68
+ `lang: en-US` sets the `lang` attribute for the site to the United States flavor
69
+ of English, while `en-GB` would be for the United Kingdom style of English.
70
+ Country codes are optional and the shorter variation `lang: en` is also
71
+ acceptable. You may want to write a post in different language, then add `lang`
72
+ attribute to the frontmatter of that post:
73
+
74
+ ``` yaml
75
+ layout: post
76
+ title: "안녕하세요"
77
+ lang: ko
78
+ ```
79
+
80
+ ### Description
81
+
82
+ `site.description` describes the site. This is mainly used in meta descriptions
83
+ for improving SEO. Also, you can set `description` attribute for each post:
84
+
85
+ ``` yaml
86
+ layout: post
87
+ title: Awesome Post
88
+ description: This is an awesome post.
89
+ ```
90
+
91
+ ### Category
92
+
93
+ Each post can have `categories` attribute. It can be a string or an array. This
94
+ will be displayed on index, archive and each post, and provide a link to the
95
+ archive of category.
96
+
97
+ ``` yaml
98
+ layout: post
99
+ title: Awesome Post
100
+ categories: Misc
101
+ ```
102
+
103
+ ``` yaml
104
+ layout: post
105
+ title: Another Awesome Post
106
+ categories:
107
+ - Misc
108
+ - Idea
109
+ ```
110
+
111
+ ### Metadata for SEO
112
+
113
+ #### Keywords
114
+
115
+ Each post can have `keywords` attribute. This is a comma-separated list which is
116
+ used in meta descriptions for improving SEO.
117
+
118
+ ``` yaml
119
+ layout: post
120
+ title: How to configure jekyll-whiteglass
121
+ keywords: jekyll, whiteglass, github pages
122
+ ```
123
+
124
+ #### Twitter
125
+
126
+ - `site.twitter_username` sets `twitter:site` and `twitter:creator` meta tag
127
+ - `site.twitter_image` sets `twitter:image:src` meta tag
128
+ - `page.twitter_card.type` sets `twitter:card` meta tag (default: `summary`)
129
+ - If `page.twitter_card.type` is `gallery`, it sets `twitter:image0`, `twitter:image1`, `twitter:image2` and `twitter:image3` meta tags with `page.twitter_card.image`, `page.twitter_card.image1`, `page.twitter_card.image2` and `page.twitter_card.image3`, respectively
130
+ - If `page.twitter_card.type` is `photo`, `page.twitter_card.width` sets `twitter:image:width` meta tag and `page.twitter_card.height` sets `twitter:image:height` meta tag
131
+ - `page.twitter_card.creator` sets `twitter:creator` meta tag. It overrides `site.twitter_username`
132
+ - `page.twitter_card.image` sets `twitter:image:src` meta tag if `page.twitter_card.type` is not `gallery`. It overrides `site.twitter_image`
133
+
134
+ #### Facebook
135
+
136
+ - `site.facebook_app_id` sets `fb:admins` meta tag
137
+ - `site.facebook_page` sets `article:author` meta tag
138
+ - `site.facebook_image` sets `og:image` meta tag
139
+ - `page.facebook.image` sets `og:image` meta tag. It overrides `site.facebook_image`
140
+
141
+ ### Navigation
142
+
143
+ To define header links, add titles and URLs under the `main` key in
144
+ `_data/navigation.yml`:
145
+
146
+ ``` yaml
147
+ main:
148
+ - title: "About"
149
+ url: /about/
150
+ - title: "Archives"
151
+ url: /archives/
152
+ - title: "GitHub"
153
+ url: https://github.com/yous/whiteglass
154
+ ```
155
+
156
+ ### Enabling Google Analytics
157
+
158
+ To enable Google Analytics, add the following lines to your Jekyll site:
159
+
160
+ ``` yaml
161
+ google_analytics: UA-NNNNNNNN-N
162
+ ```
163
+
164
+ ## Contributing
165
+
166
+ Bug reports and pull requests are welcome on GitHub at
167
+ <https://github.com/yous/whiteglass>. This project is intended to be a safe,
168
+ welcoming space for collaboration, and contributors are expected to adhere to
169
+ the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
170
+
171
+ ## Development
172
+
173
+ To set up your environment to develop this theme, run `bundle install`.
174
+
175
+ Your theme is setup just like a normal Jekyll site! To test your theme, run
176
+ `bundle exec jekyll serve` and open your browser at
177
+ `http://localhost:4000/whiteglass/`. This starts a Jekyll server using your
178
+ theme. Add pages, documents, data, etc. like normal to test your theme's
179
+ contents. As you make modifications to your theme and to your content, your site
180
+ will regenerate and you should see the changes in the browser after a refresh,
181
+ just like normal.
182
+
183
+ ## License
184
+
185
+ The theme is available as open source under the terms of the
186
+ [MIT License](http://opensource.org/licenses/MIT).
@@ -0,0 +1,8 @@
1
+ {% for category in include.categories %}
2
+ {% assign no_comma = forloop.last %}
3
+ {% for archive in site.archives %}
4
+ {% if archive.type == "category" and archive.title == category %}
5
+ <a href="{{ archive.url | relative_url }}">{{ archive.title | escape }}</a>{% unless no_comma %},{% endunless %}
6
+ {% endif %}
7
+ {% endfor %}
8
+ {% endfor %}
@@ -0,0 +1,14 @@
1
+ <script type="text/javascript">
2
+ WebFontConfig = {
3
+ google: { families: [ 'Bitter:400,700,400italic:latin' ] }
4
+ };
5
+ (function() {
6
+ var wf = document.createElement('script');
7
+ wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
8
+ '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
9
+ wf.type = 'text/javascript';
10
+ wf.async = 'true';
11
+ var s = document.getElementsByTagName('script')[0];
12
+ s.parentNode.insertBefore(wf, s);
13
+ })();
14
+ </script>
@@ -0,0 +1,11 @@
1
+ <footer class="site-footer">
2
+
3
+ <div class="wrapper">
4
+
5
+ <p>
6
+ {% include footer_content.html %}
7
+ </p>
8
+
9
+ </div>
10
+
11
+ </footer>
@@ -0,0 +1 @@
1
+ &copy; {{ site.author }} - Subscribe via <a href="{{ "/feed.xml" | relative_url }}">RSS</a>
@@ -0,0 +1,13 @@
1
+ {% if site.google_analytics %}
2
+ <!-- Google Analytics -->
3
+ <script>
4
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
5
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
6
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
7
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
8
+
9
+ ga('create', '{{ site.google_analytics }}', 'auto');
10
+ ga('send', 'pageview');
11
+
12
+ </script>
13
+ {% endif %}
@@ -0,0 +1,60 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+
6
+ {% assign title = page.title | default: site.title | escape %}
7
+ {% assign canonical = page.url | replace:'index.html','' | absolute_url %}
8
+ {% assign description = page.description | default: site.description | normalize_whitespace | escape %}
9
+ <title>{{ title }}</title>
10
+ <meta name="description" content="{{ description }}">
11
+ {% if page.keywords %}<meta name="keywords" content="{{ page.keywords }}">{% endif %}
12
+
13
+ <link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}">
14
+ <link rel="canonical" href="{{ canonical }}">
15
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ "/atom.xml" | relative_url }}">
16
+
17
+ {% include head_custom.html %}
18
+
19
+ {% if site.facebook_app_id %}
20
+ <meta property="fb:admins" content="{{ site.facebook_app_id }}">
21
+ <meta property="og:title" content="{{ title }}">
22
+ <meta property="og:site_name" content="{{ site.title | escape }}">
23
+ <meta property="og:url" content="{{ canonical }}">
24
+ <meta property="og:description" content="{{ description }}">
25
+ {% if site.facebook_page %}<meta property="article:author" content="{{ site.facebook_page }}">{% endif %}
26
+ {% if page.facebook.image %}
27
+ <meta property="og:image" content="{{ page.facebook.image }}">
28
+ {% elsif site.facebook_image %}
29
+ <meta property="og:image" content="{{ site.facebook_image }}">
30
+ {% endif %}
31
+ {% endif %}
32
+ <meta name="twitter:card" content="{{ page.twitter_card.type | default: "summary" }}">
33
+ {% if site.twitter_username %}<meta name="twitter:site" content="{{ site.twitter_username }}">{% endif %}
34
+ <meta name="twitter:title" content="{{ title | truncate: 70 }}">
35
+ <meta name="twitter:description" content="{{ description | truncate: 200 }}">
36
+ {% if page.twitter_card.creator %}
37
+ <meta name="twitter:creator" content="{{ page.twitter_card.creator }}">
38
+ {% elsif site.twitter_username %}
39
+ <meta name="twitter:creator" content="{{ site.twitter_username }}">
40
+ {% endif %}
41
+ {% if page.twitter_card.image %}
42
+ {% if page.twitter_card.type == 'gallery' %}
43
+ <meta name="twitter:image0" content="{{ page.twitter_card.image }}">
44
+ <meta name="twitter:image1" content="{{ page.twitter_card.image1 }}">
45
+ <meta name="twitter:image2" content="{{ page.twitter_card.image2 }}">
46
+ <meta name="twitter:image3" content="{{ page.twitter_card.image3 }}">
47
+ {% else %}
48
+ <meta name="twitter:image:src" content="{{ page.twitter_card.image }}">
49
+ {% if page.twitter_card.type == 'photo' %}
50
+ {% if page.twitter_card.width %}<meta name="twitter:image:width" content="{{ page.twitter_card.width }}">{% endif %}
51
+ {% if page.twitter_card.height %}<meta name="twitter:image:height" content="{{ page.twitter_card.height }}">{% endif %}
52
+ {% endif %}
53
+ {% endif %}
54
+ {% elsif site.twitter_image %}
55
+ <meta name="twitter:image:src" content="{{ site.twitter_image }}">
56
+ {% endif %}
57
+
58
+ {% include fonts.html %}
59
+ {% include google_analytics.html %}
60
+ </head>
@@ -0,0 +1,10 @@
1
+ <!--
2
+ You can specify additional content for head here. Here are some examples.
3
+
4
+ <link href="{{ "/favicon.png" | relative_url }}" rel="icon">
5
+ <link href="{{ "/apple-touch-icon.png" | relative_url }}" rel="apple-touch-icon">
6
+ <link href="{{ "/apple-touch-icon-76x76.png" | relative_url }}" rel="apple-touch-icon" sizes="76x76">
7
+ <link href="{{ "/apple-touch-icon-120x120.png" | relative_url }}" rel="apple-touch-icon" sizes="120x120">
8
+ <link href="{{ "/apple-touch-icon-152x152.png" | relative_url }}" rel="apple-touch-icon" sizes="152x152">
9
+ <link href="{{ "/apple-touch-icon-180x180.png" | relative_url }}" rel="apple-touch-icon" sizes="180x180">
10
+ -->
@@ -0,0 +1,20 @@
1
+ <header class="site-header">
2
+
3
+ <div class="wrapper">
4
+
5
+ <a class="site-title" href="{{ "/" | relative_url }}">{{ site.title | escape }}</a>
6
+
7
+ <nav class="site-nav">
8
+ {% for link in site.data.navigation.main %}
9
+ {% if link.url contains "http" %}
10
+ {% assign url = link.url %}
11
+ {% else %}
12
+ {% assign url = link.url | relative_url %}
13
+ {% endif %}
14
+ <a class="page-link" href="{{ url }}">{{ link.title }}</a>
15
+ {% endfor %}
16
+ </nav>
17
+
18
+ </div>
19
+
20
+ </header>
@@ -0,0 +1,11 @@
1
+ {% if paginator.total_pages > 1 %}
2
+ <div class="pagination">
3
+ {% if paginator.next_page %}
4
+ <a class="previous" href="{{ paginator.next_page_path | relative_url }}">&laquo; Older</a>
5
+ {% endif %}
6
+
7
+ {% if paginator.previous_page %}
8
+ <a class="next" href="{{ paginator.previous_page_path | relative_url }}">Newer &raquo;</a>
9
+ {% endif %}
10
+ </div>
11
+ {% endif %}
@@ -0,0 +1,28 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="home">
6
+
7
+ <h1 class="page-heading">Blog Archive</h1>
8
+
9
+ {{ content }}
10
+
11
+ {% capture site_lang %}{{ site.lang | default: "en" }}{% endcapture %}
12
+
13
+ <ul class="post-archives">
14
+ {% for post in site.posts %}
15
+ {% capture post_lang %}{{ post.lang | default: site_lang }}{% endcapture %}
16
+ {% capture lang %}{% if post_lang != site_lang %}{{ post_lang }}{% endif %}{% endcapture %}
17
+
18
+ <li>
19
+ <span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}{% if post.categories != empty %} • {% include category_links.html categories=post.categories %}{% endif %}</span>
20
+
21
+ <h2>
22
+ <a class="post-link" href="{{ post.url | relative_url }}"{% if lang != empty %} lang="{{ lang }}"{% endif %}>{{ post.title | escape }}{% if post.external-url %} &rarr;{% endif %}</a>
23
+ </h2>
24
+ </li>
25
+ {% endfor %}
26
+ </ul>
27
+
28
+ </div>
@@ -0,0 +1,25 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <div class="home">
5
+
6
+ <h1 class="page-heading">Archive of {{ page.type }} '{{ page.title | escape }}'</h1>
7
+
8
+ {% capture site_lang %}{{ site.lang | default: "en" }}{% endcapture %}
9
+
10
+ <ul class="post-archives">
11
+ {% for post in page.posts %}
12
+ {% capture post_lang %}{{ post.lang | default: site_lang }}{% endcapture %}
13
+ {% capture lang %}{% if post_lang != site_lang %}{{ post_lang }}{% endif %}{% endcapture %}
14
+
15
+ <li>
16
+ <span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}{% if post.categories %} • {% include category_links.html categories=post.categories %}{% endif %}</span>
17
+
18
+ <h2>
19
+ <a class="post-link" href="{{ post.url | relative_url }}"{% if lang != empty %} lang="{{ lang }}"{% endif %}>{{ post.title | escape }}{% if post.external-url %} &rarr;{% endif %}</a>
20
+ </h2>
21
+ </li>
22
+ {% endfor %}
23
+ </ul>
24
+
25
+ </div>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {% include header.html %}
9
+
10
+ <main class="page-content" aria-label="Content">
11
+ <div class="wrapper">
12
+ {{ content }}
13
+ </div>
14
+ </main>
15
+
16
+ {% include footer.html %}
17
+
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,34 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+ <?xml version="1.0" encoding="UTF-8"?>
5
+ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
6
+ <channel>
7
+ <title>{{ site.title | xml_escape }}</title>
8
+ <description>{{ site.description | xml_escape }}</description>
9
+ <link>{{ site.url }}{{ site.baseurl }}/</link>
10
+ <atom:link href="{{ "/atom.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
11
+ <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
12
+ <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
13
+ <generator>Jekyll v{{ jekyll.version }}</generator>
14
+ {% for post in site.posts limit:20 %}
15
+ <item>
16
+ {% if post.external-url %}
17
+ <title>{{ post.title | append: " &rarr;" | xml_escape }}</title>
18
+ {% else %}
19
+ <title>{{ post.title | xml_escape }}</title>
20
+ {% endif %}
21
+ <description>{{ post.content | xml_escape }}</description>
22
+ <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
23
+ <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
24
+ <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
25
+ {% for tag in post.tags %}
26
+ <category>{{ tag | xml_escape }}</category>
27
+ {% endfor %}
28
+ {% for cat in post.categories %}
29
+ <category>{{ cat | xml_escape }}</category>
30
+ {% endfor %}
31
+ </item>
32
+ {% endfor %}
33
+ </channel>
34
+ </rss>
@@ -0,0 +1,39 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="home">
6
+
7
+ {{ content }}
8
+
9
+ {% capture site_lang %}{{ site.lang | default: "en" }}{% endcapture %}
10
+
11
+ <ul class="post-list">
12
+ {% for post in paginator.posts %}
13
+ {% capture post_lang %}{{ post.lang | default: site_lang }}{% endcapture %}
14
+ {% capture lang %}{% if post_lang != site_lang %}{{ post_lang }}{% endif %}{% endcapture %}
15
+
16
+ <li{% if lang != empty %} lang="{{ lang }}"{% endif %}>
17
+ <header class="post-header">
18
+ <h1 class="post-title">
19
+ <a class="post-link" href="{{ post.url | relative_url }}">{{ post.title | escape }}{% if post.external-url %} &rarr;{% endif %}</a>
20
+ </h1>
21
+
22
+ <p class="post-meta">{{ post.date | date: "%b %-d, %Y" }}{% if post.categories != empty %} • {% include category_links.html categories=post.categories %}{% endif %}</p>
23
+ </header>
24
+
25
+ <div class="post-content">
26
+ {{ post.excerpt }}
27
+ </div>
28
+ {% if post.content contains site.excerpt_separator %}
29
+ <p class="post-continue">
30
+ <a href="{{ post.url | relative_url }}">Read on &rarr;</a>
31
+ </p>
32
+ {% endif %}
33
+ </li>
34
+ {% endfor %}
35
+ </ul>
36
+
37
+ {% include pagination.html %}
38
+
39
+ </div>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post">
5
+
6
+ <header class="post-header">
7
+ <h1 class="post-title">{{ page.title | escape }}</h1>
8
+ </header>
9
+
10
+ <div class="post-content">
11
+ {{ content }}
12
+ </div>
13
+
14
+ </article>
@@ -0,0 +1,19 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
5
+
6
+ <header class="post-header">
7
+ {% if page.external-url %}
8
+ <h1 class="post-title" itemprop="name headline"><a href="{{ page.external-url }}">{{ page.title | escape }} &rarr;</a></h1>
9
+ {% else %}
10
+ <h1 class="post-title" itemprop="name headline">{{ page.title | escape }}</h1>
11
+ {% endif %}
12
+ <p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %} • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>{% endif %}{% if page.categories != empty %} • {% include category_links.html categories=page.categories %}{% endif %}</p>
13
+ </header>
14
+
15
+ <div class="post-content" itemprop="articleBody">
16
+ {{ content }}
17
+ </div>
18
+
19
+ </article>
@@ -0,0 +1,47 @@
1
+ // Define defaults for each variable.
2
+ $base-font-family: Bitter, "Apple SD Gothic Neo", AppleGothic, NanumBarunGothic, "Malgun Gothic", Dotum, sans-serif;
3
+ $monospace-font-family: Monaco, Menlo, Consolas, "Courier New", DotumChe, monospace;
4
+ $base-font-size: 16px;
5
+ $base-font-weight: 400;
6
+ $small-font-size: $base-font-size * 0.875;
7
+ $base-line-height: 1.5;
8
+
9
+ $spacing-unit: 30px;
10
+
11
+ $text-color: #111;
12
+ $background-color: #fdfdfd;
13
+ $brand-color: #2568ba;
14
+
15
+ $grey-color: #828282;
16
+ $grey-color-light: lighten($grey-color, 40%);
17
+ $grey-color-dark: darken($grey-color, 25%);
18
+
19
+ // Width of the content area
20
+ $content-width: 800px;
21
+
22
+ $on-palm: 600px;
23
+ $on-laptop: 800px;
24
+
25
+
26
+
27
+ // Use media queries like this:
28
+ // @include media-query($on-palm) {
29
+ // .wrapper {
30
+ // padding-right: $spacing-unit / 2;
31
+ // padding-left: $spacing-unit / 2;
32
+ // }
33
+ // }
34
+ @mixin media-query($device) {
35
+ @media screen and (max-width: $device) {
36
+ @content;
37
+ }
38
+ }
39
+
40
+
41
+
42
+ // Import partials.
43
+ @import
44
+ "whiteglass/base",
45
+ "whiteglass/layout",
46
+ "whiteglass/syntax-highlighting"
47
+ ;
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Reset some basic elements
3
+ */
4
+ body, h1, h2, h3, h4, h5, h6,
5
+ p, blockquote, pre, hr,
6
+ dl, dd, ol, ul, figure {
7
+ margin: 0;
8
+ padding: 0;
9
+ }
10
+
11
+
12
+
13
+ /**
14
+ * Basic styling
15
+ */
16
+ body {
17
+ font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
18
+ color: $text-color;
19
+ background-color: $background-color;
20
+ -webkit-text-size-adjust: 100%;
21
+ -webkit-font-feature-settings: "kern" 1;
22
+ -moz-font-feature-settings: "kern" 1;
23
+ -o-font-feature-settings: "kern" 1;
24
+ font-feature-settings: "kern" 1;
25
+ font-kerning: normal;
26
+ }
27
+
28
+
29
+
30
+ /**
31
+ * Set `margin-bottom` to maintain vertical rhythm
32
+ */
33
+ h1, h2, h3, h4, h5, h6,
34
+ p, blockquote, pre,
35
+ ul, ol, dl, figure,
36
+ %vertical-rhythm {
37
+ margin-bottom: $spacing-unit / 2;
38
+ }
39
+
40
+
41
+
42
+ /**
43
+ * Images
44
+ */
45
+ img {
46
+ max-width: 100%;
47
+ vertical-align: middle;
48
+ }
49
+
50
+
51
+
52
+ /**
53
+ * Figures
54
+ */
55
+ figure > img {
56
+ display: block;
57
+ }
58
+
59
+ figcaption {
60
+ font-size: $small-font-size;
61
+ }
62
+
63
+
64
+
65
+ /**
66
+ * Lists
67
+ */
68
+ ul, ol {
69
+ margin-left: $spacing-unit;
70
+ }
71
+
72
+ li {
73
+ > ul,
74
+ > ol {
75
+ margin-bottom: 0;
76
+ }
77
+ }
78
+
79
+
80
+
81
+ /**
82
+ * Headings
83
+ */
84
+ h1, h2, h3, h4, h5, h6 {
85
+ font-weight: $base-font-weight;
86
+
87
+ code {
88
+ font-size: inherit;
89
+ }
90
+ }
91
+
92
+
93
+
94
+ /**
95
+ * Links
96
+ */
97
+ a {
98
+ color: $brand-color;
99
+ text-decoration: none;
100
+
101
+ &:visited {
102
+ color: darken($brand-color, 10%);
103
+ }
104
+
105
+ &:hover {
106
+ color: $text-color;
107
+ text-decoration: underline;
108
+ }
109
+ }
110
+
111
+
112
+
113
+ /**
114
+ * Blockquotes
115
+ */
116
+ blockquote {
117
+ color: $grey-color;
118
+ border-left: 4px solid $grey-color-light;
119
+ padding-left: $spacing-unit / 2;
120
+ font-size: 18px;
121
+ letter-spacing: -1px;
122
+ font-style: italic;
123
+
124
+ > :last-child {
125
+ margin-bottom: 0;
126
+ }
127
+ }
128
+
129
+
130
+
131
+ /**
132
+ * Rules
133
+ */
134
+ hr {
135
+ height: 4px;
136
+ margin: $spacing-unit / 2 0;
137
+ border: 0;
138
+ background-color: $grey-color-light;
139
+ }
140
+
141
+
142
+
143
+ /**
144
+ * Code formatting
145
+ */
146
+ pre,
147
+ code {
148
+ font-family: $monospace-font-family;
149
+ font-size: 13px;
150
+ border: 1px solid $grey-color-light;
151
+ border-radius: 0;
152
+ background-color: lighten($grey-color-light, 5%);
153
+ }
154
+
155
+ code {
156
+ padding: 1px 5px;
157
+ }
158
+
159
+ pre {
160
+ padding: 8px 12px;
161
+ overflow-x: auto;
162
+
163
+ > code {
164
+ border: 0;
165
+ padding-right: 0;
166
+ padding-left: 0;
167
+ }
168
+ }
169
+
170
+
171
+
172
+ /**
173
+ * Wrapper
174
+ */
175
+ .wrapper {
176
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
177
+ max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
178
+ margin-right: auto;
179
+ margin-left: auto;
180
+ padding-right: $spacing-unit;
181
+ padding-left: $spacing-unit;
182
+ @extend %clearfix;
183
+
184
+ @include media-query($on-laptop) {
185
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
186
+ max-width: calc(#{$content-width} - (#{$spacing-unit}));
187
+ padding-right: $spacing-unit / 2;
188
+ padding-left: $spacing-unit / 2;
189
+ }
190
+ }
191
+
192
+
193
+
194
+ /**
195
+ * Clearfix
196
+ */
197
+ %clearfix:after {
198
+ content: "";
199
+ display: table;
200
+ clear: both;
201
+ }
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Site header
3
+ */
4
+ .site-header {
5
+ min-height: 56px;
6
+
7
+ // Positioning context for the mobile navigation icon
8
+ position: relative;
9
+ }
10
+
11
+ .site-title {
12
+ font-size: 26px;
13
+ font-weight: 300;
14
+ line-height: 56px;
15
+ letter-spacing: -1px;
16
+ margin-bottom: 0;
17
+ float: left;
18
+
19
+ &,
20
+ &:visited {
21
+ color: $grey-color-dark;
22
+ }
23
+ }
24
+
25
+ .site-nav {
26
+ float: right;
27
+ line-height: 56px;
28
+
29
+ .page-link {
30
+ color: $text-color;
31
+ line-height: $base-line-height;
32
+
33
+ // Gaps between nav items, but not on the last one
34
+ &:not(:last-child) {
35
+ margin-right: 20px;
36
+ }
37
+ }
38
+
39
+ @include media-query($on-palm) {
40
+ .page-link {
41
+ padding: 20px 0;
42
+
43
+ &:not(:last-child) {
44
+ margin-right: 0;
45
+ }
46
+ margin-left: 20px;
47
+ }
48
+ }
49
+ }
50
+
51
+
52
+
53
+ /**
54
+ * Site footer
55
+ */
56
+ .site-footer {
57
+ padding: $spacing-unit 0;
58
+ font-size: 15px;
59
+ color: $grey-color;
60
+ text-align: center;
61
+ }
62
+
63
+
64
+
65
+ /**
66
+ * Page content
67
+ */
68
+ .page-content {
69
+ padding: $spacing-unit 0;
70
+ }
71
+
72
+ .page-heading {
73
+ font-size: 20px;
74
+ }
75
+
76
+ .post-list {
77
+ margin-left: 0;
78
+ list-style: none;
79
+
80
+ .post-link:hover {
81
+ text-decoration: none;
82
+ }
83
+
84
+ > li {
85
+ margin-bottom: $spacing-unit * 2;
86
+
87
+ &:not(:first-child) {
88
+ border-top: 4px solid $grey-color-light;
89
+ padding-top: $spacing-unit * 2;
90
+ }
91
+ }
92
+ }
93
+
94
+ .post-archives {
95
+ margin-left: 0;
96
+ list-style: none;
97
+
98
+ .post-link {
99
+ font-size: 24px;
100
+ }
101
+
102
+ > li {
103
+ margin-bottom: $spacing-unit;
104
+ }
105
+ }
106
+
107
+ .post-meta {
108
+ font-size: $small-font-size;
109
+ color: $grey-color;
110
+ }
111
+
112
+ .post-link {
113
+ &,
114
+ &:visited {
115
+ color: $text-color;
116
+ }
117
+
118
+ &:hover {
119
+ color: $brand-color;
120
+ }
121
+ }
122
+
123
+ .post-continue {
124
+ a {
125
+ padding: 8px 15px;
126
+ text-decoration: none;
127
+
128
+ &,
129
+ &:visited {
130
+ color: $grey-color;
131
+ background-color: $grey-color-light;
132
+ }
133
+
134
+ &:hover {
135
+ color: white;
136
+ background-color: $brand-color;
137
+ }
138
+ }
139
+ }
140
+
141
+
142
+
143
+ /**
144
+ * Posts
145
+ */
146
+ .post-header {
147
+ margin-bottom: $spacing-unit;
148
+ }
149
+
150
+ .post-title {
151
+ font-size: 42px;
152
+ letter-spacing: -1px;
153
+ line-height: 1;
154
+
155
+ @include media-query($on-laptop) {
156
+ font-size: 36px;
157
+ }
158
+ }
159
+
160
+ .post-content {
161
+ margin-bottom: $spacing-unit;
162
+
163
+ h2 {
164
+ font-size: 32px;
165
+
166
+ @include media-query($on-laptop) {
167
+ font-size: 28px;
168
+ }
169
+ }
170
+
171
+ h3 {
172
+ font-size: 26px;
173
+
174
+ @include media-query($on-laptop) {
175
+ font-size: 22px;
176
+ }
177
+ }
178
+
179
+ h4 {
180
+ font-size: 20px;
181
+
182
+ @include media-query($on-laptop) {
183
+ font-size: 18px;
184
+ }
185
+ }
186
+ }
187
+
188
+
189
+
190
+ /**
191
+ * Pagination
192
+ */
193
+ .pagination {
194
+ padding: $spacing-unit / 2 0;
195
+ border-top: 1px solid $grey-color-light;
196
+ border-bottom: 1px solid $grey-color-light;
197
+ text-align: center;
198
+ @extend %clearfix;
199
+
200
+ a {
201
+ &,
202
+ &:visited {
203
+ color: $grey-color;
204
+ }
205
+
206
+ &:hover {
207
+ color: $brand-color;
208
+ }
209
+ }
210
+
211
+ .previous {
212
+ float: left;
213
+ }
214
+
215
+ .next {
216
+ float: right;
217
+ }
218
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Syntax highlighting styles
3
+ */
4
+ .highlight {
5
+ background-color: lighten($grey-color-light, 5%);
6
+ @extend %vertical-rhythm;
7
+
8
+ .highlighter-rouge & {
9
+ background-color: lighten($grey-color-light, 5%);
10
+ }
11
+
12
+ .c { color: #998; font-style: italic } // Comment
13
+ .err { color: #a61717; background-color: #e3d2d2 } // Error
14
+ .k { font-weight: bold } // Keyword
15
+ .o { font-weight: bold } // Operator
16
+ .cm { color: #998; font-style: italic } // Comment.Multiline
17
+ .cp { color: #999; font-weight: bold } // Comment.Preproc
18
+ .c1 { color: #998; font-style: italic } // Comment.Single
19
+ .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
20
+ .gd { color: #000; background-color: #fdd } // Generic.Deleted
21
+ .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
22
+ .ge { font-style: italic } // Generic.Emph
23
+ .gr { color: #a00 } // Generic.Error
24
+ .gh { color: #999 } // Generic.Heading
25
+ .gi { color: #000; background-color: #dfd } // Generic.Inserted
26
+ .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
27
+ .go { color: #888 } // Generic.Output
28
+ .gp { color: #555 } // Generic.Prompt
29
+ .gs { font-weight: bold } // Generic.Strong
30
+ .gu { color: #aaa } // Generic.Subheading
31
+ .gt { color: #a00 } // Generic.Traceback
32
+ .kc { font-weight: bold } // Keyword.Constant
33
+ .kd { font-weight: bold } // Keyword.Declaration
34
+ .kp { font-weight: bold } // Keyword.Pseudo
35
+ .kr { font-weight: bold } // Keyword.Reserved
36
+ .kt { color: #458; font-weight: bold } // Keyword.Type
37
+ .m { color: #099 } // Literal.Number
38
+ .s { color: #d14 } // Literal.String
39
+ .na { color: #008080 } // Name.Attribute
40
+ .nb { color: #0086B3 } // Name.Builtin
41
+ .nc { color: #458; font-weight: bold } // Name.Class
42
+ .no { color: #008080 } // Name.Constant
43
+ .ni { color: #800080 } // Name.Entity
44
+ .ne { color: #900; font-weight: bold } // Name.Exception
45
+ .nf { color: #900; font-weight: bold } // Name.Function
46
+ .nn { color: #555 } // Name.Namespace
47
+ .nt { color: #000080 } // Name.Tag
48
+ .nv { color: #008080 } // Name.Variable
49
+ .ow { font-weight: bold } // Operator.Word
50
+ .w { color: #bbb } // Text.Whitespace
51
+ .mf { color: #099 } // Literal.Number.Float
52
+ .mh { color: #099 } // Literal.Number.Hex
53
+ .mi { color: #099 } // Literal.Number.Integer
54
+ .mo { color: #099 } // Literal.Number.Oct
55
+ .sb { color: #d14 } // Literal.String.Backtick
56
+ .sc { color: #d14 } // Literal.String.Char
57
+ .sd { color: #d14 } // Literal.String.Doc
58
+ .s2 { color: #d14 } // Literal.String.Double
59
+ .se { color: #d14 } // Literal.String.Escape
60
+ .sh { color: #d14 } // Literal.String.Heredoc
61
+ .si { color: #d14 } // Literal.String.Interpol
62
+ .sx { color: #d14 } // Literal.String.Other
63
+ .sr { color: #009926 } // Literal.String.Regex
64
+ .s1 { color: #d14 } // Literal.String.Single
65
+ .ss { color: #990073 } // Literal.String.Symbol
66
+ .bp { color: #999 } // Name.Builtin.Pseudo
67
+ .vc { color: #008080 } // Name.Variable.Class
68
+ .vg { color: #008080 } // Name.Variable.Global
69
+ .vi { color: #008080 } // Name.Variable.Instance
70
+ .il { color: #099 } // Literal.Number.Integer.Long
71
+ }
@@ -0,0 +1,49 @@
1
+ ---
2
+ # Only the main Sass file needs front matter (the dashes are enough)
3
+ ---
4
+ @charset "utf-8";
5
+
6
+ // Our variables
7
+ $base-font-family: Bitter, "Apple SD Gothic Neo", AppleGothic, NanumBarunGothic, "Malgun Gothic", Dotum, sans-serif;
8
+ $monospace-font-family: Monaco, Menlo, Consolas, "Courier New", DotumChe, monospace;
9
+ $base-font-size: 16px;
10
+ $base-font-weight: 400;
11
+ $small-font-size: $base-font-size * 0.875;
12
+ $base-line-height: 1.5;
13
+
14
+ $spacing-unit: 30px;
15
+
16
+ $text-color: #111;
17
+ $background-color: #fdfdfd;
18
+ $brand-color: #2568ba;
19
+
20
+ $grey-color: #828282;
21
+ $grey-color-light: lighten($grey-color, 40%);
22
+ $grey-color-dark: darken($grey-color, 25%);
23
+
24
+ // Width of the content area
25
+ $content-width: 800px;
26
+
27
+ $on-palm: 600px;
28
+ $on-laptop: 800px;
29
+
30
+
31
+
32
+ // whiteglass also includes a mixin for defining media queries.
33
+ // Use media queries like this:
34
+ // @include media-query($on-palm) {
35
+ // .wrapper {
36
+ // padding-right: $spacing-unit / 2;
37
+ // padding-left: $spacing-unit / 2;
38
+ // }
39
+ // }
40
+ @mixin media-query($device) {
41
+ @media screen and (max-width: $device) {
42
+ @content;
43
+ }
44
+ }
45
+
46
+
47
+
48
+ // Import partials from the `whiteglass` theme.
49
+ @import "whiteglass";
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-whiteglass
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Chayoung You
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-06 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.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.3'
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'
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'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jekyll-paginate
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jekyll-sitemap
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.12'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.12'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.12'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.12'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ description:
98
+ email:
99
+ - yousbe@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - LICENSE.txt
105
+ - README.md
106
+ - _includes/category_links.html
107
+ - _includes/fonts.html
108
+ - _includes/footer.html
109
+ - _includes/footer_content.html
110
+ - _includes/google_analytics.html
111
+ - _includes/head.html
112
+ - _includes/head_custom.html
113
+ - _includes/header.html
114
+ - _includes/pagination.html
115
+ - _layouts/archive.html
116
+ - _layouts/category_archives.html
117
+ - _layouts/default.html
118
+ - _layouts/feed.xml
119
+ - _layouts/home.html
120
+ - _layouts/page.html
121
+ - _layouts/post.html
122
+ - _sass/whiteglass.scss
123
+ - _sass/whiteglass/_base.scss
124
+ - _sass/whiteglass/_layout.scss
125
+ - _sass/whiteglass/_syntax-highlighting.scss
126
+ - assets/main.scss
127
+ homepage: https://github.com/yous/whiteglass
128
+ licenses:
129
+ - MIT
130
+ metadata: {}
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 2.6.8
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: Minimal, responsible Jekyll theme for hackers.
151
+ test_files: []