martile 1.4.1 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57fb8dcb688e8dacc6aa9201a11e27a8677e00d5e8fd6f77faff1cf6b3932bc1
4
- data.tar.gz: 2d1f43f87a9f167f77d41d8876b8dc2b4f93cf353b598fb5c2bfdd49dce4f42d
3
+ metadata.gz: 3072339279e9010415dab6b0aac593b625ad7fddce9895449cdf90d750ad6e82
4
+ data.tar.gz: b32add46e7c651c1311778ca3ca25eaa8e171540d4bab14f23404218ad750730
5
5
  SHA512:
6
- metadata.gz: 4d8fbdb4e965ae5cbb26e001d40cb19b84e5046f95b0a9d3a62646a71e3a676373eb60c4a47a48301d156b09c45443e2ea264b0e9438cf89c728fb12a5a6b271
7
- data.tar.gz: 7545ab60ade0306951aa45905511a9fd56a23af9904c58f4b2f81ea471a6caabc03454ed0a55171aeeb2e412db2c7c0881fd55654247cc2ecfb84bbb07e3874f
6
+ metadata.gz: 8a52f3f5dec66a4c3b8c696657285c5e18ddd6ebcd76d2f0c26b02a9ca0f0d6374c93973a87374281e736aaec3b0e5d89ee763b2d00905768cd614f41ead6c39
7
+ data.tar.gz: 5faf6a84bc1b8b587674c9b74677ff5a25ae343d225e735bf652dd37fd465fe883e30e0e5177672f74b33121c397c3df2d168d1435ff25a20d773d1057bd474f
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -15,6 +15,13 @@ require 'jsmenubuilder'
15
15
  require 'htmlcom'
16
16
 
17
17
 
18
+ # feature: 01-Sep-2020 Introduced the nomarkdown tag and nomarkdown2 tag.
19
+ # The nomarkdown2 tag has the advantage of being used
20
+ # inside tags which other Markdown parse don't read.
21
+ # The tag will remove itself before completion to_s.
22
+ # feature: 08-Aug-2020 Implemented #to_Webpage
23
+ # improvement: 23-Apr-2020 A self-closing sidenav tag is now valid
24
+ # feature: 01-Mar-2020 A src attribute can now be used in the sidenav tag
18
25
  # feature: 29-Feb-2020 The sidenav tag can now contain a raw hierachical list
19
26
  # feature: 22-Jan-2020 An HtmlCom::Accordion component can now be generated
20
27
  # using the tag <accordion>
@@ -112,10 +119,11 @@ class Martile
112
119
  #puts 's1 : ' + s1.inspect
113
120
  s40 = apply_filter(s30) {|x| code_block_to_html(x.strip + "\n") }
114
121
 
122
+ s45 = s40.gsub(/<pre[^>]*>/,'\0{::nomarkdown2}').gsub(/<\/pre>/,'{:2/}\0')
115
123
  #puts 's2 : ' + s2.inspect
116
124
  #s3 = apply_filter(s2, %w(ol ul)) {|x| explicit_list_to_html x }
117
125
  #puts 's3 : ' + s3.inspect
118
- s50 = apply_filter(s40) {|x| ordered_list_to_html x }
126
+ s50 = apply_filter(s45) {|x| ordered_list_to_html x }
119
127
  #puts 's4 : ' + s4.inspect
120
128
 
121
129
  s60 = apply_filter(s50) {|x| unordered_list_to_html x }
@@ -157,10 +165,10 @@ class Martile
157
165
  s220 = apply_filter(s210) {|x| svgtag x }
158
166
  s230 = apply_filter(s220) {|x| embedtag x }
159
167
  s240 = apply_filter(s230) {|x| script_out x }
168
+ s245 = s240.gsub(/\{::nomarkdown2\}/,'').gsub(/\{:2\/\}/,'')
169
+ @to_s = s245.to_s
160
170
 
161
- @to_s = s240.to_s
162
-
163
- s250 = apply_filter(s240) {|x| nomarkdown x }
171
+ s250 = apply_filter(s245) {|x| nomarkdown x }
164
172
  s252 = sidenav(s250)
165
173
  s253 = bang_xml(s252)
166
174
  puts ('s235 after bang_xml: ' + s253.inspect).debug if @debug
@@ -231,6 +239,30 @@ class Martile
231
239
  @js.join("\n")
232
240
  end
233
241
 
