diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sisu/v5/concordance.rb | 9 | ||||
-rw-r--r-- | lib/sisu/v5/constants.rb | 1 | ||||
-rw-r--r-- | lib/sisu/v5/html.rb | 9 | ||||
-rw-r--r-- | lib/sisu/v5/html_format.rb | 25 | ||||
-rw-r--r-- | lib/sisu/v5/html_lite_shared.rb | 7 | ||||
-rw-r--r-- | lib/sisu/v5/html_minitoc.rb | 5 | ||||
-rw-r--r-- | lib/sisu/v5/txt_plain.rb | 3 | ||||
-rw-r--r-- | lib/sisu/v5/xml_odf_odt.rb | 7 | ||||
-rw-r--r-- | lib/sisu/v5/xml_odf_odt_format.rb | 19 | ||||
-rw-r--r-- | lib/sisu/v6/concordance.rb | 9 | ||||
-rw-r--r-- | lib/sisu/v6/constants.rb | 1 | ||||
-rw-r--r-- | lib/sisu/v6/html.rb | 9 | ||||
-rw-r--r-- | lib/sisu/v6/html_format.rb | 25 | ||||
-rw-r--r-- | lib/sisu/v6/html_lite_shared.rb | 7 | ||||
-rw-r--r-- | lib/sisu/v6/html_minitoc.rb | 5 | ||||
-rw-r--r-- | lib/sisu/v6/txt_plain.rb | 3 | ||||
-rw-r--r-- | lib/sisu/v6/xml_odf_odt.rb | 7 | ||||
-rw-r--r-- | lib/sisu/v6/xml_odf_odt_format.rb | 19 |
18 files changed, 108 insertions, 62 deletions
diff --git a/lib/sisu/v5/concordance.rb b/lib/sisu/v5/concordance.rb index 55892ab7..b9030123 100644 --- a/lib/sisu/v5/concordance.rb +++ b/lib/sisu/v5/concordance.rb @@ -240,12 +240,13 @@ WOK end end protected - def location_scroll(wordlocation,show) - %{<a href="doc#{@md.lang_code_insert}#{Sfx[:html]}\##{wordlocation}">#{wordlocation}</a>; } + def location_scroll(wordlocation,show) # not used + %{<a href="doc#{@md.lang_code_insert}#{Sfx[:html]}\##{Mx[:ocn_id_char]}#{wordlocation}">#{wordlocation}</a>; } end - def location_seg(wordlocation,show) ##fix + def location_seg(wordlocation,show) unless wordlocation.nil? - wl=wordlocation.gsub(/(.+?)\#(\d+)/,"\\1#{@md.lang_code_insert}#{Sfx[:html]}#\\2") + wl=wordlocation.gsub(/(.+?)\#(\d+)/, + "\\1#{@md.lang_code_insert}#{Sfx[:html]}##{Mx[:ocn_id_char]}\\2") # id="o\d+" always available; a name="\d+" not available if html strict used case wordlocation when /#{@rxp_t1}|@rxp_t2}|#{@rxp_t3}/ %{[<a href="doc#{@md.lang_code_insert}#{Sfx[:html]}##{show}">H</a>]#{show}, } diff --git a/lib/sisu/v5/constants.rb b/lib/sisu/v5/constants.rb index e84c0901..fea57ce8 100644 --- a/lib/sisu/v5/constants.rb +++ b/lib/sisu/v5/constants.rb @@ -101,6 +101,7 @@ Xx={ html_relative1: '※', } Mx={ + ocn_id_char: 'o', meta_o: '〔@', meta_c: '〕', lv_o_0: 0, lv_o_1: 1, diff --git a/lib/sisu/v5/html.rb b/lib/sisu/v5/html.rb index 1b738561..ef62b9bd 100644 --- a/lib/sisu/v5/html.rb +++ b/lib/sisu/v5/html.rb @@ -245,6 +245,7 @@ module SiSU_HTML def initialize(md=nil,data='') @data,@md=data,md @vz=SiSU_Viz::Defaults.new + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier @tell=SiSU_Screen::Ansi.new(@md.opt.act[:color_state][:set]) if @md end def songsheet #extracts toc for scroll & seg @@ -356,7 +357,7 @@ WOK title=if dob.ocn ==0 then linkname else @@toc[:scr] << '<br />' - %{<b><a href="##{dob.ocn}">#{linkname}</a></b>} + %{<b><a href="##{@ocn_html_identifier}#{dob.ocn}">#{linkname}</a></b>} end txt_obj={ txt: title } format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj) @@ -398,7 +399,7 @@ WOK end else @@toc[:scr] << '<br />' - %{<b><a href="##{dob.ocn}">#{linkname}</a></b>} + %{<b><a href="##{@ocn_html_identifier}#{dob.ocn}">#{linkname}</a></b>} end txt_obj={ txt: title } format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj) @@ -515,7 +516,7 @@ WOK } f=@md.file.base_filename.html_seg(fnh) p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) - lnk_n_txt=%{ <a href="#{f}##{ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{ocn}"> #{linkname} </a>} txt_obj={ txt: lnk_n_txt } @@ -540,7 +541,7 @@ WOK } f=@md.file.base_filename.html_seg(fnh) p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) - lnk_n_txt=%{ <a href="#{f}##{ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{ocn}"> #{linkname} </a>} txt_obj={ txt: lnk_n_txt } diff --git a/lib/sisu/v5/html_format.rb b/lib/sisu/v5/html_format.rb index 0dc65a06..e0be4f8a 100644 --- a/lib/sisu/v5/html_format.rb +++ b/lib/sisu/v5/html_format.rb @@ -66,30 +66,36 @@ module SiSU_HTML_Format def initialize(md,ocn) @md,@ocn=md,ocn.to_s @ocn ||='' + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier + @make=SiSU_Env::ProcessingSettings.new(@md) end def ocn_display - make=SiSU_Env::ProcessingSettings.new(@md) - if make.build.ocn? - ocn_class='ocn' + if @make.build.ocn? if @ocn.to_i==0 \ or @ocn.empty? - %{<label class="ocn_off"> </label>} + '' else + name=(@make.build.html_strict?) ? '' : %{ name="#{@ocn}"} @ocn.gsub(/^(\d+|)$/, - %{<label class="#{ocn_class}"><a name="#{@ocn}" href="##{@ocn}" class="lnk#{ocn_class}">\\1</a></label>}) + %{<label class="ocn"><a#{name} href="##{@ocn_html_identifier}#{@ocn}" class="lnkocn">\\1</a></label>}) end else - %{<label class="ocn_off"> </label>} + '' end end def name - (@ocn==nil || @ocn.empty?) ? '' : %{<a name="#{@ocn}"></a>} + if @make.build.html_strict? \ + or @ocn==(nil || @ocn.empty?) + '' + else + %{<a name="#{@ocn}"></a>} + end end def id #w3c? "tidy" complains about numbers as identifiers ! annoying (@ocn==nil || @ocn.empty?) ? '' : %{id="o#{@ocn}"} end def goto - (@ocn==nil || @ocn.empty?) ? '' : %{<a href="##{@ocn}">} + (@ocn==nil || @ocn.empty?) ? '' : %{<a href="##{@ocn_html_identifier}#{@ocn}">} end end class HeadInformation @@ -1233,6 +1239,7 @@ WOK end def subtoc_lev(tag,attrib) @txt=clean(@txt) + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier txt=if @txt \ and @txt =~/<\/?i>|<a\s+name="\S+?">/mi @txt.gsub(/<\/?i>|<a\s+name="\S+?">/mi,'') #removes name markers from subtoc, go directly to substantive text @@ -1246,7 +1253,7 @@ WOK gsub(/<a[\n\s]+name="-\d+"[\n\s]+href="#_\d+"> <sup>\d+<\/sup> /m,'') end %{<#{tag} class="#{attrib}"> - <a href="##{@ocn}"><i>#{txt}</i></a> #{note} + <a href="##{@ocn_html_identifier}#{@ocn}"><i>#{txt}</i></a> #{note} </#{tag}>} end def subtoc_lev5 diff --git a/lib/sisu/v5/html_lite_shared.rb b/lib/sisu/v5/html_lite_shared.rb index 8c447352..e109debc 100644 --- a/lib/sisu/v5/html_lite_shared.rb +++ b/lib/sisu/v5/html_lite_shared.rb @@ -83,6 +83,7 @@ module SiSU_FormatShared end @tab="\t" @brace_url=SiSU_Viz::Defaults.new.url_decoration + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier @@tablehead,@@tablefoot=[],[] @vz=SiSU_Viz::Defaults.new @env=SiSU_Env::InfoEnv.new(@md.fns) @@ -205,7 +206,7 @@ GSUB %{<p class="#{h[:class]}" type="#{h[:type]}">#{h[:txt]}</a></p>\n} << "\n" end def lev_toc_hname - %{<p class="toc#{@lv}" header="#{@hname}"><a href="##{@ocn}">#{@txt}</a></p>\n} #<< "\n" + %{<p class="toc#{@lv}" header="#{@hname}"><a href="##{@ocn_html_identifier}#{@ocn}">#{@txt}</a></p>\n} #<< "\n" end def lev_toc h={ txt: txt, class: "toc#{@lv}", type: 'toc' } @@ -309,10 +310,10 @@ GSUB def paragraph attrib=%{class="#{@attrib}" } if @ocn - id=%{id="#{@ocn}" } + id=%{id="#{Mx[:ocn_id_char]}#{@ocn}" } type=%{type="substantive" } else - id=%{id="none" } + id='' type=%{type="comment" } end header=%{header="#{@hname}" } if @hname diff --git a/lib/sisu/v5/html_minitoc.rb b/lib/sisu/v5/html_minitoc.rb index dae74c46..5366b127 100644 --- a/lib/sisu/v5/html_minitoc.rb +++ b/lib/sisu/v5/html_minitoc.rb @@ -71,6 +71,7 @@ def initialize(md,data) @md,@data=md,data @pat_strip_heading_name=/<a name="h?\d.*?">(.+?)<\/a>/ + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier @tell=SiSU_Screen::Ansi.new(@md.opt.act[:color_state][:set]) if @md end def songsheet @@ -204,7 +205,7 @@ fn: @@seg_url, } f=@md.file.base_filename.html_seg(fnh) - lnk_n_txt=%{ <a href="#{f}##{txt.ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{txt.ocn}"> #{txt.obj} </a>} txt_obj={ txt: lnk_n_txt } @@ -223,7 +224,7 @@ fn: @@seg_url, } f=@md.file.base_filename.html_seg(fnh) - lnk_n_txt=%{ <a href="#{f}##{txt.ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{txt.ocn}"> #{txt.obj} </a>} txt_obj={ txt: lnk_n_txt } diff --git a/lib/sisu/v5/txt_plain.rb b/lib/sisu/v5/txt_plain.rb index ca944a1f..e27e9231 100644 --- a/lib/sisu/v5/txt_plain.rb +++ b/lib/sisu/v5/txt_plain.rb @@ -400,7 +400,8 @@ WOK @@endnotes[:para]=[] end def ocn_display(dob) - if @env.plaintext_ocn? + make=SiSU_Env::ProcessingSettings.new(@md) + if make.build.plaintext_ocn? if defined? dob.ocn \ and dob.ocn.is_a?(Fixnum) (defined? dob.ocn) ? "\n#{Dx[:ocn_o]}#{dob.ocn}#{Dx[:ocn_c]}" : '' diff --git a/lib/sisu/v5/xml_odf_odt.rb b/lib/sisu/v5/xml_odf_odt.rb index 8c3d4a98..d2ab0477 100644 --- a/lib/sisu/v5/xml_odf_odt.rb +++ b/lib/sisu/v5/xml_odf_odt.rb @@ -121,6 +121,7 @@ module SiSU_XML_ODF_ODT @@fns=nil def initialize(particulars) @md,@env,@ao_array=particulars.md,particulars.env,particulars.ao_array + @make=SiSU_Env::ProcessingSettings.new(@md) @vz=SiSU_Viz::Defaults.new @tab="\t" @brace_url=SiSU_Viz::Defaults.new.url_decoration @@ -556,10 +557,10 @@ module SiSU_XML_ODF_ODT end p_num={ display: '', set_ref: '' } if dob.is !~/(^#{Rx[:meta]}|#{Mx[:br_eof]}|#{Mx[:br_endnotes]})/ - if @env.odt_ocn? + if @make.build.odt_ocn? if defined? dob.ocn \ and dob.ocn.is_a?(Fixnum) - p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(dob.ocn).set_bookmark_and_display + p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(@make,dob.ocn).set_bookmark_and_display end end end @@ -682,7 +683,7 @@ module SiSU_XML_ODF_ODT and (dob.obj =~/~metadata/ or dob =~/#{Mx[:lv_o]}1:meta#{Mx[:lv_x]}\s*Document Information/) #fix Mx[:lv_o] if dob.is !~/(^#{Rx[:meta]}|#{Mx[:br_eof]}|#{Mx[:br_endnotes]})/ #check if defined? dob.ocn and dob.ocn =~/\d+/ - @p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(dob.ocn) + @p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(@make,dob.ocn) end if dob.is ==:heading \ || dob.is ==:para \ diff --git a/lib/sisu/v5/xml_odf_odt_format.rb b/lib/sisu/v5/xml_odf_odt_format.rb index 2a092011..b56e4284 100644 --- a/lib/sisu/v5/xml_odf_odt_format.rb +++ b/lib/sisu/v5/xml_odf_odt_format.rb @@ -65,17 +65,26 @@ module SiSU_XML_ODF_ODT_Format include SiSU_Param include SiSU_Viz class ParagraphNumber - def initialize(paranum) + def initialize(make,paranum) + @make=make @paranum=/(\d+)/m.match(paranum.to_s)[1] end def set_ref_and_display - set_ref=@paranum.gsub(/(\d+)/,' <text:span text:style-name="Span_subscript"><text:reference-mark-start text:name="\1"/><text:reference-mark-end text:name="\1"/></text:span>') - disp=@paranum.gsub(/(\d+)/,%{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>}) + set_ref=@paranum.gsub(/(\d+)/, + ' <text:span text:style-name="Span_subscript"><text:reference-mark-start text:name="\1"/><text:reference-mark-end text:name="\1"/></text:span>') + disp=@paranum.gsub(/(\d+)/, + (@make.build.odt_ocn?) \ + ? %{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>} + : '') { display: disp, set_ref: set_ref } end def set_bookmark_and_display - set_ref=@paranum.gsub(/(\d+)/,' <text:span text:style-name="Span_subscript"><text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/></text:span>') - disp=@paranum.gsub(/(\d+)/,%{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>}) + set_ref=@paranum.gsub(/(\d+)/, + ' <text:span text:style-name="Span_subscript"><text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/></text:span>') + disp=@paranum.gsub(/(\d+)/, + (@make.build.odt_ocn?) \ + ? %{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>} + : '') { display: disp, set_ref: set_ref } end def name diff --git a/lib/sisu/v6/concordance.rb b/lib/sisu/v6/concordance.rb index a20178ab..5422056f 100644 --- a/lib/sisu/v6/concordance.rb +++ b/lib/sisu/v6/concordance.rb @@ -240,12 +240,13 @@ WOK end end protected - def location_scroll(wordlocation,show) - %{<a href="doc#{@md.lang_code_insert}#{Sfx[:html]}\##{wordlocation}">#{wordlocation}</a>; } + def location_scroll(wordlocation,show) # not used + %{<a href="doc#{@md.lang_code_insert}#{Sfx[:html]}\##{Mx[:ocn_id_char]}#{wordlocation}">#{wordlocation}</a>; } end - def location_seg(wordlocation,show) ##fix + def location_seg(wordlocation,show) unless wordlocation.nil? - wl=wordlocation.gsub(/(.+?)\#(\d+)/,"\\1#{@md.lang_code_insert}#{Sfx[:html]}#\\2") + wl=wordlocation.gsub(/(.+?)\#(\d+)/, + "\\1#{@md.lang_code_insert}#{Sfx[:html]}##{Mx[:ocn_id_char]}\\2") # id="o\d+" always available; a name="\d+" not available if html strict used case wordlocation when /#{@rxp_t1}|@rxp_t2}|#{@rxp_t3}/ %{[<a href="doc#{@md.lang_code_insert}#{Sfx[:html]}##{show}">H</a>]#{show}, } diff --git a/lib/sisu/v6/constants.rb b/lib/sisu/v6/constants.rb index 34ff92e7..390df5a4 100644 --- a/lib/sisu/v6/constants.rb +++ b/lib/sisu/v6/constants.rb @@ -101,6 +101,7 @@ Xx={ html_relative1: '※', } Mx={ + ocn_id_char: 'o', meta_o: '〔@', meta_c: '〕', lv_o_0: 0, lv_o_1: 1, diff --git a/lib/sisu/v6/html.rb b/lib/sisu/v6/html.rb index 148672e5..f1651326 100644 --- a/lib/sisu/v6/html.rb +++ b/lib/sisu/v6/html.rb @@ -245,6 +245,7 @@ module SiSU_HTML def initialize(md=nil,data='') @data,@md=data,md @vz=SiSU_Viz::Defaults.new + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier @tell=SiSU_Screen::Ansi.new(@md.opt.act[:color_state][:set]) if @md end def songsheet #extracts toc for scroll & seg @@ -356,7 +357,7 @@ WOK title=if dob.ocn ==0 then linkname else @@toc[:scr] << '<br />' - %{<b><a href="##{dob.ocn}">#{linkname}</a></b>} + %{<b><a href="##{@ocn_html_identifier}#{dob.ocn}">#{linkname}</a></b>} end txt_obj={ txt: title } format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj) @@ -398,7 +399,7 @@ WOK end else @@toc[:scr] << '<br />' - %{<b><a href="##{dob.ocn}">#{linkname}</a></b>} + %{<b><a href="##{@ocn_html_identifier}#{dob.ocn}">#{linkname}</a></b>} end txt_obj={ txt: title } format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj) @@ -515,7 +516,7 @@ WOK } f=@md.file.base_filename.html_seg(fnh) p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) - lnk_n_txt=%{ <a href="#{f}##{ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{ocn}"> #{linkname} </a>} txt_obj={ txt: lnk_n_txt } @@ -540,7 +541,7 @@ WOK } f=@md.file.base_filename.html_seg(fnh) p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) - lnk_n_txt=%{ <a href="#{f}##{ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{ocn}"> #{linkname} </a>} txt_obj={ txt: lnk_n_txt } diff --git a/lib/sisu/v6/html_format.rb b/lib/sisu/v6/html_format.rb index 18d42e14..ddfaaa70 100644 --- a/lib/sisu/v6/html_format.rb +++ b/lib/sisu/v6/html_format.rb @@ -66,30 +66,36 @@ module SiSU_HTML_Format def initialize(md,ocn) @md,@ocn=md,ocn.to_s @ocn ||='' + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier + @make=SiSU_Env::ProcessingSettings.new(@md) end def ocn_display - make=SiSU_Env::ProcessingSettings.new(@md) - if make.build.ocn? - ocn_class='ocn' + if @make.build.ocn? if @ocn.to_i==0 \ or @ocn.empty? - %{<label class="ocn_off"> </label>} + '' else + name=(@make.build.html_strict?) ? '' : %{ name="#{@ocn}"} @ocn.gsub(/^(\d+|)$/, - %{<label class="#{ocn_class}"><a name="#{@ocn}" href="##{@ocn}" class="lnk#{ocn_class}">\\1</a></label>}) + %{<label class="ocn"><a#{name} href="##{@ocn_html_identifier}#{@ocn}" class="lnkocn">\\1</a></label>}) end else - %{<label class="ocn_off"> </label>} + '' end end def name - (@ocn==nil || @ocn.empty?) ? '' : %{<a name="#{@ocn}"></a>} + if @make.build.html_strict? \ + or @ocn==(nil || @ocn.empty?) + '' + else + %{<a name="#{@ocn}"></a>} + end end def id #w3c? "tidy" complains about numbers as identifiers ! annoying (@ocn==nil || @ocn.empty?) ? '' : %{id="o#{@ocn}"} end def goto - (@ocn==nil || @ocn.empty?) ? '' : %{<a href="##{@ocn}">} + (@ocn==nil || @ocn.empty?) ? '' : %{<a href="##{@ocn_html_identifier}#{@ocn}">} end end class HeadInformation @@ -1233,6 +1239,7 @@ WOK end def subtoc_lev(tag,attrib) @txt=clean(@txt) + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier txt=if @txt \ and @txt =~/<\/?i>|<a\s+name="\S+?">/mi @txt.gsub(/<\/?i>|<a\s+name="\S+?">/mi,'') #removes name markers from subtoc, go directly to substantive text @@ -1246,7 +1253,7 @@ WOK gsub(/<a[\n\s]+name="-\d+"[\n\s]+href="#_\d+"> <sup>\d+<\/sup> /m,'') end %{<#{tag} class="#{attrib}"> - <a href="##{@ocn}"><i>#{txt}</i></a> #{note} + <a href="##{@ocn_html_identifier}#{@ocn}"><i>#{txt}</i></a> #{note} </#{tag}>} end def subtoc_lev5 diff --git a/lib/sisu/v6/html_lite_shared.rb b/lib/sisu/v6/html_lite_shared.rb index b675fbd3..88510f04 100644 --- a/lib/sisu/v6/html_lite_shared.rb +++ b/lib/sisu/v6/html_lite_shared.rb @@ -83,6 +83,7 @@ module SiSU_FormatShared end @tab="\t" @brace_url=SiSU_Viz::Defaults.new.url_decoration + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier @@tablehead,@@tablefoot=[],[] @vz=SiSU_Viz::Defaults.new @env=SiSU_Env::InfoEnv.new(@md.fns) @@ -205,7 +206,7 @@ GSUB %{<p class="#{h[:class]}" type="#{h[:type]}">#{h[:txt]}</a></p>\n} << "\n" end def lev_toc_hname - %{<p class="toc#{@lv}" header="#{@hname}"><a href="##{@ocn}">#{@txt}</a></p>\n} #<< "\n" + %{<p class="toc#{@lv}" header="#{@hname}"><a href="##{@ocn_html_identifier}#{@ocn}">#{@txt}</a></p>\n} #<< "\n" end def lev_toc h={ txt: txt, class: "toc#{@lv}", type: 'toc' } @@ -309,10 +310,10 @@ GSUB def paragraph attrib=%{class="#{@attrib}" } if @ocn - id=%{id="#{@ocn}" } + id=%{id="#{Mx[:ocn_id_char]}#{@ocn}" } type=%{type="substantive" } else - id=%{id="none" } + id='' type=%{type="comment" } end header=%{header="#{@hname}" } if @hname diff --git a/lib/sisu/v6/html_minitoc.rb b/lib/sisu/v6/html_minitoc.rb index 0bb2794f..13045b0d 100644 --- a/lib/sisu/v6/html_minitoc.rb +++ b/lib/sisu/v6/html_minitoc.rb @@ -71,6 +71,7 @@ def initialize(md,data) @md,@data=md,data @pat_strip_heading_name=/<a name="h?\d.*?">(.+?)<\/a>/ + @ocn_html_identifier=SiSU_Env::ProcessingSettings.new(@md).ocn_html_identifier @tell=SiSU_Screen::Ansi.new(@md.opt.act[:color_state][:set]) if @md end def songsheet @@ -204,7 +205,7 @@ fn: @@seg_url, } f=@md.file.base_filename.html_seg(fnh) - lnk_n_txt=%{ <a href="#{f}##{txt.ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{txt.ocn}"> #{txt.obj} </a>} txt_obj={ txt: lnk_n_txt } @@ -223,7 +224,7 @@ fn: @@seg_url, } f=@md.file.base_filename.html_seg(fnh) - lnk_n_txt=%{ <a href="#{f}##{txt.ocn}"> + lnk_n_txt=%{ <a href="#{f}##{@ocn_html_identifier}#{txt.ocn}"> #{txt.obj} </a>} txt_obj={ txt: lnk_n_txt } diff --git a/lib/sisu/v6/txt_plain.rb b/lib/sisu/v6/txt_plain.rb index bb97f679..1aa08f0e 100644 --- a/lib/sisu/v6/txt_plain.rb +++ b/lib/sisu/v6/txt_plain.rb @@ -400,7 +400,8 @@ WOK @@endnotes[:para]=[] end def ocn_display(dob) - if @env.plaintext_ocn? + make=SiSU_Env::ProcessingSettings.new(@md) + if make.build.plaintext_ocn? if defined? dob.ocn \ and dob.ocn.is_a?(Fixnum) (defined? dob.ocn) ? "\n#{Dx[:ocn_o]}#{dob.ocn}#{Dx[:ocn_c]}" : '' diff --git a/lib/sisu/v6/xml_odf_odt.rb b/lib/sisu/v6/xml_odf_odt.rb index 707e7a20..0457ad7d 100644 --- a/lib/sisu/v6/xml_odf_odt.rb +++ b/lib/sisu/v6/xml_odf_odt.rb @@ -121,6 +121,7 @@ module SiSU_XML_ODF_ODT @@fns=nil def initialize(particulars) @md,@env,@ao_array=particulars.md,particulars.env,particulars.ao_array + @make=SiSU_Env::ProcessingSettings.new(@md) @vz=SiSU_Viz::Defaults.new @tab="\t" @brace_url=SiSU_Viz::Defaults.new.url_decoration @@ -556,10 +557,10 @@ module SiSU_XML_ODF_ODT end p_num={ display: '', set_ref: '' } if dob.is !~/(^#{Rx[:meta]}|#{Mx[:br_eof]}|#{Mx[:br_endnotes]})/ - if @env.odt_ocn? + if @make.build.odt_ocn? if defined? dob.ocn \ and dob.ocn.is_a?(Fixnum) - p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(dob.ocn).set_bookmark_and_display + p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(@make,dob.ocn).set_bookmark_and_display end end end @@ -682,7 +683,7 @@ module SiSU_XML_ODF_ODT and (dob.obj =~/~metadata/ or dob =~/#{Mx[:lv_o]}1:meta#{Mx[:lv_x]}\s*Document Information/) #fix Mx[:lv_o] if dob.is !~/(^#{Rx[:meta]}|#{Mx[:br_eof]}|#{Mx[:br_endnotes]})/ #check if defined? dob.ocn and dob.ocn =~/\d+/ - @p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(dob.ocn) + @p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(@make,dob.ocn) end if dob.is ==:heading \ || dob.is ==:para \ diff --git a/lib/sisu/v6/xml_odf_odt_format.rb b/lib/sisu/v6/xml_odf_odt_format.rb index bc7fadea..b2539dfd 100644 --- a/lib/sisu/v6/xml_odf_odt_format.rb +++ b/lib/sisu/v6/xml_odf_odt_format.rb @@ -65,17 +65,26 @@ module SiSU_XML_ODF_ODT_Format include SiSU_Param include SiSU_Viz class ParagraphNumber - def initialize(paranum) + def initialize(make,paranum) + @make=make @paranum=/(\d+)/m.match(paranum.to_s)[1] end def set_ref_and_display - set_ref=@paranum.gsub(/(\d+)/,' <text:span text:style-name="Span_subscript"><text:reference-mark-start text:name="\1"/><text:reference-mark-end text:name="\1"/></text:span>') - disp=@paranum.gsub(/(\d+)/,%{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>}) + set_ref=@paranum.gsub(/(\d+)/, + ' <text:span text:style-name="Span_subscript"><text:reference-mark-start text:name="\1"/><text:reference-mark-end text:name="\1"/></text:span>') + disp=@paranum.gsub(/(\d+)/, + (@make.build.odt_ocn?) \ + ? %{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>} + : '') { display: disp, set_ref: set_ref } end def set_bookmark_and_display - set_ref=@paranum.gsub(/(\d+)/,' <text:span text:style-name="Span_subscript"><text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/></text:span>') - disp=@paranum.gsub(/(\d+)/,%{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>}) + set_ref=@paranum.gsub(/(\d+)/, + ' <text:span text:style-name="Span_subscript"><text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/></text:span>') + disp=@paranum.gsub(/(\d+)/, + (@make.build.odt_ocn?) \ + ? %{ <text:span text:style-name="Span_subscript">#{Dx[:ocn_o]}\\1#{Dx[:ocn_c]}</text:span>} + : '') { display: disp, set_ref: set_ref } end def name |