From 78beda8974ade4907fc1b8b1133b1fe444722123 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sat, 18 Oct 2014 14:52:51 -0400 Subject: [PATCH] Add nginx documentation --- assets/images/icons.png | Bin 22465 -> 22754 bytes assets/images/icons@2x.png | Bin 57373 -> 57929 bytes .../templates/pages/about_tmpl.coffee | 5 +++ .../templates/pages/news_tmpl.coffee | 5 ++- assets/stylesheets/application.css.scss | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_nginx.scss | 5 +++ lib/docs/filters/nginx/clean_html.rb | 29 +++++++++++++++ lib/docs/filters/nginx/entries.rb | 33 ++++++++++++++++++ lib/docs/scrapers/nginx.rb | 25 +++++++++++++ public/icons/docs/nginx/16.png | Bin 0 -> 377 bytes public/icons/docs/nginx/16@2x.png | Bin 0 -> 613 bytes public/icons/docs/nginx/SOURCE | 1 + 13 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 assets/stylesheets/pages/_nginx.scss create mode 100644 lib/docs/filters/nginx/clean_html.rb create mode 100644 lib/docs/filters/nginx/entries.rb create mode 100644 lib/docs/scrapers/nginx.rb create mode 100644 public/icons/docs/nginx/16.png create mode 100644 public/icons/docs/nginx/16@2x.png create mode 100644 public/icons/docs/nginx/SOURCE diff --git a/assets/images/icons.png b/assets/images/icons.png index 3e34973d2f4ed3dfd21739d52fc4f738b7189e15..763464be4506fd6847d94def86430ffe35b424d9 100644 GIT binary patch delta 3884 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 Vu>26I@Jj#y002ovPDHLkV1g>{>Ky<8 delta 6158 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 diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 7ce9a0e7..69e350b4 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -207,6 +207,11 @@ credits = [ '2011-2014 Tim Wood, Iskren Chernev, Moment.js contributors', 'MIT', 'https://raw.github.com/moment/moment/master/LICENSE' + ], [ + 'nginx', + '2002-2014 Igor Sysoev
© 2011-2014 Nginx, Inc.', + 'BSD', + 'http://nginx.org/LICENSE' ], [ 'Node.js', 'Joyent, Inc. and other Node contributors
Node.js is a trademark of Joyent, Inc.', diff --git a/assets/javascripts/templates/pages/news_tmpl.coffee b/assets/javascripts/templates/pages/news_tmpl.coffee index f18ec048..9d53ec8b 100644 --- a/assets/javascripts/templates/pages/news_tmpl.coffee +++ b/assets/javascripts/templates/pages/news_tmpl.coffee @@ -33,7 +33,10 @@ newsItem = (date, news) -> result app.news = [ - [ 1413158400000, # October 13, 2014 + [ 1413590400000, # October 18, 2014 + """ New nginx documentation """, + ], [ + 1413158400000, # October 13, 2014 """ New XPath documentation """, ], [ 1410048000000, # September 7, 2014 diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index dfcb704f..3eeb2919 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -49,6 +49,7 @@ 'pages/maxcdn', 'pages/mdn', 'pages/moment', + 'pages/nginx', 'pages/node', 'pages/php', 'pages/postgres', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 293cdb3b..e4639061 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -65,3 +65,4 @@ ._icon-markdown:before { background-position: -1rem -10rem; } ._icon-django:before { background-position: -2rem -10rem; } ._icon-xpath:before { background-position: -3rem -10rem; } +._icon-nginx:before { background-position: -4rem -10rem; } diff --git a/assets/stylesheets/pages/_nginx.scss b/assets/stylesheets/pages/_nginx.scss new file mode 100644 index 00000000..327811e8 --- /dev/null +++ b/assets/stylesheets/pages/_nginx.scss @@ -0,0 +1,5 @@ +._nginx { + h4 { @extend %block-heading; } + .note { @extend %note; } + .directive { margin: 2.5em 0 1em; } +} diff --git a/lib/docs/filters/nginx/clean_html.rb b/lib/docs/filters/nginx/clean_html.rb new file mode 100644 index 00000000..0a7698f9 --- /dev/null +++ b/lib/docs/filters/nginx/clean_html.rb @@ -0,0 +1,29 @@ +module Docs + class Nginx + class CleanHtmlFilter < Filter + def call + at_css('h2').name = 'h1' + + css('center').each do |node| + node.before(node.children).remove + end + + css('blockquote > pre', 'blockquote > table:only-child').each do |node| + node.parent.before(node).remove + end + + css('a[name]').each do |node| + node.next_element['id'] = node['name'] + node.remove + end + + links = css('h1 + table > tr:only-child > td:only-child > a').map(&:to_html) + if links.present? + at_css('h1 + table').replace("
  • #{links.join('
  • ')}
