From f948577584325299ad0b568f5f5312d6b1237a78 Mon Sep 17 00:00:00 2001 From: Harm Aarts Date: Tue, 11 Dec 2018 19:41:52 +0100 Subject: [PATCH] Add Pony filters/scraper --- lib/docs/filters/pony/clean_html.rb | 10 ++++++++++ lib/docs/filters/pony/container.rb | 9 +++++++++ lib/docs/filters/pony/entries.rb | 14 ++++++++++++++ lib/docs/scrapers/pony.rb | 12 ++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 lib/docs/filters/pony/clean_html.rb create mode 100644 lib/docs/filters/pony/container.rb create mode 100644 lib/docs/filters/pony/entries.rb create mode 100644 lib/docs/scrapers/pony.rb diff --git a/lib/docs/filters/pony/clean_html.rb b/lib/docs/filters/pony/clean_html.rb new file mode 100644 index 00000000..0aac0f7a --- /dev/null +++ b/lib/docs/filters/pony/clean_html.rb @@ -0,0 +1,10 @@ +module Docs + class Pony + class CleanHtmlFilter < Filter + def call + css('.headerlink').remove + doc + end + end + end +end diff --git a/lib/docs/filters/pony/container.rb b/lib/docs/filters/pony/container.rb new file mode 100644 index 00000000..f29db7d4 --- /dev/null +++ b/lib/docs/filters/pony/container.rb @@ -0,0 +1,9 @@ +module Docs + class Pony + class ContainerFilter < Filter + def call + css('article') + end + end + end +end diff --git a/lib/docs/filters/pony/entries.rb b/lib/docs/filters/pony/entries.rb new file mode 100644 index 00000000..09ffe595 --- /dev/null +++ b/lib/docs/filters/pony/entries.rb @@ -0,0 +1,14 @@ +module Docs + class Pony + class EntriesFilter < Docs::EntriesFilter + def get_name + binding.pry + context[:html_title].sub(/ - .*/, '') + end + + def get_type + subpath.split('-')[0][1..-1] + end + end + end +end diff --git a/lib/docs/scrapers/pony.rb b/lib/docs/scrapers/pony.rb new file mode 100644 index 00000000..9863ed76 --- /dev/null +++ b/lib/docs/scrapers/pony.rb @@ -0,0 +1,12 @@ +module Docs + class Pony < UrlScraper + self.type = 'pony' + self.release = '0.25.0' + self.base_url = 'http://localhost:2015' + #self.base_url = 'https://stdlib.ponylang.io/' + + html_filters.push 'pony/container', 'pony/entries', 'pony/clean_html' + options[:attribution] = "Me" + options[:follow_links] = ->(filter) { filter.subpath !~ /src/ } + end +end