[devdocsgjs/main: 165/239] First initial release of TailwindCSS DevDoc




commit 39aa5b1c90d50f64ad08cae0e851bceca9cd554a
Author: Damilola Olowookere <damms005 gmail com>
Date:   Fri Feb 26 16:52:04 2021 +0100

    First initial release of TailwindCSS DevDoc

 .../javascripts/templates/pages/about_tmpl.coffee  |   5 ++
 lib/docs/filters/tailwindcss/clean_html.rb         |  77 +++++++++++++++++++++
 lib/docs/filters/tailwindcss/entries.rb            |  51 ++++++++++++++
 lib/docs/scrapers/tailwindcss.rb                   |  31 +++++++++
 public/icons/docs/tailwindcss/16.png               | Bin 0 -> 2230 bytes
 public/icons/docs/tailwindcss/16 2x png            | Bin 0 -> 3486 bytes
 6 files changed, 164 insertions(+)
---
diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee 
b/assets/javascripts/templates/pages/about_tmpl.coffee
index 79edd81b..0e348f9d 100644
--- a/assets/javascripts/templates/pages/about_tmpl.coffee
+++ b/assets/javascripts/templates/pages/about_tmpl.coffee
@@ -842,6 +842,11 @@ credits = [
     '2004-2017 Fabien Potencier',
     'MIT',
     'https://symfony.com/doc/current/contributing/code/license.html'
+  ], [
+    'TailwindCSS',
+    'Adam Wathan',
+    'MIT',
+    'https://raw.githubusercontent.com/tailwindlabs/tailwindcss/master/LICENSE'
   ], [
     'Tcl/Tk',
     'The Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, and other 
parties',
diff --git a/lib/docs/filters/tailwindcss/clean_html.rb b/lib/docs/filters/tailwindcss/clean_html.rb
new file mode 100644
index 00000000..fda174a2
--- /dev/null
+++ b/lib/docs/filters/tailwindcss/clean_html.rb
@@ -0,0 +1,77 @@
+module Docs
+  class Tailwindcss
+    class CleanHtmlFilter < Filter
+      def call
+          clean_up
+
+        # Remove code highlighting
+        css('pre').each do |node|
+          node.content = node.content
+          node['data-language'] = 'php'
+        end
+
+        doc
+      end
+
+      def clean_up
+        @doc = doc.at_css('#content-wrapper')
+
+        css('.location').remove
+
+        # Replace .header with <h1>
+        css('.page-header > h1').each do |node|
+          node.content = 'Tailwind' if root_page?
+          node.parent.before(node).remove
+        end
+
+        css('.container-fluid').each do |node|
+          node.name = 'table'
+          node.css('.row').each { |n| n.name = 'tr' }
+          node.css('div[class^="col"]').each { |n| n.name = 'td' }
+        end
+
+        css('> div').each do |node|
+          node.before(node.children).remove
+        end
+
+        # Remove <abbr>
+        css('a > abbr').each do |node|
+          node.parent['title'] = node['title']
+          node.before(node.children).remove
+        end
+
+        # Clean up headings
+        css('h1 > a', '.content', 'h3 > code', 'h3 strong', 'abbr').each do |node|
+          node.before(node.children).remove
+        end
+
+        # Remove empty <td>
+        css('td').each do |node|
+          node.remove if node.content =~ /\A\s+\z/
+        end
+
+        # @doc = at_css('.docs_body')
+
+        # Clean up headings
+        css('h2 > a').each do |node|
+          node.before(node.children).remove
+        end
+
+        css('p > a[name]').each do |node|
+          node.parent.next_element['id'] = node['name']
+        end
+
+        css('blockquote').each do |node|
+          node['class'] = 'tip' if node.inner_html.include?('{tip}')
+          node.inner_html = node.inner_html.remove(/\{(tip|note)\}\s?/)
+        end
+
+        css('blockquote').each do |node|
+          if node.inner_html.include?('You\'re browsing the documentation for an old version of Laravel.')
+            node.remove
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/docs/filters/tailwindcss/entries.rb b/lib/docs/filters/tailwindcss/entries.rb
new file mode 100644
index 00000000..2fc2af2b
--- /dev/null
+++ b/lib/docs/filters/tailwindcss/entries.rb
@@ -0,0 +1,51 @@
+module Docs
+  class Tailwindcss
+    class EntriesFilter < Docs::EntriesFilter
+      # def get_name
+      #   if api_page?
+      #     name = at_css('h1').content.strip.remove('Illuminate\\')
+      #     name << " (#{type})" unless name.start_with?(self.type)
+      #     name
+      #   else
+      #     at_css('h1').content
+      #   end
+      # end
+
+      def get_type
+        # /customizing-colors rediects to /colors, hence making css
+        # selector below not to match the href
+        if result[:path] == 'customizing-colors'
+          selector = "#sidebar a[href='#{result[:path]}']"
+        else
+          selector = "#sidebar a[href='#{result[:path]}']"
+        end
+
+        check = at_css(selector).parent.parent.parent.css('h5').inner_text
+        check
+      end
+
+      # def additional_entries
+      #   return [] if root_page? || !api_page?
+      #   base_name = self.name.remove(/\(.+\)/).strip
+
+      #   css('h3[id^="method_"]').each_with_object [] do |node, entries|
+      #     next if node.at_css('.location').content.start_with?('in')
+
+      #     name = node['id'].remove('method_')
+      #     name.prepend "#{base_name}::"
+      #     name << '()'
+
+      #     entries << [name, node['id']]
+      #   end
+      # end
+
+      # def api_page?
+      #   subpath.start_with?('/api')
+      # end
+
+      # def include_default_entry?
+      #   true
+      # end
+    end
+  end
+end
diff --git a/lib/docs/scrapers/tailwindcss.rb b/lib/docs/scrapers/tailwindcss.rb
new file mode 100644
index 00000000..d13dfe24
--- /dev/null
+++ b/lib/docs/scrapers/tailwindcss.rb
@@ -0,0 +1,31 @@
+module Docs
+  class Tailwindcss < UrlScraper
+    self.name = 'Tailwind CSS'
+    self.type = 'tailwindcss'
+    self.slug = 'tailwindcss'
+    self.base_url = 'https://tailwindcss.com/docs'
+    self.root_path = '/installation'
+    self.release = '8.5'
+
+    html_filters.push 'tailwindcss/entries', 'tailwindcss/clean_html'
+
+    # options[:container] = 'body';
+
+    options[:skip_patterns] = [
+        %r{\/guides\/.*},
+        %r{\/colors\z}
+      ]
+
+    #Obtainable from https://github.com/tailwindlabs/tailwindcss/blob/master/LICENSE
+    options[:attribution] = <<-HTML
+      MIT License<br>
+      Copyright (c) Adam Wathan <adam wathan gmail com><br>
+      Copyright (c) Jonathan Reinink <jonathan reinink ca><br>
+    HTML
+
+    def get_latest_version(opts)
+      doc = fetch_doc('https://tailwindcss.com/docs/installation', opts)
+      doc.at_css('select option[value=v2]').inner_text
+    end
+  end
+end
diff --git a/public/icons/docs/tailwindcss/16.png b/public/icons/docs/tailwindcss/16.png
new file mode 100644
index 00000000..697450ec
Binary files /dev/null and b/public/icons/docs/tailwindcss/16.png differ
diff --git a/public/icons/docs/tailwindcss/16 2x png b/public/icons/docs/tailwindcss/16 2x png
new file mode 100644
index 00000000..d84c40ff
Binary files /dev/null and b/public/icons/docs/tailwindcss/16 2x png differ


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]