aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2014-06-19 19:28:58 -0400
committerRalph Amissah <ralph@amissah.com>2014-06-19 19:29:18 -0400
commit64d8e1b14101d973d4412bf50b24be8cfb425627 (patch)
tree965609811ffdb5f106bb3064087062988bf512e4
parentv5 v6: ao, Symbol to match grouped text open & close (instead of String) (diff)
v5 v6: ao, introduce way of removing unrecognized tic markers
* this is to provide some forward compatibility with new markup (unrecognized new tic marks are removed) * noisy, reports to screen on tics that are to be removed, unless quiet is on * review
-rw-r--r--data/doc/sisu/CHANGELOG_v51
-rw-r--r--data/doc/sisu/CHANGELOG_v61
-rw-r--r--lib/sisu/v5/ao_misc_arrange.rb37
-rw-r--r--lib/sisu/v6/ao_misc_arrange.rb37
4 files changed, 56 insertions, 20 deletions
diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5
index 010b9189..74dd197e 100644
--- a/data/doc/sisu/CHANGELOG_v5
+++ b/data/doc/sisu/CHANGELOG_v5
@@ -41,6 +41,7 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.4.1.orig.tar.xz
* ao,
* regex match for tics "```" followed by space tweaked
* Symbol to match grouped text open & close (instead of String)
+ * introduce way of removing unrecognized tic markers
* turn id numbers (for tags) into a hash
* code blocks, clean trailing newlines
* misc, minorish
diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6
index ed9bac41..ce7b2e89 100644
--- a/data/doc/sisu/CHANGELOG_v6
+++ b/data/doc/sisu/CHANGELOG_v6
@@ -31,6 +31,7 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.0.8.orig.tar.xz
* ao,
* regex match for tics "```" followed by space tweaked
* Symbol to match grouped text open & close (instead of String)
+ * introduce way of removing unrecognized tic markers
* turn id numbers (for tags) into a hash
* code blocks, clean trailing newlines
* misc, minorish
diff --git a/lib/sisu/v5/ao_misc_arrange.rb b/lib/sisu/v5/ao_misc_arrange.rb
index 03d1e735..419241e1 100644
--- a/lib/sisu/v5/ao_misc_arrange.rb
+++ b/lib/sisu/v5/ao_misc_arrange.rb
@@ -74,24 +74,28 @@ module SiSU_AO_MiscArrangeText
end
para
end
- def code_blocks(para)
+ def markup_blocks(para)
def ticks(para)
block_open,block_close,text=nil,nil,nil
- if para =~/\A```[ ]+.+?\n.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m
- block_open,text,block_close=/\A(```[ ]+.+?)\n(.+?)\n(```(\s+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1..3]
+ if para =~/\A```[ ]+(?:code|poem|alt|group|block|table).*?\n.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m
+ @flag=:close
+ block_open,text,block_close=/\A(```[ ]+(?:code|poem|alt|group|block|table).*?)\n(.+?)\n(```([ ]+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1..3]
((para=~/^```[ ]+table(?:~h)?\s+/) \
and (para !~/^```[ ]+table(?:~h)?\s+c\d+/)) \
? para
: (para=[]; para << block_open << text << block_close)
- elsif para =~/\A```[ ]+.+?\n.*?\Z/m #look at, study
- block_open,text=/\A(```(?:\s+.+?))\n(.*?)\Z/m.match(para)[1,2]
+ elsif para =~/\A```[ ]+(?:code|poem|alt|group|block|table).*?\n.*?\Z/m #look at, study
+ @flag=:open
+ block_open,text=/\A(```(?:[ ]+.+?))\n(.*?)\Z/m.match(para)[1,2]
para=[]
if not text.to_s.empty?
para << block_open << text
else
para << block_open
end
- elsif para =~/\A.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m
+ elsif para =~/\A.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m \
+ and @flag==:open
+ @flag=:close
text,block_close=/\A(.+?)\n(```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1,2]
para=[]
if not text.to_s.empty?
@@ -103,6 +107,14 @@ module SiSU_AO_MiscArrangeText
end
para
end
+ def ticks_remove(para)
+ unless @md.opt.act[:quiet][:set] ==:on
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).mark("ticks not recognized, ticks removed from pargraph\n#{para}")
+ end
+ para=para.gsub(/```[ ]+\S+[ ]*/m,'').
+ gsub(/```\s*/m,'').
+ strip
+ end
def curly_braces(para)
block_open,block_close,text=nil,nil,nil
para=if para =~/\A(?:code|poem|alt|group|block|table)\{ .+?\n.+?\n\}(?:code|poem|alt|group|block|table)(?: [~-][#])?\s*\Z/m
@@ -129,9 +141,14 @@ module SiSU_AO_MiscArrangeText
end
para
end
- para=para =~/^```/m \
- ? ticks(para)
- : para
+ para=if para =~/\A```[ ]+(?:code|poem|alt|group|block|table).*?\n.*?\Z/m \
+ or @flag==:open
+ ticks(para)
+ elsif para =~/```/m
+ ticks_remove(para)
+ else
+ para
+ end
para=(para =~/^(?:code|poem|alt|group|block|table)\{|^\}(?:code|poem|alt|group|block|table)/m) \
? curly_braces(para)
: para
@@ -149,7 +166,7 @@ module SiSU_AO_MiscArrangeText
end
data.each do |para|
para=conditional_headings(para)
- data_new << code_blocks(para)
+ data_new << markup_blocks(para)
end
data_new=data_new.flatten
end
diff --git a/lib/sisu/v6/ao_misc_arrange.rb b/lib/sisu/v6/ao_misc_arrange.rb
index d30176bf..e58ce72a 100644
--- a/lib/sisu/v6/ao_misc_arrange.rb
+++ b/lib/sisu/v6/ao_misc_arrange.rb
@@ -74,24 +74,28 @@ module SiSU_AO_MiscArrangeText
end
para
end
- def code_blocks(para)
+ def markup_blocks(para)
def ticks(para)
block_open,block_close,text=nil,nil,nil
- if para =~/\A```[ ]+.+?\n.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m
- block_open,text,block_close=/\A(```[ ]+.+?)\n(.+?)\n(```(\s+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1..3]
+ if para =~/\A```[ ]+(?:code|poem|alt|group|block|table).*?\n.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m
+ @flag=:close
+ block_open,text,block_close=/\A(```[ ]+(?:code|poem|alt|group|block|table).*?)\n(.+?)\n(```([ ]+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1..3]
((para=~/^```[ ]+table(?:~h)?\s+/) \
and (para !~/^```[ ]+table(?:~h)?\s+c\d+/)) \
? para
: (para=[]; para << block_open << text << block_close)
- elsif para =~/\A```[ ]+.+?\n.*?\Z/m #look at, study
- block_open,text=/\A(```(?:\s+.+?))\n(.*?)\Z/m.match(para)[1,2]
+ elsif para =~/\A```[ ]+(?:code|poem|alt|group|block|table).*?\n.*?\Z/m #look at, study
+ @flag=:open
+ block_open,text=/\A(```(?:[ ]+.+?))\n(.*?)\Z/m.match(para)[1,2]
para=[]
if not text.to_s.empty?
para << block_open << text
else
para << block_open
end
- elsif para =~/\A.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m
+ elsif para =~/\A.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m \
+ and @flag==:open
+ @flag=:close
text,block_close=/\A(.+?)\n(```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1,2]
para=[]
if not text.to_s.empty?
@@ -103,6 +107,14 @@ module SiSU_AO_MiscArrangeText
end
para
end
+ def ticks_remove(para)
+ unless @md.opt.act[:quiet][:set] ==:on
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).mark("ticks not recognized, ticks removed from pargraph\n#{para}")
+ end
+ para=para.gsub(/```[ ]+\S+[ ]*/m,'').
+ gsub(/```\s*/m,'').
+ strip
+ end
def curly_braces(para)
block_open,block_close,text=nil,nil,nil
para=if para =~/\A(?:code|poem|alt|group|block|table)\{ .+?\n.+?\n\}(?:code|poem|alt|group|block|table)(?: [~-][#])?\s*\Z/m
@@ -129,9 +141,14 @@ module SiSU_AO_MiscArrangeText
end
para
end
- para=para =~/^```/m \
- ? ticks(para)
- : para
+ para=if para =~/\A```[ ]+(?:code|poem|alt|group|block|table).*?\n.*?\Z/m \
+ or @flag==:open
+ ticks(para)
+ elsif para =~/```/m
+ ticks_remove(para)
+ else
+ para
+ end
para=(para =~/^(?:code|poem|alt|group|block|table)\{|^\}(?:code|poem|alt|group|block|table)/m) \
? curly_braces(para)
: para
@@ -149,7 +166,7 @@ module SiSU_AO_MiscArrangeText
end
data.each do |para|
para=conditional_headings(para)
- data_new << code_blocks(para)
+ data_new << markup_blocks(para)
end
data_new=data_new.flatten
end