From ac3aaea531973210492641091af709ad999773b1 Mon Sep 17 00:00:00 2001 From: Thibaut Courouble Date: Sun, 28 Feb 2016 11:42:47 -0500 Subject: [PATCH] Finish nginx Lua Module scraper --- assets/javascripts/news.json | 2 +- .../templates/pages/about_tmpl.coffee | 5 +++++ assets/javascripts/views/pages/github.coffee | 6 +++++ .../views/pages/lua_nginx_module.coffee | 8 ------- assets/stylesheets/global/_icons.scss | 3 ++- assets/stylesheets/pages/_base.scss | 1 + lib/docs/filters/github/clean_html.rb | 20 +++++++++++++++++ .../filters/lua_nginx_module/clean_html.rb | 22 ------------------- lib/docs/filters/lua_nginx_module/entries.rb | 17 -------------- .../filters/nginx_lua_module/clean_html.rb | 15 +++++++++++++ lib/docs/filters/nginx_lua_module/entries.rb | 20 +++++++++++++++++ lib/docs/scrapers/github.rb | 8 +++++++ lib/docs/scrapers/lua_nginx_module.rb | 19 ---------------- lib/docs/scrapers/nginx_lua_module.rb | 19 ++++++++++++++++ 14 files changed, 97 insertions(+), 68 deletions(-) create mode 100644 assets/javascripts/views/pages/github.coffee delete mode 100644 assets/javascripts/views/pages/lua_nginx_module.coffee create mode 100644 lib/docs/filters/github/clean_html.rb delete mode 100644 lib/docs/filters/lua_nginx_module/clean_html.rb delete mode 100644 lib/docs/filters/lua_nginx_module/entries.rb create mode 100644 lib/docs/filters/nginx_lua_module/clean_html.rb create mode 100644 lib/docs/filters/nginx_lua_module/entries.rb create mode 100644 lib/docs/scrapers/github.rb delete mode 100644 lib/docs/scrapers/lua_nginx_module.rb create mode 100644 lib/docs/scrapers/nginx_lua_module.rb diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index ae65407a..585fcc7a 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,7 +1,7 @@ [ [ "2016-02-28", - "New documentation: CodeIgniter" + "New documentations: CodeIgniter and nginx Lua Module" ], [ "2016-02-15", "New documentations: CakePHP, Chef and Ramda" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 16b27f0c..97c37c5f 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -284,6 +284,11 @@ credits = [ '2002-2016 Igor Sysoev
© 2011-2016 Nginx, Inc.', 'BSD', 'http://nginx.org/LICENSE' + ], [ + 'nginx / Lua Module', + '2009-2016 Xiaozhe Wang (chaoslawful)
© 2009-2016 Yichun "agentzh" Zhang (章亦春), CloudFlare Inc.', + 'BSD', + 'https://github.com/openresty/lua-nginx-module#copyright-and-license' ], [ 'Node.js', 'Joyent, Inc. and other Node contributors
Node.js is a trademark of Joyent, Inc.', diff --git a/assets/javascripts/views/pages/github.coffee b/assets/javascripts/views/pages/github.coffee new file mode 100644 index 00000000..8d65a2a4 --- /dev/null +++ b/assets/javascripts/views/pages/github.coffee @@ -0,0 +1,6 @@ +#= require views/pages/base + +class app.views.GithubPage extends app.views.BasePage + prepare: -> + @highlightCode @findAll('pre.highlight-source-lua'), 'lua' + return diff --git a/assets/javascripts/views/pages/lua_nginx_module.coffee b/assets/javascripts/views/pages/lua_nginx_module.coffee deleted file mode 100644 index 16a0bac2..00000000 --- a/assets/javascripts/views/pages/lua_nginx_module.coffee +++ /dev/null @@ -1,8 +0,0 @@ -#= require views/pages/base - -# this may be used for all GitHub pages - -class app.views.LuaNginxModulePage extends app.views.BasePage - prepare: -> - @highlightCode @findAll('div.highlight-source-lua pre'), 'lua' - return diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index e049947a..75579c36 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -76,7 +76,8 @@ ._icon-markdown:before { background-position: -1rem -5rem; @extend %darkIconFix !optional; } ._icon-django:before { background-position: -2rem -5rem; } ._icon-xpath:before { background-position: -3rem -5rem; } -._icon-nginx:before { background-position: -4rem -5rem; } +._icon-nginx:before, +._icon-nginx_lua_module:before { background-position: -4rem -5rem; } ._icon-svg:before { background-position: -5rem -5rem; } ._icon-marionette:before { background-position: -6rem -5rem; } ._icon-mongoose:before { background-position: -7rem -5rem; } diff --git a/assets/stylesheets/pages/_base.scss b/assets/stylesheets/pages/_base.scss index ef7d422d..21c8fb71 100644 --- a/assets/stylesheets/pages/_base.scss +++ b/assets/stylesheets/pages/_base.scss @@ -17,6 +17,7 @@ } ._cordova, +._github, ._grunt, ._less, ._lodash, diff --git a/lib/docs/filters/github/clean_html.rb b/lib/docs/filters/github/clean_html.rb new file mode 100644 index 00000000..c252101a --- /dev/null +++ b/lib/docs/filters/github/clean_html.rb @@ -0,0 +1,20 @@ +module Docs + class Github + class CleanHtmlFilter < Filter + def call + css('.anchor').each do |node| + node.parent['id'] = node['href'].remove('#') + node.remove + end + + css('.highlight > pre').each do |node| + node['class'] = node.parent['class'] + node.content = node.content.strip_heredoc.gsub(' ', ' ') + node.parent.replace(node) + end + + doc + end + end + end +end diff --git a/lib/docs/filters/lua_nginx_module/clean_html.rb b/lib/docs/filters/lua_nginx_module/clean_html.rb deleted file mode 100644 index 7f82c98f..00000000 --- a/lib/docs/filters/lua_nginx_module/clean_html.rb +++ /dev/null @@ -1,22 +0,0 @@ -module Docs - class LuaNginxModule - class CleanHtmlFilter < Filter - def call - type = nil - doc.children.each do |node| - if node.name == 'h1' - section = node.content.strip - type = section.in?(['Directives', 'Nginx API for Lua']) ? section : nil - end - - if type == nil || (node.name == 'ul' && node.previous_element.name == 'h1') || node.content.strip == 'Back to TOC' - node.remove() - elsif node.name == 'h2' - node["id"] = /^user-content-(.+)/.match(node.css('a.anchor').first["id"])[1] - end - end - doc - end - end - end -end diff --git a/lib/docs/filters/lua_nginx_module/entries.rb b/lib/docs/filters/lua_nginx_module/entries.rb deleted file mode 100644 index 24d9725b..00000000 --- a/lib/docs/filters/lua_nginx_module/entries.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Docs - class LuaNginxModule - class EntriesFilter < Docs::EntriesFilter - def additional_entries - type = nil - - doc.children.each_with_object [] do |node, entries| - if node.name == 'h1' - type = node.content.strip - elsif node.name == 'h2' - entries << [ node.content, node["id"], type ] - end - end - end - end - end -end diff --git a/lib/docs/filters/nginx_lua_module/clean_html.rb b/lib/docs/filters/nginx_lua_module/clean_html.rb new file mode 100644 index 00000000..4acceeb9 --- /dev/null +++ b/lib/docs/filters/nginx_lua_module/clean_html.rb @@ -0,0 +1,15 @@ +module Docs + class NginxLuaModule + class CleanHtmlFilter < Filter + def call + css('a[href="#table-of-contents"]', 'a:contains("Back to TOC")').remove + + css('h1, h2, h3').each do |node| + node.name = node.name.sub(/\d/) { |i| i.to_i + 1 } + end + + doc + end + end + end +end diff --git a/lib/docs/filters/nginx_lua_module/entries.rb b/lib/docs/filters/nginx_lua_module/entries.rb new file mode 100644 index 00000000..e4b12856 --- /dev/null +++ b/lib/docs/filters/nginx_lua_module/entries.rb @@ -0,0 +1,20 @@ +module Docs + class NginxLuaModule + class EntriesFilter < Docs::EntriesFilter + def additional_entries + entries = [] + + css('#directives + ul > li > a').each do |node| + entries << [node.content, node['href'].remove('#'), 'Directives'] + end + + css('#nginx-api-for-lua + ul > li > a').each do |node| + next if node.content == 'Introduction' + entries << [node.content, node['href'].remove('#'), 'Nginx API for Lua'] + end + + entries + end + end + end +end diff --git a/lib/docs/scrapers/github.rb b/lib/docs/scrapers/github.rb new file mode 100644 index 00000000..f6014a0a --- /dev/null +++ b/lib/docs/scrapers/github.rb @@ -0,0 +1,8 @@ +module Docs + class Github < UrlScraper + self.abstract = true + self.type = 'github' + + html_filters.push 'github/clean_html' + end +end diff --git a/lib/docs/scrapers/lua_nginx_module.rb b/lib/docs/scrapers/lua_nginx_module.rb deleted file mode 100644 index a1094d9e..00000000 --- a/lib/docs/scrapers/lua_nginx_module.rb +++ /dev/null @@ -1,19 +0,0 @@ -module Docs - class LuaNginxModule < UrlScraper - self.type = 'LuaNginxModule' - self.root_path = 'README.markdown' - - html_filters.push 'lua_nginx_module/clean_html', 'lua_nginx_module/entries' - - options[:container] = '#readme > article' - - options[:attribution] = <<-HTML - Copyright (C) 2009-2015, by Xiaozhe Wang (chaoslawful) chaoslawful@gmail.com.
- Copyright (C) 2009-2015, by Yichun "agentzh" Zhang (章亦春) agentzh@gmail.com, CloudFlare Inc.
- Licensed under the BSD License. - HTML - - self.release = '0.10.0' - self.base_url = 'https://github.com/openresty/lua-nginx-module/tree/v0.10.0/' - end -end diff --git a/lib/docs/scrapers/nginx_lua_module.rb b/lib/docs/scrapers/nginx_lua_module.rb new file mode 100644 index 00000000..7ae2ac9d --- /dev/null +++ b/lib/docs/scrapers/nginx_lua_module.rb @@ -0,0 +1,19 @@ +module Docs + class NginxLuaModule < Github + self.name = 'nginx / Lua Module' + self.slug = 'nginx_lua_module' + self.release = '0.10.0' + self.base_url = 'https://github.com/openresty/lua-nginx-module/tree/v0.10.0/' + + html_filters.push 'nginx_lua_module/clean_html', 'nginx_lua_module/entries', 'title' + + options[:root_title] = 'ngx_http_lua_module' + options[:container] = '#readme > article' + + options[:attribution] = <<-HTML + © 2009–2016 Xiaozhe Wang (chaoslawful)
+ © 2009–2016 Yichun "agentzh" Zhang (章亦春), CloudFlare Inc.
+ Licensed under the BSD License. + HTML + end +end