Add the Jekyll docs

This commit is contained in:
Jed Fox 2017-10-28 11:27:42 -04:00 committed by Thibaut Courouble
parent 8eb8a9e46d
commit 2bd96af5c0
8 changed files with 155 additions and 0 deletions

View file

@ -55,6 +55,7 @@
'pages/github',
'pages/go',
'pages/haskell',
'pages/jekyll',
'pages/jquery',
'pages/julia',
'pages/knockout',

View file

@ -0,0 +1,35 @@
._jekyll {
h2, h3 { @extend %block-heading; }
.note {
@extend %note;
h5 {
margin-top: 0.25em;
}
position: relative;
&::after {
content: attr(data-type);
opacity: 0.5;
text-transform: uppercase;
position: absolute;
top: 0.25em;
right: 0.5em;
font-size: 0.8em;
pointer-events: none;
}
// Other note types currently unstyled:
// plain
// tip
// feature
&.note-info { @extend %note-blue; }
&.note-warning { @extend %note-red; }
&.note-unreleased { @extend %note-orange; }
}
pre {
font-size: inherit;
}
}

View file

@ -0,0 +1,55 @@
module Docs
class Jekyll
class CleanHtmlFilter < Filter
def call
css('.improve, .section-nav').each(&:remove)
css('div.highlighter-rouge').each do |node|
pre = node.at_css('pre')
# copy over the highlighting metadata
match = /language-(\w+)/.match(node['class'])
# HACK: Prism shell highlighting highlights `|`,
# which makes the tree on this page look terrible
if match && !(slug == /structure/ && match[1] == 'sh')
lang = match[1]
if lang == 'sh'
lang = 'bash'
elsif lang == 'liquid'
lang = 'django' # Close enough.
end
pre['class'] = nil
pre['data-language'] = lang
end
# Remove the server-rendered syntax highlighting
code = pre.at_css('code')
code.content = code.text
# Remove the div.highlighter-rouge and div.highlight wrapping the <pre>
node.add_next_sibling pre
node.remove
end
css('code').each do |node|
node['class'] = ''
end
css('.note').each do |node|
node_type = /note ?(\w+)?/.match(node['class'])[1] || 'tip'
# <div class="note">...<br>...</div> -> <div class="note">...</div>
(node > 'br').each(&:remove)
# <div class="note">...<p>...<br><br>...</p>...</div> ->
# <div class="note">...<p>...<br>...</p>...</div>
node.css('br + br').each(&:remove)
node['class'] = "note note-#{node_type}"
node['data-type'] = node_type
end
doc
end
end
end
end

View file

@ -0,0 +1,29 @@
module Docs
class Jekyll
class EntriesFilter < Docs::EntriesFilter
def get_name
at_css('h1').content
end
def get_type
if /continuous-integration/.match(slug)
'Deployment'
else
nav_link = doc.document # document
.at_css('aside li.current') # item in navbar
if nav_link
nav_link
.parent # <ul> in navbar
.previous_element # header before <ul>
.content # category
else
'Miscellaneous'
end
end
end
end
end
end

View file

@ -0,0 +1,34 @@
module Docs
class Jekyll < UrlScraper
self.type = 'jekyll'
self.release = '3.6.2'
self.base_url = 'https://jekyllrb.com/docs/'
self.root_path = 'home/'
self.links = {
home: 'https://jekyllrb.com/',
code: 'https://github.com/jekyll/jekyll'
}
html_filters.push 'jekyll/clean_html', 'jekyll/entries'
options[:trailing_slash] = true
options[:container] = 'article'
options[:skip] = [
'',
'/'
]
options[:skip_patterns] = [
/conduct/,
/history/,
/maintaining/,
/contributing/
]
options[:attribution] = <<-HTML
&copy; 2008&ndash;2017 Tom Preston-Werner and Jekyll contributors<br />
Licensed under
<a href="https://github.com/jekyll/jekyll/blob/master/LICENSE">
the MIT license
</a>
HTML
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 809 B

View file

@ -0,0 +1 @@
https://avatars3.githubusercontent.com/u/3083652