From f78b3658b291afdb06373e6c3403a12b9f611c89 Mon Sep 17 00:00:00 2001 From: Thibaut Courouble Date: Sun, 17 Apr 2016 17:13:59 -0400 Subject: [PATCH] Finish Perl scraper --- assets/images/icons.png | Bin 43946 -> 44708 bytes assets/images/icons@2x.png | Bin 113541 -> 115743 bytes assets/javascripts/collections/types.coffee | 2 +- assets/javascripts/news.json | 3 + .../templates/pages/about_tmpl.coffee | 5 ++ assets/javascripts/views/pages/perl.coffee | 6 -- assets/javascripts/views/pages/simple.coffee | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_perl.scss | 11 +-- lib/docs/filters/perl/clean_html.rb | 34 ++++++---- lib/docs/filters/perl/entries.rb | 63 ++++++++---------- lib/docs/scrapers/perl.rb | 29 ++++---- public/icons/docs/perl/16.png | Bin 1244 -> 816 bytes public/icons/docs/perl/16@2x.png | Bin 636 -> 2129 bytes 14 files changed, 77 insertions(+), 78 deletions(-) delete mode 100644 assets/javascripts/views/pages/perl.coffee diff --git a/assets/images/icons.png b/assets/images/icons.png index 5db18471eae44d7f6998269624dc57a2adf7c0bc..c772edfc8b3afbcc21f98ae55130e64ca6ab2b74 100644 GIT binary patch delta 5546 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 UNe|w>?f?J)07*qoM6N<$g8LuP1ONa4 delta 4342 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 diff --git a/assets/javascripts/collections/types.coffee b/assets/javascripts/collections/types.coffee index 97ada380..851ecaff 100644 --- a/assets/javascripts/collections/types.coffee +++ b/assets/javascripts/collections/types.coffee @@ -7,7 +7,7 @@ class app.collections.Types extends app.Collection (result[@_groupFor(type)] ||= []).push(type) result.filter (e) -> e.length > 0 - GUIDES_RGX = /(^|[\s\(])(guide|guides|tutorial|reference|playbooks|getting\ started)($|[\s\):])/i + GUIDES_RGX = /(^|[\s\(])(guide|guides|tutorial|reference|playbooks|getting\ started|manual)($|[\s\):])/i _groupFor: (type) -> if GUIDES_RGX.test(type.name) diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index 795a5fd8..24d1646b 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,5 +1,8 @@ [ [ + "2016-04-17", + "New documentation: Perl" + ], [ "2016-04-10", "New documentations: Support tables (caniuse.com), GCC and GNU Fortran" ], [ diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index ab36de98..1b10d0b9 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -340,6 +340,11 @@ credits = [ '2010-2016 The OpenTSDB Authors', 'LGPLv2.1', 'https://raw.githubusercontent.com/OpenTSDB/opentsdb.net/gh-pages/COPYING.LESSER' + ], [ + 'Perl', + '1993-2016 Larry Wall and others', + 'GPLv1', + 'http://perldoc.perl.org/index-licence.html' ], [ 'Phalcon', '2011-2015 Phalcon Framework Team', diff --git a/assets/javascripts/views/pages/perl.coffee b/assets/javascripts/views/pages/perl.coffee deleted file mode 100644 index 4630ffe9..00000000 --- a/assets/javascripts/views/pages/perl.coffee +++ /dev/null @@ -1,6 +0,0 @@ -#= require views/pages/base - -class app.views.PerlPage extends app.views.BasePage - prepare: -> - @highlightCode @findAllByTag('pre'), 'perl' - return diff --git a/assets/javascripts/views/pages/simple.coffee b/assets/javascripts/views/pages/simple.coffee index adbc993c..516f9d76 100644 --- a/assets/javascripts/views/pages/simple.coffee +++ b/assets/javascripts/views/pages/simple.coffee @@ -9,6 +9,7 @@ class app.views.SimplePage extends app.views.BasePage app.views.EmberPage = app.views.GoPage = app.views.MeteorPage = +app.views.PerlPage = app.views.RamdaPage = app.views.ReactPage = app.views.RethinkdbPage = diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index f76391cd..4a1816e9 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -136,3 +136,4 @@ ._icon-browser_support_tables:before { background-position: 0rem -11rem; } ._icon-gnu_fortran:before { background-position: -1rem -11rem; } ._icon-gcc:before { background-position: -2rem -11rem; } +._icon-perl:before { background-position: -3rem -11rem; } diff --git a/assets/stylesheets/pages/_perl.scss b/assets/stylesheets/pages/_perl.scss index 98402adf..57be0c84 100644 --- a/assets/stylesheets/pages/_perl.scss +++ b/assets/stylesheets/pages/_perl.scss @@ -1,12 +1,5 @@ ._perl { + @extend %simple; - h2 { @extend %block-heading; } - h3 { @extend %block-label; } - h4 { @extend %block-label, %label-blue; } - - .perlvar, - .perlfunction { - @extend %block-label, %label-blue; - } - + > h4 { @extend %block-label; } } diff --git a/lib/docs/filters/perl/clean_html.rb b/lib/docs/filters/perl/clean_html.rb index 017e9a8e..11ae9b15 100644 --- a/lib/docs/filters/perl/clean_html.rb +++ b/lib/docs/filters/perl/clean_html.rb @@ -1,16 +1,9 @@ module Docs class Perl class CleanHtmlFilter < Filter - REMOVE_LIST = %w( - noscript - #recent_pages - #from_search - #page_index - .mod_az_list - ) - def call root_page? ? root : other + doc end def root @@ -20,12 +13,13 @@ module Docs def other @doc = at_css('#content_body') - css(*REMOVE_LIST).remove + css('noscript', '#recent_pages', '#from_search', '#page_index', '.mod_az_list').remove + + css('h1, h2, h3, h4').each do |node| + node.name = node.name.sub(/\d/) { |i| i.to_i + 1 } + end - css('h4').each { |node| node.name = 'h5' } - css('h3').each { |node| node.name = 'h4' } - css('h2').each { |node| node.name = 'h3' } - css('h1').drop(1).each { |node| node.name = 'h2' } + at_css('h2').name = 'h1' css('a[name] + h2', 'a[name] + h3', 'a[name] + h4', 'a[name] + h5').each do |node| node['id'] = node.previous_element['name'] @@ -39,7 +33,19 @@ module Docs node.css('li').each do |li| li.content = li.content + "\n" end - node.content = node.content + node.content = node.content + node.inner_html = node.inner_html.strip_heredoc + node['data-language'] = 'perl' + end + + if slug =~ /functions/ || slug == 'perlvar' + css('ul > li[id]').each do |node| + heading = node.at_css('b') + heading.name = 'h2' + heading['id'] = node['id'] + node.parent.before(node.children) + node.remove + end end doc diff --git a/lib/docs/filters/perl/entries.rb b/lib/docs/filters/perl/entries.rb index 710f18e5..505e9b15 100644 --- a/lib/docs/filters/perl/entries.rb +++ b/lib/docs/filters/perl/entries.rb @@ -5,19 +5,19 @@ module Docs 'Platform specific' => 'Platform Specific', 'Internals and C language interface' => 'Internals', - 'perlop' => 'Perl Operators', - 'perlvar' => 'Perl Variables', + 'perlop' => 'Operators', + 'perlvar' => 'Variables', 'Functions' => 'Functions' } + MANUAL_TYPES = %w(Overview Tutorials FAQs) + def breadcrumbs - at_css('#breadcrumbs').content.split('>').each { |s| s.strip! } + @breadcrumbs ||= at_css('#breadcrumbs').content.split('>').each { |s| s.strip! } end def include_default_entry? - not slug =~ /\Aindex/ and - not slug =~ /perlop\z/ and - not slug =~ /perlvar/ + slug !~ /\Aindex/ end def get_name @@ -26,41 +26,34 @@ module Docs def get_type case breadcrumbs[1] - when 'Language reference' - REPLACE_TYPES[breadcrumbs[2]] || 'Language Reference' - when /\ACore modules/ - 'Core Modules' - else - REPLACE_TYPES[breadcrumbs[1]] || breadcrumbs[1] + when 'Language reference' + REPLACE_TYPES[breadcrumbs[2]] || 'Language' + when /\ACore modules/ + 'Core Modules' + else + type = REPLACE_TYPES[breadcrumbs[1]] || breadcrumbs[1] + type.prepend 'Manual: ' if MANUAL_TYPES.include?(type) + type end end def additional_entries - entries = [] case slug - when /perlop\z/ - css('h2').each do |node| - name = node.content - id = node.previous_element['name'] - entries << [name, id, get_type] - end - - when /perlvar/ - css('#content_body > ul > li > b').each do |node| - node['class'] = 'perlvar' - name = node.content - id = node.previous_element['name'] - entries << [name, id, get_type] - end - - when /functions/ - css('#content_body > ul > li > b').each do |node| - node['class'] = 'perlfunction' - end - + when 'perlop' + css('h2').map do |node| + name = node.content + id = node.previous_element['name'] + [name, id] + end + when 'perlvar' + css('#content_body > ul > li > b').map do |node| + name = node.content + id = node.previous_element['name'] + [name, id] + end + else + [] end - - entries end end end diff --git a/lib/docs/scrapers/perl.rb b/lib/docs/scrapers/perl.rb index 9ca0ce70..9c742b90 100644 --- a/lib/docs/scrapers/perl.rb +++ b/lib/docs/scrapers/perl.rb @@ -2,9 +2,7 @@ module Docs class Perl < FileScraper self.name = 'Perl' self.type = 'perl' - self.release = '5.22.0' - self.dir = '' - self.base_url = 'http://perldoc.perl.org/' + self.dir = '/Users/Thibaut/DevDocs/Docs/Perl' self.root_path = 'index.html' self.links = { home: 'https://www.perl.org/' @@ -17,19 +15,24 @@ module Docs perlartistic.html perlgpl.html perlhist.html - perltodo.html - perlunifaq.html - ) + perltodo.html ) - options[:skip_patterns] = [ - /\.pdf/, - /delta\.html/, - /\Aperlfaq/ - ] + options[:skip_patterns] = [/\.pdf/, /delta\.html/] options[:attribution] = <<-HTML - © 2010–2015
- Dual Licensed under the GNU General Public License version 1+ or the Artistic License. + © 1993–2016 Larry Wall and others
+ Licensed under the GNU General Public License version 1 or later, or the Artistic License.
+ The Perl logo is a trademark of the Perl Foundation. HTML + + version '5.22' do + self.release = '5.22.0' + self.base_url = "http://perldoc.perl.org/#{self.release}/" + end + + version '5.20' do + self.release = '5.20.2' + self.base_url = "http://perldoc.perl.org/#{self.release}/" + end end end diff --git a/public/icons/docs/perl/16.png b/public/icons/docs/perl/16.png index 1c6ad84c32ec39c5d877defb6bc210c48e845a8e..5ee485dbdb020ac848d6eafa3483870c3876c257 100644 GIT binary patch delta 804 zcmV+<1Ka%E39tr`8Gi-<001BJ|6u?C0{2NoK~#7FZIc6=BUu!NYyC&&K^t*W%Gh>{ zwe8)pZO^oA+Z@}rjdXS0Z|_;_jdLvFH)g#|?}RA&43gyCV6n_R=yreeaL}O8L%ZE` zKoq?jNJcvUvia?cs;aL_l5Yi9WU?HDB>Ay@dm+Y;{|Gjl8-J=A0(YR34(a~G3H>39 zzEV|v6Ap)qiK1Jx*<5;2Q9WkOT94%9DY`6sHM`x#NJk{yKb#Q1c@2XrL{!z!;^QY^ z+_(>sn_G=_>oSp$FcI7#xD!S?O-6bOgIW2Cel4mVHT$D*Uh!sGb{si`H{xvK~V z4jjj_Wjn!TNPkS61V!GiH2=va)6@UAhB|F}!#Y z0rlhX;ZvA1XCp|LY*)~rd#k|o>m8w}5%zrcb8 zTXFvU75M$%!C;(5<=hdtr@JvR<55%7j^5rw;Jv`TyALpQ=v%0&Y6B68yZ}*9P>1yN zGL)A$gL>su19$ic14rWHCsLhyR#qiOkA4q#?%e0;dC<|ZAB3i9Aa?IQj1?<(Q9pFD zaXN!Xg?~YVf}7*xCnGPfT5D_D%j+ADn>X+9Qa(d{eHVznzCI9jb)DF>DF<0u6=#72&Mmu63?(&z6bL_n-xpM|cj18mx~&vmjHtcI-u z!9A@t8E4|BpVmfBow~sI4In?i7Q1#8qrbl&#DD(%$5C6`!Dh``7cm%TQ2OhHKZuE$ z@;dKDwZSk0F4tFV*RCS%(@z)a)a|dnT8<+}PV2mJn#=VyGnrga)nN620VCe{$1%|# zg9e4y8Toju7B`>5+Za4JM3HE1`6_!rGKx&P|9g?d;K5-lpYK+_V8{6SK2;R|Q&|oi i6CGvWHj@4OoPPn%hzKO2V(Lf$0000 z6{%Uv!?wUg9-SgnBu;sZk!*nAm?)3&ki`idi8vU6L1@`w{Ix%JbMJY5zwx0m)+ThQ^=v!M`>+2iC!;jT!1CN*Q>zfe}kj~>3 ztJPOVMrJIQO|#itUS4>WT%F62M>fb6=Eg%8&FB13jOULo^LZQ;rb31V-=;f7E zU*Bf2Snl4vPo;`?c;J-9%8iXJlFKjZbf&Xsl@v0adDkQQnkFi zwz&AGUjMCLeRZ#YI*i-J|#tsVFDUW z91~Lz94uzDQzIjl7cN|li#zY*lLAPU%Cx+^IyYwqX1EEFD5O#o*lZb0)7>4mLcn5W zXtmqRv$C>w@7|zHW`I6;c_mV*iO^Ws#*vZHjg3vqK94b2Vw-qofIm{%IWfSomj<%v z_Omwc*g5T5&~>N5@f(5uw6M2E1aa^P<3)U2FhBcyJhDxDH-?&LLv!Z8&L!@Rjq(i% zia5z*$I!TeX9^2wr&!T`q0GpD)0`*Y5BH5Ldmar={qS($*B?h8%=G-yKT+88cxbwJ zj}ZauI=ZlonCzf!@5%x9gdt-uK|Zr- z_u78fn44emCzkgeJ$+piek*f&!{Keu)R~*I$yFzB`Eya+_$~PptF8SWC#qy+e96&; zW;`a_7@WwMcZ=$ft`D42$!|n=r~ftj+*|%)+FpWQjPo^q{9OysvJa&6aH)_l#VG;_ z4hmreBH5LQxe`6Xh$ITZgF?bwK@tf5kz&(-5>my&BvJPNCy-wrdlM24Y*z>si==YC k1V=QXI37O~n95JULvX$@JG~!=Uk*ZnbhdwsZ``?m0Lz6TA^-pY diff --git a/public/icons/docs/perl/16@2x.png b/public/icons/docs/perl/16@2x.png index 016daf7e571af3419ea69414ddbc7aeca527efca..fe2d49469f7c618a80b016f4f9d75d7935928f2c 100644 GIT binary patch delta 2127 zcmV-V2(b731kn(X8Gi-<0047(dh`GQ2pCC3K~#9!l~-qQlw}YO>JN2B{jU@m+6*0{ zDc5o-KnQI@5^~A4B!tierHE1u9b}{nL69a2ic|rCP^2p*p-YHDOhD-&1Y}6=`__H- zzL&cUp|~^e+}(HYyZh|!v-|EB@-#_FNqLz+>Zsplv*T@(DSzEzwR&g0|9proXsG-Jjx>fZeWdhfk7e%^D6}|`@hU4B z#|m%QY?*|`-hUH=q0rD?+W7GceBXVyRgaC$(%ZI8@DEE~E_`c2P>o z5Ng*hnV)+BR;59}SXc*iK__#lZLJ_w*ntuo?fwHkW06`M0SXUK6GL<7uA;45_tD0U zyUFGH1OV7uFM%h)XN+k06bRT*oTyqjl>6%?MQva)|@!i0rf9VyhNO@B}0jHk9pR2ihc85!wp6{3V6%rv}* z=XxOL9wBx~nI&`Q&IMK7`ht#4)4{!y* z<$O(Ix{S(j&kgYt&+`s@e;LTIA;>s>i$}@HABiEzh!I~<=g$4;%$XuuxpET~6DUypSihTlCEn60e{iz)r;l!yObbE!_=vZ38L#dK^{JQNYkb* zk-Z9(*E=d0gb`)8>Xh@C{m$)CQJL}wZ$SPzbV)RN^c+&cEti@$O%P=)?BxNz4^pHO zAU>aus;jF>$+&UzdCeopy?d3El{H493Fnlf2IqEwfF}(!@E#kbu5aDCLlA@;gnvRx zkZ(=Xs7H@MQkIu5mk~sa%V*W&-jn)v(5zW22m+=zZrqu&v&T_IMP&ehi2fKvVc~fgL$r)2ZsDjUvwrEQ zKBMISLIke(0eEzHpO*G9-Mw2ukbm{-^SSoBQe0d%ojdmjK}L<7O?B(W65oahy^#U{ z(6NLwN(Ky=NEsQDHX&;QlM>Ae0Q~*HSqcEBzyaK30043+Z;;FS_2Z~dpU(sj*17Bz33md(Jp90Y z&H%LG!)IVGr{Ny;?md7X3;>wOM+q`$&}0VCQ^?Ly zhs^~5;Pg*1Uao*-&Epvf1%FuZ91%c!1tC=!kpkR?&y4^G3u2!*aZdP>nmQaM&K008 ztn`c!4o7`vepz&MmW*04FY%xJ_*?@%T4O_PSq8btapzA%C1E`$X*xsDZdrabD zR2Y}EqZ%nk1=zye4UNmlIX^l&TbdCg)G=&AaEPa0YSbv6RBFzgxqm2E?~ozWVd#k} zfTyY_Aac{Ee@zhFqODpbYVh31e_n_Zj7n_0!fww*nfNepzz_tX#teYV1v8*3uTGtE z==$|r1gWa33Z%kl%S)H8=a3JhM~@!S$&kVZ)@Gc-+@U~#0l-TWl5U2{C`+sTCq95q$)$15KL}CB_ z6L=oniasH?V{viGV?Is8}x z*~i^WPfQ$4c|3-FzvgFLM$%GIG2jMD7$ifk*RI`8efy5ba~)wvi)V-6c?pv}0ygjp zP|LeP;2}^VRDVE?l3_p^JOMYNV=}e)_#B;yil)SCAh?0sQpej7k8WDamWdi(U~pE2 z9XbPcDA;&S5GoRJaXD`>;;FnU5e@DWYDCjJcI=~ZM6_<*2H=`yk`2}HjBh)g0RXhT zL*guSKv%H-7k)p4pj=S1tmrCx2*ohK98m+O8{grn{77e%*;SsZ@~l=@`=`Ba|1S^_ zo6X&jL3ja%Q?iFYi}>@Qf8o14%ZrF`dc$}x&b)~6{{S~B4d*OeFYf>V002ovPDHLk FV1kjZ_a6WN delta 622 zcmca8@P}oBWIZzj1B1(wu46!oCEd~2k%8gbjVt~UMnJw~iEBhjaDG}zd16s2gJVj5 zQmTSyZen_BP-mIg#=#>QztvH$;P{{IhT z82|sz0OFlF^Z(4u|7X&6>7JHlU|_uD=~C|)QgJIO!GXaoO-#%zOiWD8O~tW+!AT)4 z%*-MowTYXVMIc5>>nKw&lQFA8!-BTMrJE1=jT1ynrQJ&YlcQNTf= zMX7&DL$9O;r+|Y)%bND7tT&Bw9Huj|2wY%NxxaCPp|P=I_4GzYg@y^d35iL`X^AQI zj%7m1%nl5O1_vyC95zeblxWnNG4T%203M$Y6Bth!Z`{ymbF{^v1*j>(Y(vAHLx(s% zN^x`Bq)0L{alCTxu$gd}g;Qb&ms$ful0y*3CKe%9g~=?P$FVB(mTFr!gK+dxXOFQJi5CBV{w;oxK$jY*L+BNRPZ(ih3U zQ34tv!NHlI5S7HbG9@9&Q6&oO8OBLztpOaBzyLmNalqwl)2tUjFAHuFP>#4*tPXT7 wkK;LkHD?M6fePGw9>g%8kvbtMu5f^%-