bunto 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.markdown +59 -0
- data/bin/bunto +51 -0
- data/lib/bunto.rb +179 -0
- data/lib/bunto/cleaner.rb +105 -0
- data/lib/bunto/collection.rb +205 -0
- data/lib/bunto/command.rb +65 -0
- data/lib/bunto/commands/build.rb +77 -0
- data/lib/bunto/commands/clean.rb +42 -0
- data/lib/bunto/commands/doctor.rb +114 -0
- data/lib/bunto/commands/help.rb +31 -0
- data/lib/bunto/commands/new.rb +82 -0
- data/lib/bunto/commands/serve.rb +204 -0
- data/lib/bunto/commands/serve/servlet.rb +61 -0
- data/lib/bunto/configuration.rb +323 -0
- data/lib/bunto/converter.rb +48 -0
- data/lib/bunto/converters/identity.rb +21 -0
- data/lib/bunto/converters/markdown.rb +92 -0
- data/lib/bunto/converters/markdown/kramdown_parser.rb +117 -0
- data/lib/bunto/converters/markdown/rdiscount_parser.rb +33 -0
- data/lib/bunto/converters/markdown/redcarpet_parser.rb +102 -0
- data/lib/bunto/converters/smartypants.rb +34 -0
- data/lib/bunto/convertible.rb +297 -0
- data/lib/bunto/deprecator.rb +46 -0
- data/lib/bunto/document.rb +444 -0
- data/lib/bunto/drops/bunto_drop.rb +21 -0
- data/lib/bunto/drops/collection_drop.rb +22 -0
- data/lib/bunto/drops/document_drop.rb +27 -0
- data/lib/bunto/drops/drop.rb +176 -0
- data/lib/bunto/drops/site_drop.rb +38 -0
- data/lib/bunto/drops/unified_payload_drop.rb +25 -0
- data/lib/bunto/drops/url_drop.rb +83 -0
- data/lib/bunto/entry_filter.rb +72 -0
- data/lib/bunto/errors.rb +10 -0
- data/lib/bunto/excerpt.rb +127 -0
- data/lib/bunto/external.rb +59 -0
- data/lib/bunto/filters.rb +367 -0
- data/lib/bunto/frontmatter_defaults.rb +188 -0
- data/lib/bunto/generator.rb +3 -0
- data/lib/bunto/hooks.rb +101 -0
- data/lib/bunto/layout.rb +49 -0
- data/lib/bunto/liquid_extensions.rb +22 -0
- data/lib/bunto/liquid_renderer.rb +39 -0
- data/lib/bunto/liquid_renderer/file.rb +50 -0
- data/lib/bunto/liquid_renderer/table.rb +94 -0
- data/lib/bunto/log_adapter.rb +115 -0
- data/lib/bunto/mime.types +800 -0
- data/lib/bunto/page.rb +180 -0
- data/lib/bunto/plugin.rb +96 -0
- data/lib/bunto/plugin_manager.rb +95 -0
- data/lib/bunto/post.rb +329 -0
- data/lib/bunto/publisher.rb +21 -0
- data/lib/bunto/reader.rb +126 -0
- data/lib/bunto/readers/collection_reader.rb +20 -0
- data/lib/bunto/readers/data_reader.rb +69 -0
- data/lib/bunto/readers/layout_reader.rb +53 -0
- data/lib/bunto/readers/page_reader.rb +21 -0
- data/lib/bunto/readers/post_reader.rb +62 -0
- data/lib/bunto/readers/static_file_reader.rb +21 -0
- data/lib/bunto/regenerator.rb +175 -0
- data/lib/bunto/related_posts.rb +56 -0
- data/lib/bunto/renderer.rb +191 -0
- data/lib/bunto/site.rb +391 -0
- data/lib/bunto/static_file.rb +141 -0
- data/lib/bunto/stevenson.rb +58 -0
- data/lib/bunto/tags/highlight.rb +122 -0
- data/lib/bunto/tags/include.rb +190 -0
- data/lib/bunto/tags/post_url.rb +88 -0
- data/lib/bunto/url.rb +136 -0
- data/lib/bunto/utils.rb +287 -0
- data/lib/bunto/utils/ansi.rb +59 -0
- data/lib/bunto/utils/platforms.rb +30 -0
- data/lib/bunto/version.rb +3 -0
- data/lib/site_template/.gitignore +3 -0
- data/lib/site_template/_config.yml +21 -0
- data/lib/site_template/_includes/footer.html +38 -0
- data/lib/site_template/_includes/head.html +12 -0
- data/lib/site_template/_includes/header.html +27 -0
- data/lib/site_template/_includes/icon-github.html +1 -0
- data/lib/site_template/_includes/icon-github.svg +1 -0
- data/lib/site_template/_includes/icon-twitter.html +1 -0
- data/lib/site_template/_includes/icon-twitter.svg +1 -0
- data/lib/site_template/_layouts/default.html +20 -0
- data/lib/site_template/_layouts/page.html +14 -0
- data/lib/site_template/_layouts/post.html +15 -0
- data/lib/site_template/_posts/0000-00-00-welcome-to-bunto.markdown.erb +25 -0
- data/lib/site_template/_sass/_base.scss +206 -0
- data/lib/site_template/_sass/_layout.scss +242 -0
- data/lib/site_template/_sass/_syntax-highlighting.scss +71 -0
- data/lib/site_template/about.md +15 -0
- data/lib/site_template/css/main.scss +53 -0
- data/lib/site_template/feed.xml +30 -0
- data/lib/site_template/index.html +23 -0
- metadata +252 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
# Frozen-string-literal: true
|
2
|
+
# Copyright: 2015 Bunto - MIT License
|
3
|
+
# Encoding: utf-8
|
4
|
+
|
5
|
+
module Bunto
|
6
|
+
module Utils
|
7
|
+
module Ansi
|
8
|
+
extend self
|
9
|
+
|
10
|
+
ESCAPE = format("%c", 27)
|
11
|
+
MATCH = /#{ESCAPE}\[(?:\d+)(?:;\d+)*(j|k|m|s|u|A|B|G)|\e\(B\e\[m/ix.freeze
|
12
|
+
COLORS = {
|
13
|
+
:red => 31,
|
14
|
+
:green => 32,
|
15
|
+
:black => 30,
|
16
|
+
:magenta => 35,
|
17
|
+
:yellow => 33,
|
18
|
+
:white => 37,
|
19
|
+
:blue => 34,
|
20
|
+
:cyan => 36
|
21
|
+
}
|
22
|
+
|
23
|
+
# Strip ANSI from the current string. It also strips cursor stuff,
|
24
|
+
# well some of it, and it also strips some other stuff that a lot of
|
25
|
+
# the other ANSI strippers don't.
|
26
|
+
|
27
|
+
def strip(str)
|
28
|
+
str.gsub MATCH, ""
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
|
33
|
+
def has?(str)
|
34
|
+
!!(str =~ MATCH)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Reset the color back to the default color so that you do not leak any
|
38
|
+
# colors when you move onto the next line. This is probably normally
|
39
|
+
# used as part of a wrapper so that we don't leak colors.
|
40
|
+
|
41
|
+
def reset(str = "")
|
42
|
+
@ansi_reset ||= format("%c[0m", 27)
|
43
|
+
"#{@ansi_reset}#{str}"
|
44
|
+
end
|
45
|
+
|
46
|
+
# SEE: `self::COLORS` for a list of methods. They are mostly
|
47
|
+
# standard base colors supported by pretty much any xterm-color, we do
|
48
|
+
# not need more than the base colors so we do not include them.
|
49
|
+
# Actually... if I'm honest we don't even need most of the
|
50
|
+
# base colors.
|
51
|
+
|
52
|
+
COLORS.each do |color, num|
|
53
|
+
define_method color do |str|
|
54
|
+
"#{format("%c", 27)}[#{num}m#{str}#{reset}"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Bunto
|
2
|
+
module Utils
|
3
|
+
module Platforms
|
4
|
+
extend self
|
5
|
+
|
6
|
+
# Provides jruby? and mri? which respectively detect these two types of
|
7
|
+
# tested Engines we support, in the future we might probably support the
|
8
|
+
# other one that everyone used to talk about.
|
9
|
+
|
10
|
+
{ :jruby? => "jruby", :mri? => "ruby" }.each do |k, v|
|
11
|
+
define_method k do
|
12
|
+
::RUBY_ENGINE == v
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# Provides windows?, linux?, osx?, unix? so that we can detect
|
17
|
+
# platforms. This is mostly useful for `bunto doctor` and for testing
|
18
|
+
# where we kick off certain tests based on the platform.
|
19
|
+
|
20
|
+
{ :windows? => /mswin|mingw|cygwin/, :linux? => /linux/, \
|
21
|
+
:osx? => /darwin|mac os/, :unix? => /solaris|bsd/ }.each do |k, v|
|
22
|
+
define_method k do
|
23
|
+
!!(
|
24
|
+
RbConfig::CONFIG["host_os"] =~ v
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Welcome to Bunto!
|
2
|
+
#
|
3
|
+
# This config file is meant for settings that affect your whole blog, values
|
4
|
+
# which you are expected to set up once and rarely need to edit after that.
|
5
|
+
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
6
|
+
# 'bunto serve'. If you change this file, please restart the server process.
|
7
|
+
|
8
|
+
# Site settings
|
9
|
+
title: Your awesome title
|
10
|
+
email: your-email@domain.com
|
11
|
+
description: > # this means to ignore newlines until "baseurl:"
|
12
|
+
Write an awesome description for your new site here. You can edit this
|
13
|
+
line in _config.yml. It will appear in your document head meta (for
|
14
|
+
Google search results) and in your feed.xml site description.
|
15
|
+
baseurl: "" # the subpath of your site, e.g. /blog
|
16
|
+
url: "http://yourdomain.com" # the base hostname & protocol for your site
|
17
|
+
twitter_username: buntorb
|
18
|
+
github_username: bunto
|
19
|
+
|
20
|
+
# Build settings
|
21
|
+
markdown: kramdown
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<footer class="site-footer">
|
2
|
+
|
3
|
+
<div class="wrapper">
|
4
|
+
|
5
|
+
<h2 class="footer-heading">{{ site.title }}</h2>
|
6
|
+
|
7
|
+
<div class="footer-col-wrapper">
|
8
|
+
<div class="footer-col footer-col-1">
|
9
|
+
<ul class="contact-list">
|
10
|
+
<li>{{ site.title }}</li>
|
11
|
+
<li><a href="mailto:{{ site.email }}">{{ site.email }}</a></li>
|
12
|
+
</ul>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="footer-col footer-col-2">
|
16
|
+
<ul class="social-media-list">
|
17
|
+
{% if site.github_username %}
|
18
|
+
<li>
|
19
|
+
{% include icon-github.html username=site.github_username %}
|
20
|
+
</li>
|
21
|
+
{% endif %}
|
22
|
+
|
23
|
+
{% if site.twitter_username %}
|
24
|
+
<li>
|
25
|
+
{% include icon-twitter.html username=site.twitter_username %}
|
26
|
+
</li>
|
27
|
+
{% endif %}
|
28
|
+
</ul>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div class="footer-col footer-col-3">
|
32
|
+
<p>{{ site.description }}</p>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
</div>
|
37
|
+
|
38
|
+
</footer>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<head>
|
2
|
+
<meta charset="utf-8">
|
3
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
|
+
|
6
|
+
<title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
|
7
|
+
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
|
8
|
+
|
9
|
+
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
|
10
|
+
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
|
11
|
+
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
|
12
|
+
</head>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<header class="site-header">
|
2
|
+
|
3
|
+
<div class="wrapper">
|
4
|
+
|
5
|
+
<a class="site-title" href="{{ site.baseurl }}/">{{ site.title }}</a>
|
6
|
+
|
7
|
+
<nav class="site-nav">
|
8
|
+
<a href="#" class="menu-icon">
|
9
|
+
<svg viewBox="0 0 18 15">
|
10
|
+
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
11
|
+
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
12
|
+
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
13
|
+
</svg>
|
14
|
+
</a>
|
15
|
+
|
16
|
+
<div class="trigger">
|
17
|
+
{% for my_page in site.pages %}
|
18
|
+
{% if my_page.title %}
|
19
|
+
<a class="page-link" href="{{ my_page.url | prepend: site.baseurl }}">{{ my_page.title }}</a>
|
20
|
+
{% endif %}
|
21
|
+
{% endfor %}
|
22
|
+
</div>
|
23
|
+
</nav>
|
24
|
+
|
25
|
+
</div>
|
26
|
+
|
27
|
+
</header>
|
@@ -0,0 +1 @@
|
|
1
|
+
<a href="https://github.com/{{ include.username }}"><span class="icon icon--github">{% include icon-github.svg %}</span><span class="username">{{ include.username }}</span></a>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<a href="https://twitter.com/{{ include.username }}"><span class="icon icon--twitter">{% include icon-twitter.svg %}</span><span class="username">{{ include.username }}</span></a>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
{% include head.html %}
|
5
|
+
|
6
|
+
<body>
|
7
|
+
|
8
|
+
{% include header.html %}
|
9
|
+
|
10
|
+
<div class="page-content">
|
11
|
+
<div class="wrapper">
|
12
|
+
{{ content }}
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
{% include footer.html %}
|
17
|
+
|
18
|
+
</body>
|
19
|
+
|
20
|
+
</html>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
|
5
|
+
|
6
|
+
<header class="post-header">
|
7
|
+
<h1 class="post-title" itemprop="name headline">{{ page.title }}</h1>
|
8
|
+
<p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %} • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>{% endif %}</p>
|
9
|
+
</header>
|
10
|
+
|
11
|
+
<div class="post-content" itemprop="articleBody">
|
12
|
+
{{ content }}
|
13
|
+
</div>
|
14
|
+
|
15
|
+
</article>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
layout: post
|
3
|
+
title: "Welcome to Bunto!"
|
4
|
+
date: <%= Time.now.strftime('%Y-%m-%d %H:%M:%S %z') %>
|
5
|
+
categories: bunto update
|
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 `bunto 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
|
+
Bunto also offers powerful support for code snippets:
|
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 [Bunto docs][bunto-docs] for more info on how to get the most out of Bunto. File all bugs/feature requests at [Bunto’s GitHub repo][bunto-gh]. If you have questions, you can ask them on [Bunto Talk][bunto-talk].
|
22
|
+
|
23
|
+
[bunto-docs]: http://bunto.github.io/docs/home
|
24
|
+
[bunto-gh]: https://github.com/bunto/bunto
|
25
|
+
[bunto-talk]: https://bunto.github.io/talk/
|
@@ -0,0 +1,206 @@
|
|
1
|
+
/**
|
2
|
+
* Reset some basic elements
|
3
|
+
*/
|
4
|
+
body, h1, h2, h3, h4, h5, h6,
|
5
|
+
p, blockquote, pre, hr,
|
6
|
+
dl, dd, ol, ul, figure {
|
7
|
+
margin: 0;
|
8
|
+
padding: 0;
|
9
|
+
}
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Basic styling
|
15
|
+
*/
|
16
|
+
body {
|
17
|
+
font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
|
18
|
+
color: $text-color;
|
19
|
+
background-color: $background-color;
|
20
|
+
-webkit-text-size-adjust: 100%;
|
21
|
+
-webkit-font-feature-settings: "kern" 1;
|
22
|
+
-moz-font-feature-settings: "kern" 1;
|
23
|
+
-o-font-feature-settings: "kern" 1;
|
24
|
+
font-feature-settings: "kern" 1;
|
25
|
+
font-kerning: normal;
|
26
|
+
}
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Set `margin-bottom` to maintain vertical rhythm
|
32
|
+
*/
|
33
|
+
h1, h2, h3, h4, h5, h6,
|
34
|
+
p, blockquote, pre,
|
35
|
+
ul, ol, dl, figure,
|
36
|
+
%vertical-rhythm {
|
37
|
+
margin-bottom: $spacing-unit / 2;
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Images
|
44
|
+
*/
|
45
|
+
img {
|
46
|
+
max-width: 100%;
|
47
|
+
vertical-align: middle;
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Figures
|
54
|
+
*/
|
55
|
+
figure > img {
|
56
|
+
display: block;
|
57
|
+
}
|
58
|
+
|
59
|
+
figcaption {
|
60
|
+
font-size: $small-font-size;
|
61
|
+
}
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Lists
|
67
|
+
*/
|
68
|
+
ul, ol {
|
69
|
+
margin-left: $spacing-unit;
|
70
|
+
}
|
71
|
+
|
72
|
+
li {
|
73
|
+
> ul,
|
74
|
+
> ol {
|
75
|
+
margin-bottom: 0;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
/**
|
82
|
+
* Headings
|
83
|
+
*/
|
84
|
+
h1, h2, h3, h4, h5, h6 {
|
85
|
+
font-weight: $base-font-weight;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
/**
|
91
|
+
* Links
|
92
|
+
*/
|
93
|
+
a {
|
94
|
+
color: $brand-color;
|
95
|
+
text-decoration: none;
|
96
|
+
|
97
|
+
&:visited {
|
98
|
+
color: darken($brand-color, 15%);
|
99
|
+
}
|
100
|
+
|
101
|
+
&:hover {
|
102
|
+
color: $text-color;
|
103
|
+
text-decoration: underline;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
/**
|
110
|
+
* Blockquotes
|
111
|
+
*/
|
112
|
+
blockquote {
|
113
|
+
color: $grey-color;
|
114
|
+
border-left: 4px solid $grey-color-light;
|
115
|
+
padding-left: $spacing-unit / 2;
|
116
|
+
font-size: 18px;
|
117
|
+
letter-spacing: -1px;
|
118
|
+
font-style: italic;
|
119
|
+
|
120
|
+
> :last-child {
|
121
|
+
margin-bottom: 0;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
/**
|
128
|
+
* Code formatting
|
129
|
+
*/
|
130
|
+
pre,
|
131
|
+
code {
|
132
|
+
font-size: 15px;
|
133
|
+
border: 1px solid $grey-color-light;
|
134
|
+
border-radius: 3px;
|
135
|
+
background-color: #eef;
|
136
|
+
}
|
137
|
+
|
138
|
+
code {
|
139
|
+
padding: 1px 5px;
|
140
|
+
}
|
141
|
+
|
142
|
+
pre {
|
143
|
+
padding: 8px 12px;
|
144
|
+
overflow-x: auto;
|
145
|
+
|
146
|
+
> code {
|
147
|
+
border: 0;
|
148
|
+
padding-right: 0;
|
149
|
+
padding-left: 0;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
/**
|
156
|
+
* Wrapper
|
157
|
+
*/
|
158
|
+
.wrapper {
|
159
|
+
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
|
160
|
+
max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
|
161
|
+
margin-right: auto;
|
162
|
+
margin-left: auto;
|
163
|
+
padding-right: $spacing-unit;
|
164
|
+
padding-left: $spacing-unit;
|
165
|
+
@extend %clearfix;
|
166
|
+
|
167
|
+
@include media-query($on-laptop) {
|
168
|
+
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
|
169
|
+
max-width: calc(#{$content-width} - (#{$spacing-unit}));
|
170
|
+
padding-right: $spacing-unit / 2;
|
171
|
+
padding-left: $spacing-unit / 2;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
/**
|
178
|
+
* Clearfix
|
179
|
+
*/
|
180
|
+
%clearfix {
|
181
|
+
|
182
|
+
&:after {
|
183
|
+
content: "";
|
184
|
+
display: table;
|
185
|
+
clear: both;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
/**
|
192
|
+
* Icons
|
193
|
+
*/
|
194
|
+
.icon {
|
195
|
+
|
196
|
+
> svg {
|
197
|
+
display: inline-block;
|
198
|
+
width: 16px;
|
199
|
+
height: 16px;
|
200
|
+
vertical-align: middle;
|
201
|
+
|
202
|
+
path {
|
203
|
+
fill: $grey-color;
|
204
|
+
}
|
205
|
+
}
|
206
|
+
}
|