From 5e4c30c86ab3322576e174bc7ac8968aaddc315a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Ledentu?= Date: Sun, 28 Jun 2015 21:39:11 +0200 Subject: [PATCH] Add Phaser documentation --- assets/javascripts/views/pages/phaser.coffee | 6 +++ assets/stylesheets/application-dark.css.scss | 1 + assets/stylesheets/application.css.scss | 1 + assets/stylesheets/pages/_phaser.scss | 23 ++++++++++ lib/docs/filters/phaser/clean_html.rb | 31 +++++++++++++ lib/docs/filters/phaser/entries.rb | 44 +++++++++++++++++++ lib/docs/scrapers/phaser.rb | 30 +++++++++++++ public/icons/docs/phaser/16.png | Bin 0 -> 1343 bytes public/icons/docs/phaser/16@2x.png | Bin 0 -> 1492 bytes public/icons/docs/phaser/SOURCE | 1 + 10 files changed, 137 insertions(+) create mode 100644 assets/javascripts/views/pages/phaser.coffee create mode 100644 assets/stylesheets/pages/_phaser.scss create mode 100644 lib/docs/filters/phaser/clean_html.rb create mode 100644 lib/docs/filters/phaser/entries.rb create mode 100644 lib/docs/scrapers/phaser.rb create mode 100644 public/icons/docs/phaser/16.png create mode 100644 public/icons/docs/phaser/16@2x.png create mode 100644 public/icons/docs/phaser/SOURCE diff --git a/assets/javascripts/views/pages/phaser.coffee b/assets/javascripts/views/pages/phaser.coffee new file mode 100644 index 00000000..d9949116 --- /dev/null +++ b/assets/javascripts/views/pages/phaser.coffee @@ -0,0 +1,6 @@ +#= require views/pages/base + +class app.views.PhaserPage extends app.views.BasePage + afterRender: -> + @highlightCode @findAll('pre.source'), 'javascript' + return diff --git a/assets/stylesheets/application-dark.css.scss b/assets/stylesheets/application-dark.css.scss index 1968dceb..827328fd 100644 --- a/assets/stylesheets/application-dark.css.scss +++ b/assets/stylesheets/application-dark.css.scss @@ -54,6 +54,7 @@ 'pages/nginx', 'pages/node', 'pages/npm', + 'pages/phaser', 'pages/php', 'pages/phpunit', 'pages/postgres', diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 4a8f307f..9a27ad70 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -54,6 +54,7 @@ 'pages/nginx', 'pages/node', 'pages/npm', + 'pages/phaser', 'pages/php', 'pages/phpunit', 'pages/postgres', diff --git a/assets/stylesheets/pages/_phaser.scss b/assets/stylesheets/pages/_phaser.scss new file mode 100644 index 00000000..a5314793 --- /dev/null +++ b/assets/stylesheets/pages/_phaser.scss @@ -0,0 +1,23 @@ +._phaser { + h2 { @extend %block-heading; } + h4 { @extend %block-label, %label-blue; } + + p > code, li > code, td > code { @extend %label; } + + dt.tag-source { + color: #666; + font-weight: normal; + } + + .deprecated-notice { + @extend %note; + } + + #docs-index > h3 { @extend %block-label, %label-blue; } + #docs > h3 { @extend %block-heading; } + #docs > h4 { @extend %block-label, %label-blue; } + + #docs header { + display: none; + } +} diff --git a/lib/docs/filters/phaser/clean_html.rb b/lib/docs/filters/phaser/clean_html.rb new file mode 100644 index 00000000..6a384cae --- /dev/null +++ b/lib/docs/filters/phaser/clean_html.rb @@ -0,0 +1,31 @@ +module Docs + class Phaser + class CleanHtmlFilter < Filter + def call + + title = at_css('h1') + + if root_page? + doc.children = at_css('#docs-index') + + # Remove first paragraph (old doc details) + doc.at_css('p').remove() + else + doc.children = at_css('#docs') + + # Remove "Jump to" block + doc.at_css('table').remove() + end + + doc.child.before title + + # Clean code blocks + css('pre > code').each do |node| + node.before(node.children).remove + end + + doc + end + end + end +end diff --git a/lib/docs/filters/phaser/entries.rb b/lib/docs/filters/phaser/entries.rb new file mode 100644 index 00000000..f6b720ba --- /dev/null +++ b/lib/docs/filters/phaser/entries.rb @@ -0,0 +1,44 @@ +module Docs + class Phaser + class EntriesFilter < Docs::EntriesFilter + + REPLACE_TYPES = { + 'gameobjects' => 'Game Objects', + 'geom' => 'Geometry', + 'tilemap' => 'Tilemaps', + 'net' => 'Network', + 'tween' => 'Tweens', + 'pixi' => 'PIXI' + } + + TYPE_GROUPS = { + 'Core' => ['loader'] + } + + def get_name + name = at_css('.title-frame h1').content + name.sub! /Phaser\./, '' + name.sub! /PIXI\./, '' + name + end + + def get_type + src = at_css('.container-overview .details > .tag-source > a') + + if src + src = src.content.split('/').first + + TYPE_GROUPS.each_pair do |replacement, types| + types.each do |t| + return replacement if src == t + end + end + + return REPLACE_TYPES[src] || src.capitalize + end + + 'Global' + end + end + end +end diff --git a/lib/docs/scrapers/phaser.rb b/lib/docs/scrapers/phaser.rb new file mode 100644 index 00000000..2da584f0 --- /dev/null +++ b/lib/docs/scrapers/phaser.rb @@ -0,0 +1,30 @@ +module Docs + class Phaser < UrlScraper + self.name = 'Phaser' + self.slug = 'phaser' + self.type = 'phaser' + self.version = '2.3.0' + self.base_url = "https://phaser.io/docs/#{version}" + self.links = { + home: 'https://phaser.io/', + code: 'https://github.com/photonstorm/phaser' + } + + html_filters.push 'phaser/entries', 'phaser/clean_html' + + options[:skip] = %w( + /docs_pixi-jsdoc.js.html + /p2.Body.html + /Phaser.html + /PIXI.html + /PIXI.WebGLMaskManager.html + /PIXI.WebGLShaderManager.html + /PIXI.WebGLSpriteBatch.html + /PIXI.WebGLStencilManager.html) + + options[:attribution] = <<-HTML + © 2015 Richard Davey, Photon Storm Ltd.
+ Licensed under the MIT License. + HTML + end +end diff --git a/public/icons/docs/phaser/16.png b/public/icons/docs/phaser/16.png new file mode 100644 index 0000000000000000000000000000000000000000..250d238836b6ff397eb7a761948cd4c66294611a GIT binary patch literal 1343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z81_tI8nIRD+5xzcF$@#f@i7EL>sd^Q;1whpd3^o;3KxS@gNuokUZcbjY zRfVk*ScMgk4HDK@QUEI{$+lIB@C{IK&M!(;Fx4~BGf=YQQczH^DN0GR3UYCSY6tRc zl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{^NN)rhQQ2mNi9w; z$}A|!%+FH*nVXoDUs__Tqy(}E4xsMLEr45;R}A$P(0}?Bi3R$GdItK~G?iqgA)JSz z3nYV6TWUon4s9SAh&FIwK-_2p3{flJ{FKbJN|(fvR68RBLsMM?GhHK#5Fveo=5iVsa`dyuezJ zgwR!kt%<~C4Uz;@qm4c&EhD9ENX7w+0&|WX7cfR)xzLWw)~`1dn5hjsT^vI!1d|gM zu+3Pj@J+tuq+vJf62qkqlNt~D^ffBJdh-7Y`+A9oY-?|KW@SvUcH&#ck#e9uSC3=f zg8l-|fa15?|7*-(yz4MQQG>04he_(t>$z;#f5>wsv@MiA#8P5(#!#T@TW*Nml&LCZ_gIV&bRR98rR5&L4?kaK|jz&2xsTBZ;dK86Kr zdEOg6K3L`O?+B|yVo=;Y-brmNOcNS~*mjsGXSQUw8E$ZA^biwn$UQ2u%z=d=)9C)3 T-IIcsgGx0|S3j3^P6lpi<;HsXMd|v6mX?o9TAa1k)hNzWqeoAIqrAuN-s-2O6p{cHcnXZvVh>@X{fti)D zv5h{O8iWtQx}A$s6HD@oLh|!->;f_?Qgd=aTm@r2V?85?USt(WnnC`s@-NCv1qLuE z80`#g^fAQH)jQ|s78Iox7lYKBLe(RSp{ox{EzZv=1sNZjmsw&5bP?DJG+}gIkqCJ^ zbC@1vL39lf*fbyuB543cgcUfXB3v?aQ}e)nF$UU#RRUe3bAC>KQE)+Gaw;giz*>-m z&{c!2iNs|Mk_1$vjXo$XBc*Lf#sP~0bB-MsFh*gy(2i@xynq~FratQF;usRanVcZ; zvO!RcVYBFwe}``xI@rk1xZ`yC{WgPzC0>nME%uF!rYZ~U)_*N%&OUl9qpek-ae~ALfrOUj zjPLYs*f5>pn=s+Q?OeWT`VqFmuCc=ET+a`FtJg>OW@~H2oW7rU(@saAtTSRp9ykzx}^Ovab>?N?$!N zGWdPqBzJ*f4i9@V^M(yGYeii(l zasI2=m*$@vELvVGPh{+_Ua-w^8h3(RLZnI8=l4R}wpYBaeNBs_JgtTgvA-J`(3 z$x|W4u#+u@<&hS<$5%@+`Q)#bJ_R3I7|ytcED3xhHGL