") + end + + doc + end + end + end +end diff --git a/lib/docs/filters/nginx/entries.rb b/lib/docs/filters/nginx/entries.rb new file mode 100644 index 00000000..3d3a602d --- /dev/null +++ b/lib/docs/filters/nginx/entries.rb @@ -0,0 +1,33 @@ +module Docs + class Nginx + class EntriesFilter < Docs::EntriesFilter + def get_name + name = at_css('h1').content.strip + name.sub! %r{\AModule ngx}, 'ngx' + name + end + + def get_type + if name.starts_with?('ngx_') + name + elsif slug == 'ngx_core_module' + 'Core' + else + 'Guides' + end + end + + def additional_entries + css('h1 + ul a').each_with_object [] do |node, entries| + name = node.content.strip + next if name =~ /\A[A-Z]/ + + id = node['href'].remove('#') + next if id.blank? + + entries << [name, id] + end + end + end + end +end diff --git a/lib/docs/scrapers/nginx.rb b/lib/docs/scrapers/nginx.rb new file mode 100644 index 00000000..031b08d1 --- /dev/null +++ b/lib/docs/scrapers/nginx.rb @@ -0,0 +1,25 @@ +module Docs + class Nginx < UrlScraper + self.name = 'nginx' + self.type = 'nginx' + self.version = '1.7.6' + self.base_url = 'http://nginx.org/en/docs/' + + html_filters.push 'nginx/clean_html', 'nginx/entries' + + options[:container] = '#content' + + options[:skip] = %w( + contributing_changes.html + dirindex.html + varindex.html) + + options[:skip_patterns] = [/\/faq\//] + + options[:attribution] = <<-HTML + © 2002-2014 Igor Sysoev
+ © 2011-2014 Nginx, Inc.
+ Licensed under the BSD License. + HTML + end +end diff --git a/public/icons/docs/nginx/16.png b/public/icons/docs/nginx/16.png new file mode 100644 index 0000000000000000000000000000000000000000..c06b8e647ae5d952d921f19dd5a4fe3079641201 GIT binary patch literal 377 zcmV-<0fzpGP)aV4P@d0q|C*bq4EZj8JTzl_pj-bk?DBVQYC;v+(!N>*5XASKVsTn9cDu&nS%rqf;VCj*!Ivz*bdQWpl2g?dPR@L4LVSf zo&vTdp)5{X6*v Xa6!A;t|v!=00000NkvXXu0mjfq-d3z<*_xbUTG-YIqVP%Dl zg;JEFl!aeAF`DM}b{5mjdp$kRbKjMNA? z%*o7 z6AI5?S{$Gf;cVbRZi`%`F3LGF!tgoXl2Y!3eN;Zoieol?omNnnF%}~{;2s^?Gc;Uf(ndMg~0?VgRj?)y+dK_m+X2_XNGRATOayH}mf$uqbW!yZPa}-YzB+dlN9_Acj zFP=ZR!25Q|@opz0!SMu%kmo7FA*N}u&%CW;K*A=J&y3hV&2_gc;aymml&n?=gbTL0 z#>tXeI7Wc5701uYBvek*j@&%A@ewD=l3KZ1c@1;cA-u9vC`y!;G$v@samS~s zLS%Q`bE&J_2zPokgz^|q*bf{Dl_=-?F2%zAS*6(9{I8^Jq>}5bG>@~$W+d##Gl>fx zCYPy;#XMswsvQe20^^nU++sC#v1Xx+$2>?(q2Z@!jIcYXj&axSIfE=E3Sp$-qcnVk zBn%LZV;i3DxJd7XQTj${QABzFn-)7+V7~JYJvy?fF*V{<00000NkvXXu0mjfr*0c+ literal 0 HcmV?d00001 diff --git a/public/icons/docs/nginx/SOURCE b/public/icons/docs/nginx/SOURCE new file mode 100644 index 00000000..bc80fe73 --- /dev/null +++ b/public/icons/docs/nginx/SOURCE @@ -0,0 +1 @@ +http://nginx.org/