From 0df3a7755887ed472df36164bebccfd1c275072d Mon Sep 17 00:00:00 2001 From: Thibaut Courouble Date: Sun, 3 Sep 2017 15:58:41 -0400 Subject: [PATCH] Finish Vulkan scraper --- assets/images/docs-2.png | Bin 13703 -> 14072 bytes assets/images/docs-2@2x.png | Bin 32076 -> 32991 bytes assets/javascripts/news.json | 2 +- .../templates/pages/about_tmpl.coffee | 5 ++ assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_simple.scss | 1 + lib/docs/filters/vulkan/clean_html.rb | 46 ++++++++++++++++-- lib/docs/filters/vulkan/entries.rb | 37 ++------------ lib/docs/scrapers/vulkan.rb | 30 ++++-------- public/icons/docs/vulkan/16.png | Bin 1372 -> 430 bytes public/icons/docs/vulkan/16@2x.png | Bin 1172 -> 926 bytes 11 files changed, 66 insertions(+), 56 deletions(-) diff --git a/assets/images/docs-2.png b/assets/images/docs-2.png index ba3a162bfbf7c89c6f44c267561d32c036f70b57..208aeadeb8dd7597c716dee93a3007be4aca3bfa 100644 GIT binary patch delta 4289 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 diff --git a/assets/images/docs-2@2x.png b/assets/images/docs-2@2x.png index 1e56762c34fa003e7ee8d043b5f2fff2bdcf4150..fb263017ced429f2fe65523fe7f94d8605527d98 100644 GIT binary patch delta 11350 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 delta 10424 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" + "New documentations: Nim and Vulkan" ], [ "2017-07-23", "New documentation: Godot" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 6a5c2b75..11be6211 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -633,6 +633,11 @@ credits = [ '2013-2017 Evan You, Vue.js contributors', 'MIT', 'https://raw.githubusercontent.com/vuejs/vue/master/LICENSE' + ], [ + 'Vulkan', + '2014-2017 Khronos Group Inc.
Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.', + 'CC BY', + 'https://creativecommons.org/licenses/by/4.0/' ], [ 'webpack', 'JS Foundation and other contributors', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index cfd5605b..566ef90d 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -174,3 +174,4 @@ ._icon-falcon:before { background-position: -3rem -2rem; @extend %doc-icon-2; } ._icon-godot:before { background-position: -4rem -2rem; @extend %doc-icon-2; } ._icon-nim:before { background-position: -5rem -2rem; @extend %doc-icon-2; @extend %darkIconFix !optional; } +._icon-vulkan:before { background-position: -6rem -2rem; @extend %doc-icon-2; @extend %darkIconFix !optional; } diff --git a/assets/stylesheets/pages/_simple.scss b/assets/stylesheets/pages/_simple.scss index d242e759..f2b9b733 100644 --- a/assets/stylesheets/pages/_simple.scss +++ b/assets/stylesheets/pages/_simple.scss @@ -43,6 +43,7 @@ ._requirejs, ._typescript, ._vagrant, +._vulkan, ._yarn { @extend %simple; } diff --git a/lib/docs/filters/vulkan/clean_html.rb b/lib/docs/filters/vulkan/clean_html.rb index b2e0a8a2..6e066ab0 100644 --- a/lib/docs/filters/vulkan/clean_html.rb +++ b/lib/docs/filters/vulkan/clean_html.rb @@ -2,11 +2,51 @@ module Docs class Vulkan class CleanHtmlFilter < Filter def call - # Copyright is already added via attribution option - css('#_copyright').map do |node| - node.parent.remove + at_css('#_copyright').parent.remove + + css('.sect1', '.sectionbody', '.sect2', '.sect3', 'div.paragraph', 'li > p:only-child', 'dd > p:only-child', 'span', '.ulist').each do |node| + node.before(node.children).remove + end + + css('a[id]:empty').each do |node| + node.parent['id'] ||= node['id'] + node.remove + end + + css('.listingblock').each do |node| + node['data-language'] = node.at_css('[data-lang]')['data-lang'] + node.content = node.content.strip + node.name = 'pre' + node.remove_attribute('class') + end + + css('.sidebarblock').each do |node| + node.name = 'blockquote' + node.at_css('.title').name = 'h5' + node.css('div').each { |n| n.before(n.children).remove } + node.remove_attribute('class') end + css('.admonitionblock').each do |node| + node.name = 'blockquote' + node.children = node.at_css('.content').children + node.at_css('.title').name = 'h5' + node.remove_attribute('class') + end + + css('table').each do |node| + node.before %(
) + node.previous_element << node + end + + css('strong', 'dt', 'a').remove_attr('class') + + css('h4 + h4').each do |node| + node.previous_element.remove + end + + css('p:contains("This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.")').remove + doc end end diff --git a/lib/docs/filters/vulkan/entries.rb b/lib/docs/filters/vulkan/entries.rb index 973b274d..9f2c2371 100644 --- a/lib/docs/filters/vulkan/entries.rb +++ b/lib/docs/filters/vulkan/entries.rb @@ -1,39 +1,12 @@ module Docs class Vulkan class EntriesFilter < Docs::EntriesFilter - def get_name - name = at_css('h1').content.strip - name - end - - def get_type - # As only documentation is single-paged, hardcode type - initial_page? ? 'Vulkan' : 'Specifications' - end - - def include_default_entry? - # additional_entries is responsible to extract relevant entries - false - end - def additional_entries - if initial_page? - # We pack each subsections into their corresponding category for apispec.html - subsections = css('.sect2').map do |node| - # Parse '.sect1' parent, to know what is the entry's type - parent_node = node.parent.parent - # Type is the parent's h2 header - type = parent_node.at_css('h2').content.strip - # Entry node is the one under h3 - header_node = node.at_css('h3') - [header_node.content, header_node['id'], type] - end - else - # We create a new category for vkspec.html page - main_sections = css('.sect1').map do |node| - # Entry node is the one under h2 - header_node = node.at_css('h2') - [header_node.content, header_node['id'], 'Specifications'] + css('.sect1').each_with_object [] do |node, entries| + type = node.at_css('h2').content + + node.css('h3').each do |n| + entries << [n.content, n['id'], type] end end end diff --git a/lib/docs/scrapers/vulkan.rb b/lib/docs/scrapers/vulkan.rb index 0140f09f..c3b23269 100644 --- a/lib/docs/scrapers/vulkan.rb +++ b/lib/docs/scrapers/vulkan.rb @@ -1,34 +1,24 @@ module Docs - # class Vulkan < FileScraper class Vulkan < UrlScraper self.name = 'Vulkan' - - self.slug = 'vk' self.type = 'vulkan' + self.release = '1.0.59' + self.base_url = 'https://www.khronos.org/registry/vulkan/specs/1.0/' + self.root_path = 'apispec.html' self.links = { - home: 'https://www.khronos.org/registry/vulkan/specs/', - code: 'https://github.com/KhronosGroup/Vulkan-Docs' + home: 'https://www.khronos.org/vulkan/' } - self.root_path = 'apispec.html' - - self.release = '1.0.56' - # self.dir = '/mnt/d/theblackunknown/Documents/GitHub/Vulkan-Docs/out/1.0/' - self.base_url = 'https://www.khronos.org/registry/vulkan/specs/1.0/' - - html_filters.push 'vulkan/entries', 'vulkan/clean_html' + html_filters.push 'vulkan/entries', 'vulkan/clean_html', 'title' - # in apispec.html, skip #header and #footer + options[:skip_links] = true options[:container] = '#content' - - # If we only want API, we should skip this one - options[:skip] = %w( - html/vkspec.html - ) + options[:root_title] = 'Vulkan API Reference' options[:attribution] = <<-HTML - Copyright © 2014-2017 Khronos Group.
- This work is licensed under a Creative Commons Attribution 4.0 International License + © 2014–2017 Khronos Group Inc.
+ Licensed under the Creative Commons Attribution 4.0 International License.
+ Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc. HTML end end diff --git a/public/icons/docs/vulkan/16.png b/public/icons/docs/vulkan/16.png index a917a92df278114d3ccd86fa07e022c6e517548d..703829c312abf20520caa5ed404eaa1ec42c0f35 100644 GIT binary patch delta 415 zcmV;Q0bu^z3a$f?8Gi-<001BJ|6u?C0d+}4K~#7F-I4=rB|#j<_iW$H?Ae@|=l6nR zd>5Pf zxJVyX5mTy++5fEpXY8k7QNM!uNQr1gi{lbu@vRqZxv*MtB7002ov JPDHLkV1gRH#!LVJ literal 1372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>^>xPct&t1EaJ7;64c z1+oQPn>`1SvX>nD$%IJ2it6Ucx5|J$tcN}1S6;lAA)ON1Dn{huy; z=zH+tf8GoXQt5T_iEqmoCj39}@v1mTx2hL|U%#;DkN^LtaHt6a1%TN_Qbzph|3BUa zwSgdKfB<9Zo&};OkH}&M20djE zW~^9hUj`IpFY)wsWq-)Q$iX1^cd>mYQ0RlFi(`ny<>Ukh_8y-zI%{&?$jphkW3xwr z(XNisQ87_4(6ErxQ*%PYmYy|p_B1V;w5e;=EGrKO=V0$>_i+FF2QHkr!J?9om6n&7 znVOrNo&Ns8izjCeJb3i#*}I1?pT2$k`nkM-gvc2IAt^CAK}k_rVQKOC6J|^~Ghx!K zY4aw|oH}>%?CJ3V5g}&+f}+CW0wY6XgQLUmU$}AQ%!Nz0uHCzM^XlEpx3AkLK3Z~; zCwQ6PY`f%VYi<@lJ2!iO!ox*JdAz6TMej>`y6S57wRO?^6P0h6&o;}yxhwZ~-`w40 z?{9K{yua@+JD;3Y&65`!AM->oFxbfY?&V$kV~ZCyIvL{FKbJN)!ziKy_Az<`4}A#swFF8YDqB t1m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6BL!5%;OXk;vd$@?2>|op!lM8H diff --git a/public/icons/docs/vulkan/16@2x.png b/public/icons/docs/vulkan/16@2x.png index 022b838ac5ec64dd682a03a9de2c334672c73e3f..04be52f3f1edc401db1b6c3cf01b3fc92babd4cb 100644 GIT binary patch delta 905 zcmV;419tqB37!X#BYy*BNklD6x+6K+qzpF zV>>B^&$jLN_I{7i`S8MH(#@&)k&a|2IOu%MpoyCm<1{DA(-QHy4ABU?cNXMVJ(Ptks zS<@w3T%1Tj5^@06|Cg_=-D=Q6_+TfsOBVQYm%VpN=zD5bQBy^N8&z(xETjLK;=Q-^ zgT;KRNF8Qzaep=P?;>5d4a%{ri)I@l0{w4UO#KR4CxL-^_+APu0~P~wFg6bO1$ZCy zUk{-k3Fho@$l(g2lLUoIpqv8I*F%a2n#hK9=lSm5ryp5pAcqtL{?7)ze*!tE{(oas%7>(We18S}gZcRs**F7isOMgZ?Y%{7BPo(ih-_t)do0|L)YP%9T~S^f1sHxi z9@;h5{}?exVoh>+Lhl_`9F4VqLr0$^gxIo`1%ECd%!UF?YI02~ZZt%5lm;q4nhU$# z4C?(j+UwW}_{~V?$|F+t9)lHWRzk`@y%dBQ~cd< z4rw4rgSeN{&@lj%)mgETFq0emN6!NwdQVtv#hZ#oBminm^rmE^bD|19cDVY)V(N~; fo?Ebj6>KAr?Ccn^{*^ZX0000004R>004l5008;`004mK z004C`008P>0026e000+ooVrmw00006VoOIv0RI600RN!9r;`8x010qNS#tmYE+YT{ zE+YYWr9XB6000McNliru;Rpc;01^G8KWP8}171l)K~z}7?SIzWYg|vVV2|7xbL~=ktuw3c#tjAIHV}G+x5a!QM*CDqsz6EFFF~p2yz{0Wgj0 zabaogcRbxDMuz)vcWG?{o}Etxx>~I5#oJA5*Wj2oG5Vqch1Ku|X66H+9S1h!X6(ZR ze!wD3wdi|AYFlAr_-H=K>i}8={Q%cWT~h1dkP<6XRo zZ8*>gNH*A8S%GKJ-y!g%)Z4L0vR@+GkvI`O5)XPb#&sH6JQkt~)@T5fU`g9D8kH`jlD+kOTu}M6E z7b8i31gzrDsKn)XH4gL#KEp%dn+2GQC4uV461;*(FWyOvo1zl81^5f_AU+r68GmXz{r8geij!?C{nw2vaRRPr0zDLm zX(n18;2xF)?JGQowMD>3a1PE3hdq(FaNdl&G(>9+)`d@Dqxi6#wG5&(>f7-EZos|x zvlzp*cmZd|rgcF!k`}xZTp-Q=FfP@&bvHzb>jdk{sL2fc`gJpi!dBv<;x5<{0k%kr zc7I*d={_#KACJpQ$#ZGU4$=Nvjy$g?9vB~KZp{vCEMG=jaVs9j9U8=|MH{MG+o&|} zuozckJQ>ymOC*9Wmh@y8d8Zc437`qYf^1F>%w>6= zwSC$qsgcV&CO>S44gLj{b_*7hs1S7k001R)MObuXVRU6WV{&C-bY%cCFflhRFnKsF zFfmjxH##&lIx#paFfuwYFezldNdN!eSaefwW^{L9a%BK_cXuvnZfkR6VQ^(GZ*pgw S?mQX*0000