History

Add Falcon documentation

Phil Scherer committed 9 years ago

Commit f4242561 parent fbf0c584 files · +80 −1Browse files

Unified · Split

4 files
  1. lib/docs/filters/falcon/entries.rb +50 −0
  2. lib/docs/filters/sphinx/clean_html.rb +2 −1
  3. lib/docs/scrapers/falcon.rb +27 −0
  4. public/icons/docs/falcon/SOURCE +1 −0
lib/docs/filters/falcon/entries.rb+50−0
@@ -0,0 +1,50 @@
1+module Docs
2+ class Falcon
3+ class EntriesFilter < Docs::EntriesFilter
4+ def get_name
5+ name = at_css('h1').content.strip
6+ name.remove! "\u{00B6}"
7+ name
8+ end
9+
10+ def get_type
11+ case slug.split('/').first
12+ when 'community'
13+ 'Community Guide'
14+ when 'user'
15+ 'User Guide'
16+ when 'api'
17+ 'Classes and Functions'
18+ else
19+ 'Other'
20+ end
21+ end
22+
23+ def additional_entries
24+ entries = []
25+
26+ css('.class').each do |node|
27+ class_name = node.at_css('dt > .descname').content
28+ class_id = node.at_css('dt[id]')['id']
29+ entries << [class_name, class_id]
30+
31+ node.css('.method').each do |n|
32+ next unless n.at_css('dt[id]')
33+ name = n.at_css('.descname').content
34+ name = "#{class_name}.#{name}()"
35+ id = n.at_css('dt[id]')['id']
36+ entries << [name, id]
37+ end
38+ end
39+
40+ css('.function').each do |node|
41+ name = "#{node.at_css('.descname').content}()"
42+ id = node.at_css('dt[id]')['id']
43+ entries << [name, id]
44+ end
45+
46+ entries
47+ end
48+ end
49+ end
50+end
lib/docs/filters/sphinx/clean_html.rb+2−1
@@ -20,9 +20,10 @@ module Docs · 19 unmodified lines
2020 css('div[class*="highlight-"]', 'div[class*="hl-"]').each do |node|
2121 pre = node.at_css('pre')
2222 pre.content = pre.content
23− lang = node['class'][/highlight\-(\w+)/, 1] || node['class'][/hl\-(\w+)/, 1]
23+ lang = node['class'][/code (\w+) highlight/, 1] || node['class'][/highlight\-(\w+)/, 1] || node['class'][/hl\-(\w+)/, 1]
2424 lang = 'php' if lang == 'ci'
2525 lang = 'markup' if lang == 'html+django'
26+ lang = 'bash' if lang == 'bash'
2627 lang = 'python' if lang == 'default' || lang.start_with?('python') || lang.start_with?('ipython')
2728 pre['data-language'] = lang
2829 node.replace(pre)
lib/docs/scrapers/falcon.rb+27−0
@@ -0,0 +1,27 @@
1+module Docs
2+ class Falcon < UrlScraper
3+ self.type = 'sphinx'
4+ self.root_path = 'index.html'
5+ self.links = {
6+ home: 'https://falconframework.org/',
7+ code: 'https://github.com/falconry/falcon'
8+ }
9+
10+ html_filters.push 'falcon/entries', 'sphinx/clean_html'
11+
12+ options[:container] = '.body'
13+
14+ options[:skip_patterns] = [/\Achanges/, /\A_modules/]
15+
16+ options[:attribution] = <<-HTML
17+ &copy; 2016 Falcon Contributors<br>
18+ Licensed under the Apache 2 License.
19+ HTML
20+
21+ version '1.2.0' do
22+ self.release = '1.2.0'
23+ self.base_url = "https://falcon.readthedocs.io/en/#{self.version}/"
24+ end
25+
26+ end
27+end
public/icons/docs/falcon/SOURCE+1−0
@@ -0,0 +1 @@
1+https://github.com/falconry/falcon/blob/master/docs/_static/img/logo.jpg