diff options
author | Ralph Amissah <ralph@amissah.com> | 2014-05-25 10:01:43 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2014-05-25 10:01:43 -0400 |
commit | 16c30474f06ed3774ad524a38b55b7840de057d0 (patch) | |
tree | 03f20a30c1853b3d5cb893556aa633be2407a4d8 /lib/sisu/v5/param.rb | |
parent | v5 v6: version & changelog (& rakefile) (diff) |
v5: merge v6 to v5, version bump to 5.4.*, reason adds structure checksisu_5.4.0
* ao, document structure check, stop processing on major error
(with error message & text at location of failure)
[reason for version bump the addition of structure check]
* utils, add ok code marker
* ao, heading with no ocn, distinguish ~# from -#
* ~# is general & means no ocn (for any object to which it is applied)
* -# is relevant only for 1~ dummy headings & instructs that they should be
removed from output where possible
* applied so far to pdf, odt & plaintext
* ao_images, reduce warnings when ruby RMagic absent as program used directly
* reduced dependency on ruby RMagic library (as some time way back had
issues)
* ao, document markup structure check, skip processing file on major error
* with error message & text at location of failure
* texpdf, urls in creator cause breakage
* texpdf, mailto markup links set for normal text objects
* texpdf, '&' in heading breaks toc (now removed from toc (not heading)), bug
* revisit, bug
* texpdf, for urls switch to sans serif (small fontsize)
* instead of typewriter, latex default
* texpdf, pdf colored hyperlinks configurable
* --pdf-hyperlinks-color
--pdf-hyperlinks-no-color or --pdf-hyperlinks-monochrome
* ['default']['pdf_hyperlinks']='color'
(other options switch hyperlink color off 'no-color' 'color-off'
'monochrome')
* texpdf, pdf default font size configurable (cli & sisurc.yml) (no fractions)
* --pdf-fontsize-12 --pdf-fontsize-8
* default:
texpdf_fontsize: 12
* texpdf, headings and table of contents representation
* fixes 1~ and 2~ result in the same formatting
1~ 2~ & 3~ now differentiated, see discussion in sisu.org under #744383
* fixes :A smaller formatted than :B
A~ B~ C~ now the same size, see discussion in sisu.org under #744383
* :B and :C result in the same formatting, issue explained see sisu.org
* texpdf, (internal coding) fontface, rename texpdf_font texpdf_fontface
* texpdf, (internal coding) use symbols to identify page orientation
* param, metadata rights, line-breaks instead of semicolons separating rights
* fixes remove trailing semicolon after :copyright:
* digests sha512 option implemented
* options sha512 sha256 md5
* command line --sha512
* rcconf.yml ['defsault']['digest'] = sha512
* xml object citation numbering (docbook fictionbook)
Diffstat (limited to 'lib/sisu/v5/param.rb')
-rw-r--r-- | lib/sisu/v5/param.rb | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/lib/sisu/v5/param.rb b/lib/sisu/v5/param.rb index adc9350f..9dcdfc26 100644 --- a/lib/sisu/v5/param.rb +++ b/lib/sisu/v5/param.rb @@ -500,12 +500,9 @@ module SiSU_Param @h=build_hash(a) def copyright def text #you may wish to expand to take from all - s=if @h['copyright'] - @h['copyright'] - elsif @h['text'] - @h['text'] - elsif @h['main'] - @h['main'] + s=if @h['copyright'] then @h['copyright'] + elsif @h['text'] then @h['text'] + elsif @h['main'] then @h['main'] else SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'WARNING Document Copyright missing; provide @rights: :copyright:').warn unless @opt.act[:quiet][:set]==:on '' @@ -558,7 +555,7 @@ module SiSU_Param validate_length(s,l,n) end def sep(str) - (str =~/https?:\/\/\S+$/) ? ' ;' : ';' + ' \\\\ ' end def all s=if @h['all'] then @h['all'] @@ -574,36 +571,36 @@ module SiSU_Param and copyright.translation \ and not copyright.translation.empty? v=sep(copyright.translation) - s +='\\\\ translation ' + copyright.translation + v + s +='translation: ' + copyright.translation + v end if defined? copyright.illustrations \ and copyright.illustrations \ and not copyright.illustrations.empty? v=sep(copyright.illustrations) - s +='\\\\ illustrations ' + copyright.illustrations + v + s +='illustrations: ' + copyright.illustrations + v end if defined? copyright.photographs \ and copyright.photographs \ and not copyright.photographs.empty? v=sep(copyright.photographs) - s +='\\\\ photographs ' + copyright.photographs + v + s +='photographs: ' + copyright.photographs + v end if defined? copyright.digitization \ and copyright.digitization \ and not copyright.digitization.empty? v=sep(copyright.digitization) - s +='\\\\ digitization ' + copyright.digitization + v + s +='digitization: ' + copyright.digitization + v end if defined? copyright.audio \ and copyright.audio \ and not copyright.audio.empty? v=sep(copyright.audio) - s +='\\\\ audio ' + copyright.audio + v + s +='audio: ' + copyright.audio + v end if defined? copyright.license \ and copyright.license \ and not copyright.license.empty? - s +='\\\\ License: ' + copyright.license + s +='License: ' + copyright.license end if s.empty? SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'WARNING Document Rights information missing; provide @rights: :copyright:').warn unless @opt.act[:quiet][:set]==:on @@ -611,7 +608,7 @@ module SiSU_Param l,n=Db[:col_info_note],'rights.all' validate_length(s,l,n) end - s + s=s.gsub(/ [\\]+\s+$/,'') end s end @@ -1118,7 +1115,8 @@ module SiSU_Param && @creator.author.is_a?(String)) \ ? " #{@creator.author}" : '' - title=%{"#{@title.full.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'')}",} + title=@title.full.gsub(/\s*(?:<p>|<p \/>|<br>|<br \/>)\s*/,' '). + gsub(/~\{.+?\}~/,'') SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'Parameters',%{#{title}#{creator}}).txt_grey if @opt.act[:verbose][:set]==:on end if not @book_idx \ @@ -1281,14 +1279,23 @@ module SiSU_Param if @sys.openssl !=false \ and FileTest.file?(@env.source_file_with_path) @dgst=[] - if @env.digest.type =~/sha256/ + case @env.digest(@opt).type + when :sha512 + dgst=@sys.sha512(@env.source_file_with_path) + @dgst=dgst[1].length==128 ? dgst : nil + puts 'check document (sha512) digest' if not @dgst + when :sha256 dgst=@sys.sha256(@env.source_file_with_path) @dgst=dgst[1].length==64 ? dgst : nil puts 'check document (sha256) digest' if not @dgst - else + when :md5 dgst=@sys.md5(@env.source_file_with_path) @dgst=dgst[1].length==32 ? dgst : nil puts 'check document (md5) digest' if not @dgst + else + dgst=@sys.sha256(@env.source_file_with_path) + @dgst=dgst[1].length==64 ? dgst : nil + puts 'check document (sha256) digest' if not @dgst end elsif not FileTest.file?(@env.source_file_with_path) #puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:fuchsia) |