History

Add the Jekyll docs

Jed Fox committed 9 years ago

Commit 2bd96af1 parent 8eb8a9e8 files · +153 −-2Browse files

Unified · Split

8 files
  1. assets/stylesheets/application.css.scss +1 −0
  2. assets/stylesheets/pages/_jekyll.scss +35 −0
  3. lib/docs/filters/jekyll/clean_html.rb +55 −0
  4. lib/docs/filters/jekyll/entries.rb +29 −0
  5. lib/docs/scrapers/jekyll.rb +34 −0
  6. public/icons/docs/jekyll/16.png +0 −0
  7. public/icons/docs/jekyll/16@2x.png +0 −0
  8. public/icons/docs/jekyll/SOURCE +1 −0
assets/stylesheets/application.css.scss+1−0
@@ -55,6 +55,7 @@ · 54 unmodified lines
55 'pages/github',55 'pages/github',
56 'pages/go',56 'pages/go',
57 'pages/haskell',57 'pages/haskell',
58 'pages/jekyll',
58 'pages/jquery',59 'pages/jquery',
59 'pages/julia',60 'pages/julia',
60 'pages/knockout',61 'pages/knockout',
assets/stylesheets/pages/_jekyll.scss+35−0
@@ -0,0 +1,35 @@
1._jekyll {
2 h2, h3 { @extend %block-heading; }
3
4 .note {
5 @extend %note;
6
7 h5 {
8 margin-top: 0.25em;
9 }
10
11 position: relative;
12 &::after {
13 content: attr(data-type);
14 opacity: 0.5;
15 text-transform: uppercase;
16 position: absolute;
17 top: 0.25em;
18 right: 0.5em;
19 font-size: 0.8em;
20 pointer-events: none;
21 }
22
23 // Other note types currently unstyled:
24 // plain
25 // tip
26 // feature
27 &.note-info { @extend %note-blue; }
28 &.note-warning { @extend %note-red; }
29 &.note-unreleased { @extend %note-orange; }
30 }
31
32 pre {
33 font-size: inherit;
34 }
35}
lib/docs/filters/jekyll/clean_html.rb+55−0
@@ -0,0 +1,55 @@
1module Docs
2 class Jekyll
3 class CleanHtmlFilter < Filter
4 def call
5 css('.improve, .section-nav').each(&:remove)
6
7 css('div.highlighter-rouge').each do |node|
8 pre = node.at_css('pre')
9
10 # copy over the highlighting metadata
11 match = /language-(\w+)/.match(node['class'])
12 # HACK: Prism shell highlighting highlights `|`,
13 # which makes the tree on this page look terrible
14 if match && !(slug == /structure/ && match[1] == 'sh')
15 lang = match[1]
16 if lang == 'sh'
17 lang = 'bash'
18 elsif lang == 'liquid'
19 lang = 'django' # Close enough.
20 end
21 pre['class'] = nil
22 pre['data-language'] = lang
23 end
24
25 # Remove the server-rendered syntax highlighting
26 code = pre.at_css('code')
27 code.content = code.text
28
29 # Remove the div.highlighter-rouge and div.highlight wrapping the <pre>
30 node.add_next_sibling pre
31 node.remove
32 end
33
34 css('code').each do |node|
35 node['class'] = ''
36 end
37
38 css('.note').each do |node|
39 node_type = /note ?(\w+)?/.match(node['class'])[1] || 'tip'
40
41 # <div class="note">...<br>...</div> -> <div class="note">...</div>
42 (node > 'br').each(&:remove)
43 # <div class="note">...<p>...<br><br>...</p>...</div> ->
44 # <div class="note">...<p>...<br>...</p>...</div>
45 node.css('br + br').each(&:remove)
46
47 node['class'] = "note note-#{node_type}"
48 node['data-type'] = node_type
49 end
50
51 doc
52 end
53 end
54 end
55end
lib/docs/filters/jekyll/entries.rb+29−0
@@ -0,0 +1,29 @@
1module Docs
2 class Jekyll
3 class EntriesFilter < Docs::EntriesFilter
4
5 def get_name
6 at_css('h1').content
7 end
8
9 def get_type
10 if /continuous-integration/.match(slug)
11 'Deployment'
12 else
13 nav_link = doc.document # document
14 .at_css('aside li.current') # item in navbar
15
16 if nav_link
17 nav_link
18 .parent # <ul> in navbar
19 .previous_element # header before <ul>
20 .content # category
21 else
22 'Miscellaneous'
23 end
24 end
25 end
26
27 end
28 end
29end
lib/docs/scrapers/jekyll.rb+34−0
@@ -0,0 +1,34 @@
1module Docs
2 class Jekyll < UrlScraper
3 self.type = 'jekyll'
4 self.release = '3.6.2'
5 self.base_url = 'https://jekyllrb.com/docs/'
6 self.root_path = 'home/'
7 self.links = {
8 home: 'https://jekyllrb.com/',
9 code: 'https://github.com/jekyll/jekyll'
10 }
11
12 html_filters.push 'jekyll/clean_html', 'jekyll/entries'
13
14 options[:trailing_slash] = true
15 options[:container] = 'article'
16 options[:skip] = [
17 '',
18 '/'
19 ]
20 options[:skip_patterns] = [
21 /conduct/,
22 /history/,
23 /maintaining/,
24 /contributing/
25 ]
26 options[:attribution] = <<-HTML
27 &copy; 2008&ndash;2017 Tom Preston-Werner and Jekyll contributors<br />
28 Licensed under
29 <a href="https://github.com/jekyll/jekyll/blob/master/LICENSE">
30 the MIT license
31 </a>
32 HTML
33 end
34end
public/icons/docs/jekyll/16.png+0−0

Binary file not shown.

public/icons/docs/jekyll/16@2x.png+0−0

Binary file not shown.

public/icons/docs/jekyll/SOURCE+1−0
@@ -0,0 +1 @@
1https://avatars3.githubusercontent.com/u/3083652