From 5f6f8a71943676290695429a51ee05f8aeec58cf Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sat, 3 May 2014 12:36:13 -0400 Subject: [PATCH] Add Express documentation --- assets/images/icons.png | Bin 17370 -> 17582 bytes assets/images/icons@2x.png | Bin 45112 -> 45618 bytes .../templates/pages/about_tmpl.coffee | 5 ++++ .../templates/pages/news_tmpl.coffee | 5 +++- assets/javascripts/views/pages/express.coffee | 4 +++ assets/stylesheets/application.css.scss | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_express.scss | 8 ++++++ lib/docs/filters/express/clean_html.rb | 24 ++++++++++++++++++ lib/docs/filters/express/entries.rb | 21 +++++++++++++++ lib/docs/scrapers/express.rb | 19 ++++++++++++++ public/icons/docs/express/16.png | Bin 0 -> 202 bytes public/icons/docs/express/16@2x.png | Bin 0 -> 409 bytes 13 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 assets/javascripts/views/pages/express.coffee create mode 100644 assets/stylesheets/pages/_express.scss create mode 100644 lib/docs/filters/express/clean_html.rb create mode 100644 lib/docs/filters/express/entries.rb create mode 100644 lib/docs/scrapers/express.rb create mode 100644 public/icons/docs/express/16.png create mode 100644 public/icons/docs/express/16@2x.png diff --git a/assets/images/icons.png b/assets/images/icons.png index 3a1b610bd1705cecfc10e126c2729958ea3757fa..1a5f97e4eb5dba281a6197f6501f416585e20bbd 100644 GIT binary patch delta 7875 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%0D$@;y-`HUfUrRrl(+RTzl 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 delta 7661 zcmVS&0gxjCL!q%H6DEIq=N(m5vaS2oZMIc{1WAgD7+Q%c7yt!Cf|zYX zt4$Kc)aD#O5Rf1!IVVAapdu=YC}3&>B2h&#pwJ*<0wnFdzc<&q!oh&yozwTe=eXY( z-&nP(YWv4;%vm*8ZQ08Vd_gl`ZeSzOc91F(sCcf-$!SerZvAU$K>FJCI7EeWq`C$oR7WCINew|mM&SI$ zMF=<46ENHlR-1VUD|&y}4lp=j4Aw!{b&+1AjhI_AzOaGRMlz&-at&`kCiKk>?`90_?;;LXmi( z=Pzasa>L;~kk&zi$>0&N4Nr8n@G%0a8wF7#H2HRY zhL!$*eVk=ym%096j~?P-{lwh;#+x*14tPGRvw&2Dv>1oe(hG~V#GhJZP-PPU}%xp!Vkse6Cf>$e*!Ue_%-d@AE!+?k7&C1sU%0D3c| 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 Tl#sE200000NkvXXu0mjf)@Oxp delta 4335 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 diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index fa13ae6c..7d009e9b 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -110,6 +110,11 @@ credits = [ '2014 Yehuda Katz, Tom Dale and Ember.js contributors', 'MIT', 'https://raw.github.com/emberjs/ember.js/master/LICENSE' + ], [ + 'Express', + '2009-2014 TJ Holowaychuk', + 'MIT', + 'https://raw.githubusercontent.com/visionmedia/express/master/LICENSE' ], [ 'Git', '2005-2014 Linus Torvalds and others', diff --git a/assets/javascripts/templates/pages/news_tmpl.coffee b/assets/javascripts/templates/pages/news_tmpl.coffee index 454d4f5e..61fd5e48 100644 --- a/assets/javascripts/templates/pages/news_tmpl.coffee +++ b/assets/javascripts/templates/pages/news_tmpl.coffee @@ -24,7 +24,10 @@ newsItem = (date, news) -> result app.news = [ - [ 1396742400000, # April 6, 2014 + [ 1399075200000, # May 3, 2014 + """ New Express documentation """, + ], [ + 1396742400000, # April 6, 2014 """ New Go documentation """, ], [ 1396137600000, # March 30, 2014 diff --git a/assets/javascripts/views/pages/express.coffee b/assets/javascripts/views/pages/express.coffee new file mode 100644 index 00000000..c26f106a --- /dev/null +++ b/assets/javascripts/views/pages/express.coffee @@ -0,0 +1,4 @@ +#= require views/pages/base +#= require views/pages/underscore + +app.views.ExpressPage = app.views.UnderscorePage diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 6409e2a1..36cea34c 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -33,6 +33,7 @@ 'pages/coffeescript', 'pages/d3', 'pages/ember', + 'pages/express', 'pages/go', 'pages/jquery', 'pages/knockout', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index bf2ee16c..f6eeb97c 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -53,3 +53,4 @@ ._icon-yii:before { background-position: -4rem -7rem; } ._icon-cpp:before { background-position: 0 -8rem; } ._icon-go:before { background-position: -1rem -8rem; } +._icon-express:before { background-position: -2rem -8rem; } diff --git a/assets/stylesheets/pages/_express.scss b/assets/stylesheets/pages/_express.scss new file mode 100644 index 00000000..9b388a9d --- /dev/null +++ b/assets/stylesheets/pages/_express.scss @@ -0,0 +1,8 @@ +._express { + padding-left: 1rem; + + h1, h2, h3 { margin-left: -1rem; } + h2 { @extend %block-heading; } + h3 { @extend %block-label, %label-blue; } + p > code { @extend %label; } +} diff --git a/lib/docs/filters/express/clean_html.rb b/lib/docs/filters/express/clean_html.rb new file mode 100644 index 00000000..4ad96619 --- /dev/null +++ b/lib/docs/filters/express/clean_html.rb @@ -0,0 +1,24 @@ +module Docs + class Express + class CleanHtmlFilter < Filter + def call + css('section').each do |node| + node.before(node.children).remove + end + + # Put id attributes on headings + css('h2 + a[name]').each do |node| + node.previous_element['id'] = node['name'] + node.remove + end + + # Remove code highlighting + css('pre').each do |node| + node.content = node.content + end + + doc + end + end + end +end diff --git a/lib/docs/filters/express/entries.rb b/lib/docs/filters/express/entries.rb new file mode 100644 index 00000000..55e81223 --- /dev/null +++ b/lib/docs/filters/express/entries.rb @@ -0,0 +1,21 @@ +module Docs + class Express + class EntriesFilter < Docs::EntriesFilter + def additional_entries + type = 'Application' + + doc.children.each_with_object [] do |node, entries| + if node.name == 'h2' + type = node.content + next + elsif node.name == 'h3' + name = node.content.strip + name.sub! %r{\(.+\)}, '()' + + entries << [name, node['id'], type] + end + end + end + end + end +end diff --git a/lib/docs/scrapers/express.rb b/lib/docs/scrapers/express.rb new file mode 100644 index 00000000..f6474bae --- /dev/null +++ b/lib/docs/scrapers/express.rb @@ -0,0 +1,19 @@ +module Docs + class Express < UrlScraper + self.name = 'Express' + self.type = 'express' + self.version = '4.1.1' + self.base_url = 'http://expressjs.com/4x/api.html' + + html_filters.push 'express/clean_html', 'express/entries', 'title' + + options[:title] = 'Express' + options[:container] = '#right' + options[:skip_links] = true + + options[:attribution] = <<-HTML + © 2009–2014 TJ Holowaychuk
+ Licensed under the MIT License. + HTML + end +end diff --git a/public/icons/docs/express/16.png b/public/icons/docs/express/16.png new file mode 100644 index 0000000000000000000000000000000000000000..222fd388c22fac93cebf8fe690b692f6cc5b9db5 GIT binary patch literal 202 zcmV;*05$)KP)D!Z06@|H)x->hiHc=nnXH{4L8Bp9f~Nm~z)^!lk)ZM9nW~AcVo7_ZTCw(}S08s1 znIKk>B?81rVx$i2oU|44KKSya1f_|eKH%aVe7G?L*vRc|iGf<`O%n&-re>-*_;gm7 z$H2i7EF6cx!;4=~c^3YI+N-;^t5nm0k;Z3Pi<4mW2b{9%Q%K^rPyhe`07*qoM6N<$ Efkdg0004CNklxb|2gL^E=$=>Wzu^uWGM%Gp4od$BU&cwwd zE)N%H;$&qSE=jqVhWbN~q&)gV8PYIhl+xV?d{kXy1x;1grzinyYRT42%eK{0ULg$2 zzEI+TMNLY4Cdd#vg(d|)FxTS|rw}~=-t&|ZzTdpyZQL<#=)u2l_P=^do4S=D+;<*R z1I{SZ2Z&RG?}8#nlxRb;0H{*HPQJ>XdRoyp{YkpY`}(O9d8#H0=%}qNt*WX^ol9}2 z@Pi76_>L)K;`QKKw(@!<-%G8_)-=uwc6i2^xnDfTjy}c?MY=5NQlJ$rV89b<1np7g zYiJJw)#vnDL2r}`@5KH8sir?HsZU$l<7zols`LIABXWd_slj1$00000NkvXXu0mjf DRb08n literal 0 HcmV?d00001