diff options
| author | Ralph Amissah <ralph@amissah.com> | 2014-06-19 19:28:58 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2014-06-19 19:29:18 -0400 | 
| commit | 64d8e1b14101d973d4412bf50b24be8cfb425627 (patch) | |
| tree | 965609811ffdb5f106bb3064087062988bf512e4 /lib | |
| parent | v5 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
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v5/ao_misc_arrange.rb | 37 | ||||
| -rw-r--r-- | lib/sisu/v6/ao_misc_arrange.rb | 37 | 
2 files changed, 54 insertions, 20 deletions
| 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 | 
