History

Merge pull request #170 from TrangPham/master

Adding Official Url for url scrapped documentations

Thibaut Courouble committed 11 years ago

Commit 4b9256a2 parents 05e18b2 ab85da36 files · +57 −3Browse files

Showing the changes to lib (4 of 6 files). Show all

Unified · Split

4 files
  1. lib/docs/core/doc.rb +1 −1
  2. lib/docs/core/filter.rb +4 −0
  3. lib/docs/core/scraper.rb +6 −2
  4. lib/docs/filters/core/home_url.rb +16 −0
lib/docs/core/doc.rb+1−1
@@ -4,7 +4,7 @@ module Docs · 3 unmodified lines
44 DB_FILENAME = 'db.json'
55
66 class << self
7− attr_accessor :name, :slug, :type, :version, :abstract
7+ attr_accessor :name, :slug, :type, :version, :abstract, :home_url
88
99 def inherited(subclass)
1010 subclass.type = type
lib/docs/core/filter.rb+4−0
@@ -20,6 +20,10 @@ module Docs · 19 unmodified lines
2020 context[:base_url]
2121 end
2222
23+ def home_url
24+ context[:home_url]
25+ end
26+
2327 def current_url
2428 context[:url]
2529 end
lib/docs/core/scraper.rb+6−2
@@ -34,7 +34,7 @@ module Docs · 33 unmodified lines
3434 self.text_filters = FilterStack.new
3535
3636 html_filters.push 'container', 'clean_html', 'normalize_urls', 'internal_urls', 'normalize_paths'
37− text_filters.push 'inner_html', 'clean_text', 'attribution'
37+ text_filters.push 'inner_html', 'clean_text', 'home_url', 'attribution'
3838
3939 def build_page(path)
4040 response = request_one url_for(path)
@@ -65,6 +65,10 @@ module Docs · 24 unmodified lines
6565 @root_url ||= root_path? ? URL.parse(File.join(base_url.to_s, root_path)) : base_url.normalize
6666 end
6767
68+ def home_url
69+ @home_url ||= self.class.home_url
70+ end
71+
6872 def root_path
6973 self.class.root_path
7074 end
@@ -89,7 +93,7 @@ module Docs · 18 unmodified lines
8993
9094 def options
9195 @options ||= self.class.options.deep_dup.tap do |options|
92− options.merge! base_url: base_url, root_url: root_url,
96+ options.merge! base_url: base_url, root_url: root_url, home_url: home_url,
9397 root_path: root_path, initial_paths: initial_paths
9498
9599 if root_path?
lib/docs/filters/core/home_url.rb+16−0
@@ -0,0 +1,16 @@
1+module Docs
2+ class HomeUrlFilter < Filter
3+ def call
4+ html.prepend(home_url_html) if home_url
5+ html
6+ end
7+
8+ def home_url_html
9+ <<-HTML.strip_heredoc
10+ <div class="_official">
11+ Official Documentation: <a href="#{home_url}" class="_official-link">#{home_url}</a>
12+ </div>
13+ HTML
14+ end
15+ end
16+end