History

Add Graphite documentation

Jasper van Merle committed 8 years ago

Commit 7d6e45c1 parent a71f48e7 files · +115 −0Browse files

Unified · Split

7 files
  1. assets/javascripts/templates/pages/about_tmpl.coffee +5 −0
  2. assets/stylesheets/application-dark.css.scss +1 −0
  3. assets/stylesheets/application.css.scss +1 −0
  4. assets/stylesheets/pages/_graphite.scss +26 −0
  5. lib/docs/filters/graphite/clean_html.rb +18 −0
  6. lib/docs/filters/graphite/entries.rb +44 −0
  7. lib/docs/scrapers/graphite.rb +20 −0
assets/javascripts/templates/pages/about_tmpl.coffee+5−0
@@ -295,6 +295,11 @@ credits = [ · 294 unmodified lines
295 '2014-2018 Juan Linietsky, Ariel Manzur, Godot Engine contributors',295 '2014-2018 Juan Linietsky, Ariel Manzur, Godot Engine contributors',
296 'MIT',296 'MIT',
297 'https://raw.githubusercontent.com/godotengine/godot/master/LICENSE.txt'297 'https://raw.githubusercontent.com/godotengine/godot/master/LICENSE.txt'
298 ], [
299 'Graphite',
300 '2008-2012 Chris Davis; 2011-2016 The Graphite Project',
301 'Apache',
302 'https://raw.githubusercontent.com/graphite-project/graphite-web/master/LICENSE'
298 ], [303 ], [
299 'Grunt',304 'Grunt',
300 'GruntJS Team',305 'GruntJS Team',
assets/stylesheets/application-dark.css.scss+1−0
@@ -55,6 +55,7 @@ · 54 unmodified lines
55 'pages/git',55 'pages/git',
56 'pages/github',56 'pages/github',
57 'pages/go',57 'pages/go',
58 'pages/graphite',
58 'pages/haskell',59 'pages/haskell',
59 'pages/jekyll',60 'pages/jekyll',
60 'pages/jquery',61 'pages/jquery',
assets/stylesheets/application.css.scss+1−0
@@ -55,6 +55,7 @@ · 54 unmodified lines
55 'pages/git',55 'pages/git',
56 'pages/github',56 'pages/github',
57 'pages/go',57 'pages/go',
58 'pages/graphite',
58 'pages/haskell',59 'pages/haskell',
59 'pages/jekyll',60 'pages/jekyll',
60 'pages/jquery',61 'pages/jquery',
assets/stylesheets/pages/_graphite.scss+26−0
@@ -0,0 +1,26 @@
1._graphite {
2 @extend %simple;
3
4 h1 {
5 @extend %lined-heading;
6 }
7
8 .section:first-child h1 {
9 margin-top: 0;
10 }
11
12 dl > dt {
13 @extend %note, %note-blue;
14 padding: 1px 0.5rem 2px 0.5rem;
15 font-weight: bold;
16 }
17
18 dl.function > dt {
19 code {
20 font-weight: bold;
21 }
22 em {
23 font-style: normal;
24 }
25 }
26}
lib/docs/filters/graphite/clean_html.rb+18−0
@@ -0,0 +1,18 @@
1module Docs
2 class Graphite
3 class CleanHtmlFilter < Filter
4 def call
5 # Remove the paragraph icon after all headers
6 css('.headerlink').remove
7
8 # Extract the text from function titles to get rid of the inconsistent styling
9 css('dl.function > dt').each do |node|
10 node['data-name'] = node.at_css('.descname').inner_html.to_s
11 node.content = node.text
12 end
13
14 doc
15 end
16 end
17 end
18end
lib/docs/filters/graphite/entries.rb+44−0
@@ -0,0 +1,44 @@
1module Docs
2 class Graphite
3 class EntriesFilter < Docs::EntriesFilter
4 def get_name
5 at_css('h1').children[0].to_s
6 end
7
8 def get_type
9 get_name
10 end
11
12 def additional_entries
13 entries = []
14
15 # Sections
16 css('.section > .section').each do |node|
17 title = node.at_css('h2, h3')
18
19 next if title.nil?
20
21 # Move the id attribute to the title
22 # If this is excluded, the complete section will be highlighted in yellow when someone navigates to it
23 title['id'] = node['id']
24 node.remove_attribute('id')
25
26 parent_title_selector = "parent::div[@class='section']/preceding::#{title.name == 'h2' ? 'h1' : 'h2'}"
27
28 entries << [
29 title.children[0].to_s,
30 title['id'],
31 title.xpath(parent_title_selector).last.children[0].to_s
32 ]
33 end
34
35 # Functions
36 css('dl.function > dt').each do |node|
37 entries << [node['data-name'], node['id'], 'List of functions']
38 end
39
40 entries
41 end
42 end
43 end
44end
lib/docs/scrapers/graphite.rb+20−0
@@ -0,0 +1,20 @@
1module Docs
2 class Graphite < UrlScraper
3 self.type = 'graphite'
4 self.release = '1.1.3'
5 self.base_url = 'http://graphite.readthedocs.io/en/latest/'
6 self.links = {
7 code: 'https://github.com/graphite-project/graphite-web'
8 }
9
10 html_filters.push 'graphite/clean_html', 'graphite/entries'
11
12 options[:container] = '.document > div'
13 options[:skip] = %w(releases.html who-is-using.html composer.html search.html py-modindex.html genindex.html)
14
15 options[:attribution] = <<-HTML
16 &copy; 2008-2012 Chris Davis; 2011-2016 The Graphite Project<br>
17 Licensed under the Apache License, Version 2.0.
18 HTML
19 end
20end