diff options
Diffstat (limited to 'lib/sisu/v2/param.rb')
-rw-r--r-- | lib/sisu/v2/param.rb | 89 |
1 files changed, 47 insertions, 42 deletions
diff --git a/lib/sisu/v2/param.rb b/lib/sisu/v2/param.rb index a59ac8ff..3db97340 100644 --- a/lib/sisu/v2/param.rb +++ b/lib/sisu/v2/param.rb @@ -106,8 +106,7 @@ module SiSU_Param @md end if defined? @md.title.main # on removal check problems with -U - tell=SiSU_Screen::Ansi.new(@cmd,param_msg,@md.title.main) - tell.txt_grey if @cmd =~/[MVv]/ + SiSU_Screen::Ansi.new(@cmd,param_msg,@md.title.main).txt_grey if @cmd =~/[MVv]/ end @@md=@md else @@md @@ -162,8 +161,7 @@ module SiSU_Param puts "#{n} is #{s.class}: programming error, String expected #{__FILE__}:#{__LINE__}" s else - tell=SiSU_Screen::Ansi.new('v',"#{n} length #{s.length} exceeds set db field length #{l}, metadata dropped",@opt.fns) - tell.warn unless @opt.cmd =~/q/ + SiSU_Screen::Ansi.new('v',"#{n} length #{s.length} exceeds set db field length #{l}, metadata dropped",@opt.fns).warn unless @opt.cmd =~/q/ nil end end @@ -391,8 +389,7 @@ module SiSU_Param elsif @h['main'] @h['main'] else - tell=SiSU_Screen::Ansi.new(@cmd,'WARNING Document Copyright missing; provide @rights: :copyright:') - tell.warn unless @opt.cmd =~/q/ + SiSU_Screen::Ansi.new(@cmd,'WARNING Document Copyright missing; provide @rights: :copyright:').warn unless @opt.cmd =~/q/ '' end l,n=Db[:col_info_note],'rights.copyright.text' @@ -459,8 +456,7 @@ module SiSU_Param s +=' License: ' + copyright.license end if s.empty? - tell=SiSU_Screen::Ansi.new(@cmd,'WARNING Document Rights information missing; provide @rights: :copyright:') - tell.warn unless @opt.cmd =~/q/ + SiSU_Screen::Ansi.new(@cmd,'WARNING Document Rights information missing; provide @rights: :copyright:').warn unless @opt.cmd =~/q/ else l,n=Db[:col_info_note],'rights.all' validate_length(s,l,n) @@ -657,6 +653,21 @@ module SiSU_Param y=((x =~/i/) ? (/#{rgx}/i) : (/#{rgx}/)) { :str =>'\b(?:' + m + ')\b', :regx => y } end + def emphasis + if @h['emphasis'] =~/bold/; 'bold' + elsif @h['emphasis'] =~/italics?/; 'italics' + elsif @h['emphasis'] =~/under(?:line|score)/; 'underscore' + else nil + end + 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 @@ -857,16 +868,16 @@ module SiSU_Param fns_array=@data.dup skip unless fns_array # consider @markup_version=SiSU_Markup_type::Markup_identify.new(fns_array,@opt).markup_version? #% determine markup version - if fns_array[0] =~ /^(?:% )?(?:SiSU\s+(?:master\s+)?[\d.]*|sisu-[\d.]+)$/ #check markup and markup version - if fns_array[0] =~ /^(?:% )?(?:SiSU\s+(?:master\s+)?|sisu-)[\d.]+$/ #check markup and markup version - @markup_version_declared=fns_array[0].match(/^(?:% )?(?:SiSU\s+(?:master\s+)?|sisu-)([\d.]+)$/)[1] - sm_a,sm_b,sm_c=fns_array[0].match(/^(?:% )?(?:SiSU\s+(?:master\s+)?|sisu-)([0-9]+)?(?:\.([0-9]+))?(?:\.([0-9]+))?$/)[1..3] + if fns_array[0] =~ /^(?:%\s+)?(?:SiSU\s+(?:master\s+)?[\d.]*|sisu-[\d.]+)$/ #check markup and markup version + if fns_array[0] =~ /^(?:%\s+)?(?:SiSU\s+(?:master\s+)?|sisu-)[\d.]+$/ #check markup and markup version + @markup_version_declared=fns_array[0].match(/^(?:%\s+)?(?:SiSU\s+(?:master\s+)?|sisu-)([\d.]+)$/)[1] + sm_a,sm_b,sm_c=fns_array[0].match(/^(?:%\s+)?(?:SiSU\s+(?:master\s+)?|sisu-)([0-9]+)?(?:\.([0-9]+))?(?:\.([0-9]+))?$/)[1..3] sm_c ||=0 sv=(@cmd =~/[VMv]/) ? ("SiSU version (#{@sisu_version[:version]})") : '' s_a,s_b,s_c=@sisu_version[:version].match(/^([0-9]+)?(?:\.([0-9]+))?(?:\.([0-9]+))?(?:\-\S+)?$/)[1..3] - tell=(@markup_version_declared.to_f==@markup_version.to_f) \ - ? SiSU_Screen::Ansi.new(@cmd,"Markup version (#{@markup_version})",sv) \ - : SiSU_Screen::Ansi.new(@cmd,"Markup version declared (#{@markup_version_declared}), determined (#{@markup_version})",sv) + tell=(@markup_version_declared.to_f==@markup_version.determined) \ + ? SiSU_Screen::Ansi.new(@cmd,"Markup version (#{@markup_version.series} version #{@markup_version.determined})",sv) \ + : SiSU_Screen::Ansi.new(@cmd,"Markup version declared (#{@markup_version_declared}), determined (#{@markup_version.series} version #{@markup_version.determined})",sv) ok=if s_a.to_i > sm_a.to_i true elsif s_a.to_i == sm_a.to_i \ @@ -881,16 +892,18 @@ module SiSU_Param if ok tell.txt_green if @cmd =~/[vVM]/ else - tell=SiSU_Screen::Ansi.new(@cmd,"Warning: markup version determined (#{@markup_version}) or markup version declared (#{@markup_version_declared}) is newer than SiSU version (#{@sisu_version[:version]})") - tell.warn unless @cmd =~/q/ + SiSU_Screen::Ansi.new(@cmd,"Warning: markup version determined (#{@markup_version.determined}) or markup version declared (#{@markup_version_declared}) is newer than SiSU version (#{@sisu_version[:version]})").warn unless @cmd =~/q/ end else - tell=SiSU_Screen::Ansi.new(@cmd,'No SiSU markup version provided') - tell.warn if @cmd =~/[VM]/ + SiSU_Screen::Ansi.new(@cmd,'No SiSU markup version provided').warn if @cmd =~/[VM]/ end else - tell=SiSU_Screen::Ansi.new(@cmd,'SiSU filetype indicator not provided') - tell.warn unless @cmd =~/q/ + mv=if defined? @markup_version.determined and not @markup_version.determined.nil? + x=@markup_version.determined + "markup version determined #{x}" + else '' + end + SiSU_Screen::Ansi.new(@cmd,'SiSU filetype indicator not provided',mv).warn unless @cmd =~/q/ end @code_flag=false fns_array.each do |para| #% Scan document @@ -1004,19 +1017,18 @@ module SiSU_Param if para=~/^:?A~/ if @markup.nil? \ or @markup.empty? - @markup=@markup_version.to_s - elsif @markup !~/0\.38/; @markup=@markup.strip + "; #{@markup_version}" + @markup=@markup_version.determined.to_s + elsif @markup !~/0\.38/; @markup=@markup.strip + "; #{@markup_version.determined}" end end - if (para=~/^:?A~/ and @markup_version >= 0.38) \ - or (para=~/^1~/ and @markup_version < 0.38) + if (para=~/^:?A~/ and @markup_version.determined >= 0.38) \ + or (para=~/^1~/ and @markup_version.determined < 0.38) if @title.nil? @title=para[/^:?[A1]~\S*(.+)$/m,1] @html_title=@title.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'') @title.chomp!("\n") @html_title.chomp!("\n") - tell=SiSU_Screen::Ansi.new(@cmd,'Parameters',@html_title) - tell.txt_grey if @cmd =~/v/ + SiSU_Screen::Ansi.new(@cmd,'Parameters',@html_title).txt_grey if @cmd =~/v/ end end end @@ -1117,7 +1129,7 @@ module SiSU_Param end @topic_register_array.sort! end - if @markup_version.to_f >= 0.38 #convert values in headers to internal representation + if @markup_version.determined >= 0.38 #convert values in headers to internal representation translated=[] translate_list=[@pagenew,@pagebreak,@num_top,@toc_lev_limit] translate_list.each do |t| @@ -1193,8 +1205,7 @@ module SiSU_Param if @en[:note] > 0 \ and @en[:sum] > 0 if @en[:sum] > 0 - else tell=SiSU_Screen::Ansi.new(@cmd,'both endnote styles used',"~{ #{@en[:sum]} }~ and ^~ #{@en[:mark]}") - tell.warn if @cmd !~/q/ + else SiSU_Screen::Ansi.new(@cmd,'both endnote styles used',"~{ #{@en[:sum]} }~ and ^~ #{@en[:mark]}").warn if @cmd !~/q/ end end if @en[:mark] != @en[:note] \ @@ -1205,12 +1216,10 @@ module SiSU_Param footnote_conversion_errors << "#{@fns}:\n\tendnotes: #{@en[:note]} != endnote reference marks: #{@en[:mark]} (difference = #{@en[:mismatch]})\n" end if @title.main !~/[\S]/ - tell=SiSU_Screen::Ansi.new(@cmd,'WARNING Document Title missing','please provide @title:') - tell.warn unless @cmd =~/q/ + SiSU_Screen::Ansi.new(@cmd,'WARNING Document Title missing','please provide @title:').warn unless @cmd =~/q/ end if @author !~/[\S]/ - tell=SiSU_Screen::Ansi.new(@cmd,'Warning Document Author missing','please provide @creator: :author:') - tell.warn unless @cmd =~/q/ + SiSU_Screen::Ansi.new(@cmd,'Warning Document Author missing','please provide @creator: :author:').warn unless @cmd =~/q/ end # Elementary Document Structure Analysis - adds complexity may remove - need to develop - appears to work, proof of concept if @title.nil? @@ -1224,10 +1233,8 @@ module SiSU_Param @title.chomp!("\n") @html_title.chomp!("\n") title_trigger=1 - tell=SiSU_Screen::Ansi.new(@cmd,@html_title) - tell.txt_cyan unless @cmd =~/q/ - tell=SiSU_Screen::Ansi.new(@cmd,'Parameters') - tell.txt_grey unless @cmd =~/q/ + SiSU_Screen::Ansi.new(@cmd,@html_title).txt_cyan unless @cmd =~/q/ + SiSU_Screen::Ansi.new(@cmd,'Parameters').txt_grey unless @cmd =~/q/ end end end @@ -1295,8 +1302,7 @@ module SiSU_Param @lv5 ||=/^5~/ @lv6 ||=/^6~/ if @doc_skin - tell=SiSU_Screen::Ansi.new(@cmd,"doc_skin <- #{@doc_skin}") - tell.txt_grey if @cmd =~/v/ + SiSU_Screen::Ansi.new(@cmd,"doc_skin <- #{@doc_skin}").txt_grey if @cmd =~/v/ end @data=nil #else whole file's contents are stored in md pstore & is not required to be... big waste actually Store.new(self,@env).store #% pstore @@ -1310,8 +1316,7 @@ module SiSU_Param end def store File.unlink(@pstorefile) if FileTest.file?(@pstorefile) - tell=SiSU_Screen::Ansi.new(@md.cmd,"PStore -> #{@pstorefile}") - tell.txt_grey if @md.cmd =~/[MV]/ + SiSU_Screen::Ansi.new(@md.cmd,"PStore -> #{@pstorefile}").txt_grey if @md.cmd =~/[MV]/ store=PStore.new(@pstorefile) store.transaction do store['md']=@md |