242
+ def to_webpage()
243
+
244
+ a = RexleBuilder.build do |xml|
245
+ xml.html do
246
+ xml.head do
247
+ xml.meta name: "viewport", content: \
248
+ "width=device-width, initial-scale=1"
249
+ xml.style "\nbody {font-family: Arial;}\n\n" + @css.join("\n")
250
+ end
251
+ xml.body to_html()
252
+ end
253
+ end
254
+
255
+ doc = Rexle.new(a)
256
+
257
+ doc.root.element('body').add \
258
+ Rexle::Element.new('script').add_text "\n" +
259
+ @js.join("\n").gsub(/^ +\/\/[^\n]+\n/,'')
260
+
261
+ "<!DOCTYPE html>\n" + doc.xml(pretty: true, declaration: false)\
262
+ .gsub(/<\/div>/,'\0' + "\n").gsub(/\n *<!--[^>]+>/,'')
263
+
264
+ end
265
+
234
266
  private
235
267
 
236
268
  def accordion(s1)
@@ -475,15 +507,16 @@ class Martile
475
507
 
476
508
  @filter = []
477
509
 
478
- a = s.split(/(?=<pre)/).map.with_index do |row, i|
510
+ a = s.split(/(?=\{::nomarkdown2?\})/).map.with_index do |row, i|
479
511
 
480
- row.sub(/<pre.*<\/pre>/m) do |pattern|
512
+ row.sub(/\{::nomarkdown2?\}.*{:2?\/}/m) do |pattern|
481
513
  placeholder = '!' + Time.now.to_i.to_s + i.to_s
482
514
  @filter << [placeholder, pattern]
483
515
  placeholder
484
516
  end
485
517
 
486
518
  end
519
+
487
520
  a.join
488
521
 
489
522
  end
@@ -779,15 +812,23 @@ class Martile
779
812
  s = s1.clone
780
813
  if s =~ /^<sidenav/ then
781
814
 
782
- content = s[/<sidenav[^>]+>[^<]+<[^>]+>/]
815
+ content = s[/(<sidenav[^>]+\/>|<sidenav[^>]+>([^<]*<[^>]+>)?)/]
783
816
  puts ('content: ' + content.inspect) if @debug
784
817
 
785
818
  doc = if content then
786
819
 
787
820
  s.sub!(content,'')
788
821
  doc2 = Rexle.new(content)
789
- target = doc2.root.attributes[:target] || 'pgview'
790
- txt = doc2.root.text
822
+
823
+ h = doc2.root.attributes
824
+ target = h[:target] || 'pgview'
825
+
826
+ txt = if h[:src] then
827
+ RXFHelper.read(h[:src]).first.sub(/<\?links[^>]+>\n/,'')
828
+ else
829
+ doc2.root.text
830
+ end
831
+
791
832
  puts 'txt: ' + txt.inspect if @debug
792
833
 
793
834
  html = HtmlCom::Tree.new(txt).to_webpage
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: martile
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  g0+rPDPUCWKVNHo7BG5zGRDcLsJO0QeIILy/AQaSAE3lQiHmC47nhsiBK0qNehWa
36
36
  47XiKvz0ZVCGgrz4GEb723WC
37
37
  -----END CERTIFICATE-----
38
- date: 2020-02-29 00:00:00.000000000 Z
38
+ date: 2020-09-01 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: yatoc
@@ -118,27 +118,7 @@ dependencies:
118
118
  - !ruby/object:Gem::Version
119
119
  version: 0.1.6
120
120
  - !ruby/object:Gem::Dependency
121
- name: jsmenubuilder
122
- requirement: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: '0.2'
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: 0.2.10
130
- type: :runtime
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
135
- - !ruby/object:Gem::Version
136
- version: '0.2'
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 0.2.10
140
- - !ruby/object:Gem::Dependency
141
- name: jstreebuilder
121
+ name: htmlcom
142
122
  requirement: !ruby/object:Gem::Requirement
143
123
  requirements:
144
124
  - - "~>"
@@ -146,7 +126,7 @@ dependencies:
146
126
  version: '0.2'
147
127
  - - ">="
148
128
  - !ruby/object:Gem::Version
149
- version: 0.2.2
129
+ version: 0.2.4
150
130
  type: :runtime
151
131
  prerelease: false
152
132
  version_requirements: !ruby/object:Gem::Requirement
@@ -156,27 +136,7 @@ dependencies:
156
136
  version: '0.2'
157
137
  - - ">="
158
138
  - !ruby/object:Gem::Version
159
- version: 0.2.2
160
- - !ruby/object:Gem::Dependency
161
- name: htmlcom
162
- requirement: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: 0.2.0
167
- - - "~>"
168
- - !ruby/object:Gem::Version
169
- version: '0.2'
170
- type: :runtime
171
- prerelease: false
172
- version_requirements: !ruby/object:Gem::Requirement
173
- requirements:
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: 0.2.0
177
- - - "~>"
178
- - !ruby/object:Gem::Version
179
- version: '0.2'
139
+ version: 0.2.4
180
140
  description:
181
141
  email: james@jamesrobertson.eu
182
142
  executables: []
metadata.gz.sig CHANGED
Binary file