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