From b130d967b295b548d837ea5f603a6b0fec7a08a8 Mon Sep 17 00:00:00 2001
From: Ralph Amissah
Date: Thu, 14 Jun 2007 10:21:17 +0100
Subject: sisu-0.54.0 (minor additions to syntax, indent range extended) from
upstream
* indent levels (1-9) added [previously two levels] done for plaintext, html,
xml, odf, latex/pdf [minor syntax addition (_3 - _9), version number
change]
* bullet indent levels (1-9) added [previously two levels] done for
plaintext, html, odf, latex/pdf [minor syntax addition (_3* - _9*), version
number change]
* url decoration, open close, default angle brackets
* fixes, some line-breaking for plaintext (and text groups for) odf and xml
* css, modifications for extended indents in html and xml [sisu -CC (for
update)]
* vim syntax highlighter updated to take account of extended indent range
* rant installer minor changes for future ruby
* conversion script in data/sisu/conf/convert/sisu_convert
---
lib/sisu/v0/css.rb | 141 ++++++++++++++++++++++++++++++++
lib/sisu/v0/dal_syntax.rb | 37 ++++-----
lib/sisu/v0/db_import.rb | 3 +-
lib/sisu/v0/defaults.rb | 21 +++++
lib/sisu/v0/html.rb | 6 +-
lib/sisu/v0/html_format.rb | 38 +++++----
lib/sisu/v0/html_scroll.rb | 172 ++++++++++++----------------------------
lib/sisu/v0/html_segments.rb | 15 ++--
lib/sisu/v0/html_tune.rb | 98 +++++++++++------------
lib/sisu/v0/odf.rb | 81 +++++++++----------
lib/sisu/v0/plaintext.rb | 44 +++++-----
lib/sisu/v0/shared_html_lite.rb | 68 ++++++++++++++++
lib/sisu/v0/shared_xml.rb | 20 +++--
lib/sisu/v0/texpdf.rb | 3 +-
lib/sisu/v0/texpdf_format.rb | 22 +++--
lib/sisu/v0/xhtml.rb | 26 +++---
lib/sisu/v0/xml.rb | 22 +++--
lib/sisu/v0/xml_dom.rb | 26 +++---
18 files changed, 494 insertions(+), 349 deletions(-)
(limited to 'lib')
diff --git a/lib/sisu/v0/css.rb b/lib/sisu/v0/css.rb
index f8c7d25b..e2035d95 100644
--- a/lib/sisu/v0/css.rb
+++ b/lib/sisu/v0/css.rb
@@ -387,6 +387,9 @@ WOK
p.i4 {margin-left: 35mm;}
p.i5 {margin-left: 40mm;}
p.i6 {margin-left: 45mm;}
+ p.i7 {margin-left: 50mm;}
+ p.i8 {margin-left: 55mm;}
+ p.i9 {margin-left: 60mm;}
table { }
tr { }
@@ -452,11 +455,53 @@ WOK
margin-bottom: 3px;
}
li.i2 {
+ margin-left: 25mm;
+ line-height: 150%;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ }
+ li.i3 {
margin-left: 30mm;
line-height: 150%;
margin-top: 3px;
margin-bottom: 3px;
}
+ li.i4 {
+ margin-left: 35mm;
+ line-height: 150%;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ }
+ li.i5 {
+ margin-left: 40mm;
+ line-height: 150%;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ }
+ li.i6 {
+ margin-left: 45mm;
+ line-height: 150%;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ }
+ li.i7 {
+ margin-left: 50mm;
+ line-height: 150%;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ }
+ li.i8 {
+ margin-left: 55mm;
+ line-height: 150%;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ }
+ li.i9 {
+ margin-left: 60mm;
+ line-height: 150%;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ }
#horizontal_links {
background: #eeeeee;
margin-left: 5%;
@@ -1338,6 +1383,54 @@ WOK
text[class|="indent2"] {
margin-left: 15%;
}
+ text[class|="indent3"] {
+ margin-left: 20%;
+ }
+ text[class|="indent4"] {
+ margin-left: 25%;
+ }
+ text[class|="indent5"] {
+ margin-left: 30%;
+ }
+ text[class|="indent6"] {
+ margin-left: 35%;
+ }
+ text[class|="indent7"] {
+ margin-left: 40%;
+ }
+ text[class|="indent8"] {
+ margin-left: 45%;
+ }
+ text[class|="indent9"] {
+ margin-left: 50%;
+ }
+ text[class|="indent_bullet1"] {
+ margin-left: 10%;
+ }
+ text[class|="indent_bullet2"] {
+ margin-left: 15%;
+ }
+ text[class|="indent_bullet3"] {
+ margin-left: 20%;
+ }
+ text[class|="indent_bullet4"] {
+ margin-left: 25%;
+ }
+ text[class|="indent_bullet5"] {
+ margin-left: 30%;
+ }
+ text[class|="indent_bullet6"] {
+ margin-left: 35%;
+ }
+ text[class|="indent_bullet7"] {
+ margin-left: 40%;
+ }
+ text[class|="indent_bullet8"] {
+ margin-left: 45%;
+ }
+ text[class|="indent_bullet9"] {
+ margin-left: 50%;
+ }
text[class|="verse"], text[class|="group"], text[class|="code"] {
text-align: left;
}
@@ -1550,6 +1643,54 @@ WOK
text[class|="indent2"] {
margin-left: 15%;
}
+ text[class|="indent3"] {
+ margin-left: 20%;
+ }
+ text[class|="indent4"] {
+ margin-left: 25%;
+ }
+ text[class|="indent5"] {
+ margin-left: 30%;
+ }
+ text[class|="indent6"] {
+ margin-left: 35%;
+ }
+ text[class|="indent7"] {
+ margin-left: 40%;
+ }
+ text[class|="indent8"] {
+ margin-left: 45%;
+ }
+ text[class|="indent9"] {
+ margin-left: 50%;
+ }
+ text[class|="indent_bullet1"] {
+ margin-left: 10%;
+ }
+ text[class|="indent_bullet2"] {
+ margin-left: 15%;
+ }
+ text[class|="indent_bullet3"] {
+ margin-left: 20%;
+ }
+ text[class|="indent_bullet4"] {
+ margin-left: 25%;
+ }
+ text[class|="indent_bullet5"] {
+ margin-left: 30%;
+ }
+ text[class|="indent_bullet6"] {
+ margin-left: 35%;
+ }
+ text[class|="indent_bullet7"] {
+ margin-left: 40%;
+ }
+ text[class|="indent_bullet8"] {
+ margin-left: 45%;
+ }
+ text[class|="indent_bullet9"] {
+ margin-left: 50%;
+ }
text[class|="verse"], text[class|="group"], text[class|="code"] {
text-align: left;
}
diff --git a/lib/sisu/v0/dal_syntax.rb b/lib/sisu/v0/dal_syntax.rb
index 513dc721..d0014ad6 100644
--- a/lib/sisu/v0/dal_syntax.rb
+++ b/lib/sisu/v0/dal_syntax.rb
@@ -61,7 +61,7 @@ module Syntax
@manmkp_ital='[i/]\\{.+?\\}[i/]'
tail_m_ital=%q{(?:\s|[.,;:?!'")]|~\^|~\\\{\s|$)}
tail_m_bold=%q{(?:(?:<\/i>)?(?:\s|[.,;:?!'")]|~\^|~\\\{\s|$))?}
- bold_line=%q{^!_\s.+?(?:\n|$)}
+ bold_line=%q{^!_\s.+?(?: |\n|$)}
@line_scan_ital=if defined? @md.make_italic[:str] and defined? @vz.markup_make_italic[:str]
/#@http_m|#{bold_line}|#@manmkp_ital#{tail_m_ital}|(?:#{@md.make_italic[:str]}|#{@vz.markup_make_italic[:str]})#{tail_m_ital}|\S+|\n/
elsif defined? @md.make_italic[:str]
@@ -120,9 +120,10 @@ module Syntax
line
end
def embolden(given)
- given.gsub!(/(?:^!_|^[789]~)\s+(.+?)\s+((?:[*]~\S+\s*)+)/,'\1 \2')
- given.gsub!(/(?:^!_|^[789]~)\s+(.+?)\s*([~-]#)$/,'\1 \2')
- given.gsub!(/(?:^!_\s+|^[789]~\s+)(.*)?\s*$/,'\1 ')
+ given.gsub!(/(?:^!_|^[7-9]~)\s+(.+?)( )/,'\1 \2')
+ given.gsub!(/(?:^!_|^[7-9]~)\s+(.+?)\s+((?:[*]~\S+\s*)+)/,'\1 \2')
+ given.gsub!(/(?:^!_|^[7-9]~)\s+(.+?)\s*([~-]#)$/,'\1 \2')
+ given.gsub!(/(?:^!_\s+|^[7-9]~\s+)(.*)?\s*$/,'\1 ')
end
def wordlist_bold(line)
line=line.dup
@@ -140,7 +141,7 @@ module Syntax
w.gsub!(@vz.markup_make_bold,'\1 ')
end
else
- if w =~ /(?:^!_|^[789]~)\s+/; embolden(w) #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
+ if w =~ /(?:^!_|^[7-9]~)\s+/; embolden(w) #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
end
end
line_array << w
@@ -149,7 +150,7 @@ module Syntax
else line
end
else
- if line !~/^(?:[0-9]~|%+\s)/ and line =~ /(?:^!_|^[789]~)\s+/; embolden(line)
+ if line !~/^(?:[0-9]~|%+\s)/ and line =~ /(?:^!_|^[7-9]~)\s+/; embolden(line)
end
end
line
@@ -172,8 +173,10 @@ module Syntax
# ~{endnote}~
# !_ #bold/emphasise paragraph
# _" #blockquote paragraph
- # _1 #indent paragraph 1 step
- # _2 #indent paragraph 2 steps
+ # _1 <:i1> #indent paragraph 1 step
+ # _2 <:i2> #indent paragraph 2 steps
+ # _3 <:i3> #indent paragraph 3 steps
+ # _4 <:i4> #indent paragraph 4 steps
# _* #bullet (list)
# _1* #bullet (list) indented
# _1* #bullet (list) indented
@@ -255,17 +258,15 @@ module Syntax
line.gsub!(/(^|\s+)-([^{]\S+?)-( |$)/,'\1\2\3') #underscore single word, watch
line.gsub!(/(^|\s+|['"]| |\(|\>|\d+)\^(\S+?)\^/,'\1\2 ') #superscript single word, watch digit added
line.gsub!(/<[:e]\s+(.+?)!?>/,'~{ \1 }~') # not tested
- line.gsub!(/^\s*_([12])(\*+)\s*/,'<:i\1> _* ') #bullets, shortcut
- line.gsub!(/^\s*_([12])\s+/,'<:i\1> ') #indent
+ line.gsub!(/^\s*_([1-9])(\*+)\s*/,'<:i\1> _* ') #bullets, shortcut
+ line.gsub!(/^\s*_([1-9])\s+/,'<:i\1> ') #indent
line.gsub!(/(?: | )\s*_[12]\s+/,' ') #indent used in endnotes, not implemented, replace when ready with: line.gsub!(/(?: | )\s*_([12])\s+/,' <:i\1> ')
- #line.gsub!(/^\s*_([12])\s+/,"<:i\\1> ")
- #line.gsu!b!(/^\s*_([12])\s+/," ") #indent line
line.gsub!(/<:?br>/,' ') #adjustment 2004w41, from # line.gsub!(/ /,' ')
##added
- #line.gsub!(/(?:^!_\s+|^[78]~\s+|<:b>)(.*)?([~-]#)$/i,"\\1 \\2") #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
- #line.gsub!(/(?:^!_\s+|^[78]~\s+|<:b>)(.*)?\s*$/i,"\\1 ") #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
- #line.gsub!(/(?:(?:^| )!_ |^[78]~ |<:b>)(.*)\n/mi,"\\1 ") #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
- #line.gsub!(/^_" (.*)\n/i,"\\1 ") #blockquotes #introduce KEEP
+ #line.gsub!(/(?:^!_\s+|^[7-9]~\s+|<:b>)(.*)?([~-]#)$/i,'\1 \2') #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
+ #line.gsub!(/(?:^!_\s+|^[7-9]~\s+|<:b>)(.*)?\s*$/i,'\1 ') #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
+ #line.gsub!(/(?:(?:^| )!_ |^[7-9]~ |<:b>)(.*)\n/mi,'\1 ') #bold paragraph/emphasize #may wish to remove think about 7{ 8{ conversion not satisfactory, as information is lost!
+ #line.gsub!(/^_" (.*)\n/i,'\1 ') #blockquotes #introduce KEEP
line.gsub!(/<:hi>/,'') # bright yellow rgb(255,255,0) pale yellow rgb(255,255,200)
line.gsub!(/<:\/hi>/,' ')
line.gsub!(/(<:verse>.+)/m,"\\1\n")
@@ -319,8 +320,8 @@ module Syntax
line.gsub!(/(^|\s+|['"]|\(|\>)\/([\(\)a-zA-Z0-9']+?)\/([ ,.;:'"~$]|[^a-zA-Z0-9])/,'\1\2 \3') #italics single word, watch
line.gsub!(/(^|\s+|['"]|\(|\>)_(\S+?)_/,'\1\2 ') #underscore single word, watch
line.gsub!(/(^|\s+|['"]|\(|\>|\d+)\^(\S+?)\^/,'\1\2 ') #superscript single word, watch digit added
- line.gsub!(/^\s*_([12])(\*+)\s*/,"<:i\\1> _* ") # bullets, shortcut
- line.gsub!(/^\s*_([12])\s+/,'<:i\1> ')
+ line.gsub!(/^\s*_([1-9])(\*+)\s*/,'<:i\1> _* ') # bullets, shortcut
+ line.gsub!(/^\s*_([1-9])\s+/,'<:i\1> ')
line.gsub!(/<:?br>/,' ')
end
@data
diff --git a/lib/sisu/v0/db_import.rb b/lib/sisu/v0/db_import.rb
index 3e1c72cc..459cb806 100644
--- a/lib/sisu/v0/db_import.rb
+++ b/lib/sisu/v0/db_import.rb
@@ -85,7 +85,6 @@ module SiSU_DB_import
def marshal_load
require "#{SiSU_lib}/dal"
@dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here
- #@dal_array.each { |x| puts x.inspect; sleep 1 }
tell=SiSU_Screen::Ansi.new(@opt.cmd,"#{@db.db_psql}::#{@opt.fns}")
tell.puts_blue unless @opt.cmd =~/q/
tell=SiSU_Screen::Ansi.new(@opt.cmd,'Marshal Load',@fnm)
@@ -111,7 +110,7 @@ module SiSU_DB_import
end
end
def special_character_escape(string)
- string.gsub!(/'/,"''")
+ string.gsub!(/'/,"''") #string.gsub!(/'/,"\047") #string.gsub!(/'/,"\\'")
string.gsub!(/<:br>/," \n")
string.gsub!(/<:(?:code|alt|group|verse)(?:-end)?>/,'')
string.gsub!(/<:name#\S+?>/,'')
diff --git a/lib/sisu/v0/defaults.rb b/lib/sisu/v0/defaults.rb
index c81b91d2..3713acae 100644
--- a/lib/sisu/v0/defaults.rb
+++ b/lib/sisu/v0/defaults.rb
@@ -206,6 +206,27 @@ module SiSU_Viz
def url_promo_home
''
end
+ def url_decoration
+ def tex_open
+ '{\UseTextSymbol{OML}{<}}'
+ end
+ def tex_close
+ '{\UseTextSymbol{OML}{>}}'
+ end
+ def xml_open
+ '<'
+ end
+ def xml_close
+ '>'
+ end
+ def txt_open
+ '<'
+ end
+ def txt_close
+ '>'
+ end
+ self
+ end
#% color
def color_shadow
'"4"'
diff --git a/lib/sisu/v0/html.rb b/lib/sisu/v0/html.rb
index 1d9491dd..9af0f758 100644
--- a/lib/sisu/v0/html.rb
+++ b/lib/sisu/v0/html.rb
@@ -199,11 +199,11 @@ module SiSU_HTML
@format,@text,@ocn=$1,$2,$3
end
else
- if @para[/^(?:_1\*|<:i[12]>\s*_\*)\s+(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @format,@text,@ocn='_1*',$1,$2,$3
+ if @para[/^(?:<:i([1-9])>\s*_\*)\s+(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
+ @format,@text,@ocn="_#{$1}\*",$2,$3,$4
elsif @para[/^(_\*)\s+(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
@format,@text,@ocn=$1,$2,$3
- elsif @para[/<:(i[12])>\s*(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
+ elsif @para[/<:(i[1-9])>\s*(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
@format,@text,@ocn=$1,$2,$3
elsif @para[/<:(code|alt|verse|group)>(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
@format,@text,@ocn=$1,$2,$3
diff --git a/lib/sisu/v0/html_format.rb b/lib/sisu/v0/html_format.rb
index 73c97358..0899447e 100644
--- a/lib/sisu/v0/html_format.rb
+++ b/lib/sisu/v0/html_format.rb
@@ -917,7 +917,6 @@ WOK
@@dp=nil
attr_accessor :md,:one,:two,:three,:parablock,:table,:link,:linkname,:format,:paranum,:p_num,:para_id,:headname,:margin,:paragraph,:table,:banner,:url,:icon,:font,:one_stripped
def initialize(md='',*txt)
- #txt[0].gsub!(/\.(html|pdf|php)/,'') if txt[0] =~/\.\.\/\S+/
@md,@one,@two,@three=md,txt[0],txt[1],txt[2]
rgx=/^[1-6-]~/
@one_stripped=@one.gsub(rgx,'') if @one =~rgx
@@ -927,7 +926,7 @@ WOK
@link,@linkname=txt[0],txt[1]
@format,parablock=txt[0],txt[1]
@parablock=parablock
- ##speed hit does not justify action:
+ ##performance hit does not justify action:
#@parablock=if parablock=~/\S+/ and parablock !~/\s*)?\((i+|iv|v|vi+|ix|x|xi+)\)/
+ when /^(?:<:i[1-9]>\s*)?\((i+|iv|v|vi+|ix|x|xi+)\)/
@one.gsub!(/^\((i+|iv|v|vi+|ix|x|xi+)\)/,'(\1) ')
- @one.gsub!(/^(<:i[12]>)\s*\((i+|iv|v|vi+|ix|x|xi+)\)/,'\1(\2) ')
- when /^(?:<:i[12]>\s*)?\(?(\d|[a-z])+\)/
+ @one.gsub!(/^(<:i[1-9]>)\s*\((i+|iv|v|vi+|ix|x|xi+)\)/,'\1(\2) ')
+ when /^(?:<:i[1-9]>\s*)?\(?(\d|[a-z])+\)/
@one.gsub!(/^\((\d+|[a-z])+\)/,'(\1) ')
- @one.gsub!(/^(<:i[12]>)\s*\((\d+|[a-z])+\)/,'\1(\2) ')
+ @one.gsub!(/^(<:i[1-9]>)\s*\((\d+|[a-z])+\)/,'\1(\2) ')
when /^\s*\d{1,3}\.\s/
@one.gsub!(/^\s*(\d+\.)/,'\1 ')
when /^\s*[A-Z]\.\s/
@@ -1032,6 +1019,17 @@ WOK
#{@vz.margin_num_css}
+#{@vz.table_close}}
+ end
+ def bold_header
+ @one.gsub!(/[1-9]~(\S+)/,' ')
+ @one.gsub!(/[1-9]~/,'')
+ @one.gsub!(/<~0;[um]\d+;[um]\d+><#@dp:#@dp>\s*$/i,'') #watch & do differently
+ %{
+ #@one
+
+#{@vz.margin_num_css}
+
#{@vz.table_close}}
end
def toc_head_copy_at
diff --git a/lib/sisu/v0/html_scroll.rb b/lib/sisu/v0/html_scroll.rb
index bc03fc7d..1774fb3f 100644
--- a/lib/sisu/v0/html_scroll.rb
+++ b/lib/sisu/v0/html_scroll.rb
@@ -86,136 +86,68 @@ module SiSU_HTML_scroll
@p_num=SiSU_HTML_Format_type::Paragraph_number.new(@md,paranum)
end
@sto=SiSU_HTML::Source::Split_text_object.new(@md,para).lev_segname_para_ocn
- unless @rcdc
- m=/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- if para =~m
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,@sto.text) if @sto.format =~/[12]|_1?\*|\s*_\*|null/
- case @sto.format
- when /^1~\S*/; para=@sto.scroll_lev_para_ocn.heading_body1
- when /^2~\S*/; para=@sto.scroll_lev_para_ocn.heading_body2
- when /^3~\S*/; para=@sto.scroll_lev_para_ocn.heading_body3
- when /^4~\S+/; para=@sto.scroll_lev_para_ocn.heading_body4 # work on see Split_text_object4
- when /^5~\S*/; para=@sto.scroll_lev_para_ocn.heading_body5
- when /^6~\S*/; para=@sto.scroll_lev_para_ocn.heading_body6
- when /^_\*$/; para=@sto.scroll_lev_para_ocn.bullet
- when /^_1\*$/
+ m=/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ if para =~m
+ format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,@sto.text) if @sto.format =~/i[1-9]|_[1-9]?\*|<:i[1-9]>\s*_\*|null/
+ case @sto.format
+ when /^1~\S*/; para=@sto.scroll_lev_para_ocn.heading_body1
+ when /^2~\S*/; para=@sto.scroll_lev_para_ocn.heading_body2
+ when /^3~\S*/; para=@sto.scroll_lev_para_ocn.heading_body3
+ when /^4~\S+/; para=@sto.scroll_lev_para_ocn.heading_body4 # work on see Split_text_object4
+ when /^5~\S*/; para=@sto.scroll_lev_para_ocn.heading_body5
+ when /^6~\S*/; para=@sto.scroll_lev_para_ocn.heading_body6
+ when /^_\*$/; para=@sto.scroll_lev_para_ocn.bullet
+ when /^_([1-9])\*$/ #indent with bullet
+ format_txt_obj.gsub_body
+ para=@sto.scroll_lev_para_ocn.format('li',"i#{$1}")
+ when /^i([1-9])$/ #indent
+ format_txt_obj.gsub_body
+ para=@sto.scroll_lev_para_ocn.format('p',"i#{$1}")
+ when /^center$/; para=@sto.scroll_lev_para_ocn.center
+ when /^(?:b|bold)$/; para=@sto.scroll_lev_para_ocn.bold
+ when /^(?:verse|group|alt)$/; para=@sto.scroll_lev_para_ocn.para
+ when /^code$/; para=@sto.scroll_lev_para_ocn.code
+ when /null/ # see whether u can improve
+ if para !~/#{@vz.margin_txt_0}|#{@vz.margin_txt_1}|#{@vz.margin_txt_2}/
format_txt_obj.gsub_body
- para=@sto.scroll_lev_para_ocn.bullet_indent1
- when /^_2\*$/
- format_txt_obj.gsub_body
- para=@sto.scroll_lev_para_ocn.bullet_indent2
- when /^i1$/
- format_txt_obj.gsub_body
- para=@sto.scroll_lev_para_ocn.indent1
- when /^i2$/
- format_txt_obj.gsub_body
- para=@sto.scroll_lev_para_ocn.indent2
- when /^center$/; para=@sto.scroll_lev_para_ocn.center
- when /^(?:b|bold)$/; para=@sto.scroll_lev_para_ocn.bold
- when /^(?:verse|group|alt)$/; para=@sto.scroll_lev_para_ocn.para
- when /^code$/; para=@sto.scroll_lev_para_ocn.code
- when /null/ # see whether u can improve
- if para !~/#{@vz.margin_txt_0}|#{@vz.margin_txt_1}|#{@vz.margin_txt_2}/
- format_txt_obj.gsub_body
- para=@sto.scroll_lev_para_ocn.para
- if para =~/<#@dp:#@dp>$/
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,'Note ')
- para=format_txt_obj.bold_para
- elsif para =~/Owner Details/ and para !~/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,'Owner Details ')
- @scr[:owner_details]=format_txt_obj.bold_para
- para=''
- elsif para =~/(.*)<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>(.*)/ #watch
- one,two=$1,$2
- format_seg=SiSU_HTML_Format_type::Format_seg.new(@md,one,two)
- para=format_seg.no_paranum
- end
- #para=para.gsub(/ [2-6]~\S+ /,'') #and @md.cmd =~/[VM]/ #arbitrary, watch problematic as too general
- para='' if (para =~// and para =~/^(?:\^~\d+\s|)/) # hmmm re-adjusted 200507, for alt endnote which should again be matched ^~ ... not in response to problem though
- if para =~/<:center>/ #rules changed now a (.*)/.match(para).captures
- format_scroll=SiSU_HTML_Format_type::Format_scroll.new(@md,one,two)
- end
- else # this is crazy rethink and redo later with some form of inject
- m=/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- if para =~m
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,@sto.text) if @sto.format =~/[12]|null/
- meta=case @sto.format
- when /^1~/; @sto.scroll_lev_para_ocn.heading_body1
- when /^2~/; @sto.scroll_lev_para_ocn.heading_body2
- when /^3~/; @sto.scroll_lev_para_ocn.heading_body3
- when /^4~\S+/; @sto.scroll_lev_para_ocn.heading_body4 # work on see Split_text_object
- when /^5~/; @sto.scroll_lev_para_ocn.heading_body5
- when /^6~/; @sto.scroll_lev_para_ocn.heading_body6
- when /^i1$/
- format_txt_obj.gsub_body
- @sto.scroll_lev_para_ocn.indent1
- when /^i2$/
- format_txt_obj.gsub_body
- @sto.scroll_lev_para_ocn.indent2
- when /^center$/; @sto.scroll_lev_para_ocn.center
- when /^(b|bold)$/; @sto.scroll_lev_para_ocn.bold
- when /null/ # see whether u can improve
- if para !~/#{@vz.margin_txt_0}|#{@vz.margin_txt_1}|#{@vz.margin_txt_2}/
- format_txt_obj.gsub_body
- @sto.scroll_lev_para_ocn.para
- if para =~/<#@dp:#@dp>$/
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,'Note ')
- meta=format_txt_obj.bold_para
- elsif para =~/MetaData/ and para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/ #debug 2003w46 add rc info
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,'MetaData ')
- meta=format_txt_obj.bold_para
- elsif para =~/Owner Details/ and para !~/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,'Owner Details ')
- @scr[:owner_details]=format_txt_obj.bold_para
- meta=''
- elsif para =~/(¡|<#@dp:#@dp>(.*)/ #ok - bug in equiv for seg 2004w46
- one,two=$1,$2
- format_scroll=SiSU_HTML_Format_type::Format_scroll.new(@md,one,two) #watch #fix
- meta=format_scroll.no_paranum
- end
- meta='' if para =~// and para =~/^(\^~\d+ |)/ # -endnote
- if para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- case para
- when /<:i1>/
- gsub(/<:i1>/,'')
- format_scroll=SiSU_HTML_Format_type::Format_scroll.new(@md,para)
- meta=format_scroll.indent_one_no_paranum
- when /<:i2>/
- gsub(/<:i2>/,'')
- format_scroll=SiSU_HTML_Format_type::Format_scroll.new(@md,para)
- meta=format_scroll.indent_one_no_paranum
- end
- end
- if para !~/#{@vz.margin_txt_0}|#{@vz.margin_txt_1}|#{@vz.margin_txt_2}/
- end
- if para =~/<:center>/
- one,two=/(.*)<:center>(.*)/.match(para).captures
- format_scroll=SiSU_HTML_Format_type::Format_scroll.new(@md,one,two)
end
+ elsif para =~/^[1-9]~\S*/ and para !~/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,para)
+ para=format_txt_obj.bold_header
+ elsif para =~/Endnotes?/ and para !~/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,' Note ')
+ para=format_txt_obj.bold_para
+ elsif para =~/Owner Details/ and para !~/<~\d+;(?:[oh]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,'Owner Details ')
+ @scr[:owner_details]=format_txt_obj.bold_para
+ para=''
+ elsif para =~/(.*)<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>(.*)/ #watch
+ one,two=$1,$2
+ format_seg=SiSU_HTML_Format_type::Format_seg.new(@md,one,two)
+ para=format_seg.no_paranum
+ end
+ #para=para.gsub(/ [2-6]~\S+ /,'') #and @md.cmd =~/[VM]/ #arbitrary, watch problematic as too general
+ para='' if (para =~// and para =~/^(?:\^~\d+\s|)/) # hmmm re-adjusted 200507, for alt endnote which should again be matched ^~ ... not in response to problem though
+ if para =~/<:center>/ #rules changed now a (.*)/.match(para).captures
+ format_scroll=SiSU_HTML_Format_type::Format_scroll.new(@md,one,two)
end
para.gsub!(//,' ')
para.gsub!(/^<:\S?>/,'')
para.gsub!(/<:\S?>/,' ')
para.strip!
- unless meta; @scr[:body] << para unless para =~/\A\s*\Z/
- else @scr[:metadata] << meta
+ unless @rcdc; @scr[:body] << para unless para =~/\A\s*\Z/
+ else @scr[:metadata] << para
end
+ #unless meta; @scr[:body] << para unless para =~/\A\s*\Z/
+ #else @scr[:metadata] << meta
+ #end
end
end
@scr
diff --git a/lib/sisu/v0/html_segments.rb b/lib/sisu/v0/html_segments.rb
index 96b9a970..8f8f7b53 100644
--- a/lib/sisu/v0/html_segments.rb
+++ b/lib/sisu/v0/html_segments.rb
@@ -279,21 +279,18 @@ module SiSU_HTML_seg
end
if para[/<~(\d+;(?:[ohmu]|[0-6]:)\d+;\w\d+><#@dp:#@dp)>$/]
@sto=SiSU_HTML::Source::Split_text_object.new(@md,para).lev_segname_para_ocn
- format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,@sto.text) if @sto.format =~/i[12]|_1?\*|<:i[12]>\s*_\*|null/
+ format_txt_obj=SiSU_HTML_Format_type::Format_text_object.new(@md,@sto.text) if @sto.format =~/i[1-9]|_[1-9]?\*|<:i[1-9]>\s*_\*|null/
para=case @sto.format # work area 2003w29 ||@|def lev_segname_para_ocn|
when /^4~\S+/; @sto.seg_lev_para_ocn.header4 # work on see Split_text_object
when /^5~(?:~\S+)?/; @sto.seg_lev_para_ocn.header5
when /^6~(?:~\S+)?/; @sto.seg_lev_para_ocn.header6
when /^_\*$/; @sto.seg_lev_para_ocn.bullet
- when /^_1\*$/
+ when /^_([1-9])\*$/ #indent levels 1-9 with bullet
format_txt_obj.gsub_body
- @sto.seg_lev_para_ocn.bullet_indent1
- when /^i1$/
+ para=@sto.seg_lev_para_ocn.format('li',"i#{$1}")
+ when /^i([1-9])$/ #indent levels 1-9
format_txt_obj.gsub_body
- @sto.seg_lev_para_ocn.indent1
- when /^i2$/
- format_txt_obj.gsub_body
- @sto.seg_lev_para_ocn.indent2
+ para=@sto.seg_lev_para_ocn.format('p',"i#{$1}")
when /^(?:verse|group|alt)$/
@sto.seg_lev_para_ocn.para
when /^code$/
@@ -439,7 +436,7 @@ module SiSU_HTML_seg
try=e_n.split(/ /)
try.each do |e|
format_seg=SiSU_HTML_Format_type::Format_seg.new(@md,e)
- note_match=if e =~/<:i[12]>/
+ note_match=if e =~/<:i[1-9]>/
format_seg.endnote_body_seg_tail_indent
else format_seg.endnote_body_seg_tail
end
diff --git a/lib/sisu/v0/html_tune.rb b/lib/sisu/v0/html_tune.rb
index 2d295a6c..749f5180 100644
--- a/lib/sisu/v0/html_tune.rb
+++ b/lib/sisu/v0/html_tune.rb
@@ -187,6 +187,7 @@ module SiSU_Tune
@env=SiSU_Env::Info_env.new(@md.fns)
@sys=SiSU_Env::System_call.new
@dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
+ @env=SiSU_Env::Info_env.new(@md.fns)
#@utf8=SiSU_character_encode::UTF8 #.new
end
def songsheet
@@ -231,6 +232,45 @@ module SiSU_Tune
@tuned_file << para
end
end
+ def urls(data)
+ @words=[]
+ data.each do |word|
+ @words << if word=~/\{(.+?)\}((?:https?|ftp)\S+|image)/
+ if word =~/\{(.+?)\}((?:https?|ftp)\S+|image)([.,](?:\s|$))/
+ m,u,d=/\{(.+?)\}((?:https?|ftp)\S+|image)([.,](?:\s|$))/.match(word).captures
+ else m,u=/\{(.+?)\}((?:https?|ftp)\S+|image)/.match(word).captures
+ d=''
+ end
+ case m
+ when /\.png|\.jpg|\.gif|c=|\d+x\d+/
+ w,h=/(\d+)x(\d+)/.match(m).captures if m =~/\d+x\d+/
+ w=%{width="#{w}"} if w
+ h=%{height="#{h}"} if h
+ c=m[/"(.+?)"/m,1]
+ caption=%{
#{c}
} if c
+ png=m.scan(/\S+/)[0]
+ image_path=if @md.fns =~/\.-ss[tm]$/; @env.url.images_external
+ else @env.url.images_local
+ end
+ ins=if u and u.strip !~/^image$/
+ %{ #{caption}}
+ else %{ #{caption}}
+ end
+ word.gsub!(/\{.+?\}((?:https?|ftp)\S+|image)/,ins)
+ else
+ link=m[/(.+)/m]
+ png=m.scan(/\S+/)[0].strip
+ link=link.strip
+ ins=%{#{link} #{d}}
+ word.gsub!(/\{.+?\}(?:https?|ftp)\S+/,ins)
+ end
+ word
+ else word
+ end
+ word
+ end
+ @words
+ end
def url_markup
data=@data
@tuned_file=[]
@@ -256,7 +296,7 @@ module SiSU_Tune
end
if para =~/\{.+?\}((?:http|ftp)\S+|image)/
@word_mode=para.scan(/\{.+?\}(?:(?:https?|ftp)\S+|image)|\S+/)
- word_mode=SiSU_Tune::Tune_urls.new(@word_mode,@md).urls
+ word_mode=urls(@word_mode)
words=word_mode.join(' ')
para.gsub!(/.+/,words)
end
@@ -274,20 +314,20 @@ module SiSU_Tune
para.gsub!(/<:h(.{1,7}?)>/,'\1 ')
para.gsub!(/<:to(\d{1,7}?)>/,'to { \1 } ')
if (para =~/\b\S+\@\S+?\.\S+/ and para !~/(\"\S+\@\S+?\.\S+\"|>\S+\@\S+?\.\S+?<)/)
- para.gsub!(/\b(\S+\@\S+?\.\S+)(\s)/,'\1 \\2')
+ para.gsub!(/\b(\S+\@\S+?\.\S+)(\s)/,'<\1 >\2')
end
if (para !~/(\"\w+:\/\/\S+?\"|>\s*\w+:\/\/\w+?\S*<)/) #url markup http etc.
if para=~/\w+:\/\/\S+?\.\S+?[.,] /
- para.gsub!(/(\w+:\/\/\S+?\.\S+?)([.,] )/,'\1 \2') #full stops ! have been a bother
+ para.gsub!(/(\w+:\/\/\S+?\.\S+?)([.,] )/,'<\1 >\2') #full stops ! have been a bother
else
- para.gsub!(/(\w+:\/\/\S+?\.\S+)/, '\1 ')
+ para.gsub!(/(\w+:\/\/\S+?\.\S+)/, '<\1 >')
end
end
if (para =~/[ ^](?:https?|ftp):\/\/\S+/) #url markup http leftovers watch carefully may accept too much 2004w46
if para=~/([ ^])((?:https?|ftp):\/\/\S+?)([\.,] )/
- para.gsub!(/([ ^])((?:https?|ftp):\/\/\S+?)([\.,] )/,'\1\2 \3') #full stops ! have been a bother
+ para.gsub!(/([ ^])((?:https?|ftp):\/\/\S+?)([\.,] )/,'\1<\2 >\3') #full stops ! have been a bother
else
- para.gsub!(/([ ^])((?:https?|ftp):\/\/\S+)/,'\1\2 ')
+ para.gsub!(/([ ^])((?:https?|ftp):\/\/\S+)/,'\1<\2 >')
end
end
if (para =~/..\/\S+/ and para !~/(\"..\/\S+?\"|>\s*..\/\S+<)/)
@@ -326,51 +366,5 @@ module SiSU_Tune
@tuned_file
end
end
- class Tune_urls
- def initialize(data,md)
- @data,@md=data,md
- @vz=SiSU_Env::Get_init.instance.skin
- @env=SiSU_Env::Info_env.new(@md.fns)
- end
- def urls
- @words=[]
- @data.each do |word|
- @words << if word=~/\{(.+?)\}((?:https?|ftp)\S+|image)/
- if word =~/\{(.+?)\}((?:https?|ftp)\S+|image)([.,](?:\s|$))/
- m,u,d=/\{(.+?)\}((?:https?|ftp)\S+|image)([.,](?:\s|$))/.match(word).captures
- else m,u=/\{(.+?)\}((?:https?|ftp)\S+|image)/.match(word).captures
- d=''
- end
- case m
- when /\.png|\.jpg|\.gif|c=|\d+x\d+/
- w,h=/(\d+)x(\d+)/.match(m).captures if m =~/\d+x\d+/
- w=%{width="#{w}"} if w
- h=%{height="#{h}"} if h
- c=m[/"(.+?)"/m,1]
- caption=%{
#{c}
} if c
- png=m.scan(/\S+/)[0]
- image_path=if @md.fns =~/\.-ss[tm]$/; @env.url.images_external
- else @env.url.images_local
- end
- ins=if u and u.strip !~/^image$/
- %{ #{caption}}
- else %{ #{caption}}
- end
- word.gsub!(/\{.+?\}((?:https?|ftp)\S+|image)/,ins)
- else
- link=m[/(.+)/m]
- png=m.scan(/\S+/)[0].strip
- link=link.strip
- ins=%{#{link} #{d}}
- word.gsub!(/\{.+?\}(?:https?|ftp)\S+/,ins)
- end
- word
- else word
- end
- word
- end
- @words
- end
- end
end
__END__
diff --git a/lib/sisu/v0/odf.rb b/lib/sisu/v0/odf.rb
index caf86a39..feac2d03 100644
--- a/lib/sisu/v0/odf.rb
+++ b/lib/sisu/v0/odf.rb
@@ -140,6 +140,7 @@ module SiSU_ODF
end
end
class Scroll [],:open=>[],:close=>[],:head=>[],:metadata=>[],:tail=>[],:endnotes=>[] }
@@ -153,13 +154,14 @@ module SiSU_ODF
@regx=/^(?:(?:<:p[bn]>\s*)?\d~(?:(\S+))?\s+)?(.+?)\s*<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
@serial=/\s*<~\d+;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>\s*/
@tab="\t"
+ @url_brace=SiSU_Viz::Skin.new.url_decoration
@br=if @md.cmd =~/M/; "\n"
else ''
end
end
def songsheet
pre
- @data=markup
+ @data=markup(@data)
post
publish
end
@@ -169,8 +171,8 @@ module SiSU_ODF
@n=[]
notes.each do |n| #high cost to deal with appropriately within odf, consider
n=n.dup.to_s
- if n =~/ /
- fix=n.split(/ /) #watch #added
+ if n =~/<:?br(?: \/)?>/
+ fix=n.split(/<:?br(?: \/)?>/) #watch #added
fix.each do |x|
if x =~/\S+/; @n << x
end
@@ -282,16 +284,16 @@ module SiSU_ODF
end
def normal(para) #P1 - P3
para.gsub!(@serial,'')
- para.gsub!(/(^|\s)(https?:\/\/[^'">< ]+)/,'\1\2 ')
- para.gsub!(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/,'\1 ')
- par=case para
- when /^<:i1>\s/m; para.gsub!(/^<:i1>\s/m,'')
- %{#{para} }
- when /^<:i2>\s/m; para.gsub!(/^<:i2>\s/m,'')
- %{#{para} }
- else %{#{para} } #%{#{para} }
+ para.gsub!(/(^|\s)(https?:\/\/[^'">< ]+)/,%{\\1#{@url_brace.xml_open}\\2 #{@url_brace.xml_close}})
+ para.gsub!(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/,%{#{@url_brace.xml_open}\\1 #{@url_brace.xml_close}})
+ para=case para
+ when /^<:i([1-9])>\s/m
+ m=$1
+ para.gsub!(/^<:i#{m}>\s/m,'')
+ %{#{para} }
+ else %{#{para} }
end
- para=par #+ %{ }
+ para
end
def fontface(para)
#para=para.gsub(/(.+?)<\/b>/,%{\\1 })
@@ -300,7 +302,7 @@ module SiSU_ODF
def footnote(para)
@astx||=10000
para.gsub!(/<#@dp>([}\]]~)/,'\1')
- para.gsub!(/ <:i1>/,' ')
+ #para.gsub!(/ <:i[1-9]>/,' ')
if para =~/~\{\d+\s+/
para=para.gsub(/~\{(\d+)\s+(.+?)\}~/,'\1 \2 ')
end
@@ -324,9 +326,7 @@ module SiSU_ODF
end
def group_clean(para)
para.gsub!(/ | /,' ')
- para.gsub!(/,'<')
- para.gsub!(/>/,'>')
- #para.gsub!(/ /,' ')
+ para.gsub!(/,'<'); para.gsub!(/>/,'>')
para.gsub!(/<br(?:\s+\/)?>/,' ')
#para.gsub!(/\s\s/,' ')
para
@@ -334,9 +334,9 @@ module SiSU_ODF
def poem(para) #P4 #same as group
para.gsub!(@serial,'')
para.gsub!(/<:verse(?:-end)?>\s*/m,'')
- para=group_clean(para)
parray=[]
- para.split(/ /).each do |parablock|
+ para.split(/<:?br(?: \/)?>/).each do |parablock|
+ parablock=group_clean(parablock)
parray << %{#{parablock} } if parablock =~/\S+/
end
para=parray.join + ' '
@@ -344,9 +344,9 @@ module SiSU_ODF
def group(para) #P4 #same as verse
para.gsub!(@serial,'')
para.gsub!(/<:group(?:-end)?>\s*/m,'')
- para=group_clean(para)
parray=[]
- para.split(/ /).each do |parablock|
+ para.split(/<:?br(?: \/)?>/).each do |parablock|
+ parablock=group_clean(parablock)
parray << %{#{parablock} } if parablock =~/\S+/
end
para=parray.join + ' '
@@ -354,10 +354,10 @@ module SiSU_ODF
def code(para) #P5
para.gsub!(@serial,'')
para.gsub!(/<:code(?:-end)?>\s*/m,'')
- para=group_clean(para)
para.gsub!(/\s\s/,' ')
parray=[]
- para.split(/<:br>/).each do |parablock|
+ para.split(/<:?br(?: \/)?>/).each do |parablock|
+ parablock=group_clean(parablock)
parray << %{#{parablock} } if parablock =~/\S+/
end
para=parray.join + ' '
@@ -414,8 +414,7 @@ module SiSU_ODF
#end
wordlist
end
- def markup # Used for major markup instructions
- data=@data
+ def markup(data) # Used for major markup instructions
safe_characters=/[^a-zA-Z0-9}{\/?,."';:)(><\-_&!@%~#\]\[*=$| \n+`¡]/
dir=SiSU_Env::Info_env.new(@md.fns)
@data_mod,@endnotes,@level,@cont,@copen,@odf_contents_close=Array.new(6){[]}
@@ -443,9 +442,11 @@ module SiSU_ODF
para=para_array.join(' ')
para=para.strip
end
- para.gsub!(/^(<:i[12]>\s+)?_\*\s+/,'\\1 ') # bullet_red.png
+ para.gsub!(/^(<:i[1-9]>\s+)?_\*\s+/,'\\1 ') # bullet_red.png
#para.gsub!(/^_\*\s+/,'· ') #bullet
- para.gsub!(/^(<:i[12]>)\s+_\*\s+/,'\1 · ') #bullet
+ para.gsub!(/^(<:i[1-9]>)\s+_\*\s+/,'\1 · ') #bullet
+ #para.gsub!(/^(<:i[1-9]>\s+)?_\*\s+/,'\\1 ') # bullet_red.png
+ #para.gsub!(/^(<:i[1-9]>)\s+_\*\s+/,'\1 · ') #bullet
para.gsub!(/ /,' ')
para.gsub!(/<:p[bn]>/,' ')
para.gsub!(/©/,'©') #too arbitrary
@@ -542,18 +543,6 @@ module SiSU_ODF
para=format_text.seg_no_paranum
end
para='' if para =~// and para =~/^(-\{{2}~\d+|)/ # -endnote
- case para #remove
- when /<:i1>/
- if para =~/.*<:#>.*$/
- format_text=OD_format::Format_text_object.new(para,'')
- para=format_text.scr_indent_one_no_paranum
- end
- when /<:i2>/
- if para =~/.*<:#>.*$/
- format_text=OD_format::Format_text_object.new(para,'')
- para=format_text.scr_indent_one_no_paranum
- end
- end
if (para !~/#{@vz.margin_txt_0}|#{@vz.margin_txt_1}|#{@vz.margin_txt_2}/)
# i don't get the condition for no paranum
end
@@ -613,14 +602,26 @@ module SiSU_ODF
%{#@br} +
%{#{table}#@br} +
%{ #@br} +
- %{ #@br} +
- %{ #@br} +
+ %{ #@br} + # P1
+ %{ #@br} + # P1
%{ #@br} +
%{ #@br} +
%{ #@br} +
%{ #@br} +
%{ #@br} +
%{ #@br} +
+ %{ #@br} + # P1
+
+ %{ #@br} +
+ %{ #@br} +
+ %{ #@br} +
+ %{ #@br} +
+ %{ #@br} +
+ %{ #@br} +
+ %{ #@br} +
+ %{ #@br} +
+ %{ #@br} +
+
%{ #@br} +
%{ #@br} +
%{ #@br} +
diff --git a/lib/sisu/v0/plaintext.rb b/lib/sisu/v0/plaintext.rb
index c39cba14..8728741a 100644
--- a/lib/sisu/v0/plaintext.rb
+++ b/lib/sisu/v0/plaintext.rb
@@ -143,6 +143,7 @@ module SiSU_Plaintext
end
end
class Scroll \s*)?\d~(?:(\S+))?\s+)?(.+?)\s*<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/ #m # 2004w18 pb pn removal added
@@ -171,7 +173,7 @@ module SiSU_Plaintext
end
end
def songsheet
- markup
+ @data=markup(@data)
publish
#@data.each { |x| puts x.inspect if x =~/\[table/ }
end
@@ -264,9 +266,10 @@ WOK
para.gsub!(/~[{\[]([\d*+]+)\s+(?:.+?)[}\]]~/,'[^\1]') # endnote marker marked up
wrapped=if para[@regx]
paragraph=para[@regx,2]
- if paragraph.include? '<:i1>'
- paragraph.gsub!(/<:i1>/,'')
- util=SiSU_text_utils::Wrap.new(paragraph,70,2)
+ if paragraph =~/<:i([1-9])>/
+ m=$1.to_i
+ paragraph.gsub!(/<:i#{m}>/,'')
+ util=SiSU_text_utils::Wrap.new(paragraph,70,m*2)
else util=SiSU_text_utils::Wrap.new(paragraph,70,0)
end
util.line_wrap
@@ -291,8 +294,7 @@ WOK
end
@@endnotes_para=[]
end
- def markup # Used for major markup instructions
- data=@data
+ def markup(data) # Used for major markup instructions
dir=SiSU_Env::Info_env.new(@md.fns)
@data_mod,@endnotes,@level,@cont,@copen,@plaintext_contents_close=Array.new(6){[]}
(0..6).each { |x| @cont[x]=@level[x]=false }
@@ -303,17 +305,22 @@ WOK
data.each do |para|
para.gsub!(//,'') # remove dummy headings (used by html) #check
- para.gsub!(/_\*\s+/,'* ') # bullet markup, marked down
+ para.gsub!(/_\*\s+/,'* ') # bullet markup, marked down
+ #para.gsub!(/ /,"\n") # introduces a bug
para.gsub!(/©/,'©') # bullet markup, marked down
- para.gsub!(/&/,'&') # bullet markup, marked down
+ para.gsub!(/&/,'&') # bullet markup, marked down
para.gsub!(/(.+?)<\/sup>/,'^\1^')
para.gsub!(/(.+?)<\/sub>/,'[\1]')
para.gsub!(/(.+?)<\/i>/,'/\1/')
para.gsub!(/(.+?)<\/b>/,'*\1*')
para.gsub!(/(.+?)<\/u>/,'_\1_')
- para.gsub!(/<:(?:group|verse|alt|code)(?:-end)?>(?:\s+<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>)?/,'')
+ if para =~/<:(?:group|verse|alt|code)(?:-end)?>(?:\s+<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>)?/
+ para.gsub!(/ /,"\n") # watch
+ para.gsub!(/<:(?:group|verse|alt|code)(?:-end)?>(?:\s+<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>)?/,'')
+ end
para.gsub!(/<:p[bn]>/,'') # remove page breaks
para.gsub!(/^\s*<~\d+;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/,'') # remove empty lines - check
+ para.gsub!(/(^|\s)(https?:\/\/[^"><]+?)([,.:;"><]?(?:\s|$))/,"\\1#{@url_brace.txt_open}\\2#{@url_brace.txt_close}\\3")
para.gsub!(/(.+?)<\/a>/m,'\1')
para.gsub!(/<:name#\S+?>/,'') # remove name links
para.gsub!(/ /,' ') # decide on
@@ -394,13 +401,8 @@ WOK
end
para='' if (para =~/ / and para =~/^(-\{{2}~\d+|)/) # -endnote
case para
- when /<:i1>/
- if para =~/.*<:#>.*$/
- format_text=Format_text_object.new(para,'')
- para=format_text.scr_indent_one_no_paranum
- end
- when /<:i2>/
- if para =~/.*<:#>.*$/
+ when /<:i[1-9]>/
+ if para =~/.*<:#>.*$/m
format_text=Format_text_object.new(para,'')
para=format_text.scr_indent_one_no_paranum
end
@@ -421,7 +423,6 @@ WOK
def publish
divider="="
content=[]
- data=@data
content << @@plaintext[:open]
content << @@plaintext[:head]
content << @@plaintext[:body]
@@ -446,11 +447,12 @@ WOK
filename_plaintext=SiSU_Env::SiSU_file.new(@md,@md.fn[:plain]).mkfile
@sisu=[]
@content.each do |para| # this is a hack
- if para =~/^\S/
- if para !~/^([*=-]|\.){5}/; filename_plaintext.puts para #unix plaintext
- else filename_plaintext.puts para #unix plaintext
+ if para.class == Array and para.length > 0
+ para.each do |line|
+ line.gsub!(/\s+$/m,'')
+ filename_plaintext.puts line #unix plaintext
end
- else filename_plaintext.puts para # if para =~/^\s/
+ else filename_plaintext.puts para #unix plaintext # /^([*=-]|\.){5}/
end
end
end
diff --git a/lib/sisu/v0/shared_html_lite.rb b/lib/sisu/v0/shared_html_lite.rb
index 93e77db7..3c0e9ce1 100644
--- a/lib/sisu/v0/shared_html_lite.rb
+++ b/lib/sisu/v0/shared_html_lite.rb
@@ -50,6 +50,7 @@ module SiSU_Format_Shared
require "#{SiSU_lib}/defaults"
include SiSU_Viz
class CSS_Format
+ require "#{SiSU_lib}/defaults"
def initialize(content=nil,id=nil,ocnd='',ocns='',lv='',hname=nil)
content.gsub!(/<:i[12]>/,'')
@content=content
@@ -58,14 +59,78 @@ module SiSU_Format_Shared
@lv=@notenumber=lv.to_s
@hname=hname.to_s
@tab="\t"
+ @url_brace=SiSU_Viz::Skin.new.url_decoration
# lots introduced to do html tables in db
@@tablehead,@@tablefoot=[],[]
@vz=SiSU_Env::Get_init.instance.skin
end
+ def urls(data)
+ @words=[]
+ data.each do |word|
+ @words << if word=~/\{(.+?)\}((?:https?|ftp)\S+|image)/
+ if word =~/\{(.+?)\}((?:https?|ftp)\S+|image)([.,](?:\s|$))/
+ m,u,d=/\{(.+?)\}((?:https?|ftp)\S+|image)([.,](?:\s|$))/.match(word).captures
+ else m,u=/\{(.+?)\}((?:https?|ftp)\S+|image)/.match(word).captures
+ d=''
+ end
+ case m
+ when /\.png|\.jpg|\.gif|c=|\d+x\d+/
+ w,h=/(\d+)x(\d+)/.match(m).captures if m =~/\d+x\d+/
+ w=%{width="#{w}"} if w
+ h=%{height="#{h}"} if h
+ c=m[/"(.+?)"/m,1]
+ caption=%{#{c}
} if c
+ png=m.scan(/\S+/)[0]
+ #image_path=if @md.fns =~/\.-ss[tm]$/; @env.url.images_external
+ #else @env.url.images_local
+ #end
+ ins=if u and u.strip !~/^image$/
+ %{ [#{png}] #{caption}}
+ else %{[#{png}] #{caption}}
+ end
+ word.gsub!(/\{.+?\}((?:https?|ftp)\S+|image)/,ins)
+ else
+ link=m[/(.+)/m]
+ png=m.scan(/\S+/)[0].strip
+ link=link.strip
+ ins=%{#{link} #{d}}
+ word.gsub!(/\{.+?\}(?:https?|ftp)\S+/,ins)
+ end
+ word
+ else word
+ end
+ word
+ end
+ @words
+ end
+ def markup(para)
+ if para =~/\{.+?\}((?:http|ftp)\S+|image)/
+ @word_mode=para.scan(/\{.+?\}(?:(?:https?|ftp)\S+|image)|\S+/)
+ word_mode=urls(para)
+ words=word_mode.join(' ')
+ para.gsub!(/.+/,words)
+ end
+ if (para !~/(\"\w+:\/\/\S+?\"|>\s*\w+:\/\/\w+?\S*<)/) #url markup http etc.
+ if para=~/\w+:\/\/\S+?\.\S+?[.,] /
+ para.gsub!(/(\w+:\/\/\S+?\.\S+?)([.,] )/,%{#{@url_brace.xml_open}\\1 #{@url_brace.xml_close}\\2}) #full stops ! have been a bother
+ else
+ para.gsub!(/(\w+:\/\/\S+?\.\S+)/,%{#{@url_brace.xml_open}\\1 #{@url_brace.xml_close}})
+ end
+ end
+ if (para =~/[ ^](?:https?|ftp):\/\/\S+/) #url markup http leftovers watch carefully may accept too much 2004w46
+ if para=~/([ ^])((?:https?|ftp):\/\/\S+?)([\.,] )/
+ para.gsub!(/([ ^])((?:https?|ftp):\/\/\S+?)([\.,] )/,%{\\1#{@url_brace.xml_open}\\2 #{@url_brace.xml_close}\\3}) #full stops ! have been a bother
+ else
+ para.gsub!(/([ ^])((?:https?|ftp):\/\/\S+)/,%{\\1#{@url_brace.xml_open}\\2 #{@url_brace.xml_close}})
+ end
+ end
+ para
+ end
def paragraph
%{#{@tab*1} \n#{@tab*2}#@content\n#{@tab*1}
\n} << "\n"
end
def endnote
+ @content=markup(@content)
<
#{@tab*2}#@notenumber. #@content
@@ -88,12 +153,15 @@ GSUB
%{#{@tab*1}\n#{@tab*2}#@content\n#{@tab*1}
\n}
end
def norm
+ @content=markup(@content)
%{#{@tab*1}\n#{@tab*2}#@content\n#{@tab*1}
\n}
end
def indent1
+ @content=markup(@content)
%{#{@tab*1}\n#{@tab*2}#@content\n#{@tab*1}
\n}
end
def indent2
+ @content=markup(@content)
%{#{@tab*1}\n#{@tab*2}#@content\n#{@tab*1}
\n}
end
def para_table
diff --git a/lib/sisu/v0/shared_xml.rb b/lib/sisu/v0/shared_xml.rb
index 6cb6f991..69b47d01 100644
--- a/lib/sisu/v0/shared_xml.rb
+++ b/lib/sisu/v0/shared_xml.rb
@@ -77,6 +77,12 @@ module SiSU_text_parts
elsif /^([1-6]~)\s+(\S.+?)<~(0);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
@@alt_id_count+=1
@format,@text,@ocn=$1,$2,"x#{@@alt_id_count}"
+ elsif /^(?:<:i([1-9])>\s*_\*)\s+(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
+ @format,@text,@ocn="_#{$1}\*",$2,$3,$4
+ elsif /^(_\*)\s+(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
+ @format,@text,@ocn=$1,$2,$3
+ elsif /<:(i[1-9])>\s*(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
+ @format,@text,@ocn=$1,$2,$3
end
else
if /(.+?)<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
@@ -135,10 +141,12 @@ module SiSU_text_parts
end
module SiSU_XML_munge
class Trans
+ require "#{SiSU_lib}/defaults"
def initialize(md)
@sys=SiSU_Env::System_call.new
@dir=SiSU_Env::Info_env.new(md.fns)
@dp=SiSU_Env::Info_env.new.digest.pattern
+ @url_brace=SiSU_Viz::Skin.new.url_decoration
end
def char_enc #character encode
def utf8(para='')
@@ -336,12 +344,13 @@ module SiSU_XML_munge
para.gsub!(/<:pb>\s*/,'')
para.gsub!(/<+[-~]#>+/,'')
para.gsub!(/<0;\w\d+;[um]\d+><#@dp:#@dp>/,'')
- para.gsub!(/^(<:i[12]>\s*)_\*\s+/,'\1 ')
- para.gsub!(/^_\*\s+/,' ')
+ #embeds a red-bullet image -->
+ #para.gsub!(/^(<:i[1-9]>\s*_\*)\s+/,'\1 ')
+ #para.gsub!(/^_\*\s+/,' ')
para.gsub!(/(^|\s)\{\s*(\S+?\.(?:jpg|png|gif))\s+(\d+)x(\d+)(\s+[^}]+)?\}(https?:\/\/\S+)/,%{\\1 [\\2] \\5})
para.gsub!(/(^|\s)\{\s*(\S+?\.(?:jpg|png|gif))(\s+[^}]+)?\}(https?:\/\/\S+)/,%{\\1 \\2})
para.gsub!(/(^|\s)\{([^}]+)\}(https?:\/\/[^"><]+?)([,.:;"><]?(?:\s|$))/,'\1 \2\4')
- para.gsub!(/(^|\s)(https?:\/\/[^"><]+?)([,.:;"><]?(?:\s|$))/,'\1 \2\3')
+ para.gsub!(/(^|\s)(https?:\/\/[^"><]+?)([,.:;"><]?(?:\s|$))/,%{\\1#{@url_brace.xml_open} \\2#{@url_brace.xml_close}\\3})
para.gsub!(/ /,' ') #clean
para
end
@@ -363,9 +372,8 @@ module SiSU_XML_munge
para
end
def markup_group(para='')
- para.gsub!(/,'<')
- para.gsub!(/>/,'>')
- para.gsub!(/<br(?:\s+\/)?>/,' ')
+ para.gsub!(/,'<'); para.gsub!(/>/,'>')
+ para.gsub!(/<:?br(?:\s+\/)?>/,' ')
para
end
end
diff --git a/lib/sisu/v0/texpdf.rb b/lib/sisu/v0/texpdf.rb
index 7440289d..aec45b58 100644
--- a/lib/sisu/v0/texpdf.rb
+++ b/lib/sisu/v0/texpdf.rb
@@ -472,8 +472,7 @@ WOK
when /^4#{@@tilde}/; mono.level4
when /^5#{@@tilde}/; mono.level5
when /^6#{@@tilde}/; mono.level6
- when /^<:i1>/; mono.indent1
- when /^<:i2>/; mono.indent2
+ when /^<:i([1-9])>/; mono.indent($1)
when /<:=/; mono.symbol_graphic #watch
when /^\s*<:image\s+/; mono.image
when /\}image/; mono.png
diff --git a/lib/sisu/v0/texpdf_format.rb b/lib/sisu/v0/texpdf_format.rb
index ea418dd2..b981ca15 100644
--- a/lib/sisu/v0/texpdf_format.rb
+++ b/lib/sisu/v0/texpdf_format.rb
@@ -250,6 +250,7 @@ WOK
end
class Format_text_object
require 'iconv'
+ require "#{SiSU_lib}/defaults"
attr_accessor :string,:string1,:string,:orientation,:url,:dir,:tex
@@sys=SiSU_Env::System_call.new
@@tex_backslash="\\\\"
@@ -268,6 +269,7 @@ WOK
@start_table=''
@dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
@tx=SiSU_Env::Get_init.instance.tex
+ @url_brace=SiSU_Viz::Skin.new.url_decoration
end
def longtable_landscape
@end_table='\end{longtable}'
@@ -493,7 +495,7 @@ WOK
@string.gsub!(/[^\}>]((?:https?|ftp):\/\/\S+?)(<\/\S>)/,' \begin{scriptsize}\href{\1}{ \1 } \end{scriptsize}\2')
else # regular urls !! http:// href
if @string=~/(?:https?|ftp):\/\/\S+?[,.]? /
- @string.gsub!(/(?:^|[^\}>])((?:https?|ftp):\/\/\S+?)([,.])? /,' \begin{scriptsize}\href{\1}{ \1}\end{scriptsize}\2 ')
+ @string.gsub!(/(?:^|[^\}>])((?:https?|ftp):\/\/\S+?)([,.])? /," #{@url_brace.tex_open}\\begin{scriptsize}\\href{\\1}{ \\1}\\end{scriptsize}#{@url_brace.tex_close}\\2 ") #tamper
else @string.gsub!(/(?:^|[^\}>])((?:https?|ftp):\/\/\S+)/,' \begin{scriptsize}\href{ \1 }{\1} \end{scriptsize}') #should not be necessary, not checked
end
end
@@ -526,7 +528,7 @@ WOK
@string.gsub!(/\s+'/,' `') # open '
@string.gsub!(/^([1-6-]#{@@tilde}\S*|<.+?>)?\s*'/,'\1`') # open '
end
- @string.gsub!(/^(<:i[12]>)?\s*\\_\*\s*/,'\\1 \begin{math} \bullet \end{math}~~') #bullets - added 2004w17 watch \\_
+ @string.gsub!(/^(<:i[1-9]>)?\s*\\_\*\s*/,'\1 \begin{math} \bullet \end{math}~~') #bullets - added 2004w17 watch \\_
@string.gsub!(/(|<\/font>)/,'')
@string.gsub!(/\s*(\S+?)<\/sup>/,'^\1')
@string.gsub!(/(|<\/sup>)/,'')
@@ -692,17 +694,11 @@ WOK
@string.gsub!(/#{@md.lv6}\s*(.marginpar)/m,'\1')
#end BUGWATCH
end
- def indent1
- @string.gsub!(/<:i1>(.*)/m,
- '\begin{ParagraphIndent}{0.01\columnwidth} \1
-\end{ParagraphIndent}
-')
- end
- def indent2
- @string.gsub!(/<:i2>(.*)/m,
- '\begin{ParagraphIndent}{0.02\columnwidth} \1
-\end{ParagraphIndent}
-')
+ def indent(lev)
+ @string.gsub!(/<:i#{lev}>(.*)/m,
+ "\\begin{ParagraphIndent}{0.0#{lev}\\columnwidth} \\1
+\\end{ParagraphIndent}
+")
end
def symbol_graphic
dir=SiSU_Env::Info_env.new(@md.fns)
diff --git a/lib/sisu/v0/xhtml.rb b/lib/sisu/v0/xhtml.rb
index 44293919..8d9e2764 100644
--- a/lib/sisu/v0/xhtml.rb
+++ b/lib/sisu/v0/xhtml.rb
@@ -120,7 +120,7 @@ module SiSU_XHTML
end
def songsheet
pre
- markup
+ @data=markup(@data)
post
publish
end
@@ -269,8 +269,7 @@ WOK
@@xml[:body] << "#{@tab*0}" << "\n" #if para[@regx]
@endnotes=[]
end
- def markup
- data=@data
+ def markup(data)
@endnotes=[]
@rcdc=false
@level,@cont,@copen,@xml_contents_close=[],[],[],[]
@@ -331,12 +330,13 @@ WOK
table=SiSU_Tables::Table_xml.new(para,ocn)
para=table.table_split
table_structure(para,ocn)
- elsif para =~ /<:i1>/
- xml_structure(para,nil,nil,nil,'indent1')
- elsif para =~ /<:i2>/
- xml_structure(para,nil,nil,nil,'indent2')
- else
- xml_structure(para,nil,nil,nil)
+ elsif para =~ /^\s*(?:<:i([1-9])> )?_\*/
+ m=$1
+ para.gsub!(/^(\s*(?:<:i[1-9]> )?)_\*/,'\1')
+ xml_structure(para,nil,nil,nil,"indent_bullet#{m}")
+ elsif para =~ /<:i([1-9])>/
+ xml_structure(para,nil,nil,nil,"indent#{$1}")
+ else xml_structure(para,nil,nil,nil)
end
#@@xml[:body] << "#{@tab*6}" << "\n" if para[@regx]
#@@xml[:body] << "#{@tab*7}#{para[@regx,3]} " << "\n" if para[@regx,3]
@@ -358,12 +358,7 @@ WOK
end
para='' if (para =~// and para =~/^(-\{{2}~\d+|)/) # -endnote
para=case para
- when /<:i1>/
- if para =~/.*<:#>.*$/
- format_text=Format_text_object.new(para,'')
- format_text.scr_inden_ocn_e_no_paranum
- end
- when /<:i2>/
+ when /<:i[1-9]>/
if para =~/.*<:#>.*$/
format_text=Format_text_object.new(para,'')
format_text.scr_inden_ocn_e_no_paranum
@@ -419,7 +414,6 @@ WOK
end
def publish
content=[]
- data=@data
content << @@xml[:open] << @@xml[:head] << @@xml[:body] << @@xml[:metadata]
content << @@xml[:owner_details] if @md.stmp =~/\w\w/
content << @@xml[:tail] << @@xml[:close]
diff --git a/lib/sisu/v0/xml.rb b/lib/sisu/v0/xml.rb
index 20c5f80e..7edbb8ea 100644
--- a/lib/sisu/v0/xml.rb
+++ b/lib/sisu/v0/xml.rb
@@ -120,7 +120,7 @@ module SiSU_XML_SAX
end
def songsheet
pre
- markup
+ @data=markup(@data)
post
publish
end
@@ -293,8 +293,7 @@ WOK
@@xml[:body] << "#{@tab*0} " << "\n" #if para[@regx]
@endnotes=[]
end
- def markup
- data=@data
+ def markup(data)
xml_sc(@md)
@endnotes,@level,@cont,@copen,@xml_contents_close=[],[],[],[],[]
@rcdc=false
@@ -355,10 +354,12 @@ WOK
table=SiSU_Tables::Table_xml.new(para,ocn)
para=table.table_split
table_structure(para)
- elsif para =~ /<:i1>/
- xml_structure(para,nil,nil,nil,'indent1')
- elsif para =~ /<:i2>/
- xml_structure(para,nil,nil,nil,'indent2')
+ elsif para =~ /^\s*(?:<:i([1-9])> )?_\*/ #uncomment
+ m=$1
+ para.gsub!(/^(\s*(?:<:i[1-9]> )?)_\*/,'\1')
+ xml_structure(para,nil,nil,nil,"indent_bullet#{m}")
+ elsif para =~ /<:i([1-9])>/
+ xml_structure(para,nil,nil,nil,"indent#{$1}")
else xml_structure(para,nil,nil,nil)
end
#@@xml[:body] << "#{@tab*6}" << "\n" if para[@regx]
@@ -381,11 +382,7 @@ WOK
end
para='' if para =~// and para =~/^(-\{{2}~\d+|)/ # -endnote
if para =~/.*<:#>.*$/
- para=case para
- when /<:i1>/
- format_text=Format_text_object.new(para,'')
- format_text.scr_inden_ocn_e_no_paranum
- when /<:i2>/
+ para=if para =~ /<:i[1-9]>/
format_text=Format_text_object.new(para,'')
format_text.scr_inden_ocn_e_no_paranum
end
@@ -438,7 +435,6 @@ WOK
end
def publish
content=[]
- data=@data
content << @@xml[:open] << @@xml[:head] << @@xml[:body] << @@xml[:metadata]
content << @@xml[:owner_details] if @md.stmp =~/\w\w/
content << @@xml[:tail] << @@xml[:close]
diff --git a/lib/sisu/v0/xml_dom.rb b/lib/sisu/v0/xml_dom.rb
index 9c13dcc1..4225a276 100644
--- a/lib/sisu/v0/xml_dom.rb
+++ b/lib/sisu/v0/xml_dom.rb
@@ -118,7 +118,7 @@ module SiSU_XML_DOM
end
def songsheet
pre
- markup
+ @data=markup(@data)
post
publish
end
@@ -225,13 +225,13 @@ WOK
@cont[2]=false if @cont[2]
@cont[3]=false if @cont[3]
####### attempt to close contents
- if @copen[3] # 6{
+ if @copen[3] # 6~
[3,2,1].each { |v| @@xml[:body] << "#{@tab*n}\n" }
@copen[1]=@copen[2]=@copen[3]=false
- elsif @copen[2] # 5{
+ elsif @copen[2] # 5~
[2,1].each { |v| @@xml[:body] << "#{@tab*n}\n" }
@copen[1]=@copen[2]=@copen[3]=false
- elsif @copen[1] # 4{
+ elsif @copen[1] # 4~
[1].each { |v| @@xml[:body] << "#{@tab*n}\n" }
@copen[1]=@copen[2]=@copen[3]=false
end
@@ -318,8 +318,7 @@ WOK
@@xml[:body] << "#{@tab*0} " << "\n" #if para[@regx]
@endnotes=[]
end
- def markup
- data=@data
+ def markup(data)
xml_sc(@md)
@rcdc=false
@level,@cont,@copen,@xml_contents_close=[],[],[],[]
@@ -388,9 +387,12 @@ WOK
@@xml[:body] << table_structure(para,ocn)
else #xml_structure(para, nil, nil, nil)
type=case para
- when /^\s*<:i1>/; 'indent1'
- when /^\s*<:i2>/; 'indent2'
- else 'norm'
+ when /^\s*(?:<:i([1-9])> )?_\*/
+ m=$1
+ para.gsub!(/^(\s*(?:<:i[1-9]> )?)_\*/,'\1')
+ "indent_bullet#{m}"
+ when /^\s*<:i([1-9])>/; "indent#{$1}"
+ else 'norm'
end
xml_markup(para)
@@xml[:body] << %{#{@tab*6}} << "\n" if para[@regx] and para[@regx,3]
@@ -417,10 +419,7 @@ WOK
para='' if para =~// and para =~/^(-\{{2}~\d+|)/ # -endnote
if para =~/.*<:#>.*$/
para=case para
- when /<:i1>/
- format_text=Format_text_object.new(para,'')
- format_text.scr_inden_ocn_e_no_paranum
- when /<:i2>/
+ when /<:i[1-9]>/
format_text=Format_text_object.new(para,'')
format_text.scr_inden_ocn_e_no_paranum
end
@@ -481,7 +480,6 @@ WOK
end
def publish
content=[]
- data=@data
content << @@xml[:open] << @@xml[:head] << @@xml[:body] << @@xml[:metadata]
content << @@xml[:owner_details] if @md.stmp =~/\w\w/
content << @@xml[:tail] << @@xml[:close]
--
cgit v1.2.3