Forráskód Böngészése

Add Clojure documentation

Thibaut 10 éve
szülő
commit
2387fcfd61

BIN
assets/images/icons.png


BIN
assets/images/icons@2x.png


+ 1 - 1
assets/javascripts/news.json

@@ -1,6 +1,6 @@
 [
   [ "2015-02-15",
-    "New <a href=\"/iojs/\">io.js</a>, <a href=\"/lua/\">Lua</a> and <a href=\"/yii1/\">Yii 1.1</a> documentations"
+    "New <a href=\"/iojs/\">io.js</a>, <a href=\"/clojure/\">Clojure</a>, <a href=\"/lua/\">Lua</a> and <a href=\"/yii1/\">Yii 1.1</a> documentations"
   ], [
     "2015-02-08",
     "New dark theme\nClick the icon in the bottom left corner to activate.\n<a href=\"https://github.com/Thibaut/devdocs/issues\" target=\"_blank\">Feedback</a> welcome :)"

+ 5 - 0
assets/javascripts/templates/pages/about_tmpl.coffee

@@ -100,6 +100,11 @@ credits = [
     '2011-2015 Jake Luer',
     'MIT',
     'https://github.com/chaijs/chai/blob/master/README.md#license'
+  ], [
+    'Clojure',
+    'Rich Hickey',
+    'EPL',
+    'https://github.com/clojure/clojure/blob/master/epl-v10.html'
   ], [
     'CoffeeScript',
     '2009-2015 Jeremy Ashkenas',

+ 1 - 0
assets/stylesheets/application-dark.css.scss

@@ -32,6 +32,7 @@
         'pages/bower',
         'pages/c',
         'pages/chai',
+        'pages/clojure',
         'pages/coffeescript',
         'pages/cordova',
         'pages/d3',

+ 1 - 0
assets/stylesheets/application.css.scss

@@ -32,6 +32,7 @@
         'pages/bower',
         'pages/c',
         'pages/chai',
+        'pages/clojure',
         'pages/coffeescript',
         'pages/cordova',
         'pages/d3',

+ 1 - 0
assets/stylesheets/global/_icons.scss

@@ -87,3 +87,4 @@
 %icon-light-white           { background-position: -1rem -14rem; }
 ._icon-iojs:before          { background-position: -2rem -14rem; }
 ._icon-lua:before           { background-position: -3rem -14rem; }
+._icon-clojure:before       { background-position: -4rem -14rem; }

+ 10 - 0
assets/stylesheets/pages/_clojure.scss

@@ -0,0 +1,10 @@
+._clojure {
+  h2:not([id]) { @extend %block-heading; }
+  h2[id], h3 { @extend %block-label, %label-blue; }
+
+  .type {
+    float: right;
+    font-size: .9em;
+    color: $textColorLight;
+  }
+}

+ 44 - 0
lib/docs/filters/clojure/clean_html.rb

@@ -0,0 +1,44 @@
+module Docs
+  class Clojure
+    class CleanHtmlFilter < Filter
+      def call
+        if root_page?
+          doc.inner_html = '<h1>Clojure</h1>'
+          return doc
+        end
+
+        @doc = at_css('#content-tag')
+
+        at_css('h1').content = slug.remove('-api')
+
+        css('> div').each do |node|
+          node.before(node.children).remove
+        end
+
+        css('div > h2', 'div > h3').each do |node|
+          node.parent.before(node.parent.children).remove
+        end
+
+        css('#proto-type', '#var-type', '#type-type').each do |node|
+          node.previous_element << node
+          node['class'] = 'type'
+        end
+
+        css('.proto-added', '.var-added', '.proto-deprecated', '.var-deprecated').each do |node|
+          node.content = node.content
+          node.name = 'p'
+        end
+
+        css('.proto-added', '.var-added').each do |node|
+          if node.content == node.next_element.try(:content)
+            node.remove
+          end
+        end
+
+        css('hr', 'br:first-child', 'pre + br', 'h1 + br', 'h2 + br', 'h3 + br', 'p + br', 'br + br').remove
+
+        doc
+      end
+    end
+  end
+end

+ 22 - 0
lib/docs/filters/clojure/entries.rb

@@ -0,0 +1,22 @@
+module Docs
+  class Clojure
+    class EntriesFilter < Docs::EntriesFilter
+      def get_name
+        slug.remove('-api')
+      end
+
+      def get_type
+        'Namespaces'
+      end
+
+      def additional_entries
+        css(".toc-entry-anchor[href^='##{self.name}']").map do |node|
+          name = node.content
+          id = node['href'].remove('#')
+          type = name == 'clojure.core' ? id.split('/').first : self.name
+          [name, id, type]
+        end
+      end
+    end
+  end
+end

+ 18 - 0
lib/docs/scrapers/clojure.rb

@@ -0,0 +1,18 @@
+module Docs
+  class Clojure < UrlScraper
+    self.type = 'clojure'
+    self.version = '1.6'
+    self.base_url = 'http://clojure.github.io/clojure/'
+    self.root_path = 'api-index.html'
+
+    html_filters.push 'clojure/entries', 'clojure/clean_html'
+
+    options[:container] = '#content_view'
+    options[:only_patterns] = [/\Aclojure\./]
+
+    options[:attribution] = <<-HTML
+      &copy; Rich Hickey<br>
+      Licensed under the Eclipse Public License 1.0.
+    HTML
+  end
+end

BIN
public/icons/docs/clojure/16.png


BIN
public/icons/docs/clojure/16@2x.png


+ 1 - 0
public/icons/docs/clojure/SOURCE

@@ -0,0 +1 @@
+http://en.wikipedia.org/wiki/File:Clojure_logo.gif