octopress-escape-code 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +7 -0
- data/lib/octopress-escape-code/version.rb +1 -1
- data/lib/octopress-escape-code.rb +17 -5
- data/octopress-escape-code.gemspec +4 -1
- data/test/_expected/index.html +10 -6
- data/test/index.md +4 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 080cc036a9e132f9d0b5f6c4c7531e59e63d134a
|
4
|
+
data.tar.gz: 447d073260a2e42364acb4b929edd8749c2e67a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64a4526d32f633c54b0fc7635b675d588ee5c32ffbb00073b9d1c29d396c975649cc2288e9b1bac5b5854b3ce95c949bb91ce51fbbbb99a416321e9340f91e03
|
7
|
+
data.tar.gz: 131b1115d49a0f29ad0c63be42f41a5930bece31344ce4766f9610e15125bc9f49ecdbb4d42e26c4507e70b495d2be63c514da1c7a52ab17b136052240e7c0dc
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
### 1.0.3 - 2014-12-10
|
4
|
+
|
5
|
+
Fixes:
|
6
|
+
- Random tabs don't trigger escapes.
|
7
|
+
- Raw tags inside of code fences are properly stripped.
|
8
|
+
- Double in-line code backticks are properly escaped.
|
9
|
+
|
3
10
|
### 1.0.2 - 2014-9-13
|
4
11
|
- Fix: Removing extra raw tags in markdown code blocks.
|
5
12
|
|
@@ -39,17 +39,22 @@ module Octopress
|
|
39
39
|
if md_ext.include?(ext)
|
40
40
|
|
41
41
|
# Escape four space indented code blocks
|
42
|
-
content = content.gsub /^(
|
42
|
+
content = content.gsub /^( {4}[^\n].+?)\n($|\S)/m do
|
43
43
|
"{% raw %}\n#{$1}\n{% endraw %}\n#{$2}"
|
44
44
|
end
|
45
45
|
|
46
46
|
# Escape tab indented code blocks
|
47
|
-
content = content.gsub /^(\t.+?)\n($|\S)/m do
|
47
|
+
content = content.gsub /^(\t[^\n].+?)\n($|\S)/m do
|
48
48
|
"{% raw %}\n#{$1}\n{% endraw %}\n#{$2}"
|
49
49
|
end
|
50
50
|
|
51
51
|
# Escape in-line code backticks
|
52
|
-
content = content.gsub /(`
|
52
|
+
content = content.gsub /(`[^`\n]+?`)/ do
|
53
|
+
"{% raw %}#{$1}{% endraw %}"
|
54
|
+
end
|
55
|
+
|
56
|
+
# Escape in-line code double backticks
|
57
|
+
content = content.gsub /(``[^\n]+?``)/ do
|
53
58
|
"{% raw %}#{$1}{% endraw %}"
|
54
59
|
end
|
55
60
|
|
@@ -57,8 +62,15 @@ module Octopress
|
|
57
62
|
|
58
63
|
# Escape codefenced codeblocks
|
59
64
|
content = content.gsub /^(`{3}.+?`{3})/m do
|
60
|
-
|
61
|
-
|
65
|
+
|
66
|
+
# Replace any raw/endraw tags inside of codefence block
|
67
|
+
# as some of the regex above may have escaped contents
|
68
|
+
# of the codefence block
|
69
|
+
#
|
70
|
+
code = $1.gsub(/{% raw %}(\n)?/, '').gsub(/(\n)?{% endraw %}/, '')
|
71
|
+
|
72
|
+
# Wrap codefence content in raw tags
|
73
|
+
"{% raw %}\n#{code}\n{% endraw %}"
|
62
74
|
end
|
63
75
|
|
64
76
|
# Escape codeblock tag contents
|
@@ -23,6 +23,9 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency "clash"
|
26
|
-
spec.add_development_dependency "pry-byebug"
|
27
26
|
spec.add_development_dependency "octopress-codeblock"
|
27
|
+
|
28
|
+
if RUBY_VERSION >= "2"
|
29
|
+
spec.add_development_dependency "pry-byebug"
|
30
|
+
end
|
28
31
|
end
|
data/test/_expected/index.html
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
<p>Some text</p>
|
2
|
-
<div class="highlight"><pre><code class="language-text" data-lang="text">
|
3
|
-
|
2
|
+
<div class="highlight"><pre><code class="language-text" data-lang="text"> `stuff`
|
3
|
+
Some kind of example:
|
4
|
+
{% some tag that should break %}
|
4
5
|
Stuff!
|
5
6
|
</code></pre></div>
|
6
7
|
<p>guys!</p>
|
7
8
|
|
8
|
-
<p>Testing the <code>dobule ` type</code> of code thing.</p>
|
9
|
+
<p>Testing the <code>dobule {% _guys_ seriously? %} ` type</code> of code thing.</p>
|
10
|
+
|
11
|
+
<p>The random tab character below shouldn't trigger an escape.</p>
|
9
12
|
|
10
13
|
<p>So here's a <code>{% nonexistant tag %}</code> that should be escaped.</p>
|
11
14
|
|
@@ -14,9 +17,10 @@ Stuff!
|
|
14
17
|
Stuff!</code></pre></div>
|
15
18
|
|
16
19
|
<figure class='code-highlight-figure'><figcaption class='code-highlight-caption'><span class='code-highlight-caption-title'>html</span></figcaption><div class='code-highlight'><pre class='code-highlight-pre'><div data-line='1' class='code-highlight-row numbered'><div class='code-highlight-line'>Some kind of example:
|
17
|
-
</div></div><div data-line='2' class='code-highlight-row numbered'><div class='code-highlight-line'
|
18
|
-
</div></div><div data-line='3' class='code-highlight-row numbered'><div class='code-highlight-line'
|
20
|
+
</div></div><div data-line='2' class='code-highlight-row numbered'><div class='code-highlight-line'> stuff
|
21
|
+
</div></div><div data-line='3' class='code-highlight-row numbered'><div class='code-highlight-line'>{% some tag that should break %}
|
22
|
+
</div></div><div data-line='4' class='code-highlight-row numbered'><div class='code-highlight-line'>Stuff!</div></div></pre></div></figure>
|
19
23
|
<div class="highlight"><pre><code class="language-text" data-lang="text">stuff
|
20
|
-
|
24
|
+
{% foo %}
|
21
25
|
</code></pre></div>
|
22
26
|
<p>some text</p>
|
data/test/index.md
CHANGED
@@ -5,14 +5,17 @@ escape_code: true
|
|
5
5
|
Some text
|
6
6
|
|
7
7
|
```
|
8
|
+
`stuff`
|
8
9
|
Some kind of example:
|
9
10
|
{% some tag that should break %}
|
10
11
|
Stuff!
|
11
12
|
```
|
12
13
|
guys!
|
13
14
|
|
14
|
-
Testing the ``dobule ` type`` of code thing.
|
15
|
+
Testing the ``dobule {% _guys_ seriously? %} ` type`` of code thing.
|
15
16
|
|
17
|
+
The random tab character below shouldn't trigger an escape.
|
18
|
+
|
16
19
|
So here's a `{% nonexistant tag %}` that should be escaped.
|
17
20
|
|
18
21
|
{% highlight html %}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-escape-code
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octopress-hooks
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: octopress-codeblock
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: pry-byebug
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|