diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 81e1e5b7..37d14eea 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -728,6 +728,12 @@ credits = [ 'CC BY', 'https://creativecommons.org/licenses/by/4.0/' ], [ + 'Wordpress', + '2003-2019 WordPress Foundation', + 'GPLv2+', + 'https://wordpress.org/about/license/' + ], + [ 'Yarn', '2016-present Yarn Contributors', 'BSD', diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index e5e9ecca..03c588a8 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -106,5 +106,6 @@ 'pages/underscore', 'pages/vue', 'pages/webpack', + 'pages/wordpress', 'pages/yard', 'pages/yii'; diff --git a/assets/stylesheets/pages/_wordpress.scss b/assets/stylesheets/pages/_wordpress.scss new file mode 100644 index 00000000..1da15abd --- /dev/null +++ b/assets/stylesheets/pages/_wordpress.scss @@ -0,0 +1,15 @@ +._wordpress { + @extend %simple; + + .breadcrumbs { + display: none; + } + + .callout-warning { + @extend %note, %note-red; + } + + .callout-alert { + @extend %note, %note-orange; + } +} \ No newline at end of file diff --git a/lib/docs/filters/wordpress/clean_html.rb b/lib/docs/filters/wordpress/clean_html.rb new file mode 100644 index 00000000..32cf3b3f --- /dev/null +++ b/lib/docs/filters/wordpress/clean_html.rb @@ -0,0 +1,39 @@ +module Docs + class Wordpress + class CleanHtmlFilter < Filter + def call + if root_page? + doc.inner_html = '

WordPress

' + return doc + end + + article = at_css('article[id^="post-"]') + @doc = at_css('article[id^="post-"]') unless article.nil? + + css('hr', '.screen-reader-text', '.table-of-contents', + '.anchor', '.toc-jump', '.source-code-links', '.user-notes', + '.show-more', '.hide-more').remove + + br = //i + + header = at_css('h1') + header.content = header.content.strip + doc.prepend_child header + + # Add PHP code highlighting + css('pre').each do |node| + node['data-language'] = 'php' + end + + css('.source-code-container').each do |node| + node.name = 'pre' + node.inner_html = node.inner_html.gsub(br, "\n") + node.content = node.content.strip + node['data-language'] = 'php' + end + + doc + end + end + end +end diff --git a/lib/docs/filters/wordpress/entries.rb b/lib/docs/filters/wordpress/entries.rb new file mode 100644 index 00000000..ba539d67 --- /dev/null +++ b/lib/docs/filters/wordpress/entries.rb @@ -0,0 +1,19 @@ +module Docs + class Wordpress + class EntriesFilter < Docs::EntriesFilter + def get_name + at_css('.breadcrumbs .trail-end').content + end + + def get_type + if subpath.starts_with?('classes') + 'Classes' + elsif subpath.starts_with?('hooks') + 'Hooks' + elsif subpath.starts_with?('functions') + 'Functions' + end + end + end + end +end diff --git a/lib/docs/scrapers/wordpress.rb b/lib/docs/scrapers/wordpress.rb new file mode 100644 index 00000000..58e42cb8 --- /dev/null +++ b/lib/docs/scrapers/wordpress.rb @@ -0,0 +1,39 @@ +module Docs + class Wordpress < UrlScraper + self.name = 'WordPress' + self.type = 'wordpress' + self.release = '5.2.2' + self.base_url = 'https://developer.wordpress.org/reference/' + self.initial_paths = %w( + functions/ + hooks/ + classes/ + ) + + self.links = { + home: 'https://wordpress.org/', + code: 'https://github.com/WordPress/WordPress' + } + + html_filters.push 'wordpress/entries', 'wordpress/clean_html' + + options[:container] = '#content-area' + options[:trailing_slash] = false + options[:only_patterns] = [ + /\Afunctions\//, + /\Ahooks\//, + /\Aclasses\// + ] + + options[:skip_patterns] = [ + /\Afunctions\/page\/\d+/, + /\Ahooks\/page\/\d+/, + /\Aclasses\/page\/\d+/ + ] + + options[:attribution] = <<-HTML + © 2003–2019 WordPress Foundation
+ Licensed under the GNU GPLv2+ License. + HTML + end +end diff --git a/public/icons/docs/wordpress/16.png b/public/icons/docs/wordpress/16.png new file mode 100644 index 00000000..0b3dc1cd Binary files /dev/null and b/public/icons/docs/wordpress/16.png differ diff --git a/public/icons/docs/wordpress/16@2x.png b/public/icons/docs/wordpress/16@2x.png new file mode 100644 index 00000000..9de430fe Binary files /dev/null and b/public/icons/docs/wordpress/16@2x.png differ diff --git a/public/icons/docs/wordpress/SOURCE b/public/icons/docs/wordpress/SOURCE new file mode 100644 index 00000000..1c817d62 --- /dev/null +++ b/public/icons/docs/wordpress/SOURCE @@ -0,0 +1 @@ +https://wordpress.org/about/logos/ \ No newline at end of file