@@ -2,44 +2,45 @@ module Docs
22 class Meteor
33 class CleanHtmlFilter < Filter
44 def call
5- root_page? ? root : other
5+ @doc = at_css ( '.content-wrapper' )
66
7- css ( 'pre span' ) . each do |node |
8- node . before ( node . children ) . remove
9- end
10-
11- doc
12- end
7+ css ( '.page-actions' , '.anchor' ) . remove
138
14- def root
15- @doc = at_css ( '#introduction' ) . parent
16-
17- css ( '.github-ribbon' , '#introduction' ) . remove
18-
19- css ( '.selflink' , 'b > em' ) . each do |node |
9+ css ( '.header-content' , '.document-formatting' , 'h2 > a' , '.api' , '.api-body' , 'div.desc' ) . each do |node |
2010 node . before ( node . children ) . remove
2111 end
2212
23- css ( 'pre ' ) . each do |node |
24- node [ 'data-language '] = node . at_css ( 'code' ) [ 'class' ] . include? ( 'html' ) ? 'html' : 'js'
25- node . content = node . content
13+ css ( '.anchor-offset ' ) . each do |node |
14+ node . parent [ 'id '] = node [ 'id' ]
15+ node . remove
2616 end
2717
28- css ( 'a.src-code' ) . each do |node |
29- node . content = 'Source'
18+ css ( '.api-heading' ) . each do |node |
19+ heading = node . at_css ( 'h2, h3' )
20+ name = heading . name
21+ node [ 'id' ] = heading [ 'id' ]
22+ heading . replace "<code>#{ heading . content . strip } </code>"
23+ node . name = name
3024 end
31- end
3225
33- def other
34- @doc = at_css ( '#content' )
35-
36- css ( '.edit-discuss-links' , '.bottom-nav' , '.edit-link' ) . remove
26+ css ( 'div.code' , 'span.code' , '.args .name' ) . each do | node |
27+ node . name = 'code'
28+ node . remove_attribute ( 'class' )
29+ end
3730
3831 css ( 'figure.highlight' ) . each do |node |
39- node . inner_html = node . at_css ( '.code pre' ) . inner_html . gsub ( '<br>' , "\n " )
32+ node . inner_html = node . at_css ( '.code pre' ) . inner_html . gsub ( '</div><div' , "</div>\n <div" ) . gsub ( '<br>' , "\n " )
33+ node . content = node . content
4034 node [ 'data-language' ] = node [ 'class' ] . split . last
4135 node . name = 'pre'
4236 end
37+
38+ css ( 'pre.prettyprint' ) . each do |node |
39+ node [ 'data-language' ] = node [ 'class' ] . include? ( 'html' ) ? 'html' : 'js'
40+ node . content = node . content
41+ end
42+
43+ doc
4344 end
4445 end
4546 end
0 commit comments