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.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +186 -0
- data/_includes/category_links.html +8 -0
- data/_includes/fonts.html +14 -0
- data/_includes/footer.html +11 -0
- data/_includes/footer_content.html +1 -0
- data/_includes/google_analytics.html +13 -0
- data/_includes/head.html +60 -0
- data/_includes/head_custom.html +10 -0
- data/_includes/header.html +20 -0
- data/_includes/pagination.html +11 -0
- data/_layouts/archive.html +28 -0
- data/_layouts/category_archives.html +25 -0
- data/_layouts/default.html +20 -0
- data/_layouts/feed.xml +34 -0
- data/_layouts/home.html +39 -0
- data/_layouts/page.html +14 -0
- data/_layouts/post.html +19 -0
- data/_sass/whiteglass.scss +47 -0
- data/_sass/whiteglass/_base.scss +201 -0
- data/_sass/whiteglass/_layout.scss +218 -0
- data/_sass/whiteglass/_syntax-highlighting.scss +71 -0
- data/assets/main.scss +49 -0
- metadata +151 -0
checksums.yaml
ADDED
@@ -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
|
data/LICENSE.txt
ADDED
@@ -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.
|
data/README.md
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
# whiteglass
|
2
|
+
|
3
|
+
[](https://travis-ci.org/yous/whiteglass)
|
4
|
+
[](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 @@
|
|
1
|
+
© {{ 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 %}
|
data/_includes/head.html
ADDED
@@ -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 }}">« Older</a>
|
5
|
+
{% endif %}
|
6
|
+
|
7
|
+
{% if paginator.previous_page %}
|
8
|
+
<a class="next" href="{{ paginator.previous_page_path | relative_url }}">Newer »</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 %} →{% 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 %} →{% 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>
|
data/_layouts/feed.xml
ADDED
@@ -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: " →" | 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>
|
data/_layouts/home.html
ADDED
@@ -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 %} →{% 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 →</a>
|
31
|
+
</p>
|
32
|
+
{% endif %}
|
33
|
+
</li>
|
34
|
+
{% endfor %}
|
35
|
+
</ul>
|
36
|
+
|
37
|
+
{% include pagination.html %}
|
38
|
+
|
39
|
+
</div>
|
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
@@ -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 }} →</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
|
+
}
|
data/assets/main.scss
ADDED
@@ -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: []
|