aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/sst_to_s_xml_dom.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/sst_to_s_xml_dom.rb')
-rw-r--r--lib/sisu/v0/sst_to_s_xml_dom.rb50
1 files changed, 28 insertions, 22 deletions
diff --git a/lib/sisu/v0/sst_to_s_xml_dom.rb b/lib/sisu/v0/sst_to_s_xml_dom.rb
index 1bf9a561..23143ed8 100644
--- a/lib/sisu/v0/sst_to_s_xml_dom.rb
+++ b/lib/sisu/v0/sst_to_s_xml_dom.rb
@@ -135,7 +135,7 @@ module SiSU_simple_xml_model_dom
def initialize(data='',particulars='')
@data,@env,@md=data,particulars.env,particulars.md
@vz=SiSU_Env::Get_init.instance.skin
- @regx=/^(?:(?:<:p[bn]>\s*)?(?::?[A-C]|\d~)(?:(\S+))?\s+)?(.+)/
+ @regx=/^(?:#{Mx[:mk_o]}:p[bn]#{Mx[:mk_c]}\s*)?(?:#{Mx[:lv_o]}[1-9]:(\S*)#{Mx[:lv_c]})?(.+)/
@tab="\t"
if @md
@trans=SiSU_XML_munge::Trans.new(@md)
@@ -155,13 +155,14 @@ module SiSU_simple_xml_model_dom
para.gsub!(/~\[([*+])\s+(.+?)\]~/,
'<endnote><symbol>\1</symbol><note>\2</note></endnote> ')
end
- def xml_markup(para='')
+ def xml_clean(para='')
para.gsub!(/~\[([*+])\s+(.+?)\]~/,
'<endnote><symbol>\1</symbol><note>\2</note></endnote> ')
para.gsub!(/~\{([*+]+)\s+(.+?)\}~/,
'<endnote><symbol>\1</symbol><note>\2</note></endnote> ')
para.gsub!(/~\{(.+?)\}~/,
'<endnote><note>\1</note></endnote> ')
+ para.gsub!(/#{Mx[:lv_o]}[1-9]:\S*?#{Mx[:lv_c]}/,'') #Danger, watch
end
def xml_head(meta)
txt=meta.text
@@ -367,11 +368,14 @@ WOK
para.gsub!(/&nbsp;/,' ')
para=SiSU_document_structure::Structure.new(@md,para).structure
@trans.char_enc.utf8(para) if @sys.locale =~/utf-?8/i #% utf8
- if para =~/\A(?:@|0~)(\S+?):?\s+(.+?)\Z/m
+ para.gsub!(/^0~(\S+)/,"#{Mx[:lv_o]}@\\1#{Mx[:lv_c]}")
+ para.gsub!(/^@(\S+?):/,"#{Mx[:lv_o]}@\\1#{Mx[:lv_c]}")
+ if para =~/\A#{Mx[:lv_o]}@(\S+?)#{Mx[:lv_c]}\s*(.+?)\Z/m # for headers
d_meta=SiSU_text_utils::Header_scan.new(@md,para).meta
if d_meta; xml_head(d_meta)
end
end
+ para='' if para=~/#{Mx[:lv_o]}@\S+?#{Mx[:lv_c]}/
if @rcdc==false \
and (para =~/~metadata/ or para =~/^1~meta\s+Document Information/)
@rcdc=true
@@ -382,28 +386,28 @@ WOK
if para !~/^(?:%\s|0~|@\S+?:)/
format_scroll=SiSU_XML_format::Format_scroll.new(@md,@sto.text) if @sto.format =~/i[12]|null/
case @sto.format
- when /^(1)~(\S+)?/
- xml_markup(para)
+ when /^(1):(\S*)/
+ xml_clean(para)
xml_structure($1,para,$2)
para=@sto.lev_para_ocn.heading_body1
- when /^(2)~(\S+)?/
- xml_markup(para)
+ when /^(2):(\S*)/
+ xml_clean(para)
xml_structure($1,para,$2)
para=@sto.lev_para_ocn.heading_body2
- when /^(3)~(\S+)?/
- xml_markup(para)
+ when /^(3):(\S*)/
+ xml_clean(para)
xml_structure($1,para,$2)
para=@sto.lev_para_ocn.heading_body3
- when /^(4)~(\S+)?/
- xml_markup(para)
+ when /^(4):(\S*)/
+ xml_clean(para)
xml_structure($1,para,$2)
para=@sto.lev_para_ocn.heading_body4
- when /^(5)~(\S+)?/
- xml_markup(para)
+ when /^(5):(\S*)/
+ xml_clean(para)
xml_structure($1,para,$2)
para=@sto.lev_para_ocn.heading_body5
- when /^(6)~(\S+)?/
- xml_markup(para)
+ when /^(6):(\S*)?/
+ xml_clean(para)
xml_structure($1,para,$2)
para=@sto.lev_para_ocn.heading_body6
#when /^(i1)$/i
@@ -427,19 +431,20 @@ WOK
# end
else
if para =~ /<:verse>/
- poem_structure(para)
+ para=poem_structure(para)
elsif para =~ /<:group>/
- group_structure(para)
+ para=group_structure(para)
elsif para =~ /<:code>/
para.gsub!(/</,'&lt;')
para.gsub!(/>/,'&gt;')
- code_structure(para)
+ para=code_structure(para)
elsif para =~/<!Th?.+/ # tables come as single block #work area 2005w13
+ #elsif para =~/#{Mx[:gr_o]}Th?.+/ # tables come as single block #work area 2005w13
table=SiSU_Tables::Table_xml.new(para)
para=table.table_split
@@xml[:body] << table_structure(para)
else #xml_structure
- xml_markup(para)
+ xml_clean(para)
if para[@regx] \
and para[@regx,2]
@@xml[:body] << %{#{@tab*6}<object>} << "\n"
@@ -450,11 +455,11 @@ WOK
end
elsif para =~/(Note|Endnotes?)/
elsif para =~/(MetaData)/ \
- and para =~/<~\d+;[m]\d+;\w\d+><#{@@dp}:#{@@dp}>$/ #debug 2003w46 add rc info
+ and para =~/#{Mx[:id_o]}~\d+;[m]\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@@dp}:#{@@dp}#{Mx[:id_c]}$/ #debug 2003w46 add rc info
format_scroll=Format_scroll.new(@md,'<br /><a name="metadata">MetaData</a>')
para=format_scroll.bold_para
elsif para =~/(Owner Details)/ \
- and para !~/<~\d+;(?:\w|[0-6]:)\d+;\w\d+><#{@@dp}:#{@@dp}>$/
+ and para !~/#{Mx[:id_o]}~\d+;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@@dp}:#{@@dp}#{Mx[:id_c]}$/
format_scroll=Format_scroll.new(@md,'<br /><a name="owner.details">Owner Details</a>')
@@xml[:owner_details]=format_scroll.bold_para
para=''
@@ -484,10 +489,10 @@ WOK
format_text=Format_text_object.new(one,two)
para=format_text.center
end
- else
end
para.gsub!(/<:\S+?>/,'')
para.gsub!(/<!.+!>/,' ')
+ para
end
end
@content_flag=true
@@ -563,6 +568,7 @@ WOK
para.gsub!(/_\{(.+?)\}_/,'<underscore>\1</underscore>')
para.gsub!(/-\{(.+?)\}-/,'<strike>\1</strike>')
# do { links }http://url
+ #para.gsub!(/#{Mx[:gl_o]}\S+?#{Mx[:gl_c]}/,'') #Danger, watch
para.gsub!(/<:\S+?>/,'')
para.gsub!(/<!.+?!>/,'')
para="#{para}\n" unless para.empty?