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

Unified · Split

6 files
  1. assets/stylesheets/components/_page.scss +17 −0
  2. lib/docs/core/doc.rb +1 −1
  3. lib/docs/core/filter.rb +4 −0
  4. lib/docs/core/scraper.rb +6 −2
  5. lib/docs/filters/core/home_url.rb +16 −0
  6. test/lib/docs/core/doc_test.rb +13 −0
assets/stylesheets/components/_page.scss+17−0
@@ -22,6 +22,23 @@ · 21 unmodified lines
2222 }
2323 }
2424
25+//
26+// Official Website box
27+//
28+
29+._official {
30+ clear: both;
31+ margin: 2rem 0 1.5rem;
32+ font-size: .75rem;
33+ color: $textColorLight;
34+ text-align: center;
35+ -webkit-font-smoothing: subpixel-antialiased;
36+
37+ & + & { margin-top: 1.5rem; }
38+}
39+
40+._official-link { @extend %external-link; }
41+
2542 //
2643 // Attribution box
2744 //
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
test/lib/docs/core/doc_test.rb+13−0
@@ -60,6 +60,19 @@ class DocsDocTest < MiniTest::Spec · 59 unmodified lines
6060 end
6161 end
6262
63+ describe ".home_url" do
64+ it "returns nil" do
65+ assert_nil doc.home_url
66+ end
67+ end
68+
69+ describe ".home_url=" do
70+ it "stores .home_url" do
71+ doc.home_url = 'http://www.url.com/doc'
72+ assert_equal 'http://www.url.com/doc', doc.home_url
73+ end
74+ end
75+
6376 describe ".abstract" do
6477 it "returns nil" do
6578 assert_nil doc.abstract