diff options
Diffstat (limited to 'lib/sisu/v4/po4a.rb')
| -rw-r--r-- | lib/sisu/v4/po4a.rb | 137 | 
1 files changed, 67 insertions, 70 deletions
| diff --git a/lib/sisu/v4/po4a.rb b/lib/sisu/v4/po4a.rb index 702d3f4c..83aa8d5b 100644 --- a/lib/sisu/v4/po4a.rb +++ b/lib/sisu/v4/po4a.rb @@ -69,7 +69,6 @@ module SiSU_Po4a    require_relative 'po4a_set'                           # po4a_set.rb    include SiSU_Param    include SiSU_Viz -  pwd=Dir.pwd    class Source      @@opt_src,@@opt_trn,@@opt_src_,@@opt_trn_,@@md_src,@@md_trn=nil,nil,nil,nil,nil,nil      def initialize(opt,fn=nil) @@ -133,7 +132,7 @@ module SiSU_Po4a                end              else nil              end -            x=if FileTest.file?("#{srcdir}/#{opt_lang_src_fn}") +            if FileTest.file?("#{srcdir}/#{opt_lang_src_fn}")                @dal_array_lang_src=SiSU_DAL::Source.new(@@opt_src,opt_lang_src_fn).get # dal file drawn here              else                puts "no identified source document" @@ -836,77 +835,75 @@ GSUB          #[dob_src,dob_trn]        end        def markup(dob)                                     # Used for major markup instructions -        dir=SiSU_Env::InfoEnv.new(@md.fns) -        fix=[] -          dob.obj=dob.obj.gsub(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/, -              "#{Px[:po_bold_o]}\\1#{Px[:po_bold_c]}"). -            gsub(/#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/, -              "#{Px[:po_italics_o]}\\1#{Px[:po_italics_c]}"). -            gsub(/#{Mx[:fa_underscore_o]}(.+?)#{Mx[:fa_underscore_c]}/, -              "#{Px[:po_underscore_o]}\\1#{Px[:po_underscore_c]}"). -            gsub(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/, -              "#{Px[:po_subscript_o]}\\1#{Px[:po_subscript_c]}"). -            gsub(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/, -              "#{Px[:po_superscript_o]}\\1#{Px[:po_superscript_c]}"). -            gsub(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/, -              "#{Px[:po_insert_o]}\\1#{Px[:po_insert_c]}"). -            gsub(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/, -              "#{Px[:po_cite_o]}\\1#{Px[:po_cite_c]}"). -            gsub(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/, -              "#{Px[:po_strike_o]}\\1#{Px[:po_strike_c]}"). -            gsub(/#{Mx[:fa_monospace_o]}(.+?)#{Mx[:fa_monospace_c]}/, -              "#{Px[:po_monospace_o]}\\1#{Px[:po_monospace_c]}") -          notes='' -          unless dob.is==:code -            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/,'\1'). -              gsub(/#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,'\1'). -              gsub(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,'\1 [link: <\2>]'). -              gsub(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}image/,'\1 [link: local image]'). -              gsub(/#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,'\1') -            #dob.obj.gsub!(/#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,"#{@brace_url.txt_open}\\1#{@brace_url.txt_close}") -            notes=extract_endnotes(dob) -            #% ### footnotes current state - extracted -            dob.obj=dob.obj.gsub(/#{Mx[:en_a_o]}([\d]+)\s+(?:.+?)#{Mx[:en_a_c]}/,'~^').   # endnote marker marked up -            #% ### footnotes current state - keep inline -            #dob.obj.gsub!(/#{Mx[:en_a_o]}[\d]+\s+(.+?)#{Mx[:en_a_c]}/,'~{ \1 }~')     # inline endnote with marker marked up -              gsub(/#{Mx[:en_b_o]}[\d]+\s+(.+?)#{Mx[:en_b_c]}/,'~[ \1 ]~').     # inline endnote with marker marked up -              gsub(/#{Mx[:en_a_o]}([*+]+)\s+(.+?)#{Mx[:en_a_c]}/,'~{\1 \2 }~'). # inline endnote with marker marked up -              gsub(/#{Mx[:en_b_o]}([*+]+)\s+(.+?)#{Mx[:en_b_c]}/,'~[\1 \2 ]~'). # inline endnote with marker marked up -              gsub(/#{Mx[:gl_o]}(?:#lt|#060)#{Mx[:gl_c]}/,'<'). -              gsub(/#{Mx[:gl_o]}(?:#gt|#062)#{Mx[:gl_c]}/,'>'). -              gsub(/#{Mx[:gl_o]}#(?:038|amp)#{Mx[:gl_c]}/,'&'). -              gsub(/#{Mx[:gl_o]}#033#{Mx[:gl_c]}/,'!'). -              gsub(/#{Mx[:gl_o]}#035#{Mx[:gl_c]}/,'#'). -              gsub(/#{Mx[:gl_o]}#042#{Mx[:gl_c]}/,'*'). -              gsub(/#{Mx[:gl_o]}#045#{Mx[:gl_c]}/,'-'). -              gsub(/#{Mx[:gl_o]}#047#{Mx[:gl_c]}/,'/'). -              gsub(/#{Mx[:gl_o]}#095#{Mx[:gl_c]}/,'_'). -              gsub(/#{Mx[:gl_o]}#123#{Mx[:gl_c]}/,'{'). -              gsub(/#{Mx[:gl_o]}#125#{Mx[:gl_c]}/,'}'). -              gsub(/#{Mx[:gl_o]}#126#{Mx[:gl_c]}/,'~'). -              gsub(/#{Mx[:gl_o]}#169#{Mx[:gl_c]}/,'©') -          end -          dob.obj=if dob.of==:block                                   # watch -            dob.obj.gsub(/#{Mx[:gl_o]}●#{Mx[:gl_c]}/,"* "). -              gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/,"\n") -          else dob.obj.gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/,"\n\n") -          end -          if dob.is==:code -            dob.obj=dob.obj.gsub(/(^|[^}])_([<>])/m,'\1\2'). # _> _< -              gsub(/(^|[^}])_([<>])/m,'\1\2') # _<_< -          end -          dob.obj=dob.obj.gsub(/#{Mx[:br_page]}\s*|#{Mx[:br_page_new]}/,'').                     # remove page breaks +        SiSU_Env::InfoEnv.new(@md.fns) +        dob.obj=dob.obj.gsub(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/, +            "#{Px[:po_bold_o]}\\1#{Px[:po_bold_c]}"). +          gsub(/#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/, +            "#{Px[:po_italics_o]}\\1#{Px[:po_italics_c]}"). +          gsub(/#{Mx[:fa_underscore_o]}(.+?)#{Mx[:fa_underscore_c]}/, +            "#{Px[:po_underscore_o]}\\1#{Px[:po_underscore_c]}"). +          gsub(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/, +            "#{Px[:po_subscript_o]}\\1#{Px[:po_subscript_c]}"). +          gsub(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/, +            "#{Px[:po_superscript_o]}\\1#{Px[:po_superscript_c]}"). +          gsub(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/, +            "#{Px[:po_insert_o]}\\1#{Px[:po_insert_c]}"). +          gsub(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/, +            "#{Px[:po_cite_o]}\\1#{Px[:po_cite_c]}"). +          gsub(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/, +            "#{Px[:po_strike_o]}\\1#{Px[:po_strike_c]}"). +          gsub(/#{Mx[:fa_monospace_o]}(.+?)#{Mx[:fa_monospace_c]}/, +            "#{Px[:po_monospace_o]}\\1#{Px[:po_monospace_c]}") +        notes='' +        unless dob.is==:code +          dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/,'\1').              gsub(/#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,'\1'). -            gsub(/<a href=".+?">(.+?)<\/a>/m,'\1'). -            gsub(/#{Mx[:mk_o]}:name#(\S+?)#{Mx[:mk_c]}/,'').                       # remove name links -            gsub(/ |#{Mx[:nbsp]}/,' ').                                       # decide on -            gsub(/(?:^|[^_\\])#{Mx[:lnk_o]}(\S+?\.(?:png|jpg|gif)) .+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,'    [ \1 ]'). #"[ #{dir.url.images_local}\/\\1 ]") -            gsub(/(?:^|[^_\\])#{Mx[:lnk_o]}(\S+?\.(?:png|jpg|gif)) .+?#{Mx[:lnk_c]}image/,'    [ \1 ]'). #"[ #{dir.url.images_local}\/\\1 ]") -            gsub(/(?:^|[^_\\])\{\s*\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"\s*\}\S+/,'[image: "\1"]') +            gsub(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,'\1 [link: <\2>]'). +            gsub(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}image/,'\1 [link: local image]'). +            gsub(/#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,'\1') +          #dob.obj.gsub!(/#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,"#{@brace_url.txt_open}\\1#{@brace_url.txt_close}") +          notes=extract_endnotes(dob) +          #% ### footnotes current state - extracted +          dob.obj=dob.obj.gsub(/#{Mx[:en_a_o]}([\d]+)\s+(?:.+?)#{Mx[:en_a_c]}/,'~^').   # endnote marker marked up +          #% ### footnotes current state - keep inline +          #dob.obj.gsub!(/#{Mx[:en_a_o]}[\d]+\s+(.+?)#{Mx[:en_a_c]}/,'~{ \1 }~')     # inline endnote with marker marked up +            gsub(/#{Mx[:en_b_o]}[\d]+\s+(.+?)#{Mx[:en_b_c]}/,'~[ \1 ]~').     # inline endnote with marker marked up +            gsub(/#{Mx[:en_a_o]}([*+]+)\s+(.+?)#{Mx[:en_a_c]}/,'~{\1 \2 }~'). # inline endnote with marker marked up +            gsub(/#{Mx[:en_b_o]}([*+]+)\s+(.+?)#{Mx[:en_b_c]}/,'~[\1 \2 ]~'). # inline endnote with marker marked up +            gsub(/#{Mx[:gl_o]}(?:#lt|#060)#{Mx[:gl_c]}/,'<'). +            gsub(/#{Mx[:gl_o]}(?:#gt|#062)#{Mx[:gl_c]}/,'>'). +            gsub(/#{Mx[:gl_o]}#(?:038|amp)#{Mx[:gl_c]}/,'&'). +            gsub(/#{Mx[:gl_o]}#033#{Mx[:gl_c]}/,'!'). +            gsub(/#{Mx[:gl_o]}#035#{Mx[:gl_c]}/,'#'). +            gsub(/#{Mx[:gl_o]}#042#{Mx[:gl_c]}/,'*'). +            gsub(/#{Mx[:gl_o]}#045#{Mx[:gl_c]}/,'-'). +            gsub(/#{Mx[:gl_o]}#047#{Mx[:gl_c]}/,'/'). +            gsub(/#{Mx[:gl_o]}#095#{Mx[:gl_c]}/,'_'). +            gsub(/#{Mx[:gl_o]}#123#{Mx[:gl_c]}/,'{'). +            gsub(/#{Mx[:gl_o]}#125#{Mx[:gl_c]}/,'}'). +            gsub(/#{Mx[:gl_o]}#126#{Mx[:gl_c]}/,'~'). +            gsub(/#{Mx[:gl_o]}#169#{Mx[:gl_c]}/,'©') +        end +        dob.obj=if dob.of==:block                                   # watch +          dob.obj.gsub(/#{Mx[:gl_o]}●#{Mx[:gl_c]}/,"* "). +            gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/,"\n") +        else dob.obj.gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/,"\n\n") +        end +        if dob.is==:code +          dob.obj=dob.obj.gsub(/(^|[^}])_([<>])/m,'\1\2'). # _> _< +            gsub(/(^|[^}])_([<>])/m,'\1\2') # _<_< +        end +        dob.obj=dob.obj.gsub(/#{Mx[:br_page]}\s*|#{Mx[:br_page_new]}/,'').                     # remove page breaks +          gsub(/#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,'\1'). +          gsub(/<a href=".+?">(.+?)<\/a>/m,'\1'). +          gsub(/#{Mx[:mk_o]}:name#(\S+?)#{Mx[:mk_c]}/,'').                       # remove name links +          gsub(/ |#{Mx[:nbsp]}/,' ').                                       # decide on +          gsub(/(?:^|[^_\\])#{Mx[:lnk_o]}(\S+?\.(?:png|jpg|gif)) .+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,'    [ \1 ]'). #"[ #{dir.url.images_local}\/\\1 ]") +          gsub(/(?:^|[^_\\])#{Mx[:lnk_o]}(\S+?\.(?:png|jpg|gif)) .+?#{Mx[:lnk_c]}image/,'    [ \1 ]'). #"[ #{dir.url.images_local}\/\\1 ]") +          gsub(/(?:^|[^_\\])\{\s*\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"\s*\}\S+/,'[image: "\1"]')          [dob,notes]        end        def publish(fn,pot) -        divider='='          content=[]          content << pot[:open]          content << pot[:head] @@ -942,7 +939,7 @@ GSUB                  else emptyline=0                  end                  file_pot.puts line if emptyline < 2                     #remove extra line spaces (fix upstream) -               end +              end              end            else file_pot.puts para          #unix plaintext # /^([*=-]|\.){5}/            end | 
