aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/sisu/v1/plaintext.rb61
1 files changed, 18 insertions, 43 deletions
diff --git a/lib/sisu/v1/plaintext.rb b/lib/sisu/v1/plaintext.rb
index dd2964d9..540c1bce 100644
--- a/lib/sisu/v1/plaintext.rb
+++ b/lib/sisu/v1/plaintext.rb
@@ -22,7 +22,7 @@
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
@@ -73,20 +73,8 @@ module SiSU_Plaintext
class Source
def initialize(opt)
@opt=opt
- @@dostype=if @opt.fns =~/(.+?)\.(?:-|ssm\.)?sst$/
- if @opt.mod.inspect =~ /--footnote/ \
- and @opt.mod.inspect =~ /--dos/
- 'msdos footnotes'
- elsif @opt.mod.inspect =~ /--endnote/ \
- and @opt.mod.inspect =~ /--dos/
- 'msdos endnotes'
- elsif @opt.mod.inspect =~ /--footnote/
- 'unix footnotes'
- elsif @opt.mod.inspect =~ /--endnote/
- 'unix endnotes'
- else 'unix footnotes'
- end
- else puts "#{sf} not a processed file type"
+ unless @opt.fns =~/(.+?)\.(?:-|ssm\.)?sst$/
+ puts "#{sf} not a processed file type"
end
end
def read
@@ -123,23 +111,15 @@ module SiSU_Plaintext
@dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
@regx=/^(?:(?:#{Mx[:br_page]}\s*|#{Mx[:br_page_new]}\s*)?#{Mx[:lv_o]}\d:(\S*?)#{Mx[:lv_c]})?\s*(.+?)\s*#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/m # 2004w18 pb pn removal added
@tab="\t"
- @br=if md.mod.inspect =~ /--footnote/ \
- and md.mod.inspect =~ /--dos/
- @@dostype='msdos footnotes'
- "\r\n"
- elsif md.mod.inspect =~ /--endnote/ \
- and md.mod.inspect =~ /--dos/
- @@dostype='msdos endnotes'
- "\r\n"
- elsif md.mod.inspect =~ /--footnote/
- @@dostype='unix footnotes'
- "\n"
- elsif md.mod.inspect =~ /--endnote/
- @@dostype='unix endnotes'
- "\n"
- else
- @@dostype='unix footnotes'
- "\n"
+ @@endnotes_=case md.mod.inspect
+ when /--footnote/; false
+ when /--endnote/; true
+ else true
+ end
+ @br=case md.mod.inspect
+ when /--dos/; "\r\n"
+ when /--unix/; "\n"
+ else "\n"
end
@plaintext={ :body=>[],:open=>[],:close=>[],:head=>[],:metadata=>[],:tail=>[] }
end
@@ -255,11 +235,11 @@ WOK
@plaintext[:body] << wrapped << @br # main text, contents, body KEEP
end
if @@endnotes[:para] \
- and @@dostype =~/footnote/ #edit out to switch off endnotes following paragraph to which they belong
+ and not @@endnotes_
@plaintext[:body] << @br
@@endnotes[:para].each {|e| @plaintext[:body] << e << @br}
elsif @@endnotes[:para] \
- and @@dostype =~/endnote/
+ and @@endnotes_
@plaintext[:body] << @br*2
end
@@endnotes[:para]=[]
@@ -391,11 +371,6 @@ WOK
if para !~/#{@vz.margin_txt_0}|#{@vz.margin_txt_1}|#{@vz.margin_txt_2}/
# i don't get the condition for no paranum
end
- #if para =~/<:center>/
- # one,two=/(.*)<:center>(.*)/.match(para)[1,2]
- # format_text=Format_text_object.new(one,two)
- # para=format_text.center
- #end
para.gsub!(/#{Mx[:id_o]}.+?#{Mx[:id_c]}/,' ') if para ## Clean Prepared Text
para.gsub!(/<!.+!>/,' ') if para ## Clean Prepared Text
para.gsub!(/<:\S+>/,' ') if para ## Clean Prepared Text
@@ -409,8 +384,8 @@ WOK
content << plaintext[:open]
content << plaintext[:head]
content << plaintext[:body]
- content << @@endnotes[:end] if @@dostype =~/endnotes/
- content << "#@br#{divider*78}#@br"
+ content << @@endnotes[:end] if @@endnotes_
+ content << "#{@br}#{divider*78}#{@br}"
content << plaintext[:metadata]
content << "#@br#{divider*78}#@br" if @md.stmp =~/\w+/ #not used?
content << plaintext[:owner_details] if @md.stmp =~/\w+/ #not used?
@@ -430,13 +405,13 @@ WOK
file_plaintext=SiSU_Env::SiSU_file.new(@md,@md.fn[:plain]).mkfile
@sisu=[]
@content.each do |para| # this is a hack
- if para.class == Array \
+ if para.class==Array \
and para.length > 0
para.each do |line|
line.gsub!(/\s+$/m,'')
file_plaintext.puts line #unix plaintext
end
- else file_plaintext.puts para #unix plaintext # /^([*=-]|\.){5}/
+ else file_plaintext.puts para #unix plaintext # /^([*=-]|\.){5}/
end
end
file_plaintext.close