From c8291a742813be8798639cdebe8abe4584105951 Mon Sep 17 00:00:00 2001
From: Simon Legner
Date: Tue, 12 Dec 2017 23:32:55 +0100
Subject: [PATCH] Add leaflet doc
---
lib/docs/filters/leaflet/clean_html.rb | 23 +++++++++++++++
lib/docs/filters/leaflet/entries.rb | 33 ++++++++++++++++++++++
lib/docs/scrapers/leaflet.rb | 37 +++++++++++++++++++++++++
public/icons/docs/leaflet/16.png | Bin 0 -> 826 bytes
public/icons/docs/leaflet/16@2x.png | Bin 0 -> 1879 bytes
public/icons/docs/leaflet/SOURCE | 1 +
6 files changed, 94 insertions(+)
create mode 100644 lib/docs/filters/leaflet/clean_html.rb
create mode 100644 lib/docs/filters/leaflet/entries.rb
create mode 100644 lib/docs/scrapers/leaflet.rb
create mode 100644 public/icons/docs/leaflet/16.png
create mode 100644 public/icons/docs/leaflet/16@2x.png
create mode 100644 public/icons/docs/leaflet/SOURCE
diff --git a/lib/docs/filters/leaflet/clean_html.rb b/lib/docs/filters/leaflet/clean_html.rb
new file mode 100644
index 00000000..c8d000f3
--- /dev/null
+++ b/lib/docs/filters/leaflet/clean_html.rb
@@ -0,0 +1,23 @@
+module Docs
+ class Leaflet
+ class CleanHtmlFilter < Filter
+ def call
+ css('#toc', '.expander').remove
+
+ # remove "This reference reflects Leaflet 1.2.0."
+ css('h2 ~ p').each do |node|
+ node.remove
+ break
+ end
+
+ # syntax highlighting
+ css('code.lang-js').each do |node|
+ node.parent['data-language'] = 'javascript'
+ node.parent.content = node.content
+ end
+
+ doc
+ end
+ end
+ end
+end
diff --git a/lib/docs/filters/leaflet/entries.rb b/lib/docs/filters/leaflet/entries.rb
new file mode 100644
index 00000000..c246d5ad
--- /dev/null
+++ b/lib/docs/filters/leaflet/entries.rb
@@ -0,0 +1,33 @@
+module Docs
+ class Leaflet
+ class EntriesFilter < Docs::EntriesFilter
+ def additional_entries
+ entries = []
+ type = nil
+ subtype = nil
+
+ css('*').each do |node|
+ if node.name == 'h2' && node['id']
+ type = node.content
+ subtype = nil
+ entries << [type, node['id'], type]
+ elsif node.name == 'h3'
+ subtype = node.content
+ elsif node.name == 'tr' && node['id']
+ value = node.css('td > code > b').first.content
+ if subtype && subtype.end_with?(' options')
+ name = "#{subtype}: #{value}"
+ elsif subtype
+ name = "#{type} #{subtype.downcase}: #{value}"
+ else
+ name = "#{type}: #{value}"
+ end
+ entries << [name, node['id'], type]
+ end
+ end
+
+ entries
+ end
+ end
+ end
+end
diff --git a/lib/docs/scrapers/leaflet.rb b/lib/docs/scrapers/leaflet.rb
new file mode 100644
index 00000000..5e939394
--- /dev/null
+++ b/lib/docs/scrapers/leaflet.rb
@@ -0,0 +1,37 @@
+module Docs
+ class Leaflet < UrlScraper
+ self.name = 'Leaflet'
+ self.type = 'leaflet'
+ self.slug = 'leaflet'
+ self.links = {
+ home: 'http://leafletjs.com/',
+ code: 'https://github.com/Leaflet/Leaflet'
+ }
+
+ html_filters.push 'leaflet/entries', 'leaflet/clean_html', 'title'
+
+ options[:container] = '.container'
+ options[:skip_links] = true
+
+ options[:attribution] = <<-HTML
+ © 2017 Vladimir Agafonkin.
+ Maps © OpenStreetMap contributors.
+ HTML
+
+ version '1.2' do
+ self.release = '1.2.0'
+ self.base_url = "http://leafletjs.com/reference-#{release}.html"
+ end
+
+ version '1.1' do
+ self.release = '1.1.0'
+ self.base_url = "http://leafletjs.com/reference-#{release}.html"
+ end
+
+ version '1.0' do
+ self.release = '1.0.3'
+ self.base_url = "http://leafletjs.com/reference-#{release}.html"
+ end
+
+ end
+end
diff --git a/public/icons/docs/leaflet/16.png b/public/icons/docs/leaflet/16.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2627fe32348d7e437b096a5bb2f196b7a23572e
GIT binary patch
literal 826
zcmV-A1I7G_P)f(DfYJP2Zr5dxw?K~{1Mi#bNngC0GJx$Q#MToSW>9YSvEK?Dy<
zL?jT=__3_nxVy76^Jd=b_qw}0%*Se-x}fS;|N2+c)yKyWx6F2-=yW*>5+SI-0OiJ=
z0_bVGksyg}P#-US!^~fquAO9{Ik9&Z0H9h;v#v4{oG%38fRw^BGrVUL6xEE@>S+>Z
zAC7%gIw=*7vu6jU3k*C!KZGiX9f4L~6aodQq(~AYgcP9=^vTjfcmJAtI2)GKq|I$r
z1*)zJ;`7Q#fSFr|djP5EH4&Ob1e0d4xr3AfS>`69n*K$HYL_uNdGDc=B&o#CuRoqa
zhJ2tv&Xb_m0MJ^Ap>+V8duXjbEd+9$nbB^>(8T~mfRME1r#}ydQi&em+VrC(B6^r6
z1}4oQm4Xn2K|v=@;GBmp1^@sOv@R^G3Q^yK?|$6F-tq0lg+?bVhwn8rGnU^p5v?f?
zJOdFTlB5CdU19Fu2D))NYm6z@M{DP#661s7cC&*#vnW+Uyc2=|;z4q3_wOj`&_w0h
zH7Vts5Hy^=Fu#OqJ%W$~=6(w!W#$~{)hPf_S^~@)rJ_xPF|9@nlVljFMF0cTU)nR4
z@{Btw=;Z=c&boMz^&RV{F6Pp==_+JN8*>FWs2>`$-bp)w2#BKi@rs
zYHdW{yYt{kwO&58ZRh4KLiYZHbKYi&z1(V;NmUSwM|b}^1PmRzKK&S_4`O%Whev
zv;4>XLZG%X^Lm^6muWY@*lMI_b*L84oVy{D4^00#F-L_t(o!>w0oP*YbFzO>A!c2F?X1
zRR~awor9)bF-05{WoFHaE9dP^X%h7(HVB8ZyM6QW2mEdudt{FQh$*k%@1E(V{I`@w
zA9q8mbczf`ffowT*zT$;=WR@B^2yC;lRQak5LuKK_B>6gH?wk8F&CXq*x>?*_Zixx
z57S#j*w`Z4K=0e@`$
zH3(;QNpWhkkOGq3C0BfX;o}zxaD|11!ZUZdf`YB7*L+IAQzPW80l;Q;NwBHMZzR4-
z@I`Wi7)3F8A+cVB;;Q&T+1>Jy{DA;UNp7D%E`Tf9=34SJK(-TeLl3V3dxA5N&}QikO9`{Sf~u{tbmhpW1T%K)GO095ls0RSi%
zvz!Q`_EXo#R_>vG6L283QEg|xN?Z%Vjm8_k!vrLKCixm4CpGb?d-6QJS<(PN7clZ5
zzKV~uWxU-v-SS7o1NnfOD53?ZY&&sAn}`BKd8gN}FSeW)lF=${%Ojqm!4m6%FRIdA
zghS7sWwy)i0oZkMl>)~AlAFXRzDBSRENdsOrFd90LGhDD|3neqNtnBO%>*>mw{%vA%&zfguVr
zJLEX0+jjyWT9FB?zhw5nBy+~z(Ov;g)Cf*wcKD!}QsGnpdLR>!YF1XKJf0Rv6sBGm
z;B#3UDN>Q=S)d%^jSHSBpJ=_VnuV`ew@m;=Hbuk+vF5zN%T;6JO$Bf^ZaV_Y5u~Ba
zdOPSbZCSYK6Rfs-QeZMWWF-Bj2&cF4rX2qaV3Ws@kA6oy2PtZfG_&TZnTVLxB}b{v
z5)U}=fG8wP{vpX7XLn1ftT438uzA3-aM~EtTcl7ieFFdn6js(^wT(M{NzQ2TpK~mB
zec*Z1<}Q*Ekn4DIu8)r~QFFxDBoFi}t$P+ThG6`PwsKJLiH}_LwZd?c!%Wr_f}V(92idZD
zT7o|1KnHN(HFc>I0JJ6EDB8lFpLShR%VZJR(Iq?ZH_cHF?IWVq02SC+(!X#8t
zv>hLcTsEcdJKBWAAoI$h%bQ%(&Uk>-goJA0(aDz4)qq?`&@r~Cng)B}t{PAxK^=&A)r#t$a6
z^<+5t4$|&O%)20E
z{z>&BRTy+ar{YglM400N?J7f??9P~=F$>ed;-i{X_;A#6YUXoP_a|@YphGaQvh_7W
zl+e1*IRNTX9=ejxnoClL9yE#dWY{=xX(>LP@&Pq`%%ps*4NGj%R<4`2l#iTV$_f!m
zhA`+V1zaG|Ln4ffX5YrVN0BcEW&~%*2Y+n-jIR>Pb2?>6RmwxpwX}9`q_nVR!PI*a
zy5a9+I5`N`lP*b$5T)c6vvQKc5c?EmG4~}+*>ftV7b%5c+h?PCT7nY3D
zGs3j4hY<{zU!%42m+Pwq=#bGD{pa=NPb<(@Ve4EzKeJ@@fr~2)`g-2*OhpIAuSy7?
zd&&L1D6)W!{+D$zcPBcf-}Ew!*5AXNf1eDR^h89+21RQWp5KM{k*XrjTV;O-ps0Kf
z`d^o_kc%SnS+gOn1SyT;lJsWj5V(3c^}3`Zu~wvjKQ|r`X0O>%g{