From 0ca094e65dd7a850d221830698d81002a32697fe Mon Sep 17 00:00:00 2001 From: Vallabh Date: Mon, 28 Nov 2022 22:12:46 +0530 Subject: [PATCH 1/7] Added scraper that uses UrlScraper for wagtail --- lib/docs/scrapers/wagtail.rb | 103 +++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 lib/docs/scrapers/wagtail.rb diff --git a/lib/docs/scrapers/wagtail.rb b/lib/docs/scrapers/wagtail.rb new file mode 100644 index 00000000..891639d4 --- /dev/null +++ b/lib/docs/scrapers/wagtail.rb @@ -0,0 +1,103 @@ +module Docs + class Wagtail < UrlScraper + self.name = 'Wagtail' + self.type = 'sphinx' + self.root_path = 'index.html' + self.links = { + home: 'https://wagtail.org/', + code: 'https://github.com/wagtail/wagtail' + } + + # adding filters from lib/docs/filters/wagtail + html_filters.push 'wagtail/entries', 'sphinx/clean_html', 'wagtail/clean_html' + + # attributions are seen at the bottom of every page(copyright and license etc. details) + options[:attribution] = <<-HTML + © 2014-present Torchbox Ltd and individual contributors.
+ All rights are reserved.
+ Licensed under the BSD License. + HTML + + # no one wants to see docs about search or release notes + options[:skip] = %w[search.html] + options[:skip_patterns] = [ + %r{\Areleases/} + ] + + # updating release and base_url for different versions + version 'stable' do + self.release = 'stable' + self.base_url = 'https://docs.wagtail.org/en/stable/' + end + + version 'latest' do + self.release = 'latest' + self.base_url = 'https://docs.wagtail.org/en/latest/' + end + + version '4.0.4' do + self.release = '4.0.4' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '4.0' do + self.release = '4.0' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '3.0.3' do + self.release = '3.0.3' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '2.16.3' do + self.release = '2.16.3' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '2.15.6' do + self.release = '2.15.6' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '2.10.2' do + self.release = '2.10.2' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '2.5.2' do + self.release = '2.5.2' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '2.4' do + self.release = '2.4' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '2.3' do + self.release = '2.3' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '2.0.2' do + self.release = '2.0.2' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '1.2' do + self.release = '1.2' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + version '1.1' do + self.release = '1.1' + self.base_url = "https://docs.wagtail.org/en/v#{version}/" + end + + # this method will fetch the latest version of wagtail + def get_latest_version(opts) + get_latest_github_release('wagtail', 'wagtail', opts) + end + end +end From d2f26788b739a09faf18a7a2222f456e073d9394 Mon Sep 17 00:00:00 2001 From: Vallabh Date: Mon, 28 Nov 2022 22:13:36 +0530 Subject: [PATCH 2/7] Created html and entries filters for wagtail --- lib/docs/filters/wagtail/clean_html.rb | 65 ++++++++++++++++++++++++++ lib/docs/filters/wagtail/entries.rb | 15 ++++++ 2 files changed, 80 insertions(+) create mode 100644 lib/docs/filters/wagtail/clean_html.rb create mode 100644 lib/docs/filters/wagtail/entries.rb diff --git a/lib/docs/filters/wagtail/clean_html.rb b/lib/docs/filters/wagtail/clean_html.rb new file mode 100644 index 00000000..b5b28b53 --- /dev/null +++ b/lib/docs/filters/wagtail/clean_html.rb @@ -0,0 +1,65 @@ +module Docs + class Wagtail + class CleanHtmlFilter < Filter + def call + # footer contains links like about,contact us etc which + # are not needed in documentation so removed + doc.search('footer').each do |footer| + footer.remove + end + + # aside bar contains the search bar and navigation links + # which are not needed + doc.search('aside').each do |aside| + aside.remove + end + + # header contains links which are not needed(see sourch code of Wagtail docs) + doc.search('header').each do |head| + head.remove + end + + # nav bar contains the search bar and navigation links(older versions) + # which are not needed + doc.search('nav.wy-nav-side').each do |nav| + nav.remove + end + + # removing unimportant links(older versions) + doc.search('nav.wy-nav-top').each do |nav| + nav.remove + end + + # removing unimportant links from header of very old versions + doc.search('ul.wy-breadcrumbs').each do |ul| + ul.remove + end + + # removing release notes + doc.search('li.toctree-l1').each do |li| + li.remove if li.to_s.include? 'Release notes' + end + + # removing release notes(older versions) + doc.search('dl').each do |dl| + dl.remove + end + + # removing scripts and style + css('script', 'style', 'link').remove + css('hr').remove + # Make proper table headers + css('td.header').each do |node| + node.name = 'th' + 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/wagtail/entries.rb b/lib/docs/filters/wagtail/entries.rb new file mode 100644 index 00000000..8af4c4c7 --- /dev/null +++ b/lib/docs/filters/wagtail/entries.rb @@ -0,0 +1,15 @@ +module Docs + class Wagtail + class EntriesFilter < Docs::EntriesFilter + def get_name + # removing the pilcrow sign and returning the heading + at_css('h1').content.strip.remove("\u{00b6}") + end + + def get_type + object, method = *slug.split('/') + method ? object : 'Miscellaneous' + end + end + end +end From 434cdde336e176b6143eb2f53967820b632604aa Mon Sep 17 00:00:00 2001 From: Vallabh Date: Mon, 28 Nov 2022 22:14:41 +0530 Subject: [PATCH 3/7] Added icons(16x16 and 32x32) for wagtail docs --- public/icons/docs/wagtail/16.png | Bin 0 -> 553 bytes public/icons/docs/wagtail/16@2x.png | Bin 0 -> 1234 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/icons/docs/wagtail/16.png create mode 100644 public/icons/docs/wagtail/16@2x.png diff --git a/public/icons/docs/wagtail/16.png b/public/icons/docs/wagtail/16.png new file mode 100644 index 0000000000000000000000000000000000000000..73a98e39316c2d973dac46ded85078ab22de63a7 GIT binary patch literal 553 zcmV+^0@nSBP)00001b5ch_0Itp) z=>Px$<4Ht8R5(vflEF)qQ5400rx_h*GSeo=anT}Z7uiBlh-T#&RIAoPe}VHanC>cQ z5#&CkWfZ8}C^R>NK@veU3yGPgR+AHCSi_C`zW1z;$H)8L_wKppoO?uggk%tw2pc~O zJ3EUg$!Ht&{Y+u`CExkoSb`W7td5=@y;GZ?&(~^mTg%HU*ITXjVStm#5o37vq3akaLP% zf=}74HDDnXIE|_4DRvu;Ltw2bq|tU}khWohEQG(m%#@cIyT= zou}KM8^|$vd6M0?yG~>UwB%69J9ndsc!fD-Q8_ox@Tp;%%}=iLHE;v?=?o+V8YeI| zC7UY@74xNHk=~CU{onmBCVMR7p^0B<_{nmwoDo_z>>22*V9&%mnH{C5C97OV=9+jR z({mF~vJfV`V^_0*rng`k>7|*S2fF|4jPx(j7da6R7gvWmQQG0RTRd5XOc|*5ISk2W=!HPBZWk2#6_Y+Xkri{#EF|ORAR*x z5=C6t7{Nu{xT(7qGZR}y!4YxM2Bl(3i>1c@G$jvwV-AI)wk2U&=%dWDv~9&+2X<0W<=u zz;)oCFuwTZ>=rcm9%u%p5uQcSWa1=~$y_`he=(IxU9u|(Rur!8jyy>m)aSs%g3#aJ z&+|t|X>PvDi7+@gxH>vI`e-JTxo#40D-z}Os6?26Dg!CKtpW9^z=&QlGBQFYlcBDz z&H-6jSz&8yi;azqneOiH3A^(_I(^)bFm&!ZA2kG=1FEX4t65xJq^qmbTMH*oog$mf z^49e9Z~G7IKZK&FOQ=X)SvPz!)&gIH^k~RfY#%po{zZMgTaAA5g#v|qp5w<~zdbWM z^J+0)NP`p|i|6!~It`_1iq z{rDQpjj#+bai&}@8%{A4Gr}5^)WRy#rgAJPEJgWzvH26 z-ikhT75NGzIu5)WG@Z|b+1}RHMmn8-Z)j-fn6uVmr?gi?E2}okp)rJODB8kC4E*+j z4)hOPxp?W~W46QZ?4w}BH-NXxL3|o?B}+?74%H&^hf;KaDtP=?R$VBd?(|iG7JnQD zji%woCniXxQWT3ty?q_H7r12)v-0YVM09p=Lcwd52AwgxrhIJd7_+l!6YFoFT?3gm z85foW5)yg`@DtGFWEK*P`LE@k7J7Pmn46n3`TPnz7(5dKs&>WTqe>doSml!SI(Kt2 znPg#Mfz?$#yd6n>poAAZmz2g^Wme!2@EuUUlhWexI6b|+oI88gUFPQc1i}S-3RF;? zlVt?qGZaskfmpM!si}$K;bCW}777KkRF9~~fo;1DWk4R2j{uhus)Mu1OIn0PB0)zY z!G-yG^7*_0Sq2Ux{O;_tdRhXqnjI0CS1=GhLTaK>XRfuk-^cRuO|mz#cG7}8#zrEM2y1I=tgo*-2bL!rU5=L9B#NAwE@8@p6@fkm zz5-eRZPa~{swyHP6bjpxTAh^FyoT%f_buQw$pmzhFm-4@T0>7k)Vm8D0Dc5&1pWir z)PWV`fNQ`vzz={nrk*+8A??*@Q&(xITGRG4a8%$agv&~y>CqW)d-ApO^(ZtEt?^`w zAy}$Y?fodUvzLG_LAFdcO8d&cSSLXEis<^mz8jjw9|6w+ClOxR>0-I#kzu{md4+xS z0PsCXEvUo56+4()NXQ(!U0wYil{Q8|K17th5Z(av)#jG(r81a37Ub=-@_Pu;YLa@C zI)TWf!*-=x%N`)Yo^_}bs8aB;=j?(&uY#X Date: Mon, 28 Nov 2022 22:15:39 +0530 Subject: [PATCH 4/7] Added style for page navigation links(above the footer) --- assets/stylesheets/pages/_sphinx.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/assets/stylesheets/pages/_sphinx.scss b/assets/stylesheets/pages/_sphinx.scss index 64a4df6b..cb23ef69 100644 --- a/assets/stylesheets/pages/_sphinx.scss +++ b/assets/stylesheets/pages/_sphinx.scss @@ -47,6 +47,11 @@ span.descclassname, span.descname { font-family: var(--monoFont) } } +nav[aria-label="Page navigation"]{ + display: flex !important; + justify-content: space-between !important; +} + ._sphinx { @extend %sphinx; } From c3e8ce71899337dd2c7f95a9a77e9b091335e000 Mon Sep 17 00:00:00 2001 From: Vallabh Date: Mon, 28 Nov 2022 22:48:55 +0530 Subject: [PATCH 5/7] added link to the icon --- public/icons/docs/wagtail/SOURCE | 1 + 1 file changed, 1 insertion(+) create mode 100644 public/icons/docs/wagtail/SOURCE diff --git a/public/icons/docs/wagtail/SOURCE b/public/icons/docs/wagtail/SOURCE new file mode 100644 index 00000000..76f5d4b1 --- /dev/null +++ b/public/icons/docs/wagtail/SOURCE @@ -0,0 +1 @@ +https://github.com/wagtail/wagtail/blob/main/docs/logo.png From 875cccdad28cea94ea97094dde43a197c84510b7 Mon Sep 17 00:00:00 2001 From: Vallabh Date: Mon, 28 Nov 2022 22:49:49 +0530 Subject: [PATCH 6/7] added copyright information --- assets/javascripts/templates/pages/about_tmpl.coffee | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 7ca88895..c7677c3d 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -970,7 +970,12 @@ credits = [ '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/' - ], [ + ],[ + 'wagtail', + '2014-present Torchbox Ltd and individual contributors', + 'BSD', + 'https://github.com/wagtail/wagtail/blob/main/LICENSE' + ],[ 'webpack', 'JS Foundation and other contributors', 'CC BY', From 624ac21c26c2506407d20bfb0ffd607b8abee5f7 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 20 Dec 2022 22:48:47 +0100 Subject: [PATCH 7/7] Update Wagtail documentation (4.1.1) --- lib/docs/filters/wagtail/clean_html.rb | 2 + lib/docs/scrapers/wagtail.rb | 67 +++----------------------- 2 files changed, 8 insertions(+), 61 deletions(-) diff --git a/lib/docs/filters/wagtail/clean_html.rb b/lib/docs/filters/wagtail/clean_html.rb index b5b28b53..050388d5 100644 --- a/lib/docs/filters/wagtail/clean_html.rb +++ b/lib/docs/filters/wagtail/clean_html.rb @@ -2,6 +2,8 @@ module Docs class Wagtail class CleanHtmlFilter < Filter def call + @doc = at_css('main > section', 'main') + # footer contains links like about,contact us etc which # are not needed in documentation so removed doc.search('footer').each do |footer| diff --git a/lib/docs/scrapers/wagtail.rb b/lib/docs/scrapers/wagtail.rb index 891639d4..bc9d626d 100644 --- a/lib/docs/scrapers/wagtail.rb +++ b/lib/docs/scrapers/wagtail.rb @@ -25,74 +25,19 @@ module Docs ] # updating release and base_url for different versions - version 'stable' do - self.release = 'stable' + version do + self.release = '4.1.1' self.base_url = 'https://docs.wagtail.org/en/stable/' end - version 'latest' do - self.release = 'latest' - self.base_url = 'https://docs.wagtail.org/en/latest/' - end - - version '4.0.4' do - self.release = '4.0.4' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '4.0' do - self.release = '4.0' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '3.0.3' do + version '3' do self.release = '3.0.3' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" + self.base_url = "https://docs.wagtail.org/en/v#{release}/" end - version '2.16.3' do + version '2' do self.release = '2.16.3' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '2.15.6' do - self.release = '2.15.6' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '2.10.2' do - self.release = '2.10.2' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '2.5.2' do - self.release = '2.5.2' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '2.4' do - self.release = '2.4' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '2.3' do - self.release = '2.3' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '2.0.2' do - self.release = '2.0.2' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '1.2' do - self.release = '1.2' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" - end - - version '1.1' do - self.release = '1.1' - self.base_url = "https://docs.wagtail.org/en/v#{version}/" + self.base_url = "https://docs.wagtail.org/en/v#{release}/" end # this method will fetch the latest version of wagtail