From 7cade1d4fc0460b273a05d9c35ed201fad1be869 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Mon, 13 Oct 2014 11:00:19 -0400 Subject: [PATCH] Add XPath documentation --- assets/images/icons.png | Bin 22070 -> 22465 bytes assets/images/icons@2x.png | Bin 56538 -> 57373 bytes .../templates/pages/about_tmpl.coffee | 2 +- .../templates/pages/news_tmpl.coffee | 5 ++- assets/stylesheets/global/_icons.scss | 1 + lib/docs/filters/xpath/clean_html.rb | 30 ++++++++++++++++++ lib/docs/filters/xpath/entries.rb | 22 +++++++++++++ lib/docs/scrapers/mdn/xpath.rb | 16 ++++++++++ public/icons/docs/xpath/16.png | Bin 0 -> 324 bytes public/icons/docs/xpath/16@2x.png | Bin 0 -> 659 bytes 10 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 lib/docs/filters/xpath/clean_html.rb create mode 100644 lib/docs/filters/xpath/entries.rb create mode 100644 lib/docs/scrapers/mdn/xpath.rb create mode 100644 public/icons/docs/xpath/16.png create mode 100644 public/icons/docs/xpath/16@2x.png diff --git a/assets/images/icons.png b/assets/images/icons.png index 50c244650f4390f63f6f793f2bfb8766f9245320..3e34973d2f4ed3dfd21739d52fc4f738b7189e15 100644 GIT binary patch delta 3597 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 TP&%rP00000NkvXXu0mjf6I$dZ delta 3199 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 delta 5318 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 Y1DOM
HTML
JavaScript', + 'CSS
DOM
HTML
JavaScript
XPath', '2005-2014 Mozilla Developer Network and individual contributors', 'CC BY-SA', 'http://creativecommons.org/licenses/by-sa/2.5/' diff --git a/assets/javascripts/templates/pages/news_tmpl.coffee b/assets/javascripts/templates/pages/news_tmpl.coffee index df89db6f..42e8dd1e 100644 --- a/assets/javascripts/templates/pages/news_tmpl.coffee +++ b/assets/javascripts/templates/pages/news_tmpl.coffee @@ -32,7 +32,10 @@ newsItem = (date, news) -> result app.news = [ - [ 1410048000000, # September 7, 2014 + [ 1413158400000, # October 13, 2014 + """ New
XPath documentation """, + ], [ + 1410048000000, # September 7, 2014 """ Updated the HTML, CSS, JavaScript, and DOM documentations with additional content. """, ], [ 1407110400000, # August 4, 2014 diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 69167033..293cdb3b 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -64,3 +64,4 @@ ._icon-cordova:before { background-position: 0 -10rem; } ._icon-markdown:before { background-position: -1rem -10rem; } ._icon-django:before { background-position: -2rem -10rem; } +._icon-xpath:before { background-position: -3rem -10rem; } diff --git a/lib/docs/filters/xpath/clean_html.rb b/lib/docs/filters/xpath/clean_html.rb new file mode 100644 index 00000000..6e3ee759 --- /dev/null +++ b/lib/docs/filters/xpath/clean_html.rb @@ -0,0 +1,30 @@ +module Docs + class Xpath + class CleanHtmlFilter < Filter + def call + root_page? ? root : other + doc + end + + def root + if table = at_css('.topicpage-table') + table.after(table.css('td').children).remove + end + end + + def other + css('div[style*="background: #f5f5f5;"]').remove + + css('h3[id]').each do |node| + node.name = 'h2' + end + + css('p').each do |node| + child = node.child + child = child.next while child && child.text? && child.content.blank? + child.remove if child.try(:name) == 'br' + end + end + end + end +end diff --git a/lib/docs/filters/xpath/entries.rb b/lib/docs/filters/xpath/entries.rb new file mode 100644 index 00000000..62728b63 --- /dev/null +++ b/lib/docs/filters/xpath/entries.rb @@ -0,0 +1,22 @@ +module Docs + class Xpath + class EntriesFilter < Docs::EntriesFilter + def get_name + name = super + name.remove!('Axes.') + name << '()' if name.remove!('Functions.') + name + end + + def get_type + if slug.start_with?('Axes') + 'Axes' + elsif slug.start_with?('Functions') + 'Functions' + else + 'Miscellaneous' + end + end + end + end +end diff --git a/lib/docs/scrapers/mdn/xpath.rb b/lib/docs/scrapers/mdn/xpath.rb new file mode 100644 index 00000000..fd2d486c --- /dev/null +++ b/lib/docs/scrapers/mdn/xpath.rb @@ -0,0 +1,16 @@ +module Docs + class Xpath < Mdn + self.name = 'XPath' + self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/XPath' + + html_filters.push 'xpath/clean_html', 'xpath/entries', 'title' + + options[:root_title] = 'XPath' + + options[:fix_urls] = ->(url) do + url.sub! 'https://developer.mozilla.org/en/XPath', Xpath.base_url + url.sub! 'https://developer.mozilla.org/en-US/docs/XPath', Xpath.base_url + url + end + end +end diff --git a/public/icons/docs/xpath/16.png b/public/icons/docs/xpath/16.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3e43f49d4a9151a697a2fcf187120165a31cd8 GIT binary patch literal 324 zcmV-K0lWT*P)3u-Haf%zHk48CrudmPsz$P07iNsYn-0OPy#>_{vJhEG1px5&;t>0!y~t4%4p5T zD_2d?xo+ySx5#yhWyTjvcl^*QlwQjS>vXIF_~5*oMz&sR`N!4(pByC%2hdSP6>!FV zds}x6Kr3%zE+HtKGxI`U0m!SE)^N+%(lP)Xmb2zF&~XpGt-2o68RMf-zP1Our}9Et<(gl3b$ zXlSa&rkXTKo95-_o^#w@9t3K?cw7q$HB zYcOgYobZt$?7FNE0_bkXv09rIKZ4Uvd&tLz(f6etKmqkmRqL#Ur?gyi!iyN!bp*+j z4Q&j~$06Z&1Fl*FJq0t?0nmWlk6CF9$S$i9@Qp=n8Ez2?D+W2M0>KM{wg%zXAO`+4 z;3Z?C44(F?wi>y~VpeKxo-_{T%z`sc8E}J0SklsSUcldevSbcSdPG~i9>pkb0MPZ0 zVf0OdS$`n<5Rhf0CW*H1tB zk9%8^M09R;#140XXT1Wh`vnlezAqGvIU_4b`$@QnaNDEwbiuX;FaqG1A+T-}JI8HR zchFmKmK}%N*4Epi>Ot+kB==D6KvfXd+?OOFEI<|DH-kXZ0nn(`8rXvhtd