diff options
author | Ralph Amissah <ralph@amissah.com> | 2008-07-22 20:03:57 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2008-07-22 20:03:57 -0400 |
commit | 812a2ffaf4ff90abc6225e1dde8f4fbb6c92c2c0 (patch) | |
tree | 67efd138f4f690c75efd38d75d53e1b72c0024e2 /lib/sisu/v0/sst_to_s_xml_dom.rb | |
parent | Updated sisu-0.67.5 (diff) | |
parent | changelog and version updated (diff) |
Merge branch 'upstream' into debian/sid
Diffstat (limited to 'lib/sisu/v0/sst_to_s_xml_dom.rb')
-rw-r--r-- | lib/sisu/v0/sst_to_s_xml_dom.rb | 50 |
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!(/ /,' ') 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!(/</,'<') para.gsub!(/>/,'>') - 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? |