diff options
| author | Ralph Amissah <ralph@amissah.com> | 2010-04-30 19:52:57 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2010-04-30 19:52:57 -0400 | 
| commit | 88029687c9ad611c1f2c70f789347605dc2041c3 (patch) | |
| tree | 946d9070e224868df464da3112a5fc94200a759c | |
| parent | markup for *{emphasis}* configurable as being either bold or italics (diff) | |
emphasis display and plaintext line wrap configurable in document or sis
* markup for *{emphasis}* configurable as being displayed either bold or
  italics, the default is that emphasis output is in bold so there is no
  at present unless configured, either in sisurc.yml (default: emphasis:
  'italics'), or the markup source document header @make: :emphasis: 'it
  [requested]
* plaintext, wrap width configurable between 20 to 200 characters, the
  default width being 78, configuration eithe rin sisurc.yml (default: t
  78), or the markup source document header (@make: :plaintext_wrap: 78)
| -rw-r--r-- | lib/sisu/v2/constants.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v2/dal_syntax.rb | 9 | ||||
| -rw-r--r-- | lib/sisu/v2/param.rb | 13 | ||||
| -rw-r--r-- | lib/sisu/v2/plaintext.rb | 53 | ||||
| -rw-r--r-- | lib/sisu/v2/sysenv.rb | 15 | 
5 files changed, 64 insertions, 28 deletions
| diff --git a/lib/sisu/v2/constants.rb b/lib/sisu/v2/constants.rb index 83914038..7fc3b056 100644 --- a/lib/sisu/v2/constants.rb +++ b/lib/sisu/v2/constants.rb @@ -114,6 +114,8 @@ Dx[:rel_o]='‹';   Dx[:rel_c]='›'  Tex[:backslash]="\\\\"  Tex[:backslash]="\\\\"  Tex[:tilde]='\\\\\\~' +#Px[:emphasis_o]=   '*';     Px[:emphasis_c]=   '*' +#Px[:bold_o]=       '!';     Px[:bold_c]=       '!'  Px[:bold_o]=       '*';     Px[:bold_c]=       '*'  Px[:italics_o]=    '/';     Px[:italics_c]=    '/'  Px[:underscore_o]= '_';     Px[:underscore_c]= '_' diff --git a/lib/sisu/v2/dal_syntax.rb b/lib/sisu/v2/dal_syntax.rb index dd83ef3b..59620856 100644 --- a/lib/sisu/v2/dal_syntax.rb +++ b/lib/sisu/v2/dal_syntax.rb @@ -70,11 +70,14 @@ module SiSU_Syntax        url_and_stub=SiSU_Env::Info_env.new.url        @output_url="#{url_and_stub.remote}"        @env=SiSU_Env::Info_env.new -      @emph=(@env.markup_emphasis =~/italics/) \ +      emph_italics=((@env.markup_emphasis =~/italics/) \ +      || (defined? @md.make.emphasis && @md.make.emphasis =~/italics/)) \ +      ? true : false +      @emph=emph_italics \        ? ({:o =>Mx[:fa_italics_o], :c =>Mx[:fa_italics_c] }) \        : ({:o =>Mx[:fa_bold_o], :c =>Mx[:fa_bold_c] })        @http_m=%r{\{.+?\}https?://\S+|https?:\S+|\.\.\/\S+|\S+?\.png\b|[*]~\S+|^#{Mx[:meta_o]}.+|#{Mx[:gr_o]}(?:code|group|alt|verse)(?:-end)?#{Mx[:gr_c]}|#{Mx[:fa_o]}:br#{Mx[:fa_c]}} -      @manmkp_ital=(@env.markup_emphasis =~/italics/) \ +      @manmkp_ital=emph_italics \        ? '[i/*]\\{.+?\\}[i/*]' \        : '[i/]\\{.+?\\}[i/]'        tail_m_ital=%q{(?:\s|[.,;:?!'")]|~\^|~\\\{\s|$)} @@ -89,7 +92,7 @@ module SiSU_Syntax        elsif defined? @vz.markup_make_italic[:str]          /#{@http_m}|#{bold_line}|#{@manmkp_ital}#{tail_m_ital}|#{@vz.markup_make_italic[:str]}#{tail_m_ital}|\S+|\n/        end -      @manmkp_bold=(@env.markup_emphasis =~/italics/) \ +      @manmkp_bold=emph_italics \        ? '^!_\s.+?(?:\n|$)|[!b]\\{.+?\\}[*!b]|[*!][a-zA-Z0-9\-_]+[!]' \        : '^!_\s.+?(?:\n|$)|[*!b]\\{.+?\\}[*!b]|[*!][a-zA-Z0-9\-_]+[*!]'        @line_scan_bold=if (defined? @md.make.bold[:str] \ diff --git a/lib/sisu/v2/param.rb b/lib/sisu/v2/param.rb index a59ac8ff..fc24501a 100644 --- a/lib/sisu/v2/param.rb +++ b/lib/sisu/v2/param.rb @@ -657,6 +657,19 @@ module SiSU_Param            y=((x =~/i/) ? (/#{rgx}/i) : (/#{rgx}/))            { :str =>'\b(?:' + m + ')\b', :regx => y }          end +        def emphasis +          (@h['emphasis'] =~/italics?/) \ +          ? 'italics' \ +          : 'bold' +        end +        def plaintext_wrap +          if @h['plaintext_wrap'].to_s =~/\d\d+/ \ +          and @h['plaintext_wrap'].to_i > 19 \ +          and @h['plaintext_wrap'].to_i < 201 +            @h['plaintext_wrap'].to_i +          else nil +          end +        end          def skin            @h['skin']          end diff --git a/lib/sisu/v2/plaintext.rb b/lib/sisu/v2/plaintext.rb index 851da3f8..c69490ab 100644 --- a/lib/sisu/v2/plaintext.rb +++ b/lib/sisu/v2/plaintext.rb @@ -79,20 +79,29 @@ module SiSU_Plaintext      end      def read        begin -        @md=SiSU_Param::Parameters.new(@opt).get -        @env=SiSU_Env::Info_env.new(@opt.fns) -        path=@env.path.output_tell -        tool=if @opt.cmd =~/[MVv]/; "#{@env.program.text_editor} #{path}/#{@md.fnb}/#{@md.fn[:plain]}" +        md=SiSU_Param::Parameters.new(@opt).get +        env=SiSU_Env::Info_env.new(@opt.fns) +        path=env.path.output_tell +        tool=if @opt.cmd =~/[MVv]/; "#{env.program.text_editor} #{path}/#{md.fnb}/#{md.fn[:plain]}"          else ''          end          tell=SiSU_Screen::Ansi.new(@opt.cmd,'Plaintext',tool)          tell.green_hi_blue unless @opt.cmd =~/q/ -        tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@env.path.output_tell}/#{@md.fnb}/#{@md.fn[:plain]}") +        tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{env.path.output_tell}/#{md.fnb}/#{md.fn[:plain]}")          tell.flow if @opt.cmd =~/[MV]/          my_make=SiSU_Env::Create_file.new(@opt.cmd,@opt.fns) -        @dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here -        SiSU_Plaintext::Source::Scroll.new(@dal_array,@md).songsheet -        SiSU_Env::Info_skin.new(@md).select #watch +        dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here +        wrap_width=if defined? md.make.plaintext_wrap \ +        and md.make.plaintext_wrap +          md.make.plaintext_wrap +        elsif defined? env.plaintext_wrap \ +        and env.plaintext_wrap +          env.plaintext_wrap +        else 78 +        end +        #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78 +        SiSU_Plaintext::Source::Scroll.new(dal_array,md,wrap_width).songsheet +        SiSU_Env::Info_skin.new(md).select #watch        rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error        ensure        end @@ -103,8 +112,8 @@ module SiSU_Plaintext        require "#{SiSU_lib}/shared_txt"                     # shared_txt.rb        include SiSU_text_utils        @@endnotes={ :para=>[],:end=>[] } -      def initialize(data,md) -        @data,@md=data,md +      def initialize(data,md,wrap_width) +        @data,@md,@wrap_width=data,md,wrap_width          @brace_url=SiSU_Viz::Skin.new.url_decoration          @vz=SiSU_Env::Get_init.instance.skin          @tab="\t" @@ -141,9 +150,9 @@ module SiSU_Plaintext          end          notes=@n.flatten          notes.each do |e| -          util=if e.to_s =~/^\[[\d*+]+\]:/; SiSU_text_utils::Wrap.new(e.to_s,78,4,1) -          else                              SiSU_text_utils::Wrap.new(e.to_s,78,1,1) -          end +          util=(e.to_s =~/^\[[\d*+]+\]:/) \ +          ? (SiSU_text_utils::Wrap.new(e.to_s,@wrap_width,4,1)) \ +          : (SiSU_text_utils::Wrap.new(e.to_s,@wrap_width,1,1))            wrap=util.line_wrap            if wrap =~ /^\s*[\d*+]+\s+.+?\s*\Z/m              wrap.gsub!(/^(\s*)([\d*+]+)\s+(.+?)\s*\Z/m, <<GSUB @@ -166,7 +175,7 @@ GSUB          array.each do |meta|            tag,inf=meta.scan(/^.+?:\s|.+/)            if tag and inf -            util=SiSU_text_utils::Wrap.new(inf,78,15,1) +            util=SiSU_text_utils::Wrap.new(inf,@wrap_width,15,1)              txt=util.line_wrap              @plaintext[:metadata] <<<<WOK @@ -220,22 +229,22 @@ WOK            if dob.is=='para'              if dob.indent =~/[1-9]/                util=if dob.bullet_ -                SiSU_text_utils::Wrap.new("* #{dob.obj}",78,dob.indent.to_i*2) -              else SiSU_text_utils::Wrap.new(dob.obj,78,dob.indent.to_i*2) +                SiSU_text_utils::Wrap.new("* #{dob.obj}",@wrap_width,dob.indent.to_i*2) +              else SiSU_text_utils::Wrap.new(dob.obj,@wrap_width,dob.indent.to_i*2)                end              else                util=if dob.bullet_ -                SiSU_text_utils::Wrap.new("* #{dob.obj}",78,0) -              else SiSU_text_utils::Wrap.new(dob.obj,78,0) +                SiSU_text_utils::Wrap.new("* #{dob.obj}",@wrap_width,0) +              else SiSU_text_utils::Wrap.new(dob.obj,@wrap_width,0)                end              end -          else util=SiSU_text_utils::Wrap.new(dob.obj,78,0) +          else util=SiSU_text_utils::Wrap.new(dob.obj,@wrap_width,0)            end            util.line_wrap          end          if lv            times=wrapped.length -          times=78 if times > 78 +          times=@wrap_width if times > @wrap_width            @plaintext[:body] << case lv            when 1;      wrapped.upcase << @br << Px[:lv1]*times << @br            when 2;      wrapped.upcase << @br << Px[:lv2]*times << @br @@ -356,9 +365,9 @@ WOK          content << plaintext[:head]          content << plaintext[:body]          content << @@endnotes[:end] if @@endnotes_ -        content << "#{@br}#{divider*78}#{@br}" +        content << "#{@br}#{divider*@wrap_width}#{@br}"          content << plaintext[:metadata] -        content << "#{@br}#{divider*78}#{@br}" if @md.stmp =~/\w+/ #not used? +        content << "#{@br}#{divider*@wrap_width}#{@br}" if @md.stmp =~/\w+/ #not used?          content << plaintext[:owner_details] if @md.stmp =~/\w+/ #not used?          content << plaintext[:tail]          Output.new(content,@md).plaintext diff --git a/lib/sisu/v2/sysenv.rb b/lib/sisu/v2/sysenv.rb index c5bc63c2..4a2f7ee0 100644 --- a/lib/sisu/v2/sysenv.rb +++ b/lib/sisu/v2/sysenv.rb @@ -876,12 +876,21 @@ module SiSU_Env        : (defaults[:concord_max])      end      def markup_emphasis -      ((defined? @rc['markup']['emphasis']) \ -      && @rc['markup']['emphasis'] \ -      && (@rc['markup']['emphasis']=~/italic/)) \ +      ((defined? @rc['default']['emphasis']) \ +      && @rc['default']['emphasis'] \ +      && (@rc['default']['emphasis']=~/italic/)) \        ? 'italics' \        : 'bold'      end +    def plaintext_wrap +      ((defined? @rc['default']['text_wrap']) \ +      && (@rc['default']['text_wrap']) \ +      && (@rc['default']['text_wrap'].to_s=~/\d\d+/) \ +      && (@rc['default']['text_wrap'].to_i > 19) \ +      && (@rc['default']['text_wrap'].to_i < 201)) \ +      ? @rc['default']['text_wrap'].to_i \ +      : 78 +    end      def current_document        @@current_document||=Dir.pwd        @@current_document | 
