├── .gitignore
├── CODE_OF_CONDUCT.md
├── Gemfile
├── LICENSE
├── README.md
├── _config.yml
├── _includes
├── analytics.html
├── baidu_statistic.html
├── cnzz_statistic.html
├── comments.html
├── disqus_comments.html
├── footer.html
├── giscus_comments.html
├── gitalk_comments.html
├── head.html
├── image.html
├── navigation.html
└── tag_cloud.html
├── _layouts
├── archive.html
├── default.html
├── home.html
├── page.html
├── post.html
├── relics.html
├── tag-archive.html
└── tag_page.html
├── _pages
└── about.md
├── _posts
├── 2017-03-05-pagination-post.md
├── 2017-03-06-the-mystery-of-the-filler-post.md
├── 2017-03-07-the-case-of-the-missing-post.md
├── 2017-03-10-welcome-to-jekyll.md
├── 2017-03-16-example-content.md
└── 2017-03-29-introducing-tale.md
├── _sass
├── tale.scss
├── tale
│ ├── _base.scss
│ ├── _catalogue.scss
│ ├── _code.scss
│ ├── _commentation.scss
│ ├── _layout.scss
│ ├── _pagination.scss
│ ├── _post.scss
│ ├── _relic.scss
│ ├── _syntax.scss
│ └── _variables.scss
├── type
│ ├── __all.scss
│ ├── _functions.scss
│ ├── _mixins.scss
│ ├── _mq.scss
│ └── _variables.scss
└── vendor
│ ├── _gitalk-plus.scss
│ └── _gitalk.scss
├── assets
├── apple-touch-icon.png
├── favicon-16x16.png
├── favicon-32x32.png
├── js
│ ├── disqusLoader.js
│ └── gitalk.min.js
└── main.scss
├── favicon.ico
├── index.html
└── tale.gemspec
/.gitignore:
--------------------------------------------------------------------------------
1 | *.gem
2 | .bundle
3 | .DS_Store
4 | .sass-cache
5 | _site
6 | Gemfile.lock
7 | .jekyll-cache
8 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | * Using welcoming and inclusive language
12 | * Being respectful of differing viewpoints and experiences
13 | * Gracefully accepting constructive criticism
14 | * Focusing on what is best for the community
15 | * Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | * Trolling, insulting/derogatory comments, and personal or political attacks
21 | * Public or private harassment
22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | * Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at chesterhow@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44 |
45 | [homepage]: http://contributor-covenant.org
46 | [version]: http://contributor-covenant.org/version/1/4/
47 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | source "https://rubygems.org"
4 | gemspec
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Chester How
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 all
13 | 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 THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tale - theme for hutusi.com
2 |
3 | [](https://badge.fury.io/rb/tale)
4 |
5 | Tale is a minimal Jekyll theme curated for storytellers. Checkout the demo [here](https://chesterhow.github.io/tale/).
6 |
7 | 
8 |
9 | ## Features
10 | - Easy installation
11 | - Compatible with GitHub Pages
12 | - Responsive design (looks just as good on mobile)
13 | - Syntax highlighting, with the help of Pygments
14 | - Markdown and HTML text formatting
15 | - Pagination of posts
16 | - [Disqus comments (can be enabled if needed)](#enabling-comments)
17 |
18 | ## Installation
19 | There are 3 ways to install this theme
20 |
21 | 1. Install it as a Ruby Gem (for self-hosted sites)
22 | 2. Install it with the `jekyll-remote-theme` plugin (for GitHub Pages hosted sites)
23 | 3. Fork the project directly
24 |
25 | ### Ruby Gem method
26 | 1. Add this line to your `Gemfile`:
27 |
28 | ```ruby
29 | gem "tale"
30 | ```
31 |
32 | 2. Install the theme's gems and dependencies:
33 |
34 | ```bash
35 | $ bundle
36 | ```
37 |
38 | 3. In `_config.yml` add these lines:
39 |
40 | ```yaml
41 | theme: tale
42 |
43 | permalink: /:year-:month-:day/:title
44 | paginate: 5
45 | ```
46 |
47 | Remove any other `theme:` lines.
48 |
49 | 4. Rename `index.md` to `index.html`. Without this, the `jekyll-paginate` gem will not work.
50 |
51 | 5. In `about.md`, change the `layout:` field to `post`:
52 |
53 | ```Markdown
54 | layout: post
55 | ```
56 |
57 | ### GitHub Pages method
58 | 1. Add these 2 lines in to your `Gemfile`:
59 |
60 | ```ruby
61 | gem "jekyll-remote-theme"
62 | gem "jekyll-paginate"
63 | ```
64 |
65 | 2. Install the newly added gems:
66 |
67 | ```bash
68 | $ bundle
69 | ```
70 |
71 | 3. In `_config.yml` add these lines:
72 |
73 | ```yaml
74 | remote_theme: chesterhow/tale
75 |
76 | permalink: /:year-:month-:day/:title
77 | paginate: 5
78 |
79 | plugins:
80 | - jekyll-paginate
81 | - jekyll-remote-theme
82 | ```
83 |
84 | Remove any other `theme:` or `remote_theme:` lines.
85 |
86 | 4. Rename `index.md` to `index.html`. Without this, the `jekyll-paginate` gem will not work.
87 |
88 | 5. In `about.md`, change the `layout:` field to `post`:
89 |
90 | ```Markdown
91 | layout: post
92 | ```
93 |
94 | ### Fork method
95 | 1. Fork this repository
96 |
97 | 2. Delete the unnecessary files/folders: `CODE_OF_CONDUCT.md`, `LICENSE`, `README.md`, `tale.gemspec`
98 |
99 | 3. Delete the `baseurl` line in `_config.yml`:
100 |
101 | ```yaml
102 | baseurl: "/tale" # delete this line
103 | ```
104 |
105 | ## Usage
106 | Once you've installed the theme, you're ready to work on your Jekyll site. To start off, I would recommend updating `_config.yml` with your site's details.
107 |
108 | To build and serve your site, run:
109 |
110 | ```bash
111 | $ bundle exec jekyll serve
112 | ```
113 |
114 | And you're all set! Head over to http://127.0.0.1:4000/ to see your site in action.
115 |
116 | ### Enabling Comments
117 | Comments are disabled by default. To enable them, look for the following line in `_config.yml` and change `jekyll-tale` to your site's Disqus id.
118 |
119 | ```yml
120 | disqus: jekyll-tale
121 | ```
122 |
123 | Next, add `comments: true` to the YAML front matter of the posts which you would like to enable comments for.
124 |
125 | ## Contributing
126 | Found a bug or have a suggestion? Feel free to create an issue or make a pull request!
127 |
128 | ## License
129 | See [LICENSE](https://github.com/chesterhow/tale/blob/master/LICENSE)
130 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Site settings
2 | title: Tale
3 | description: "Minimal Jekyll theme for hutusi.com"
4 | baseurl: "/tale"
5 | url: "https://hutusi.com"
6 |
7 | # Google Analytics
8 | google_analytics: UA-30399492-1
9 |
10 | # Baidu Statistic
11 | baidu_statistic: 6e5f92006f4eed18f39b7cb30f420d8a
12 |
13 | # Google AdSense
14 | google_adsense:
15 |
16 | # cnzz statistic
17 | cnzz_statistic:
18 |
19 | # addthis
20 | addthis:
21 |
22 | copyright: 'hutusi.com'
23 | # Author
24 | author:
25 | name: hutusi
26 | url: https://hutusi.com
27 | email: huziyong@gmail.com
28 |
29 | # images CDN
30 | images_baseurl: '/images'
31 | wechat_official: ''
32 |
33 | # Build settings
34 | markdown: kramdown
35 | include:
36 | - _pages
37 |
38 | # Assets
39 | sass:
40 | sass_dir: _sass
41 | style: compressed
42 |
43 | # Gems
44 | plugins:
45 | - jekyll-feed
46 | - jekyll-paginate
47 | - jekyll-seo-tag
48 | # - jekyll/tagging
49 | # - jekyll-sitemap
50 | # - jemoji #Uncomment this to allow emoji in your post
51 |
52 | # Permalinks
53 | permalink: /:year-:month-:day/:title
54 | paginate: 5
55 |
56 | # Navigators
57 | nav_page_names: ['about.md']
58 | # can be ['feeds.pub', 'xml', 'na']
59 | nav_feed: 'feeds.pub'
60 |
61 | # Excludes
62 | exclude: [ Gemfile, Gemfile.lock, tale.gemspec ]
63 |
64 | # Tagging
65 | # tag_page_dir: tag
66 | # tag_page_layout: tag_page
67 | # tag_permalink_style: pretty
68 |
69 | # tag_page_data:
70 | # sitemap: false
71 |
72 | # can be ['disqus', 'gitalk', 'giscus']
73 | comments_engine: na
74 |
75 | # Disqus (Set to your disqus id)
76 | disqus: jekyll-tale
77 |
78 | gitalk:
79 | client_id: ''
80 | client_secret: ''
81 | repo: ''
82 | owner: ''
83 | admin:
84 | - ''
85 |
86 | giscus:
87 | repo: ''
88 | repo_id: ''
89 | category: ''
90 | category_id: ''
91 | mapping: 'pathname'
92 | input_position: 'bottom'
93 | theme: 'light'
94 | lang: "en"
95 |
--------------------------------------------------------------------------------
/_includes/analytics.html:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/_includes/baidu_statistic.html:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/_includes/cnzz_statistic.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/_includes/comments.html:
--------------------------------------------------------------------------------
1 |
19 |
20 |
43 |
--------------------------------------------------------------------------------
/_includes/disqus_comments.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 | Please enable JavaScript to view the comments powered by Disqus.
21 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
46 |
--------------------------------------------------------------------------------
/_includes/giscus_comments.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/_includes/gitalk_comments.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 去 Github 评论
13 |
14 |
15 |
16 |
17 |
18 |
47 | Please enable JavaScript to view the comments powered by gitalk.
48 |
49 |
50 |
51 |
90 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {% seo %}
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | {% feed_meta %}
18 |
19 |
20 | {% if site.google_analytics %}
21 | {% include analytics.html %}
22 | {% endif %}
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/_includes/image.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ include.caption }}
6 |
--------------------------------------------------------------------------------
/_includes/navigation.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ site.title }}
5 |
6 |
7 |
8 | {%- for page_name in site.nav_page_names -%}
9 | {%- for page in site.pages -%}
10 |
11 | {%- if page.title and page.name == page_name -%}
12 |
13 |
14 | {{ page.title }}
15 |
16 |
17 | {%- endif -%}
18 |
19 | {%- endfor -%}
20 | {%- endfor -%}
21 |
22 | {% if site.nav_feed == 'feeds.pub' %}
23 |
24 |
25 |
26 | {% elsif site.nav_feed == 'xml' %}
27 |
28 | Feed
29 |
30 | {% endif %}
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/_includes/tag_cloud.html:
--------------------------------------------------------------------------------
1 |
2 | {% capture temptags %}
3 | {% for tag in site.tags %}
4 | {{ tag[1].size | plus: 1000 }}#{{ tag[0] }}#{{ tag[1].size }}
5 | {% endfor %}
6 | {% endcapture %}
7 | {% assign sortedtemptags = temptags | split:' ' | sort | reverse %}
8 | {% for temptag in sortedtemptags %}
9 | {% assign tagitems = temptag | split: '#' %}
10 | {% capture tagname %}{{ tagitems[1] }}{% endcapture %}
11 | {{ tagname }}
12 | {% endfor %}
13 |
--------------------------------------------------------------------------------
/_layouts/archive.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | Archive of posts with {{ page.type }} '{{ page.title }}'
6 |
7 | {% for post in page.posts %}
8 |
9 | {{ post.date | date: "%b %-d, %Y" }}
10 | {{ post.title }}
11 |
12 | {% endfor %}
13 |
14 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% include head.html %}
5 |
6 |
7 |
8 | {% include navigation.html %}
9 |
10 |
11 | {{ content }}
12 |
13 |
14 | {% include footer.html %}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/_layouts/home.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
21 |
22 |
32 |
--------------------------------------------------------------------------------
/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
{{ page.title }}
7 |
8 |
9 | {{ content }}
10 |
11 |
12 | {% if page.commentable %}
13 | {% include comments.html %}
14 | {% endif %}
15 |
16 |
--------------------------------------------------------------------------------
/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
{{ page.title }}
7 |
{{ page.subtitle }}
8 |
9 |
10 | {% if page.date %}
11 | {{ page.date | date: "%B %d, %Y" }}
12 | {% endif %}
13 |
14 |
15 | {{ content }}
16 |
17 |
18 |
23 |
24 |
25 |
26 |
36 |
37 | {% include comments.html %}
38 |
39 |
49 |
50 | {% if site.addthis %}
51 |
52 |
53 | {% endif %}
54 |
--------------------------------------------------------------------------------
/_layouts/relics.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
{{ page.title }}
7 |
{{ page.subtitle }}
8 |
9 |
40 |
41 |
42 |
43 | {{ content }}
44 |
45 |
46 |
51 |
52 |
53 |
54 |
58 |
59 | {% include comments.html %}
60 |
61 |
71 |
72 | {% if site.addthis %}
73 |
74 |
75 | {% endif %}
76 |
--------------------------------------------------------------------------------
/_layouts/tag-archive.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {{ page.title }}
6 |
7 | {% for post in page.posts %}
8 |
9 | {{ post.title }} ({{ post.date | date_to_string }})
10 | {% endfor %}
11 |
12 |
13 | All tags
14 |
15 |
16 | {% include tag_cloud.html %}
17 |
18 |
--------------------------------------------------------------------------------
/_layouts/tag_page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {{ page.tag }}
6 |
7 | {% for post in page.posts %}
8 | {{ post.title }} ({{ post.date | date_to_string }} | Tags: {{ post | tags }})
9 | {% endfor %}
10 |
11 |
12 | All tags
13 |
14 |
15 | {{ site | tag_cloud }}
16 |
17 |
--------------------------------------------------------------------------------
/_pages/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "About"
4 | author: "Chester"
5 | permalink: /about/
6 | ---
7 |
8 | A friend of mine writes short stories. One sunny day, I asked if he wanted a website to showcase his works and he agreed. I decided to use GitHub Pages to host his site. That way he wouldn't have to buy a domain and a server.
9 |
10 | While doing some research up on GitHub Pages, I accidentally chanced upon this _simple, blog-aware, static site generator_ called [Jekyll](https://jekyllrb.com/) which works really well with GitHub Pages. I figured it would do just fine for my friend and I set about searching for a pretty theme. I wanted a theme with a _book-ish_ vibe. Unfortunately, most of the themes were too modern. Eventually, I caved and begun working on my own theme. With the help of [Poole](https://github.com/poole/poole), the Jekyll Butler, I was able to build **Tale**.
11 |
12 | ## Contribute
13 | Feel free to create an issue or make a pull request on [GitHub](https://github.com/chesterhow/tale).
14 |
15 | Thanks for reading!
16 |
--------------------------------------------------------------------------------
/_posts/2017-03-05-pagination-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Pagination Post"
4 | author: "Chester"
5 | ---
6 |
7 | Here we see **Tale's** pagination feature in action. It is set to 5 posts per page by default. Feel free to change this number in the `_config.yml` file!
8 |
--------------------------------------------------------------------------------
/_posts/2017-03-06-the-mystery-of-the-filler-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "The Mystery of the Filler Post"
4 | author: "Chester"
5 | ---
6 |
7 | Hornswaggle measured fer yer chains chase run a shot across the bow Chain Shot flogging Pirate Round galleon rope's end aft. Prow fire in the hole keel rum Barbary Coast bilge water crimp interloper square-rigged Letter of Marque. Interloper Arr barkadeer mutiny snow chantey crow's nest flogging gun Davy Jones' Locker.
8 |
9 | Bilge jolly boat barque topsail interloper chandler spanker scuttle Arr sloop. Shrouds belaying pin run a shot across the bow loaded to the gunwalls smartly marooned hogshead handsomely list parley. Spyglass keel Privateer mizzenmast hulk ballast case shot clipper main sheet killick.
10 |
11 | Careen hempen halter Letter of Marque pillage swing the lead take a caulk Sail ho jury mast walk the plank ho. Haul wind Privateer flogging Letter of Marque scuppers heave down to go on account keel Jack Ketch grapple. Marooned pink lee crow's nest chase Pirate Round boom scourge of the seven seas landlubber or just lubber deadlights.
12 |
13 | [Pirate Ipsum](http://pirateipsum.me/)
14 |
--------------------------------------------------------------------------------
/_posts/2017-03-07-the-case-of-the-missing-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "The Case of the Missing Post"
4 | author: "Chester"
5 | ---
6 |
7 | Kitty power! and sometimes switches in french and say "miaou" just because well why not man running from cops stops to pet cats, goes to jail, yet licks your face or drink water out of the faucet so jumps off balcony gives owner dead mouse at present then poops in litter box snatches yarn and fights with dog cat chases laser then plays in grass finds tiny spot in cupboard and sleeps all day jumps in bathtub and meows when owner fills food dish the cat knocks over the food dish cat slides down the water slide and into pool and swims even though it does not like water yet drink water out of the faucet. Pelt around the house and up and down stairs chasing phantoms.
8 |
9 | Sit in window and stare ooo, a bird! yum. Sit and stare. Sweet beast loves cheeseburgers. Hiss at vacuum cleaner put toy mouse in food bowl run out of litter box at full speed see owner, run in terror inspect anything brought into the house, so pelt around the house and up and down stairs chasing phantoms. Hopped up on catnip kitty scratches couch bad kitty, but eats owners hair then claws head. Lie on your belly and purr when you are asleep kitty power! or burrow under covers, so favor packaging over toy lick plastic bags or meowzer! yet unwrap toilet paper.
10 |
11 | [Cat Ipsum](http://www.catipsum.com/)
12 |
--------------------------------------------------------------------------------
/_posts/2017-03-10-welcome-to-jekyll.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Welcome to Jekyll!"
4 | author: "Jekyll"
5 | ---
6 |
7 | You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
8 |
9 | To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
10 |
11 | Jekyll also offers powerful support for code snippets: like these
12 |
13 | {% highlight ruby %}
14 | def print_hi(name)
15 | puts "Hi, #{name}"
16 | end
17 | print_hi('Tom')
18 | #=> prints 'Hi, Tom' to STDOUT.
19 | {% endhighlight %}
20 |
21 | Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
22 |
23 | [jekyll-docs]: https://jekyllrb.com/docs/home
24 | [jekyll-gh]: https://github.com/jekyll/jekyll
25 | [jekyll-talk]: https://talk.jekyllrb.com/
26 |
--------------------------------------------------------------------------------
/_posts/2017-03-16-example-content.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Example Content"
4 | author: "Chester"
5 | ---
6 |
7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas tincidunt ornare nibh, non elementum augue tempus eget. Pellentesque tempus scelerisque iaculis. Nullam interdum ultricies nibh quis sollicitudin. Donec ornare fermentum facilisis. Ut at sem ac sem imperdiet varius a eget tortor. Nam eu augue eget orci semper maximus in eget augue. Mauris ornare, nisl ut suscipit consectetur, mi quam interdum tellus, at rutrum quam eros ultrices mi.
8 |
9 | # Headers
10 | {% highlight markdown %}
11 | # H1
12 | ## H2
13 | ### H3
14 | #### H4
15 | ##### H5
16 | ###### H6
17 | {% endhighlight %}
18 |
19 | # H1
20 | ## H2
21 | ### H3
22 | #### H4
23 | ##### H5
24 | ###### H6
25 |
26 | # Text formatting
27 | {% highlight markdown %}
28 | - **Bold**
29 | - _Italics_
30 | - ~~Strikethrough~~
31 | - Underline
32 | - Superscript
33 | - Subscript
34 | - Abbreviation: HTML
35 | - Citation: — Chester How
36 | {% endhighlight %}
37 |
38 | - **Bold**
39 | - _Italics_
40 | - ~~Strikethrough~~
41 | - Underline
42 | - Superscript
43 | - Subscript
44 | - Abbreviation: HTML
45 | - Citation: — Chester How
46 |
47 | # Lists
48 | {% highlight markdown %}
49 | 1. Ordered list item 1
50 | 2. Ordered list item 2
51 | 3. Ordered list item 3
52 |
53 | * Unordered list item 1
54 | * Unordered list item 2
55 | * Unordered list item 3
56 | {% endhighlight %}
57 |
58 | 1. Ordered list item 1
59 | 2. Ordered list item 2
60 | 3. Ordered list item 3
61 |
62 | * Unordered list item 1
63 | * Unordered list item 2
64 | * Unordered list item 3
65 |
66 | # Links
67 | {% highlight markdown %}
68 | Check out tale on [GitHub](https://github.com/chesterhow/tale).
69 | {% endhighlight %}
70 |
71 | Check out tale on [GitHub](https://github.com/chesterhow/tale).
72 |
73 | # Images
74 | {% highlight markdown %}
75 | 
76 |
77 | 
78 | _This is an image with a caption_
79 | {% endhighlight %}
80 |
81 | 
82 |
83 | 
84 | _This is an image with a caption_
85 |
86 | # Code and Syntax Highlighting
87 | Use back-ticks for `inline code`. Multi-line code snippets are supported too through Pygments.
88 |
89 | {% highlight js %}
90 | // Sample javascript code
91 | var s = "JavaScript syntax highlighting";
92 | alert(s);
93 | {% endhighlight %}
94 |
95 | {% highlight python %}
96 | # Sample python code
97 | s = "Python syntax highlighting"
98 | print s
99 | {% endhighlight %}
100 |
101 | Adding `linenos` to the highlight tag enables line numbers.
102 |
103 | {% highlight js linenos %}
104 | // Sample javascript code
105 | var s = "JavaScript syntax highlighting";
106 | alert(s);
107 | {% endhighlight %}
108 |
109 | # Blockquotes
110 | {% highlight markdown %}
111 | > Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit.
112 |
113 | {% endhighlight %}
114 |
115 | > Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit.
116 |
117 | # Horizontal Rule & Line Break
118 | {% highlight markdown %}
119 | Use ` ` for horizontal rules
120 |
121 |
122 |
123 | and ` ` for line breaks.
124 |
125 |
126 | {% endhighlight %}
127 |
128 | Use ` ` for horizontal rules
129 |
130 |
131 |
132 | and ` ` for line breaks.
133 |
134 |
135 |
136 | _The end_
137 |
--------------------------------------------------------------------------------
/_posts/2017-03-29-introducing-tale.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Introducing Tale"
4 | author: "Chester"
5 | comments: true
6 | ---
7 |
8 | Tale is a minimal [Jekyll](https://jekyllrb.com/) theme curated for storytellers. It is designed and developed by [myself](https://github.com/chesterhow/) for a friend who writes short stories.
9 |
10 | ## Tale features
11 | - Compatible with GitHub Pages
12 | - Responsive design (looks just as good on mobile)
13 | - Syntax highlighting, with the help of Pygments
14 | - Markdown and HTML text formatting
15 | - Pagination of posts
16 |
17 | Head over to the [Example Content]({{ site.baseurl }}/2017-03-16/example-content) post for a showcase of Tale's text formatting features.
18 |
19 | ## Browser Support
20 | Tale works on most if not all modern browsers, including Chrome, Safari and Firefox 👍🏼
21 |
22 | ## Download or Contribute
23 | Tale is publicly hosted on GitHub, so go ahead and download or fork it at the [GitHub repository](https://github.com/chesterhow/tale). If you spot any bugs or have any suggestions, feel free to create an issue or make a pull request.
24 |
25 | Thanks for checking out Tale!
26 |
--------------------------------------------------------------------------------
/_sass/tale.scss:
--------------------------------------------------------------------------------
1 | @import 'type/_all';
2 |
3 | @import 'tale/variables';
4 | @import 'tale/base';
5 | @import 'tale/code';
6 | @import 'tale/post';
7 | @import 'tale/relic';
8 | @import 'tale/syntax';
9 | @import 'tale/layout';
10 | @import 'tale/pagination';
11 | @import 'tale/catalogue';
12 | @import 'tale/commentation';
13 |
14 | @import 'vendor/gitalk';
15 | @import 'vendor/gitalk-plus';
16 |
--------------------------------------------------------------------------------
/_sass/tale/_base.scss:
--------------------------------------------------------------------------------
1 | * {
2 | @include box-sizing;
3 | line-height: 1.5;
4 | }
5 |
6 | html,
7 | body {
8 | color: $default-color;
9 | margin: 0;
10 | padding: 0;
11 | }
12 |
13 | html {
14 | font-family: $serif-primary;
15 | font-size: 14px;
16 | overflow-y: scroll;
17 |
18 | @media (min-width: 600px) {
19 | font-size: 16px;
20 | }
21 | }
22 |
23 | body {
24 | -webkit-text-size-adjust: 100%;
25 | }
26 |
27 | h1,
28 | h2,
29 | h3,
30 | h4,
31 | h5,
32 | h6 {
33 | color: $default-shade;
34 | font-family: $sans-serif;
35 | line-height: normal;
36 | }
37 |
38 | a {
39 | color: $blue;
40 | text-decoration: none;
41 | }
42 |
43 | blockquote {
44 | border-left: .25rem solid $grey-2;
45 | color: $grey-1;
46 | margin: .8rem 0;
47 | padding: .5rem 1rem;
48 |
49 | p:last-child {
50 | margin-bottom: 0;
51 | }
52 |
53 | @media (min-width: 600px) {
54 | padding: 0 5rem 0 1.25rem;
55 | }
56 | }
57 |
58 | img {
59 | display: block;
60 | margin: 0 0 1rem;
61 | max-width: 100%;
62 | }
63 |
64 | td {
65 | vertical-align: top;
66 | }
67 |
68 | @media (max-width: 600px) {
69 | .hidden-mobile {
70 | visibility: hidden;
71 | display: none;
72 | clear: both;
73 | float: left;
74 | width: 100%;
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/_sass/tale/_catalogue.scss:
--------------------------------------------------------------------------------
1 | .catalogue {
2 | &-item {
3 | border-bottom: 1px solid $grey-2;
4 | color: $default-color;
5 | display: block;
6 | padding: 2rem 0;
7 |
8 | &:hover .catalogue-line,
9 | &:focus .catalogue-line {
10 | width: 5rem;
11 | }
12 |
13 | &:last-child {
14 | border: 0;
15 | }
16 | }
17 |
18 | &-time {
19 | color: $default-tint;
20 | font-family: $serif-secondary;
21 | letter-spacing: .5px;
22 | }
23 |
24 | &-title {
25 | color: $default-shade;
26 | display: block;
27 | font-family: $sans-serif;
28 | font-size: 1.5rem;
29 | font-weight: 700;
30 | margin: .5rem 0;
31 | }
32 |
33 | &-line {
34 | @include transition(all .3s ease-out);
35 | border-top: .2rem solid $default-shade;
36 | display: block;
37 | width: 2rem;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/_sass/tale/_code.scss:
--------------------------------------------------------------------------------
1 | pre,
2 | code {
3 | font-family: $monospaced;
4 | }
5 |
6 | code {
7 | background-color: $grey-3;
8 | border-radius: 3px;
9 | color: $code-color;
10 | font-size: 85%;
11 | padding: .25em .5em;
12 | }
13 |
14 | pre {
15 | margin: 0 0 1rem;
16 | }
17 |
18 | pre code {
19 | background-color: transparent;
20 | color: inherit;
21 | font-size: 100%;
22 | padding: 0;
23 | }
24 |
25 | .highlight {
26 | background-color: $grey-3;
27 | border-radius: 3px;
28 | line-height: 1.4;
29 | margin: 0 0 1rem;
30 | padding: 1rem;
31 |
32 | pre {
33 | margin-bottom: 0;
34 | overflow-x: auto;
35 | }
36 |
37 | .lineno {
38 | color: $default-tint;
39 | display: inline-block; // Ensures the null space also isn't selectable
40 | padding: 0 .75rem 0 .25rem;
41 | // Make sure numbers aren't selectable
42 | -webkit-user-select: none;
43 | -moz-user-select: none;
44 | user-select: none;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/_sass/tale/_commentation.scss:
--------------------------------------------------------------------------------
1 | .commentation {
2 | border-top: .5px solid $grey-2;
3 | font-family: $serif-secondary;
4 | padding-top: 2rem;
5 | margin-top: 1rem;
6 | position: relative;
7 | text-align: center;
8 |
9 | .active, .btn:hover {
10 | background-color: #666;
11 | color: white;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/_sass/tale/_layout.scss:
--------------------------------------------------------------------------------
1 | .container {
2 | margin: 0 auto;
3 | max-width: 800px;
4 | width: 80%;
5 | }
6 |
7 | main,
8 | footer,
9 | .nav-container {
10 | display: block;
11 | margin: 0 auto;
12 | max-width: 800px;
13 | width: 80%;
14 | }
15 |
16 | .nav {
17 | box-shadow: 0 2px 2px -2px $shadow-color;
18 | overflow: auto;
19 |
20 | &-container {
21 | margin: 1rem auto;
22 | position: relative;
23 | text-align: center;
24 | }
25 |
26 | &-title {
27 | @include transition(all .2s ease-out);
28 | color: $default-color;
29 | display: inline-block;
30 | margin: 0;
31 | padding-right: .2rem;
32 |
33 | &:hover,
34 | &:focus {
35 | opacity: .6;
36 | }
37 | }
38 |
39 | ul {
40 | list-style-type: none;
41 | margin: 1rem 0 0;
42 | padding: 0;
43 | text-align: center;
44 | }
45 |
46 | li {
47 | @include transition(all .2s ease-out);
48 | color: $default-color;
49 | display: inline-block;
50 | opacity: .6;
51 | padding: 0 2rem 0 0;
52 |
53 | &:last-child {
54 | padding-right: 0;
55 | }
56 |
57 | &:hover,
58 | &:focus {
59 | opacity: 1;
60 | }
61 |
62 | .center {
63 | height: 15px;
64 | position: relative;
65 | }
66 | }
67 |
68 | a {
69 | color: $default-color;
70 | font-family: $sans-serif;
71 | }
72 | }
73 |
74 | @media (min-width: 600px) {
75 | .nav {
76 | &-container {
77 | text-align: left;
78 | }
79 |
80 | ul {
81 | bottom: 0;
82 | position: absolute;
83 | right: 0;
84 | }
85 | }
86 | }
87 |
88 | footer {
89 | font-family: $serif-secondary;
90 | padding: 2rem 0;
91 | text-align: center;
92 |
93 | span {
94 | color: $default-color;
95 | font-size: .8rem;
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/_sass/tale/_pagination.scss:
--------------------------------------------------------------------------------
1 | .pagination {
2 | border-top: .5px solid $grey-2;
3 | font-family: $serif-secondary;
4 | padding-top: 2rem;
5 | position: relative;
6 | text-align: center;
7 |
8 | span {
9 | color: $default-shade;
10 | font-size: 1.1rem;
11 | }
12 |
13 | .top {
14 | @include transition(all .3s ease-out);
15 | color: $default-color;
16 | font-family: $sans-serif;
17 | font-size: 1.1rem;
18 | opacity: .6;
19 |
20 | &:hover {
21 | opacity: 1;
22 | }
23 | }
24 |
25 | .arrow {
26 | @include transition(all .3s ease-out);
27 | color: $default-color;
28 | position: absolute;
29 |
30 | &:hover,
31 | &:focus {
32 | opacity: .6;
33 | text-decoration: none;
34 | }
35 | }
36 |
37 | .left {
38 | left: 0;
39 | }
40 |
41 | .right {
42 | right: 0;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/_sass/tale/_post.scss:
--------------------------------------------------------------------------------
1 | .post {
2 | padding: 3rem 0;
3 | font-size: 18px;
4 | line-height: 20px;
5 | // @media (min-width: 600px) {
6 | // font-size: 19px;
7 | // }
8 |
9 | &-info {
10 | color: $default-tint;
11 | font-family: $serif-secondary;
12 | letter-spacing: 0.5px;
13 | text-align: center;
14 | margin-bottom: 25px;
15 |
16 | span {
17 | font-style: italic;
18 | }
19 | }
20 |
21 | &-title {
22 | color: $default-shade;
23 | font-family: $sans-serif;
24 | font-size: 2rem;
25 | margin: 1rem 0;
26 | text-align: center;
27 | }
28 |
29 | &-subtitle {
30 | color: $default-shade;
31 | font-family: $serif-secondary;
32 | font-size: 18px;
33 | text-align: center;
34 | }
35 |
36 | &-line {
37 | border-top: 0.4rem solid $default-shade;
38 | display: block;
39 | margin: 0 auto 3rem;
40 | width: 5rem;
41 | }
42 |
43 | p {
44 | margin: 0 0 1rem;
45 | text-align: justify;
46 | }
47 |
48 | a:hover {
49 | text-decoration: underline;
50 | }
51 |
52 | img {
53 | margin: 0 auto 0.5rem;
54 | }
55 |
56 | img + em {
57 | color: $default-tint;
58 | display: block;
59 | font-family: $sans-serif;
60 | font-size: 0.9rem;
61 | font-style: normal;
62 | text-align: center;
63 | }
64 |
65 | // CSS for making emoji inline
66 | img.emoji {
67 | display: inline-block;
68 | left: 0;
69 | transform: none;
70 | width: 1rem;
71 | height: 1rem;
72 | vertical-align: text-top;
73 | padding: 0;
74 | margin: 0;
75 | }
76 |
77 | .footnotes {
78 | margin-top: 30px;
79 | font-size: 14px;
80 | }
81 | }
82 |
83 | .tags {
84 | a {
85 | display: inline-block;
86 | padding: quarter($base-spacing-unit) $base-spacing-unit;
87 | margin: 0 $base-spacing-unit quarter($base-spacing-unit) 0;
88 |
89 | font-size: $font-size-small;
90 | font-family: $font-base;
91 | line-height: $line-height-medium;
92 |
93 | background-color: $bg-color-gray;
94 | transition: $global-transition;
95 |
96 | @include attention() {
97 | text-decoration: none;
98 | background-color: $bg-color-gray;
99 | }
100 | }
101 |
102 | @include mq($until: tablet) {
103 | margin-bottom: $line-height-medium - half(quarter($line-height-medium));
104 | }
105 | }
106 |
107 | .extra-info {
108 |
109 | figure {
110 | display: block;
111 | margin: auto;
112 |
113 | img {
114 | display: block;
115 | margin: auto;
116 | text-align: center;
117 | }
118 |
119 | figcaption {
120 | text-align: center;
121 | font-size: 14px;
122 | }
123 | }
124 | }
125 |
126 |
--------------------------------------------------------------------------------
/_sass/tale/_relic.scss:
--------------------------------------------------------------------------------
1 | .relic {
2 | padding: 3rem 0;
3 | font-size: 18px;
4 | line-height: 20px;
5 | // @media (min-width: 600px) {
6 | // font-size: 19px;
7 | // }
8 |
9 | &-info {
10 | color: $default-tint;
11 | font-family: $serif-secondary;
12 | letter-spacing: 0.5px;
13 | text-align: center;
14 | margin-bottom: 25px;
15 |
16 | span {
17 | font-style: italic;
18 | }
19 | }
20 |
21 | &-title {
22 | color: $default-shade;
23 | font-family: $sans-serif;
24 | font-size: 2rem;
25 | margin: 1rem 0;
26 | text-align: center;
27 | }
28 |
29 | &-subtitle {
30 | color: $default-shade;
31 | font-family: $serif-secondary;
32 | font-size: 18px;
33 | text-align: center;
34 | }
35 |
36 | &-line {
37 | border-top: 0.4rem solid $default-shade;
38 | display: block;
39 | margin: 0 auto 3rem;
40 | width: 5rem;
41 | }
42 |
43 | &-meta {
44 | color: $default-shade;
45 | font-family: $serif-secondary;
46 | font-size: 18px;
47 | text-align: center;
48 | &-item {
49 | // display: inline-block;
50 | margin: 0.5rem 5rem 1rem 5rem;
51 | }
52 | }
53 |
54 | p {
55 | margin: 0 0 1rem;
56 | text-align: justify;
57 | }
58 |
59 | a:hover {
60 | text-decoration: underline;
61 | }
62 |
63 | img {
64 | margin: 0 auto 0.5rem;
65 | }
66 |
67 | img + em {
68 | color: $default-tint;
69 | display: block;
70 | font-family: $sans-serif;
71 | font-size: 0.9rem;
72 | font-style: normal;
73 | text-align: center;
74 | }
75 |
76 | // CSS for making emoji inline
77 | img.emoji {
78 | display: inline-block;
79 | left: 0;
80 | transform: none;
81 | width: 1rem;
82 | height: 1rem;
83 | vertical-align: text-top;
84 | padding: 0;
85 | margin: 0;
86 | }
87 |
88 | .footnotes {
89 | margin-top: 30px;
90 | font-size: 14px;
91 | }
92 | }
93 |
94 | .tags {
95 | a {
96 | display: inline-block;
97 | padding: quarter($base-spacing-unit) $base-spacing-unit;
98 | margin: 0 $base-spacing-unit quarter($base-spacing-unit) 0;
99 |
100 | font-size: $font-size-small;
101 | font-family: $font-base;
102 | line-height: $line-height-medium;
103 |
104 | background-color: $bg-color-gray;
105 | transition: $global-transition;
106 |
107 | @include attention() {
108 | text-decoration: none;
109 | background-color: $bg-color-gray;
110 | }
111 | }
112 |
113 | @include mq($until: tablet) {
114 | margin-bottom: $line-height-medium - half(quarter($line-height-medium));
115 | }
116 | }
--------------------------------------------------------------------------------
/_sass/tale/_syntax.scss:
--------------------------------------------------------------------------------
1 | .highlight .hll { background-color: #ffc; }
2 | .highlight .c { color: #999; } /* Comment */
3 | .highlight .err { color: #a00; background-color: #faa } /* Error */
4 | .highlight .k { color: #069; } /* Keyword */
5 | .highlight .o { color: #555 } /* Operator */
6 | .highlight .cm { color: #09f; font-style: italic } /* Comment.Multiline */
7 | .highlight .cp { color: #099 } /* Comment.Preproc */
8 | .highlight .c1 { color: #999; } /* Comment.Single */
9 | .highlight .cs { color: #999; } /* Comment.Special */
10 | .highlight .gd { background-color: #fcc; border: 1px solid #c00 } /* Generic.Deleted */
11 | .highlight .ge { font-style: italic } /* Generic.Emph */
12 | .highlight .gr { color: #f00 } /* Generic.Error */
13 | .highlight .gh { color: #030; } /* Generic.Heading */
14 | .highlight .gi { background-color: #cfc; border: 1px solid #0c0 } /* Generic.Inserted */
15 | .highlight .go { color: #aaa } /* Generic.Output */
16 | .highlight .gp { color: #009; } /* Generic.Prompt */
17 | .highlight .gs { } /* Generic.Strong */
18 | .highlight .gu { color: #030; } /* Generic.Subheading */
19 | .highlight .gt { color: #9c6 } /* Generic.Traceback */
20 | .highlight .kc { color: #069; } /* Keyword.Constant */
21 | .highlight .kd { color: #069; } /* Keyword.Declaration */
22 | .highlight .kn { color: #069; } /* Keyword.Namespace */
23 | .highlight .kp { color: #069 } /* Keyword.Pseudo */
24 | .highlight .kr { color: #069; } /* Keyword.Reserved */
25 | .highlight .kt { color: #078; } /* Keyword.Type */
26 | .highlight .m { color: #f60 } /* Literal.Number */
27 | .highlight .s { color: #d44950 } /* Literal.String */
28 | .highlight .na { color: #4f9fcf } /* Name.Attribute */
29 | .highlight .nb { color: #366 } /* Name.Builtin */
30 | .highlight .nc { color: #0a8; } /* Name.Class */
31 | .highlight .no { color: #360 } /* Name.Constant */
32 | .highlight .nd { color: #99f } /* Name.Decorator */
33 | .highlight .ni { color: #999; } /* Name.Entity */
34 | .highlight .ne { color: #c00; } /* Name.Exception */
35 | .highlight .nf { color: #c0f } /* Name.Function */
36 | .highlight .nl { color: #99f } /* Name.Label */
37 | .highlight .nn { color: #0cf; } /* Name.Namespace */
38 | .highlight .nt { color: #2f6f9f; } /* Name.Tag */
39 | .highlight .nv { color: #033 } /* Name.Variable */
40 | .highlight .ow { color: #000; } /* Operator.Word */
41 | .highlight .w { color: #bbb } /* Text.Whitespace */
42 | .highlight .mf { color: #f60 } /* Literal.Number.Float */
43 | .highlight .mh { color: #f60 } /* Literal.Number.Hex */
44 | .highlight .mi { color: #f60 } /* Literal.Number.Integer */
45 | .highlight .mo { color: #f60 } /* Literal.Number.Oct */
46 | .highlight .sb { color: #c30 } /* Literal.String.Backtick */
47 | .highlight .sc { color: #c30 } /* Literal.String.Char */
48 | .highlight .sd { color: #c30; font-style: italic } /* Literal.String.Doc */
49 | .highlight .s2 { color: #c30 } /* Literal.String.Double */
50 | .highlight .se { color: #c30; } /* Literal.String.Escape */
51 | .highlight .sh { color: #c30 } /* Literal.String.Heredoc */
52 | .highlight .si { color: #a00 } /* Literal.String.Interpol */
53 | .highlight .sx { color: #c30 } /* Literal.String.Other */
54 | .highlight .sr { color: #3aa } /* Literal.String.Regex */
55 | .highlight .s1 { color: #c30 } /* Literal.String.Single */
56 | .highlight .ss { color: #fc3 } /* Literal.String.Symbol */
57 | .highlight .bp { color: #366 } /* Name.Builtin.Pseudo */
58 | .highlight .vc { color: #033 } /* Name.Variable.Class */
59 | .highlight .vg { color: #033 } /* Name.Variable.Global */
60 | .highlight .vi { color: #033 } /* Name.Variable.Instance */
61 | .highlight .il { color: #f60 } /* Literal.Number.Integer.Long */
62 |
63 | .css .o,
64 | .css .o + .nt,
65 | .css .nt + .nt { color: #999; }
66 |
--------------------------------------------------------------------------------
/_sass/tale/_variables.scss:
--------------------------------------------------------------------------------
1 | // Colors
2 | $default-color: #555;
3 | $default-shade: #353535;
4 | $default-tint: #aaa;
5 | $grey-1: #979797;
6 | $grey-2: #e5e5e5;
7 | $grey-3: #f9f9f9;
8 | $white: #fff;
9 | $blue: #4a9ae1;
10 | $shadow-color: rgba(0, 0, 0, .2);
11 | $code-color: #bf616a;
12 |
13 | // Fonts
14 | $serif-primary: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica', 'Microsoft YaHei', 'Times New Roman', Times, serif;
15 | $serif-secondary: Palatino, 'Palatino LT STD', 'Palatino Linotype', 'Book Antiqua', 'Georgia', serif;
16 | $sans-serif: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif;
17 | $monospaced: Menlo, Monaco, monospace;
18 |
19 | @mixin box-sizing($type: border-box) {
20 | -webkit-box-sizing: $type;
21 | -moz-box-sizing: $type;
22 | box-sizing: $type;
23 | }
24 |
25 | @mixin transition($args...) {
26 | -webkit-transition: $args;
27 | -moz-transition: $args;
28 | transition: $args;
29 | }
30 |
--------------------------------------------------------------------------------
/_sass/type/__all.scss:
--------------------------------------------------------------------------------
1 | // *----------------------------------*\
2 | // Type
3 | // *----------------------------------*/
4 |
5 | @import 'mq';
6 | @import 'mixins';
7 | @import 'functions';
8 |
9 | @import 'variables';
10 |
--------------------------------------------------------------------------------
/_sass/type/_functions.scss:
--------------------------------------------------------------------------------
1 | // *----------------------------------*\
2 | // Tools > Functions
3 | // *----------------------------------*/
4 |
5 | @function half($n) {
6 | @return round($n / 2);
7 | }
8 |
9 | @function quarter($n) {
10 | @return round($n / 4);
11 | }
12 |
13 | @function double($n) {
14 | @return round($n * 2);
15 | }
16 |
17 | @function quadruple($n) {
18 | @return round($n * 4);
19 | }
--------------------------------------------------------------------------------
/_sass/type/_mixins.scss:
--------------------------------------------------------------------------------
1 | // *----------------------------------*\
2 | // Tools > Mixins
3 | // *----------------------------------*/
4 |
5 | // Apply ‘attention’ styles in one go.
6 | // https://goo.gl/LFx8on
7 | //
8 | // Example use:
9 | //
10 | // @include attention() {
11 | // text-decoration: underline;
12 | // }
13 | @mixin attention() {
14 | &:hover,
15 | &:active,
16 | &:focus {
17 | @content;
18 | }
19 | }
20 |
21 | // Mixin to drop micro clearfix into a selector.
22 | //
23 | // // Example use:
24 | //
25 | // .class {
26 | // @include clearfix();
27 | // }
28 | @mixin clearfix() {
29 | &:after {
30 | content: '';
31 | display: table;
32 | clear: both;
33 | }
34 | }
--------------------------------------------------------------------------------
/_sass/type/_mq.scss:
--------------------------------------------------------------------------------
1 | @use 'sass:math';
2 | @charset "UTF-8"; // Fixes an issue where Ruby locale is not set properly
3 | // See https://github.com/sass-mq/sass-mq/pull/10
4 |
5 | /// Base font size on the `` element
6 | /// @type Number (unit)
7 | $mq-base-font-size: 16px !default;
8 |
9 | /// Responsive mode
10 | ///
11 | /// Set to `false` to enable support for browsers that do not support @media queries,
12 | /// (IE <= 8, Firefox <= 3, Opera <= 9)
13 | ///
14 | /// You could create a stylesheet served exclusively to older browsers,
15 | /// where @media queries are rasterized
16 | ///
17 | /// @example scss
18 | /// // old-ie.scss
19 | /// $mq-responsive: false;
20 | /// @import 'main'; // @media queries in this file will be rasterized up to $mq-static-breakpoint
21 | /// // larger breakpoints will be ignored
22 | ///
23 | /// @type Boolean
24 | /// @link https://github.com/sass-mq/sass-mq#responsive-mode-off Disabled responsive mode documentation
25 | $mq-responsive: true !default;
26 |
27 | /// Breakpoint list
28 | ///
29 | /// Name your breakpoints in a way that creates a ubiquitous language
30 | /// across team members. It will improve communication between
31 | /// stakeholders, designers, developers, and testers.
32 | ///
33 | /// @type Map
34 | /// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint Full documentation and examples
35 | $mq-breakpoints: (
36 | mobile: 320px,
37 | tablet: 740px,
38 | desktop: 980px,
39 | wide: 1300px
40 | ) !default;
41 |
42 | /// Static breakpoint (for fixed-width layouts)
43 | ///
44 | /// Define the breakpoint from $mq-breakpoints that should
45 | /// be used as the target width for the fixed-width layout
46 | /// (i.e. when $mq-responsive is set to 'false') in a old-ie.scss
47 | ///
48 | /// @example scss
49 | /// // tablet-only.scss
50 | /// //
51 | /// // Ignore all styles above tablet breakpoint,
52 | /// // and fix the styles (e.g. layout) at tablet width
53 | /// $mq-responsive: false;
54 | /// $mq-static-breakpoint: tablet;
55 | /// @import 'main'; // @media queries in this file will be rasterized up to tablet
56 | /// // larger breakpoints will be ignored
57 | ///
58 | /// @type String
59 | /// @link https://github.com/sass-mq/sass-mq#adding-custom-breakpoints Full documentation and examples
60 | $mq-static-breakpoint: desktop !default;
61 |
62 | /// Show breakpoints in the top right corner
63 | ///
64 | /// If you want to display the currently active breakpoint in the top
65 | /// right corner of your site during development, add the breakpoints
66 | /// to this list, ordered by width, e.g. (mobile, tablet, desktop).
67 | ///
68 | /// @type map
69 | $mq-show-breakpoints: () !default;
70 |
71 | /// Customize the media type (e.g. `@media screen` or `@media print`)
72 | /// By default sass-mq uses an "all" media type (`@media all and …`)
73 | ///
74 | /// @type String
75 | /// @link https://github.com/sass-mq/sass-mq#changing-media-type Full documentation and examples
76 | $mq-media-type: all !default;
77 |
78 | /// Convert pixels to ems
79 | ///
80 | /// @param {Number} $px - value to convert
81 | /// @param {Number} $base-font-size ($mq-base-font-size) - `` font size
82 | ///
83 | /// @example scss
84 | /// $font-size-in-ems: mq-px2em(16px);
85 | /// p { font-size: mq-px2em(16px); }
86 | ///
87 | /// @requires $mq-base-font-size
88 | /// @returns {Number}
89 | @function mq-px2em($px, $base-font-size: $mq-base-font-size) {
90 | @if unitless($px) {
91 | @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels.";
92 | @return mq-px2em($px * 1px, $base-font-size);
93 | } @else if unit($px) == em {
94 | @return $px;
95 | }
96 | @return math.div($px, $base-font-size) * 1em;
97 | }
98 |
99 | /// Get a breakpoint's width
100 | ///
101 | /// @param {String} $name - Name of the breakpoint. One of $mq-breakpoints
102 | ///
103 | /// @example scss
104 | /// $tablet-width: mq-get-breakpoint-width(tablet);
105 | /// @media (min-width: mq-get-breakpoint-width(desktop)) {}
106 | ///
107 | /// @requires {Variable} $mq-breakpoints
108 | ///
109 | /// @returns {Number} Value in pixels
110 | @function mq-get-breakpoint-width($name, $breakpoints: $mq-breakpoints) {
111 | @if map-has-key($breakpoints, $name) {
112 | @return map-get($breakpoints, $name);
113 | } @else {
114 | @warn "Breakpoint #{$name} wasn't found in $breakpoints.";
115 | }
116 | }
117 |
118 | /// Media Query mixin
119 | ///
120 | /// @param {String | Boolean} $from (false) - One of $mq-breakpoints
121 | /// @param {String | Boolean} $until (false) - One of $mq-breakpoints
122 | /// @param {String | Boolean} $and (false) - Additional media query parameters
123 | /// @param {String} $media-type ($mq-media-type) - Media type: screen, print…
124 | ///
125 | /// @ignore Undocumented API, for advanced use only:
126 | /// @ignore @param {Map} $breakpoints ($mq-breakpoints)
127 | /// @ignore @param {String} $static-breakpoint ($mq-static-breakpoint)
128 | ///
129 | /// @content styling rules, wrapped into a @media query when $responsive is true
130 | ///
131 | /// @requires {Variable} $mq-media-type
132 | /// @requires {Variable} $mq-breakpoints
133 | /// @requires {Variable} $mq-static-breakpoint
134 | /// @requires {function} mq-px2em
135 | /// @requires {function} mq-get-breakpoint-width
136 | ///
137 | /// @link https://github.com/sass-mq/sass-mq#responsive-mode-on-default Full documentation and examples
138 | ///
139 | /// @example scss
140 | /// .element {
141 | /// @include mq($from: mobile) {
142 | /// color: red;
143 | /// }
144 | /// @include mq($until: tablet) {
145 | /// color: blue;
146 | /// }
147 | /// @include mq(mobile, tablet) {
148 | /// color: green;
149 | /// }
150 | /// @include mq($from: tablet, $and: '(orientation: landscape)') {
151 | /// color: teal;
152 | /// }
153 | /// @include mq(950px) {
154 | /// color: hotpink;
155 | /// }
156 | /// @include mq(tablet, $media-type: screen) {
157 | /// color: hotpink;
158 | /// }
159 | /// // Advanced use:
160 | /// $my-breakpoints: (L: 900px, XL: 1200px);
161 | /// @include mq(L, $breakpoints: $my-breakpoints, $static-breakpoint: L) {
162 | /// color: hotpink;
163 | /// }
164 | /// }
165 | @mixin mq(
166 | $from: false,
167 | $until: false,
168 | $and: false,
169 | $media-type: $mq-media-type,
170 | $breakpoints: $mq-breakpoints,
171 | $responsive: $mq-responsive,
172 | $static-breakpoint: $mq-static-breakpoint
173 | ) {
174 | $min-width: 0;
175 | $max-width: 0;
176 | $media-query: '';
177 |
178 | // From: this breakpoint (inclusive)
179 | @if $from {
180 | @if type-of($from) == number {
181 | $min-width: mq-px2em($from);
182 | } @else {
183 | $min-width: mq-px2em(mq-get-breakpoint-width($from, $breakpoints));
184 | }
185 | }
186 |
187 | // Until: that breakpoint (exclusive)
188 | @if $until {
189 | @if type-of($until) == number {
190 | $max-width: mq-px2em($until);
191 | } @else {
192 | $max-width: mq-px2em(mq-get-breakpoint-width($until, $breakpoints)) - .01em;
193 | }
194 | }
195 |
196 | // Responsive support is disabled, rasterize the output outside @media blocks
197 | // The browser will rely on the cascade itself.
198 | @if $responsive == false {
199 | $static-breakpoint-width: mq-get-breakpoint-width($static-breakpoint, $breakpoints);
200 | $target-width: mq-px2em($static-breakpoint-width);
201 |
202 | // Output only rules that start at or span our target width
203 | @if (
204 | $and == false
205 | and $min-width <= $target-width
206 | and (
207 | $until == false or $max-width >= $target-width
208 | )
209 | ) {
210 | @content;
211 | }
212 | }
213 |
214 | // Responsive support is enabled, output rules inside @media queries
215 | @else {
216 | @if $min-width != 0 { $media-query: '#{$media-query} and (min-width: #{$min-width})'; }
217 | @if $max-width != 0 { $media-query: '#{$media-query} and (max-width: #{$max-width})'; }
218 | @if $and { $media-query: '#{$media-query} and #{$and}'; }
219 |
220 | // Remove unnecessary media query prefix 'all and '
221 | @if ($media-type == 'all' and $media-query != '') {
222 | $media-type: '';
223 | $media-query: str-slice(unquote($media-query), 6);
224 | }
225 |
226 | @media #{$media-type + $media-query} {
227 | @content;
228 | }
229 | }
230 | }
231 |
232 | /// Add a breakpoint
233 | ///
234 | /// @param {String} $name - Name of the breakpoint
235 | /// @param {Number} $width - Width of the breakpoint
236 | ///
237 | /// @requires {Variable} $mq-breakpoints
238 | ///
239 | /// @example scss
240 | /// @include mq-add-breakpoint(tvscreen, 1920px);
241 | /// @include mq(tvscreen) {}
242 | @mixin mq-add-breakpoint($name, $width) {
243 | $new-breakpoint: ($name: $width);
244 | $mq-breakpoints: map-merge($mq-breakpoints, $new-breakpoint) !global;
245 | }
246 |
247 | /// Show the active breakpoint in the top right corner of the viewport
248 | /// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint
249 | ///
250 | /// @param {List} $show-breakpoints ($mq-show-breakpoints) - List of breakpoints to show in the top right corner
251 | /// @param {Map} $breakpoints ($mq-breakpoints) - Breakpoint names and sizes
252 | ///
253 | /// @requires {Variable} $mq-breakpoints
254 | /// @requires {Variable} $mq-show-breakpoints
255 | ///
256 | /// @example scss
257 | /// // Show breakpoints using global settings
258 | /// @include mq-show-breakpoints;
259 | ///
260 | /// // Show breakpoints using custom settings
261 | /// @include mq-show-breakpoints((L, XL), (S: 300px, L: 800px, XL: 1200px));
262 | @mixin mq-show-breakpoints($show-breakpoints: $mq-show-breakpoints, $breakpoints: $mq-breakpoints) {
263 | body:before {
264 | background-color: #FCF8E3;
265 | border-bottom: 1px solid #FBEED5;
266 | border-left: 1px solid #FBEED5;
267 | color: #C09853;
268 | font: small-caption;
269 | padding: 3px 6px;
270 | pointer-events: none;
271 | position: fixed;
272 | right: 0;
273 | top: 0;
274 | z-index: 100;
275 |
276 | // Loop through the breakpoints that should be shown
277 | @each $show-breakpoint in $show-breakpoints {
278 | $width: mq-get-breakpoint-width($show-breakpoint, $breakpoints);
279 | @include mq($show-breakpoint, $breakpoints: $breakpoints) {
280 | content: "#{$show-breakpoint} ≥ #{$width} (#{mq-px2em($width)})";
281 | }
282 | }
283 | }
284 | }
285 |
286 | @if length($mq-show-breakpoints) > 0 {
287 | @include mq-show-breakpoints;
288 | }
289 |
--------------------------------------------------------------------------------
/_sass/type/_variables.scss:
--------------------------------------------------------------------------------
1 | // *----------------------------------*\
2 | // imported from type
3 | // *----------------------------------*/
4 |
5 | $mq-breakpoints: (
6 | mobile: 320px,
7 | tablet: 640px,
8 | desktop: 1024px
9 | );
10 |
11 | $base-spacing-unit: 16px;
12 |
13 | $global-transition: .4s;
14 |
15 | // Colors
16 | $color-brand: #00A0FF;
17 | $color-white: #FFFFFF;
18 | $color-text: #323232;
19 | $color-gray: #2B5F72;
20 |
21 | // Background Colors
22 | $bg-color-white: $color-white;
23 | $bg-color-dark: #222228;
24 | $bg-color-gray: #FAFAFA;
25 |
26 | // Border
27 | $color-border: #E9EFF3;
28 |
29 | // Links
30 | $color-link: $color-text;
31 | $color-link-hover: $color-brand;
32 |
33 | // Fonts
34 | $font-base:
35 | -apple-system,
36 | BlinkMacSystemFont,
37 | 'Segoe UI',
38 | Helvetica,
39 | 'Microsoft YaHei',
40 | 华文细黑,
41 | Arial,
42 | sans-serif,
43 | 'Apple Color Emoji',
44 | 'Segoe UI Emoji',
45 | 'Segoe UI Symbol';
46 | $font-monospace: Courier, monospace;
47 |
48 | $font-size-base: 19px;
49 | $font-size-medium: 16px;
50 | $font-size-small: 14px;
51 | $font-size-tiny: 12px;
52 |
53 | $font-weight-light: 300;
54 | $font-weight-regular: 400;
55 | $font-weight-bold: 600;
56 | $font-weight-bolder: 900;
57 |
58 | $line-height-base: round($font-size-base * 1.7);
59 | $line-height-medium: round($font-size-medium * 1.55);
60 | $line-height-small: round($font-size-small * 1.55);
61 | $line-height-tiny: round($font-size-tiny * 1.55);
62 |
--------------------------------------------------------------------------------
/_sass/vendor/_gitalk-plus.scss:
--------------------------------------------------------------------------------
1 | /* https://gist.github.com/geektutu/f379d87767787979507a0e4a20da64ba */
2 |
3 | #gitalk-related.dis-wrapper {
4 | font-size: 14px;
5 | margin: 70px 0;
6 | overflow: hidden;
7 | padding-bottom: 10px;
8 | }
9 |
10 | #gitalk-related * {
11 | margin: 0;
12 | padding: 0;
13 | box-sizing: border-box;
14 | text-decoration: none;
15 | transform: none;
16 | -webkit-transform: none;
17 | }
18 |
19 | #gitalk-related .dis-divide {
20 | border-top: 2px solid #e7e9ee;
21 | width: 100%;
22 | float: left;
23 | padding: 5px 10px;
24 | margin-top: 20px;
25 | text-align: center;
26 | }
27 |
28 | #gitalk-related .dis-item {
29 | width: 50%;
30 | float: left;
31 | padding: 0px 10px;
32 | margin-top: 20px;
33 | height: 108px;
34 | overflow: hidden;
35 | }
36 |
37 | #gitalk-related .dis-item-title {
38 | font-size: 16px;
39 | color: #6190e8;
40 | font-weight: 500;
41 | max-height: 3em;
42 | line-height: 1.5;
43 | overflow: hidden;
44 | }
45 |
46 | #gitalk-related .dis-item-des {
47 | font-size: 0.85em;
48 | }
49 |
50 | #gitalk-related .dis-divide a,
51 | #gitalk-related .dis-item-des,
52 | #gitalk-related .dis-item-user {
53 | color: rgba(30, 55, 70, .4);
54 | }
55 |
56 | #gitalk-related .dis-item-img {
57 | width: 30px;
58 | height: 30px;
59 | margin-top: 3px;
60 | }
61 |
62 | #gitalk-related .dis-item-content {
63 | display: flex;
64 | }
65 |
66 | #gitalk-related .dis-item-content>p {
67 | padding-left: 10px;
68 | color: #333;
69 | line-height: 1.4em;
70 | max-height: 4.2em;
71 | overflow: hidden;
72 | }
73 |
74 | .text-center {
75 | text-align: center !important;
76 | }
77 |
--------------------------------------------------------------------------------
/_sass/vendor/_gitalk.scss:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: octicons-link;
3 | src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff');
4 | }
5 |
6 | .markdown-body {
7 | -ms-text-size-adjust: 100%;
8 | -webkit-text-size-adjust: 100%;
9 | line-height: 1.5;
10 | color: #24292e;
11 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
12 | font-size: 16px;
13 | line-height: 1.5;
14 | word-wrap: break-word;
15 | }
16 |
17 | .markdown-body .pl-c {
18 | color: #6a737d;
19 | }
20 |
21 | .markdown-body .pl-c1,
22 | .markdown-body .pl-s .pl-v {
23 | color: #005cc5;
24 | }
25 |
26 | .markdown-body .pl-e,
27 | .markdown-body .pl-en {
28 | color: #6f42c1;
29 | }
30 |
31 | .markdown-body .pl-smi,
32 | .markdown-body .pl-s .pl-s1 {
33 | color: #24292e;
34 | }
35 |
36 | .markdown-body .pl-ent {
37 | color: #22863a;
38 | }
39 |
40 | .markdown-body .pl-k {
41 | color: #d73a49;
42 | }
43 |
44 | .markdown-body .pl-s,
45 | .markdown-body .pl-pds,
46 | .markdown-body .pl-s .pl-pse .pl-s1,
47 | .markdown-body .pl-sr,
48 | .markdown-body .pl-sr .pl-cce,
49 | .markdown-body .pl-sr .pl-sre,
50 | .markdown-body .pl-sr .pl-sra {
51 | color: #032f62;
52 | }
53 |
54 | .markdown-body .pl-v,
55 | .markdown-body .pl-smw {
56 | color: #e36209;
57 | }
58 |
59 | .markdown-body .pl-bu {
60 | color: #b31d28;
61 | }
62 |
63 | .markdown-body .pl-ii {
64 | color: #fafbfc;
65 | background-color: #b31d28;
66 | }
67 |
68 | .markdown-body .pl-c2 {
69 | color: #fafbfc;
70 | background-color: #d73a49;
71 | }
72 |
73 | .markdown-body .pl-c2::before {
74 | content: "^M";
75 | }
76 |
77 | .markdown-body .pl-sr .pl-cce {
78 | font-weight: bold;
79 | color: #22863a;
80 | }
81 |
82 | .markdown-body .pl-ml {
83 | color: #735c0f;
84 | }
85 |
86 | .markdown-body .pl-mh,
87 | .markdown-body .pl-mh .pl-en,
88 | .markdown-body .pl-ms {
89 | font-weight: bold;
90 | color: #005cc5;
91 | }
92 |
93 | .markdown-body .pl-mi {
94 | font-style: italic;
95 | color: #24292e;
96 | }
97 |
98 | .markdown-body .pl-mb {
99 | font-weight: bold;
100 | color: #24292e;
101 | }
102 |
103 | .markdown-body .pl-md {
104 | color: #b31d28;
105 | background-color: #ffeef0;
106 | }
107 |
108 | .markdown-body .pl-mi1 {
109 | color: #22863a;
110 | background-color: #f0fff4;
111 | }
112 |
113 | .markdown-body .pl-mc {
114 | color: #e36209;
115 | background-color: #ffebda;
116 | }
117 |
118 | .markdown-body .pl-mi2 {
119 | color: #f6f8fa;
120 | background-color: #005cc5;
121 | }
122 |
123 | .markdown-body .pl-mdr {
124 | font-weight: bold;
125 | color: #6f42c1;
126 | }
127 |
128 | .markdown-body .pl-ba {
129 | color: #586069;
130 | }
131 |
132 | .markdown-body .pl-sg {
133 | color: #959da5;
134 | }
135 |
136 | .markdown-body .pl-corl {
137 | text-decoration: underline;
138 | color: #032f62;
139 | }
140 |
141 | .markdown-body .octicon {
142 | display: inline-block;
143 | vertical-align: text-top;
144 | fill: currentColor;
145 | }
146 |
147 | .markdown-body a {
148 | background-color: transparent;
149 | -webkit-text-decoration-skip: objects;
150 | }
151 |
152 | .markdown-body a:active,
153 | .markdown-body a:hover {
154 | outline-width: 0;
155 | }
156 |
157 | .markdown-body strong {
158 | font-weight: inherit;
159 | }
160 |
161 | .markdown-body strong {
162 | font-weight: bolder;
163 | }
164 |
165 | .markdown-body h1 {
166 | font-size: 2em;
167 | margin: 0.67em 0;
168 | }
169 |
170 | .markdown-body img {
171 | border-style: none;
172 | }
173 |
174 | .markdown-body svg:not(:root) {
175 | overflow: hidden;
176 | }
177 |
178 | .markdown-body code,
179 | .markdown-body kbd,
180 | .markdown-body pre {
181 | font-family: monospace, monospace;
182 | font-size: 1em;
183 | }
184 |
185 | .markdown-body hr {
186 | -webkit-box-sizing: content-box;
187 | box-sizing: content-box;
188 | height: 0;
189 | overflow: visible;
190 | }
191 |
192 | .markdown-body input {
193 | font: inherit;
194 | margin: 0;
195 | }
196 |
197 | .markdown-body input {
198 | overflow: visible;
199 | }
200 |
201 | .markdown-body [type="checkbox"] {
202 | -webkit-box-sizing: border-box;
203 | box-sizing: border-box;
204 | padding: 0;
205 | }
206 |
207 | .markdown-body * {
208 | -webkit-box-sizing: border-box;
209 | box-sizing: border-box;
210 | }
211 |
212 | .markdown-body input {
213 | font-family: inherit;
214 | font-size: inherit;
215 | line-height: inherit;
216 | }
217 |
218 | .markdown-body a {
219 | color: #0366d6;
220 | text-decoration: none;
221 | }
222 |
223 | .markdown-body a:hover {
224 | text-decoration: underline;
225 | }
226 |
227 | .markdown-body strong {
228 | font-weight: 600;
229 | }
230 |
231 | .markdown-body hr {
232 | height: 0;
233 | margin: 15px 0;
234 | overflow: hidden;
235 | background: transparent;
236 | border: 0;
237 | border-bottom: 1px solid #dfe2e5;
238 | }
239 |
240 | .markdown-body hr::before {
241 | display: table;
242 | content: "";
243 | }
244 |
245 | .markdown-body hr::after {
246 | display: table;
247 | clear: both;
248 | content: "";
249 | }
250 |
251 | .markdown-body table {
252 | border-spacing: 0;
253 | border-collapse: collapse;
254 | }
255 |
256 | .markdown-body td,
257 | .markdown-body th {
258 | padding: 0;
259 | }
260 |
261 | .markdown-body h1,
262 | .markdown-body h2,
263 | .markdown-body h3,
264 | .markdown-body h4,
265 | .markdown-body h5,
266 | .markdown-body h6 {
267 | margin-top: 0;
268 | margin-bottom: 0;
269 | }
270 |
271 | .markdown-body h1 {
272 | font-size: 32px;
273 | font-weight: 600;
274 | }
275 |
276 | .markdown-body h2 {
277 | font-size: 24px;
278 | font-weight: 600;
279 | }
280 |
281 | .markdown-body h3 {
282 | font-size: 20px;
283 | font-weight: 600;
284 | }
285 |
286 | .markdown-body h4 {
287 | font-size: 16px;
288 | font-weight: 600;
289 | }
290 |
291 | .markdown-body h5 {
292 | font-size: 14px;
293 | font-weight: 600;
294 | }
295 |
296 | .markdown-body h6 {
297 | font-size: 12px;
298 | font-weight: 600;
299 | }
300 |
301 | .markdown-body p {
302 | margin-top: 0;
303 | margin-bottom: 10px;
304 | }
305 |
306 | .markdown-body blockquote {
307 | margin: 0;
308 | }
309 |
310 | .markdown-body ul,
311 | .markdown-body ol {
312 | padding-left: 0;
313 | margin-top: 0;
314 | margin-bottom: 0;
315 | }
316 |
317 | .markdown-body ol ol,
318 | .markdown-body ul ol {
319 | list-style-type: lower-roman;
320 | }
321 |
322 | .markdown-body ul ul ol,
323 | .markdown-body ul ol ol,
324 | .markdown-body ol ul ol,
325 | .markdown-body ol ol ol {
326 | list-style-type: lower-alpha;
327 | }
328 |
329 | .markdown-body dd {
330 | margin-left: 0;
331 | }
332 |
333 | .markdown-body code {
334 | font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
335 | font-size: 12px;
336 | }
337 |
338 | .markdown-body pre {
339 | margin-top: 0;
340 | margin-bottom: 0;
341 | font: 12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
342 | }
343 |
344 | .markdown-body .octicon {
345 | vertical-align: text-bottom;
346 | }
347 |
348 | .markdown-body .pl-0 {
349 | padding-left: 0 !important;
350 | }
351 |
352 | .markdown-body .pl-1 {
353 | padding-left: 4px !important;
354 | }
355 |
356 | .markdown-body .pl-2 {
357 | padding-left: 8px !important;
358 | }
359 |
360 | .markdown-body .pl-3 {
361 | padding-left: 16px !important;
362 | }
363 |
364 | .markdown-body .pl-4 {
365 | padding-left: 24px !important;
366 | }
367 |
368 | .markdown-body .pl-5 {
369 | padding-left: 32px !important;
370 | }
371 |
372 | .markdown-body .pl-6 {
373 | padding-left: 40px !important;
374 | }
375 |
376 | .markdown-body::before {
377 | display: table;
378 | content: "";
379 | }
380 |
381 | .markdown-body::after {
382 | display: table;
383 | clear: both;
384 | content: "";
385 | }
386 |
387 | .markdown-body>*:first-child {
388 | margin-top: 0 !important;
389 | }
390 |
391 | .markdown-body>*:last-child {
392 | margin-bottom: 0 !important;
393 | }
394 |
395 | .markdown-body a:not([href]) {
396 | color: inherit;
397 | text-decoration: none;
398 | }
399 |
400 | .markdown-body .anchor {
401 | float: left;
402 | padding-right: 4px;
403 | margin-left: -20px;
404 | line-height: 1;
405 | }
406 |
407 | .markdown-body .anchor:focus {
408 | outline: none;
409 | }
410 |
411 | .markdown-body p,
412 | .markdown-body blockquote,
413 | .markdown-body ul,
414 | .markdown-body ol,
415 | .markdown-body dl,
416 | .markdown-body table,
417 | .markdown-body pre {
418 | margin-top: 0;
419 | margin-bottom: 16px;
420 | }
421 |
422 | .markdown-body hr {
423 | height: 0.25em;
424 | padding: 0;
425 | margin: 24px 0;
426 | background-color: #e1e4e8;
427 | border: 0;
428 | }
429 |
430 | .markdown-body blockquote {
431 | padding: 0 1em;
432 | color: #6a737d;
433 | border-left: 0.25em solid #dfe2e5;
434 | }
435 |
436 | .markdown-body blockquote>:first-child {
437 | margin-top: 0;
438 | }
439 |
440 | .markdown-body blockquote>:last-child {
441 | margin-bottom: 0;
442 | }
443 |
444 | .markdown-body kbd {
445 | display: inline-block;
446 | padding: 3px 5px;
447 | font-size: 11px;
448 | line-height: 10px;
449 | color: #444d56;
450 | vertical-align: middle;
451 | background-color: #fafbfc;
452 | border: solid 1px #c6cbd1;
453 | border-bottom-color: #959da5;
454 | border-radius: 3px;
455 | -webkit-box-shadow: inset 0 -1px 0 #959da5;
456 | box-shadow: inset 0 -1px 0 #959da5;
457 | }
458 |
459 | .markdown-body h1,
460 | .markdown-body h2,
461 | .markdown-body h3,
462 | .markdown-body h4,
463 | .markdown-body h5,
464 | .markdown-body h6 {
465 | margin-top: 24px;
466 | margin-bottom: 16px;
467 | font-weight: 600;
468 | line-height: 1.25;
469 | }
470 |
471 | .markdown-body h1 .octicon-link,
472 | .markdown-body h2 .octicon-link,
473 | .markdown-body h3 .octicon-link,
474 | .markdown-body h4 .octicon-link,
475 | .markdown-body h5 .octicon-link,
476 | .markdown-body h6 .octicon-link {
477 | color: #1b1f23;
478 | vertical-align: middle;
479 | visibility: hidden;
480 | }
481 |
482 | .markdown-body h1:hover .anchor,
483 | .markdown-body h2:hover .anchor,
484 | .markdown-body h3:hover .anchor,
485 | .markdown-body h4:hover .anchor,
486 | .markdown-body h5:hover .anchor,
487 | .markdown-body h6:hover .anchor {
488 | text-decoration: none;
489 | }
490 |
491 | .markdown-body h1:hover .anchor .octicon-link,
492 | .markdown-body h2:hover .anchor .octicon-link,
493 | .markdown-body h3:hover .anchor .octicon-link,
494 | .markdown-body h4:hover .anchor .octicon-link,
495 | .markdown-body h5:hover .anchor .octicon-link,
496 | .markdown-body h6:hover .anchor .octicon-link {
497 | visibility: visible;
498 | }
499 |
500 | .markdown-body h1 {
501 | padding-bottom: 0.3em;
502 | font-size: 2em;
503 | border-bottom: 1px solid #eaecef;
504 | }
505 |
506 | .markdown-body h2 {
507 | padding-bottom: 0.3em;
508 | font-size: 1.5em;
509 | border-bottom: 1px solid #eaecef;
510 | }
511 |
512 | .markdown-body h3 {
513 | font-size: 1.25em;
514 | }
515 |
516 | .markdown-body h4 {
517 | font-size: 1em;
518 | }
519 |
520 | .markdown-body h5 {
521 | font-size: 0.875em;
522 | }
523 |
524 | .markdown-body h6 {
525 | font-size: 0.85em;
526 | color: #6a737d;
527 | }
528 |
529 | .markdown-body ul,
530 | .markdown-body ol {
531 | padding-left: 2em;
532 | }
533 |
534 | .markdown-body ul ul,
535 | .markdown-body ul ol,
536 | .markdown-body ol ol,
537 | .markdown-body ol ul {
538 | margin-top: 0;
539 | margin-bottom: 0;
540 | }
541 |
542 | .markdown-body li>p {
543 | margin-top: 16px;
544 | }
545 |
546 | .markdown-body li+li {
547 | margin-top: 0.25em;
548 | }
549 |
550 | .markdown-body dl {
551 | padding: 0;
552 | }
553 |
554 | .markdown-body dl dt {
555 | padding: 0;
556 | margin-top: 16px;
557 | font-size: 1em;
558 | font-style: italic;
559 | font-weight: 600;
560 | }
561 |
562 | .markdown-body dl dd {
563 | padding: 0 16px;
564 | margin-bottom: 16px;
565 | }
566 |
567 | .markdown-body table {
568 | display: block;
569 | width: 100%;
570 | overflow: auto;
571 | }
572 |
573 | .markdown-body table th {
574 | font-weight: 600;
575 | }
576 |
577 | .markdown-body table th,
578 | .markdown-body table td {
579 | padding: 6px 13px;
580 | border: 1px solid #dfe2e5;
581 | }
582 |
583 | .markdown-body table tr {
584 | background-color: #fff;
585 | border-top: 1px solid #c6cbd1;
586 | }
587 |
588 | .markdown-body table tr:nth-child(2n) {
589 | background-color: #f6f8fa;
590 | }
591 |
592 | .markdown-body img {
593 | max-width: 100%;
594 | -webkit-box-sizing: content-box;
595 | box-sizing: content-box;
596 | background-color: #fff;
597 | }
598 |
599 | .markdown-body code {
600 | padding: 0;
601 | padding-top: 0.2em;
602 | padding-bottom: 0.2em;
603 | margin: 0;
604 | font-size: 85%;
605 | background-color: rgba(27,31,35,0.05);
606 | border-radius: 3px;
607 | }
608 |
609 | .markdown-body code::before,
610 | .markdown-body code::after {
611 | letter-spacing: -0.2em;
612 | content: "\A0";
613 | }
614 |
615 | .markdown-body pre {
616 | word-wrap: normal;
617 | }
618 |
619 | .markdown-body pre>code {
620 | padding: 0;
621 | margin: 0;
622 | font-size: 100%;
623 | word-break: normal;
624 | white-space: pre;
625 | background: transparent;
626 | border: 0;
627 | }
628 |
629 | .markdown-body .highlight {
630 | margin-bottom: 16px;
631 | }
632 |
633 | .markdown-body .highlight pre {
634 | margin-bottom: 0;
635 | word-break: normal;
636 | }
637 |
638 | .markdown-body .highlight pre,
639 | .markdown-body pre {
640 | padding: 16px;
641 | overflow: auto;
642 | font-size: 85%;
643 | line-height: 1.45;
644 | background-color: #f6f8fa;
645 | border-radius: 3px;
646 | }
647 |
648 | .markdown-body pre code {
649 | display: inline;
650 | max-width: auto;
651 | padding: 0;
652 | margin: 0;
653 | overflow: visible;
654 | line-height: inherit;
655 | word-wrap: normal;
656 | background-color: transparent;
657 | border: 0;
658 | }
659 |
660 | .markdown-body pre code::before,
661 | .markdown-body pre code::after {
662 | content: normal;
663 | }
664 |
665 | .markdown-body .full-commit .btn-outline:not(:disabled):hover {
666 | color: #005cc5;
667 | border-color: #005cc5;
668 | }
669 |
670 | .markdown-body kbd {
671 | display: inline-block;
672 | padding: 3px 5px;
673 | font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
674 | line-height: 10px;
675 | color: #444d56;
676 | vertical-align: middle;
677 | background-color: #fafbfc;
678 | border: solid 1px #d1d5da;
679 | border-bottom-color: #c6cbd1;
680 | border-radius: 3px;
681 | -webkit-box-shadow: inset 0 -1px 0 #c6cbd1;
682 | box-shadow: inset 0 -1px 0 #c6cbd1;
683 | }
684 |
685 | .markdown-body :checked+.radio-label {
686 | position: relative;
687 | z-index: 1;
688 | border-color: #0366d6;
689 | }
690 |
691 | .markdown-body .task-list-item {
692 | list-style-type: none;
693 | }
694 |
695 | .markdown-body .task-list-item+.task-list-item {
696 | margin-top: 3px;
697 | }
698 |
699 | .markdown-body .task-list-item input {
700 | margin: 0 0.2em 0.25em -1.6em;
701 | vertical-align: middle;
702 | }
703 |
704 | .markdown-body hr {
705 | border-bottom-color: #eee;
706 | }
707 | /* variables */
708 | /* functions & mixins */
709 | /* variables - calculated */
710 | /* styles */
711 | .gt-container {
712 | -webkit-box-sizing: border-box;
713 | box-sizing: border-box;
714 | font-size: 16px;
715 | /* loader */
716 | /* error */
717 | /* initing */
718 | /* no int */
719 | /* link */
720 | /* meta */
721 | /* popup */
722 | /* header */
723 | /* comments */
724 | /* comment */
725 | }
726 | .gt-container * {
727 | -webkit-box-sizing: border-box;
728 | box-sizing: border-box;
729 | }
730 | .gt-container a {
731 | color: #6190e8;
732 | }
733 | .gt-container a:hover {
734 | color: #81a6ed;
735 | border-color: #81a6ed;
736 | }
737 | .gt-container a.is--active {
738 | color: #333;
739 | cursor: default !important;
740 | }
741 | .gt-container a.is--active:hover {
742 | color: #333;
743 | }
744 | .gt-container .hide {
745 | display: none !important;
746 | }
747 | .gt-container .gt-svg {
748 | display: inline-block;
749 | width: 1em;
750 | height: 1em;
751 | vertical-align: sub;
752 | }
753 | .gt-container .gt-svg svg {
754 | width: 100%;
755 | height: 100%;
756 | fill: #6190e8;
757 | }
758 | .gt-container .gt-ico {
759 | display: inline-block;
760 | }
761 | .gt-container .gt-ico-text {
762 | margin-left: 0.3125em;
763 | }
764 | .gt-container .gt-ico-github {
765 | width: 100%;
766 | height: 100%;
767 | }
768 | .gt-container .gt-ico-github .gt-svg {
769 | width: 100%;
770 | height: 100%;
771 | }
772 | .gt-container .gt-ico-github svg {
773 | fill: inherit;
774 | }
775 | .gt-container .gt-spinner {
776 | position: relative;
777 | }
778 | .gt-container .gt-spinner::before {
779 | content: '';
780 | -webkit-box-sizing: border-box;
781 | box-sizing: border-box;
782 | position: absolute;
783 | top: 3px;
784 | width: 0.75em;
785 | height: 0.75em;
786 | margin-top: -0.1875em;
787 | margin-left: -0.375em;
788 | border-radius: 50%;
789 | border: 1px solid #fff;
790 | border-top-color: #6190e8;
791 | -webkit-animation: gt-kf-rotate 0.6s linear infinite;
792 | animation: gt-kf-rotate 0.6s linear infinite;
793 | }
794 | .gt-container .gt-loader {
795 | position: relative;
796 | border: 1px solid #999;
797 | -webkit-animation: ease gt-kf-rotate 1.5s infinite;
798 | animation: ease gt-kf-rotate 1.5s infinite;
799 | display: inline-block;
800 | font-style: normal;
801 | width: 1.75em;
802 | height: 1.75em;
803 | line-height: 1.75em;
804 | border-radius: 50%;
805 | }
806 | .gt-container .gt-loader:before {
807 | content: '';
808 | position: absolute;
809 | display: block;
810 | top: 0;
811 | left: 50%;
812 | margin-top: -0.1875em;
813 | margin-left: -0.1875em;
814 | width: 0.375em;
815 | height: 0.375em;
816 | background-color: #999;
817 | border-radius: 50%;
818 | }
819 | .gt-container .gt-avatar {
820 | display: inline-block;
821 | width: 3.125em;
822 | height: 3.125em;
823 | }
824 | @media (max-width: 479px) {
825 | .gt-container .gt-avatar {
826 | width: 2em;
827 | height: 2em;
828 | }
829 | }
830 | .gt-container .gt-avatar img {
831 | width: 100%;
832 | height: auto;
833 | border-radius: 3px;
834 | }
835 | .gt-container .gt-avatar-github {
836 | width: 3em;
837 | height: 3em;
838 | cursor: pointer;
839 | }
840 | @media (max-width: 479px) {
841 | .gt-container .gt-avatar-github {
842 | width: 1.875em;
843 | height: 1.875em;
844 | }
845 | }
846 | .gt-container .gt-btn {
847 | padding: 0.75em 1.25em;
848 | display: inline-block;
849 | line-height: 1;
850 | text-decoration: none;
851 | white-space: nowrap;
852 | cursor: pointer;
853 | border: 1px solid #6190e8;
854 | border-radius: 5px;
855 | background-color: #6190e8;
856 | color: #fff;
857 | outline: none;
858 | font-size: 0.75em;
859 | }
860 | .gt-container .gt-btn-text {
861 | font-weight: 400;
862 | }
863 | .gt-container .gt-btn-loading {
864 | position: relative;
865 | margin-left: 0.5em;
866 | display: inline-block;
867 | width: 0.75em;
868 | height: 1em;
869 | vertical-align: top;
870 | }
871 | .gt-container .gt-btn.is--disable {
872 | cursor: not-allowed;
873 | opacity: 0.5;
874 | }
875 | .gt-container .gt-btn-login {
876 | margin-right: 0;
877 | }
878 | .gt-container .gt-btn-preview {
879 | background-color: #fff;
880 | color: #6190e8;
881 | }
882 | .gt-container .gt-btn-preview:hover {
883 | background-color: #f2f2f2;
884 | border-color: #81a6ed;
885 | }
886 | .gt-container .gt-btn-public:hover {
887 | background-color: #81a6ed;
888 | border-color: #81a6ed;
889 | }
890 | .gt-container .gt-error {
891 | text-align: center;
892 | margin: 0.625em;
893 | color: #ff3860;
894 | }
895 | .gt-container .gt-initing {
896 | padding: 1.25em 0;
897 | text-align: center;
898 | }
899 | .gt-container .gt-initing-text {
900 | margin: 0.625em auto;
901 | font-size: 92%;
902 | }
903 | .gt-container .gt-no-init {
904 | padding: 1.25em 0;
905 | text-align: center;
906 | }
907 | .gt-container .gt-link {
908 | border-bottom: 1px dotted #6190e8;
909 | }
910 | .gt-container .gt-link-counts,
911 | .gt-container .gt-link-project {
912 | text-decoration: none;
913 | }
914 | .gt-container .gt-meta {
915 | margin: 1.25em 0;
916 | padding: 1em 0;
917 | position: relative;
918 | border-bottom: 1px solid #e9e9e9;
919 | font-size: 1em;
920 | position: relative;
921 | z-index: 10;
922 | }
923 | .gt-container .gt-meta:before,
924 | .gt-container .gt-meta:after {
925 | content: " ";
926 | display: table;
927 | }
928 | .gt-container .gt-meta:after {
929 | clear: both;
930 | }
931 | .gt-container .gt-counts {
932 | margin: 0 0.625em 0 0;
933 | }
934 | .gt-container .gt-user {
935 | float: right;
936 | margin: 0;
937 | font-size: 92%;
938 | }
939 | .gt-container .gt-user-pic {
940 | width: 16px;
941 | height: 16px;
942 | vertical-align: top;
943 | margin-right: 0.5em;
944 | }
945 | .gt-container .gt-user-inner {
946 | display: inline-block;
947 | cursor: pointer;
948 | }
949 | .gt-container .gt-user .gt-ico {
950 | margin: 0 0 0 0.3125em;
951 | }
952 | .gt-container .gt-user .gt-ico svg {
953 | fill: inherit;
954 | }
955 | .gt-container .gt-user .is--poping .gt-ico svg {
956 | fill: #6190e8;
957 | }
958 | .gt-container .gt-version {
959 | color: #a1a1a1;
960 | margin-left: 0.375em;
961 | }
962 | .gt-container .gt-copyright {
963 | margin: 0 0.9375em 0.5em;
964 | border-top: 1px solid #e9e9e9;
965 | padding-top: 0.5em;
966 | }
967 | .gt-container .gt-popup {
968 | position: absolute;
969 | right: 0;
970 | top: 2.375em;
971 | background: #fff;
972 | display: inline-block;
973 | border: 1px solid #e9e9e9;
974 | padding: 0.625em 0;
975 | font-size: 0.875em;
976 | letter-spacing: 0.5px;
977 | }
978 | .gt-container .gt-popup .gt-action {
979 | cursor: pointer;
980 | display: block;
981 | margin: 0.5em 0;
982 | padding: 0 1.125em;
983 | position: relative;
984 | text-decoration: none;
985 | }
986 | .gt-container .gt-popup .gt-action.is--active:before {
987 | content: '';
988 | width: 0.25em;
989 | height: 0.25em;
990 | background: #6190e8;
991 | position: absolute;
992 | left: 0.5em;
993 | top: 0.4375em;
994 | }
995 | .gt-container .gt-header {
996 | position: relative;
997 | display: -webkit-box;
998 | display: -ms-flexbox;
999 | display: flex;
1000 | }
1001 | .gt-container .gt-header-comment {
1002 | -webkit-box-flex: 1;
1003 | -ms-flex: 1;
1004 | flex: 1;
1005 | margin-left: 1.25em;
1006 | }
1007 | @media (max-width: 479px) {
1008 | .gt-container .gt-header-comment {
1009 | margin-left: 0.875em;
1010 | }
1011 | }
1012 | .gt-container .gt-header-textarea {
1013 | padding: 0.75em;
1014 | display: block;
1015 | -webkit-box-sizing: border-box;
1016 | box-sizing: border-box;
1017 | width: 100%;
1018 | min-height: 5.125em;
1019 | max-height: 15em;
1020 | border-radius: 5px;
1021 | border: 1px solid rgba(0,0,0,0.1);
1022 | font-size: 0.875em;
1023 | word-wrap: break-word;
1024 | resize: vertical;
1025 | background-color: #f6f6f6;
1026 | outline: none;
1027 | -webkit-transition: all 0.25s ease;
1028 | transition: all 0.25s ease;
1029 | }
1030 | .gt-container .gt-header-textarea:hover {
1031 | background-color: #fbfbfb;
1032 | }
1033 | .gt-container .gt-header-preview {
1034 | padding: 0.75em;
1035 | border-radius: 5px;
1036 | border: 1px solid rgba(0,0,0,0.1);
1037 | background-color: #f6f6f6;
1038 | }
1039 | .gt-container .gt-header-controls {
1040 | position: relative;
1041 | margin: 0.75em 0 0;
1042 | }
1043 | .gt-container .gt-header-controls:before,
1044 | .gt-container .gt-header-controls:after {
1045 | content: " ";
1046 | display: table;
1047 | }
1048 | .gt-container .gt-header-controls:after {
1049 | clear: both;
1050 | }
1051 | @media (max-width: 479px) {
1052 | .gt-container .gt-header-controls {
1053 | margin: 0;
1054 | }
1055 | }
1056 | .gt-container .gt-header-controls-tip {
1057 | font-size: 0.875em;
1058 | color: #6190e8;
1059 | text-decoration: none;
1060 | vertical-align: sub;
1061 | }
1062 | @media (max-width: 479px) {
1063 | .gt-container .gt-header-controls-tip {
1064 | display: none;
1065 | }
1066 | }
1067 | .gt-container .gt-header-controls .gt-btn {
1068 | float: right;
1069 | margin-left: 1.25em;
1070 | }
1071 | @media (max-width: 479px) {
1072 | .gt-container .gt-header-controls .gt-btn {
1073 | float: none;
1074 | width: 100%;
1075 | margin: 0.75em 0 0;
1076 | }
1077 | }
1078 | .gt-container:after {
1079 | content: '';
1080 | position: fixed;
1081 | bottom: 100%;
1082 | left: 0;
1083 | right: 0;
1084 | top: 0;
1085 | opacity: 0;
1086 | }
1087 | .gt-container.gt-input-focused {
1088 | position: relative;
1089 | }
1090 | .gt-container.gt-input-focused:after {
1091 | content: '';
1092 | position: fixed;
1093 | bottom: 0%;
1094 | left: 0;
1095 | right: 0;
1096 | top: 0;
1097 | background: #000;
1098 | opacity: 0.6;
1099 | -webkit-transition: opacity 0.3s, bottom 0s;
1100 | transition: opacity 0.3s, bottom 0s;
1101 | z-index: 9999;
1102 | }
1103 | .gt-container.gt-input-focused .gt-header-comment {
1104 | z-index: 10000;
1105 | }
1106 | .gt-container .gt-comments {
1107 | padding-top: 1.25em;
1108 | }
1109 | .gt-container .gt-comments-null {
1110 | text-align: center;
1111 | }
1112 | .gt-container .gt-comments-controls {
1113 | margin: 1.25em 0;
1114 | text-align: center;
1115 | }
1116 | .gt-container .gt-comment {
1117 | position: relative;
1118 | padding: 0.625em 0;
1119 | display: -webkit-box;
1120 | display: -ms-flexbox;
1121 | display: flex;
1122 | }
1123 | .gt-container .gt-comment-content {
1124 | -webkit-box-flex: 1;
1125 | -ms-flex: 1;
1126 | flex: 1;
1127 | margin-left: 1.25em;
1128 | padding: 0.75em 1em;
1129 | background-color: #f9f9f9;
1130 | overflow: auto;
1131 | -webkit-transition: all ease 0.25s;
1132 | transition: all ease 0.25s;
1133 | }
1134 | .gt-container .gt-comment-content:hover {
1135 | -webkit-box-shadow: 0 0.625em 3.75em 0 #f4f4f4;
1136 | box-shadow: 0 0.625em 3.75em 0 #f4f4f4;
1137 | }
1138 | @media (max-width: 479px) {
1139 | .gt-container .gt-comment-content {
1140 | margin-left: 0.875em;
1141 | padding: 0.625em 0.75em;
1142 | }
1143 | }
1144 | .gt-container .gt-comment-header {
1145 | margin-bottom: 0.5em;
1146 | font-size: 0.875em;
1147 | position: relative;
1148 | }
1149 | .gt-container .gt-comment-block-1 {
1150 | float: right;
1151 | height: 1.375em;
1152 | width: 2em;
1153 | }
1154 | .gt-container .gt-comment-block-2 {
1155 | float: right;
1156 | height: 1.375em;
1157 | width: 4em;
1158 | }
1159 | .gt-container .gt-comment-username {
1160 | font-weight: 500;
1161 | color: #6190e8;
1162 | text-decoration: none;
1163 | }
1164 | .gt-container .gt-comment-username:hover {
1165 | text-decoration: underline;
1166 | }
1167 | .gt-container .gt-comment-text {
1168 | margin-left: 0.5em;
1169 | color: #a1a1a1;
1170 | }
1171 | .gt-container .gt-comment-date {
1172 | margin-left: 0.5em;
1173 | color: #a1a1a1;
1174 | }
1175 | .gt-container .gt-comment-like,
1176 | .gt-container .gt-comment-edit,
1177 | .gt-container .gt-comment-reply {
1178 | position: absolute;
1179 | height: 1.375em;
1180 | }
1181 | .gt-container .gt-comment-like:hover,
1182 | .gt-container .gt-comment-edit:hover,
1183 | .gt-container .gt-comment-reply:hover {
1184 | cursor: pointer;
1185 | }
1186 | .gt-container .gt-comment-like {
1187 | top: 0;
1188 | right: 2em;
1189 | }
1190 | .gt-container .gt-comment-edit,
1191 | .gt-container .gt-comment-reply {
1192 | top: 0;
1193 | right: 0;
1194 | }
1195 | .gt-container .gt-comment-body {
1196 | color: #333 !important;
1197 | }
1198 | .gt-container .gt-comment-body .email-hidden-toggle a {
1199 | display: inline-block;
1200 | height: 12px;
1201 | padding: 0 9px;
1202 | font-size: 12px;
1203 | font-weight: 600;
1204 | line-height: 6px;
1205 | color: #444d56;
1206 | text-decoration: none;
1207 | vertical-align: middle;
1208 | background: #dfe2e5;
1209 | border-radius: 1px;
1210 | }
1211 | .gt-container .gt-comment-body .email-hidden-toggle a:hover {
1212 | background-color: #c6cbd1;
1213 | }
1214 | .gt-container .gt-comment-body .email-hidden-reply {
1215 | display: none;
1216 | white-space: pre-wrap;
1217 | }
1218 | .gt-container .gt-comment-body .email-hidden-reply .email-signature-reply {
1219 | padding: 0 15px;
1220 | margin: 15px 0;
1221 | color: #586069;
1222 | border-left: 4px solid #dfe2e5;
1223 | }
1224 | .gt-container .gt-comment-body .email-hidden-reply.expanded {
1225 | display: block;
1226 | }
1227 | .gt-container .gt-comment-admin .gt-comment-content {
1228 | background-color: #f6f9fe;
1229 | }
1230 | @-webkit-keyframes gt-kf-rotate {
1231 | 0% {
1232 | -webkit-transform: rotate(0);
1233 | transform: rotate(0);
1234 | }
1235 | 100% {
1236 | -webkit-transform: rotate(360deg);
1237 | transform: rotate(360deg);
1238 | }
1239 | }
1240 | @keyframes gt-kf-rotate {
1241 | 0% {
1242 | -webkit-transform: rotate(0);
1243 | transform: rotate(0);
1244 | }
1245 | 100% {
1246 | -webkit-transform: rotate(360deg);
1247 | transform: rotate(360deg);
1248 | }
1249 | }
1250 |
1251 | /*# sourceMappingURL=gitalk.css.map*/
--------------------------------------------------------------------------------
/assets/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hutusi/taletype/bc7119867e10d9ad5312cb41e9e2e471e40e256a/assets/apple-touch-icon.png
--------------------------------------------------------------------------------
/assets/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hutusi/taletype/bc7119867e10d9ad5312cb41e9e2e471e40e256a/assets/favicon-16x16.png
--------------------------------------------------------------------------------
/assets/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hutusi/taletype/bc7119867e10d9ad5312cb41e9e2e471e40e256a/assets/favicon-32x32.png
--------------------------------------------------------------------------------
/assets/js/disqusLoader.js:
--------------------------------------------------------------------------------
1 | /*
2 | disqusLoader.js v1.0
3 | A JavaScript plugin for lazy-loading Disqus comments widget.
4 | -
5 | By Osvaldas Valutis, www.osvaldas.info
6 | Available for use under the MIT License
7 | */
8 | (function(b,f,l){var r=function(a){a=a.getBoundingClientRect();return{top:a.top+f.body.scrollTop,left:a.left+f.body.scrollLeft}},t=function(a,c){var d=f.createElement("script");d.src=a;d.async=!0;d.setAttribute("data-timestamp",+new Date);d.addEventListener("load",function(){"function"===typeof c&&c()});(f.head||f.body).appendChild(d)};l=function(a,c){var d,e;return function(){var g=this,f=arguments,b=+new Date;d&&bb.innerHeight*n||0= 4.0"
16 | spec.add_runtime_dependency "jekyll-paginate", ">= 1.1"
17 | spec.add_runtime_dependency "jekyll-feed", ">= 0.10"
18 | spec.add_runtime_dependency "jekyll-seo-tag", ">= 2.5"
19 | # TODO: don't know why, run error when adding jekyll-tagging
20 | # spec.add_runtime_dependency "jekyll-tagging"
21 | # spec.add_runtime_dependency "jekyll-sitemap"
22 |
23 | spec.add_development_dependency "bundler", ">= 2.0"
24 | spec.add_development_dependency "rake", ">= 12.3"
25 | end
26 |
--------------------------------------------------------------------------------
11 | 12 |