martile 0.1.18 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 339380ee009e8a63eae2a98a26cf9839e11fcc97
4
- data.tar.gz: 34e6c37ce50f8a1c56dae1fb35c2defe3bd0f353
3
+ metadata.gz: 2f4862ef60a703fe5f68077061c8f565ed46db14
4
+ data.tar.gz: 957ce7bdb00fe10a977c20db69f6ff24f66c1f9b
5
5
  SHA512:
6
- metadata.gz: 15e947424e98f3af28445b57c6d1f6c4bc45b7adcc238ee238bad75aafafda1807d5cc1e411d471576a6ac4fe7564751ed2a08ebabd61b1eace8f5e82d565c9d
7
- data.tar.gz: f95bfdda9cbe9e7b0529e4b204ab3f8308c26bfd2f480938d9b05e211d28bfaea0b302340b90035763f81b104ecfcb7aa1092abb02adf79fe734ce6d4a9cc332
6
+ metadata.gz: 3937246b2ed64c544e53ca4b380ef3b77c9846a2acf704b84cbc4739eaeb208dfe42b4fbf3d55c6695e2290d237ba419bab5dc9d02b3c0e1a725d8a27e563a89
7
+ data.tar.gz: 29377f95bf39cca5e0da254adc719541d1aa4e592cbf44c93e6f7d240179749f9daee0b7130cbb945f863166087606f308150ea23b0105bc74aba5f6803a70e4
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/martile.rb CHANGED
@@ -8,6 +8,8 @@ require 'dynarex'
8
8
  require 'rdiscount'
9
9
 
10
10
 
11
+ # feature: 04-Oct-2013: angle brackets within <pre><code> blocks are
12
+ # escaped automatically
11
13
  # feature: 03-Oct-2013: HTML tags now handled
12
14
  # bug fix: 25-Sep-2013: removed the new line statement from the join command.
13
15
  # headings etc. should no longer be split with a new line
@@ -27,7 +29,16 @@ class Martile
27
29
  attr_reader :to_html
28
30
 
29
31
  def initialize(s)
30
- s2 = filter_out_html(s, :code_block_to_html)
32
+ raw_s2 = filter_out_html(s, :code_block_to_html)
33
+
34
+ # ensure all angle brackets within <pre><code> is escaped
35
+ s2 = raw_s2.split(/(?=<pre><code>)/m).map { |y|
36
+ y.sub(/<pre><code>(.*)<\/code><\/pre>/m) do |x|
37
+ s3 = ($1)
38
+ "<pre><code>%s</code></pre>" % s3.gsub(/</,'&lt;').gsub(/>/,'&gt;')
39
+ end
40
+ }.join
41
+
31
42
  #puts 's2 : ' + s2.inspect
32
43
  s3 = filter_out_html(s2, :ordered_list_to_html)
33
44
  #puts 's3 : ' + s3.inspect
@@ -47,14 +58,15 @@ class Martile
47
58
  b =[]
48
59
 
49
60
  while s =~ /^ {4}/ do
50
-
61
+
51
62
  a = s.lines.to_a
52
63
  r = a.take_while{|x| x[/^( {4}|\n)/]}
53
64
 
54
- if r.join.strip.length > 0 then
55
- code_block = "<pre><code>%s</code></pre>" % \
56
- a.shift(r.length).map{|x| x.sub(/^ {4}/,'')}.join\
57
- .gsub('<','&lt;').gsub('>','&gt;')
65
+ if r.join.strip.length > 0 then
66
+ raw_code = a.shift(r.length).map{|x| x.sub(/^ {4}/,'')}.join
67
+
68
+ code_block = "<pre><code>%s</code></pre>" % raw_code
69
+
58
70
  b << code_block
59
71
  s = a.join
60
72
  i = r.length
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: 0.1.18
4
+ version: 0.1.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -73,6 +73,20 @@ dependencies:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: dynarex
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
76
90
  description:
77
91
  email: james@r0bertson.co.uk
78
92
  executables: []
metadata.gz.sig CHANGED
Binary file