aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v5/html_format.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v5/html_format.rb')
-rw-r--r--lib/sisu/v5/html_format.rb80
1 files changed, 39 insertions, 41 deletions
diff --git a/lib/sisu/v5/html_format.rb b/lib/sisu/v5/html_format.rb
index 3b15502f..e244bbb8 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">&nbsp;</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">&nbsp;</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
@@ -271,24 +277,6 @@ module SiSU_HTML_Format
else ''
end
end
- def pdf #retired 2.7.9
- pdf=if @md.programs[:pdf] \
- and @cf_defaults.cf_0 =~/p/
- %{
-<td align="center" bgcolor=#{@vz.color_band2}>
- <a href="#{Xx[:html_relative1]}pdf/#{@file.base_filename.pdf_p}" target="_top">
- #{@vz.nav_txt_pdf_portrait}
- </a>
-</td>
-<td align="center" bgcolor=#{@vz.color_band2}>
- <a href="#{Xx[:html_relative1]}pdf/#{@file.base_filename.pdf_l}" target="_top">
- #{@vz.nav_txt_pdf_landscape}
- </a>
-</td>
-}
- else ''
- end
- end
end
class XML
end
@@ -514,7 +502,8 @@ WOK
end
def rights
def all
- rights=@md.rights.all.gsub(/^\s*Copyright\s+\(C\)/,'Copyright <sup>&copy;</sup>&nbsp;')
+ rights=SiSU_HTML_Tune::CleanHTML.new(@md.rights.all).clean_for_html
+ rights=rights.gsub(/^\s*Copyright\s+\(C\)/,'Copyright <sup>&copy;</sup>&nbsp;')
%{<p class="small_left">Rights: #{rights}</p>
<p />}
end
@@ -648,8 +637,6 @@ WOK
def initialize(md)
super(md)
end
- def title_banner(title,subtitle,creator)
- end
def dot_control_pre_next
pre="#{@seg_name_html[@seg_name_html_tracker-1]}#{@md.lang_code_insert}#{Sfx[:html]}"
up=@toc
@@ -894,6 +881,7 @@ WOK
attr_accessor :md,:t_o,:txt,:ocn,:format,:table,:link,:linkname,:paranum,:p_num,:headname,:banner,:url
def initialize(md,t_o)
@md,@t_o=md,t_o
+ @make=SiSU_Env::ProcessingSettings.new(@md)
if t_o.is_a?(Hash)
@txt =t_o[:txt] || nil
@ocn =t_o[:ocn] || nil
@@ -917,19 +905,19 @@ WOK
p caller
end
end
- @headnamed= (@headname ? %{<a name="h#{@headname}" id="h#{@headname}"></a>} : nil)
+ @headnamed=(@headname ? %{<a id="h#{@headname}"></a>} : nil)
if @txt and not @txt.empty?
@txt=@txt.gsub(/#{Mx[:mk_o]}[-~]##{Mx[:mk_c]}/,'')
end
@p_num=ParagraphNumber.new(@md,@ocn)
@vz=SiSU_Viz::Defaults.new
- @make=SiSU_Env::ProcessingSettings.new(@md)
end
def nametags_scroll(dob)
tags=''
if defined? dob.tags \
and dob.tags.length > 0 # insert tags "hypertargets"
dob.tags.each do |t|
+ t=t.gsub(/[^a-z0-9._-]/,'') #use for all html tags? consider limiting to strict? or implementing earlier
tags=tags << %{<named id="#{t}" />}
end
end
@@ -940,7 +928,16 @@ WOK
if defined? dob.tags \
and dob.tags.length > 0 # insert tags "hypertargets"
dob.tags.each do |t|
- tags=tags << %{<a name="#{t}" ></a>}
+ t=t.gsub(/[^a-z0-9._-]/,'') #use for all html tags? consider limiting to strict? or implementing earlier
+ if @make.build.html_strict?
+ tags=(t =~/^[#{Mx[:ocn_id_char]}]?[0-9.]+$/) \
+ ? tags #check what can be sorted in ao
+ : (tags << %{<a name="#{t}" ></a>})
+ else
+ tags=(t =~/^[#{Mx[:ocn_id_char]}][0-9.]+$/) \
+ ? tags #check what can be sorted in ao
+ : (tags << %{<a name="#{t}" ></a>})
+ end
end
end
tags
@@ -949,8 +946,8 @@ WOK
hn=if @t_o.is ==:heading \
and not @t_o.name.empty? #determine use
hn=(@t_o.is ==:heading) \
- ? (%{<a name="h#{@t_o.name}" id="h#{@t_o.name}"></a>})
- : (%{<a name="#{@t_o.name}" id="#{@t_o.name}"></a>})
+ ? (%{<a id="h#{@t_o.name}"></a>})
+ : (%{<a id="#{@t_o.name}"></a>})
else nil
end
hn
@@ -981,7 +978,9 @@ WOK
end
def para_form_css(tag,attrib) # regular paragraphs shaped here
ul=ulc=''
- ul,ulc="<ul>\n ","\n </ul>" if @tag =~/li/
+ if tag =~/li/
+ ul,ulc="<ul>\n ","\n </ul>"
+ end
%{
<div class="substance">
#{@p_num.ocn_display}
@@ -1037,7 +1036,7 @@ WOK
<div class="substance">
#{@p_num.ocn_display}
<#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name}
- #{@named}<a name="h#{@headname}">#{@txt}</a>
+ #{@named}#{@txt}
</#{tag}>
</div>
}
@@ -1151,8 +1150,6 @@ WOK
#{@vz.table_close}}
end
def bold_heading
- @txt=@txt.gsub(/[1-9]~(\S+)/,'<a name="\1"></a>').
- gsub(/[1-9]~/,'')
%{<p class="bold">
#{@txt}
</p>
@@ -1245,6 +1242,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
@@ -1253,12 +1251,12 @@ WOK
note=''
if txt =~/(#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})/m # had \s* at end
note=$1
- note=note.gsub(/[\n\s]+/m,' ')
+ note=note.gsub(/[\s]+/m,' ')
txt=txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ').
- gsub(/<a[\n\s]+name="-\d+"[\n\s]+href="#_\d+">&nbsp;<sup>\d+<\/sup>&nbsp;/m,'')
+ gsub(/<a[\s]+name="-\d+"[\s]+href="#_\d+">&nbsp;<sup>\d+<\/sup>&nbsp;/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