aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/plaintext.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/plaintext.rb')
-rw-r--r--lib/sisu/v0/plaintext.rb44
1 files changed, 23 insertions, 21 deletions
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 <Source
+ require "#{SiSU_lib}/defaults"
require "#{SiSU_lib}/shared_txt"
include SiSU_text_utils
@@endnotes_para=[]
@@ -150,6 +151,7 @@ module SiSU_Plaintext
@@dp=nil
def initialize(data,md)
@data,@md=data,md
+ @url_brace=SiSU_Viz::Skin.new.url_decoration
@vz=SiSU_Env::Get_init.instance.skin
@dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
@regx=/^(?:(?:<:p[bn]>\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!(/<!Th?¡.+/m,"#@br#{table_message}")
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!(/<br(?: \/)?>/,"\n") # introduces a bug
para.gsub!(/&#169;/,'©') # bullet markup, marked down
- para.gsub!(/&amp;/,'&') # bullet markup, marked down
+ para.gsub!(/&amp;/,'&') # bullet markup, marked down
para.gsub!(/<sup>(.+?)<\/sup>/,'^\1^')
para.gsub!(/<sub>(.+?)<\/sub>/,'[\1]')
para.gsub!(/<i>(.+?)<\/i>/,'/\1/')
para.gsub!(/<b>(.+?)<\/b>/,'*\1*')
para.gsub!(/<u>(.+?)<\/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!(/<br(?: \/)?>/,"\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 href=".+?">(.+?)<\/a>/m,'\1')
para.gsub!(/<:name#\S+?>/,'') # remove name links
para.gsub!(/&nbsp;/,' ') # decide on
@@ -394,13 +401,8 @@ WOK
end
para='' if (para =~/<a name="n\d+">/ and para =~/^(-\{{2}~\d+|<!e[:_]\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