aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v3dv/sysenv.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v3dv/sysenv.rb')
-rw-r--r--lib/sisu/v3dv/sysenv.rb597
1 files changed, 459 insertions, 138 deletions
diff --git a/lib/sisu/v3dv/sysenv.rb b/lib/sisu/v3dv/sysenv.rb
index 1b1a5857..fcfc234b 100644
--- a/lib/sisu/v3dv/sysenv.rb
+++ b/lib/sisu/v3dv/sysenv.rb
@@ -405,56 +405,62 @@ module SiSU_Env
@fnn,@fnb,@fnt,@flv,@fnz=@@fnn,@@fnb,@@fnt,@@flv,@@fnz
end
def output_dir_structure
- def by_language_code?
- x=if defined? @rc['output_dir_structure_by'] \
- and @rc['output_dir_structure_by'] =~/language/
- true
- elsif defined? @rc['output_structure']['by_language'] \
- and @rc['output_structure']['by_language'] ==true
- true
- else false
+ def by?
+ output_structure=:filename #set default output structure
+ output_structure=if defined? @rc['output_dir_structure_by']
+ output_structure=if (@rc['output_dir_structure_by'] =~/dump/) \
+ or ((defined? @rc['output_structure']['dump']) \
+ && @rc['output_structure']['dump'] ==true)
+ :dump
+ elsif (@rc['output_dir_structure_by'] =~/redirect/) \
+ or ((defined? @rc['output_structure']['redirect']) \
+ && @rc['output_structure']['redirect'] ==true)
+ :redirect
+ elsif (@rc['output_dir_structure_by'] =~/language/) \
+ or ((defined? @rc['output_structure']['by_language']) \
+ && @rc['output_structure']['by_language'] ==true)
+ :language
+ elsif (@rc['output_dir_structure_by'] =~/filetype/) \
+ or ((defined? @rc['output_structure']['by_filetype']) \
+ && @rc['output_structure']['by_filetype'] ==true)
+ :filetype
+ elsif (@rc['output_dir_structure_by'] =~/filename/) \
+ or ((defined? @rc['output_structure']['by_filename']) \
+ && @rc['output_structure']['by_filename'] ==true)
+ :filename
+ else #recheck current default
+ :language
+ end
end
end
+ def dump?
+ ((by?) ==:dump) \
+ ? true \
+ : false
+ end
+ def redirect?
+ ((by?) ==:redirect) \
+ ? true \
+ : false
+ end
+ def by_language_code?
+ ((by?) ==:language) \
+ ? true \
+ : false
+ end
def by_filetype?
- x=if by_language_code?
- false
- elsif defined? @rc['output_dir_structure_by'] \
- and @rc['output_dir_structure_by'] =~/filetype/
- true
- elsif defined? @rc['output_structure']['by_filetype'] \
- and @rc['output_structure']['by_filetype'] ==true
- true
- else false
- end
+ ((by?) ==:filetype) \
+ ? true \
+ : false
end
def by_filename?
- x=if by_language_code?
- false
- elsif by_filetype?
- false
- elsif defined? @rc['output_dir_structure_by'] \
- and @rc['output_dir_structure_by'] =~/filename/
- true
- elsif defined? @rc['output_structure']['by_filename'] \
- and @rc['output_structure']['by_filename'] ==true
- true
- else true
- end
+ ((by?) ==:filename) \
+ ? true \
+ : false
end
def multilingual?
by_language_code?
end
- def by?
- by=if by_language_code?
- 'language'
- elsif by_filetype?
- 'filetype'
- elsif by_filename?
- 'filename'
- else
- 'filename'
- end
- end
self
end
def document_language_versions_found #REVISIT
@@ -1193,6 +1199,129 @@ module SiSU_Env
else false
end
end
+ def manifest_minitoc?
+ flag=if (defined? @rc['manifest']['minitoc'] \
+ and not @rc['manifest']['minitoc'].nil?)
+ @rc['manifest']['minitoc']
+ else false
+ end
+ end
+ def build
+ def omit_list
+ @off_list ||=if (defined? @rc['omit_list'] \
+ and not @rc['omit_list'].nil?)
+ @rc['omit_list']
+ elsif (defined? @rc['omit']['list'] \
+ and not @rc['omit']['list'].nil?)
+ @rc['omit']['list']
+ else
+ nil
+ end
+ end
+ def listed?(test) #fix
+ listed=if omit_list
+ x=(omit_list.scan(/\b#{test}\b/)).join
+ test==x \
+ ? true \
+ : false
+ else
+ false
+ end
+ listed
+ end
+ def ocn?
+ flag=if (defined? @rc['omit']['ocn'] \
+ and not @rc['omit']['ocn'].nil?) \
+ or listed?('ocn')
+ false
+ else
+ true
+ end
+ end
+ def toc?
+ flag=if (defined? @rc['omit']['toc'] \
+ and not @rc['omit']['toc'].nil?) \
+ or listed?('toc')
+ false
+ else
+ true
+ end
+ end
+ def manifest?
+ flag=if (defined? @rc['omit']['manifest'] \
+ and not @rc['omit']['manifest'].nil?) \
+ or listed?('manifest')
+ false
+ else
+ true
+ end
+ end
+ def manifest_links?
+ flag=if (defined? @rc['omit']['manifest_links'] \
+ and not @rc['omit']['manifest_links'].nil?) \
+ or listed?('manifest_links')
+ false
+ else
+ true
+ end
+ end
+ def manifest_minitoc?
+ flag=if (defined? @rc['omit']['manifest_minitoc'] \
+ and not @rc['omit']['manifest_minitoc'].nil?) \
+ or listed?('manifest_minitoc')
+ false
+ else
+ true
+ end
+ end
+ def html_minitoc?
+ flag=if (defined? @rc['omit']['html_minitoc'] \
+ and not @rc['omit']['html_minitoc'].nil?) \
+ or (listed?('html_minitoc') \
+ || listed?('minitoc'))
+ false
+ else
+ true
+ end
+ end
+ def html_navigation?
+ flag=if (defined? @rc['omit']['html_navigation'] \
+ and not @rc['omit']['html_navigation'].nil?) \
+ or listed?('html_navigation')
+ false
+ else
+ true
+ end
+ end
+ def html_navigation_bar?
+ flag=if (defined? @rc['omit']['html_navigation_bar'] \
+ and not @rc['omit']['html_navigation_bar'].nil?) \
+ or listed?('html_navigation_bar')
+ false
+ else
+ true
+ end
+ end
+ def html_search_form?
+ flag=if (defined? @rc['omit']['html_search_form'] \
+ and not @rc['omit']['html_search_form'].nil?) \
+ or listed?('html_search_form')
+ false
+ else
+ true
+ end
+ end
+ def html_right_column?
+ flag=if (defined? @rc['omit']['html_right_column'] \
+ and not @rc['omit']['html_right_column'].nil?) \
+ or listed?('html_right_column')
+ false
+ else
+ true
+ end
+ end
+ self
+ end
def odt_ocn?
((defined? @rc['odt']['ocn']) \
&& @rc['odt']['ocn']==true) \
@@ -1582,7 +1711,12 @@ WOK
end
end
def default_output_css
- if @env.output_dir_structure.by_language_code?
+ if (@md.opt.opt_act[:dump][:bool] \
+ && @md.opt.opt_act[:dump][:inst]) \
+ || (@md.opt.opt_act[:redirect][:bool] \
+ && @md.opt.opt_act[:redirect][:inst])
+ './'
+ elsif @env.output_dir_structure.by_language_code?
'../../'
elsif @env.output_dir_structure.by_filetype?
'../'
@@ -1678,7 +1812,14 @@ WOK
defaults[:sisu_share]
end
def style
- defaults[:stylesheet_stub]
+ if (@md.opt.opt_act[:dump][:bool] \
+ && @md.opt.opt_act[:dump][:inst]) \
+ || (@md.opt.opt_act[:redirect][:bool] \
+ && @md.opt.opt_act[:redirect][:inst])
+ 'css'
+ else
+ defaults[:stylesheet_stub]
+ end
end
def sample_data #sample data repository source directory
defaults[:sample_data_path]
@@ -3326,14 +3467,10 @@ WOK
end
end
end
- class FileOp <InfoFile #todo unify with CreateFile
- def initialize(md,fno='')
- begin
- @md,@fno=md,fno
- @env=SiSU_Env::InfoEnv.new(@md.fns)
- rescue; STDERR.puts SiSU_Screen::Ansi.new(@cmd,$!,$@).rescue
- ensure
- end
+ class OutputStructure
+ def initialize(md)
+ @md=md
+ @env=SiSU_Env::InfoEnv.new(@md.fns)
end
def output_dir_structure
def by_language_code?
@@ -3346,11 +3483,57 @@ WOK
@env.output_dir_structure.by_filename?
end
def multilingual?
- @env.output_dir_structure.by_language_code?
- #by_language_code?
+ by_language_code?
+ end
+ def dump?
+ ((@md.opt.opt_act[:dump][:bool] \
+ && @md.opt.opt_act[:dump][:inst]) \
+ || (@env.output_dir_structure.dump?)) \
+ ? true \
+ : false
+ end
+ def redirect?
+ ((@md.opt.opt_act[:redirect][:bool] \
+ && @md.opt.opt_act[:redirect][:inst]) \
+ || (@env.output_dir_structure.redirect?)) \
+ ? true \
+ : false
+ end
+ def dump_or_redirect?
+ ((dump?) || (redirect?)) \
+ ? true \
+ : false
+ end
+ def by?
+ if dump?
+ :dump
+ elsif redirect?
+ :redirect
+ elsif by_language_code?
+ :language
+ elsif by_filetype?
+ :filetype
+ elsif by_filename?
+ :filename
+ else #recheck current default
+ :language
+ end
end
self
end
+ end
+ class FileOp <InfoFile #todo unify with CreateFile
+ def initialize(md,fno='')
+ begin
+ @md,@fno=md,fno
+ @env=SiSU_Env::InfoEnv.new(@md.fns)
+ rescue; STDERR.puts SiSU_Screen::Ansi.new(@cmd,$!,$@).rescue
+ ensure
+ end
+ end
+ def output_dir_structure
+ OutputStructure.new(@md).output_dir_structure
+ end
def mkdir_initialize # not used but consider using
FileUtils::mkdir_p(output_path.base.dir) unless FileTest.directory?(output_path.base.dir)
FileUtils::mkdir_p("#{output_path.base.dir}/#{@md.fnb}") unless FileTest.directory?("#{output_path.base.dir}/#{@md.fnb}")
@@ -3400,8 +3583,9 @@ WOK
@@filename_html_scroll=File.new(p_fn,'w+')
end
def html_seg_index
- pth=(by_filename?) \
- ? "#{output_path.html.dir}"
+ pth=((by_filename?) \
+ || (output_dir_structure.dump?)) \
+ ? "#{output_path.html.dir}" \
: "#{output_path.html.dir}/#{@md.fnb}"
fn=base_filename.html_seg_index
make_path(pth)
@@ -3409,8 +3593,9 @@ WOK
@@filename_html_index=File.new(p_fn,'w+')
end
def html_segtoc
- pth=(by_filename?) \
- ? "#{output_path.html.dir}"
+ pth=((by_filename?) \
+ || (output_dir_structure.dump?)) \
+ ? "#{output_path.html.dir}" \
: "#{output_path.html.dir}/#{@md.fnb}"
fn=base_filename.html_segtoc
make_path(pth)
@@ -3719,9 +3904,9 @@ WOK
def base_filename
def txt
ft='.txt'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'plain' + @md.lang_code_insert + ft
@@ -3729,9 +3914,9 @@ WOK
end
def html_scroll
ft='.html'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'scroll' + @md.lang_code_insert + ft
@@ -3739,7 +3924,7 @@ WOK
end
def html_seg_index
ft='.html'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
'index' + ft
else
'index' + @md.lang_code_insert + ft
@@ -3747,7 +3932,9 @@ WOK
end
def html_segtoc
ft='.html'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ @md.fnb + '.toc' + ft
+ elsif output_dir_structure.by_language_code?
'toc' + ft
else
'toc' + @md.lang_code_insert + ft
@@ -3755,7 +3942,7 @@ WOK
end
def html_book_index
ft='.html'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
'book_index' + ft
else
'book_index' + @md.lang_code_insert + ft
@@ -3763,7 +3950,9 @@ WOK
end
def html_concordance
ft='.html'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ @md.fnb + '.concordance' + ft
+ elsif output_dir_structure.by_language_code?
'concordance' + ft
else
'concordance' + @md.lang_code_insert + ft
@@ -3771,9 +3960,9 @@ WOK
end
def xhtml
ft= '.xhtml'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'scroll' + @md.lang_code_insert + ft
@@ -3781,7 +3970,7 @@ WOK
end
def epub
ft='.epub'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
else
@md.fnb + @md.lang_code_insert + ft
@@ -3789,9 +3978,9 @@ WOK
end
def odt
ft='.odt'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'opendocument' + @md.lang_code_insert + ft
@@ -3799,9 +3988,9 @@ WOK
end
def xml_sax
ft='.sax.xml'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'scroll' + @md.lang_code_insert + ft
@@ -3809,22 +3998,22 @@ WOK
end
def xml_dom
ft='.dom.xml'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'scroll' + @md.lang_code_insert + ft
end
end
def pdf_p
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + '.portrait.'
else 'portrait' + @md.lang_code_insert + '.'
end
end
def pdf_l
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + '.landscape.'
else 'landscape' + @md.lang_code_insert + '.'
end
@@ -3861,7 +4050,7 @@ WOK
end
def manpage
ft='1'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + '.' + ft
else
@md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft
@@ -3869,7 +4058,7 @@ WOK
end
def info
ft='info'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + '.' + ft
else
@md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft
@@ -3877,7 +4066,7 @@ WOK
end
def texinfo
ft='texinfo'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + '.' + ft
else
@md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft
@@ -3885,9 +4074,9 @@ WOK
end
def hash_digest
ft='.txt'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + '.hash_digest' + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'digest' + @md.lang_code_insert + ft
@@ -3895,9 +4084,9 @@ WOK
end
def sitemap
ft='.xml'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + '.sitemap' + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else
'sitemap' + @md.lang_code_insert + ft
@@ -3905,9 +4094,9 @@ WOK
end
def qrcode_title
ft='.title.png'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else #fix
'sisu_manifest' + @md.lang_code_insert + ft
@@ -3915,9 +4104,9 @@ WOK
end
def qrcode_md
ft='.md.png'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else #fix
'sisu_manifest' + @md.lang_code_insert + ft
@@ -3925,9 +4114,9 @@ WOK
end
def manifest_txt
ft='.txt'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else #fix
'sisu_manifest' + @md.lang_code_insert + ft
@@ -3935,9 +4124,11 @@ WOK
end
def manifest
ft='.html'
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ @md.fnb + '.manifest' + ft
+ elsif output_dir_structure.by_language_code?
@md.fnb + ft
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
@md.fnb + @md.lang_code_insert + ft
else #fix
'sisu_manifest' + @md.lang_code_insert + ft
@@ -3967,52 +4158,70 @@ WOK
@ft=ft
def dir
def abc
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.redirect?
+ "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
+ elsif output_dir_structure.dump?
+ @md.opt.opt_act[:dump][:inst]
+ elsif output_dir_structure.by_language_code?
"#{output_path.base.dir}/#{@md.opt.lng}/#{@ft}"
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
"#{output_path.base.dir}/#{@ft}"
else
"#{output_path.base.dir}/#{@md.fnb}"
end
end
def ab
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.redirect?
+ "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
+ elsif output_dir_structure.dump?
+ @md.opt.opt_act[:dump][:inst]
+ elsif output_dir_structure.by_language_code?
"#{output_path.base.dir}/#{@md.opt.lng}/#{@ft}"
else
"#{output_path.base.dir}/#{@ft}"
end
end
def ab_src
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.redirect?
+ "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
+ elsif output_dir_structure.dump?
+ @md.opt.opt_act[:dump][:inst]
+ elsif output_dir_structure.by_language_code?
"#{output_path.base.dir}/#{@ft}/#{@md.opt.lng}"
else
"#{output_path.base.dir}/#{@ft}"
end
end
def ab_pod
- "#{output_path.base.dir}/#{@ft}"
+ if output_dir_structure.redirect?
+ "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
+ elsif output_dir_structure.dump?
+ @md.opt.opt_act[:dump][:inst]
+ else
+ "#{output_path.base.dir}/#{@ft}"
+ end
end
self
end
def url
def abc
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{output_path.base.url}/#{@md.opt.lng}/#{@ft}"
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
"#{output_path.base.url}/#{@ft}"
else
"#{output_path.base.url}/#{@md.fnb}"
end
end
def ab
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{output_path.base.url}/#{@md.opt.lng}/#{@ft}"
else
"#{output_path.base.url}/#{@ft}"
end
end
def ab_src
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{output_path.base.url}/#{@ft}/#{@md.opt.lng}"
else
"#{output_path.base.url}/#{@ft}"
@@ -4025,30 +4234,32 @@ WOK
end
def rel
def abc
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{@md.opt.lng}/#{@ft}"
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
"#{@ft}"
else
"#{@md.fnb}"
end
end
def ab
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{@md.opt.lng}/#{@ft}"
else
"#{@ft}"
end
end
def ab_src
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ "."
+ elsif output_dir_structure.by_language_code?
"#{@ft}/#{@md.opt.lng}"
else
"#{@ft}"
end
end
def ab_pod
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{@ft}"
else
"#{@ft}"
@@ -4058,30 +4269,36 @@ WOK
end
def rel_sm
def abc
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{@md.opt.lng}/#{@ft}"
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
"#{@ft}"
else
"#{@md.fnb}"
end
end
def ab
- if @env.output_dir_structure.by_language_code?
- "#{@md.opt.lng}/#{@ft}"
- else
- "#{@ft}"
+ if output_dir_structure.dump_or_redirect?
+ '.'
+ elsif output_dir_structure.by_language_code? \
+ or output_dir_structure.by_filetype?
+ '../' + @ft
+ else '.'
end
end
def ab_src
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ '.'
+ elsif output_dir_structure.by_language_code?
"#{@ft}/#{@md.opt.lng}"
else
"#{@ft}"
end
end
def ab_pod
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ '.'
+ elsif output_dir_structure.by_language_code?
"../../#{@ft}/#{@md.opt.lng}"
else
"../#{@ft}"
@@ -4091,16 +4308,16 @@ WOK
end
def rcp
def abc
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{output_path.stub.rcp}/#{@md.opt.lng}/#{@ft}"
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
"#{output_path.stub.rcp}/#{@ft}"
else
"#{output_path.stub.rcp}/#{@md.fnb}"
end
end
def ab
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
"#{output_path.stub.rcp}/#{@md.opt.lng}/#{@ft}"
else
"#{output_path.stub.rcp}/#{@ft}"
@@ -4108,16 +4325,6 @@ WOK
end
self
end
- def rel_sm
- def ab
- if @env.output_dir_structure.by_language_code? \
- or @env.output_dir_structure.by_filetype?
- '../' + @ft
- else '.'
- end
- end
- self
- end
self
end
def output_path
@@ -4151,9 +4358,18 @@ WOK
end
self
end
+ def webserver_path
+ if output_dir_structure.dump?
+ @md.opt.opt_act[:dump][:inst]
+ elsif output_dir_structure.redirect?
+ @md.opt.opt_act[:redirect][:inst]
+ else
+ "#{@env.path.webserv}"
+ end
+ end
def base
def dir
- "#{@env.path.webserv}/#{@md.opt.f_pth[:pth_stub]}"
+ "#{webserver_path}/#{@md.opt.f_pth[:pth_stub]}"
end
def url
"#{@env.url.webserv}/#{@md.opt.f_pth[:pth_stub]}"
@@ -4313,9 +4529,11 @@ WOK
set_path(ft).rel_sm.ab
end
def rel_image
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ './image'
+ elsif output_dir_structure.by_language_code?
'../../_sisu/image'
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
'../_sisu/image'
else
'../_sisu/image'
@@ -4343,9 +4561,11 @@ WOK
set_path(ft).rel_sm.ab
end
def rel_image
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.dump_or_redirect?
+ './image'
+ elsif output_dir_structure.by_language_code?
'../../../_sisu/image'
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
'../../_sisu/image'
else
'../_sisu/image'
@@ -4377,9 +4597,9 @@ WOK
set_path(ft).rel_sm.ab
end
def rel_image
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
'../../_sisu/image'
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
'../_sisu/image'
else
'../_sisu/image'
@@ -4564,6 +4784,9 @@ WOK
def rcp
set_path(ft).rcp.abc
end
+ def rel_sm
+ set_path(ft).rel_sm.ab
+ end
self
end
def harvest
@@ -4583,9 +4806,9 @@ WOK
set_path(ft).rcp.ab
end
def rel_sm
- if @env.output_dir_structure.by_language_code?
+ if output_dir_structure.by_language_code?
''
- elsif @env.output_dir_structure.by_filetype?
+ elsif output_dir_structure.by_filetype?
''
else
''
@@ -4726,6 +4949,104 @@ WOK
self
end
end
+ class InfoSet #<InfoEnv
+ def initialize(md)
+ @md=md
+ @env=SiSU_Env::InfoEnv.new(md.fns)
+ end
+ def heading_omit_list
+ @md.make.omit_list
+ end
+ def not_heading_make_omit_listed?(test) #fix
+ listed=if heading_omit_list
+ x=(heading_omit_list.scan(/\b#{test}\b/)).join
+ test==x \
+ ? false \
+ : true
+ else
+ true
+ end
+ listed
+ end
+ def ocn?
+ @md.opt.opt_act[:ocn][:bool] \
+ && (@env.build.ocn?) \
+ ? true \
+ : false
+ end
+ def toc?
+ @md.opt.opt_act[:toc][:bool] \
+ && (not_heading_make_omit_listed?('ocn')) \
+ && (@env.build.toc?) \
+ ? true \
+ : false
+ end
+ def manifest?
+ @md.opt.opt_act[:manifest][:bool] \
+ && (not_heading_make_omit_listed?('manifest')) \
+ && (@env.build.manifest?) \
+ ? true \
+ : false
+ end
+ def manifest_links?
+ @md.opt.opt_act[:manifest_links][:bool] \
+ && (not_heading_make_omit_listed?('manifest_links')) \
+ && (@env.build.manifest_links?) \
+ ? true \
+ : false
+ end
+ def manifest_minitoc?
+ @md.opt.opt_act[:manifest_minitoc][:bool] \
+ && (not_heading_make_omit_listed?('manifest_minitoc')) \
+ && (@env.build.manifest_minitoc?) \
+ ? true \
+ : false
+ end
+ def metadata?
+ @md.opt.opt_act[:metadata][:bool] \
+ && (not_heading_make_omit_listed?('metadata')) \
+ && (@env.build.metadata?) \
+ ? true \
+ : false
+ end
+ def html_minitoc?
+ @md.opt.opt_act[:html_minitoc][:bool] \
+ && ((not_heading_make_omit_listed?('html_minitoc')) \
+ || (not_heading_make_omit_listed?('minitoc'))) \
+ && (@env.build.html_minitoc?) \
+ ? true \
+ : false
+ end
+ def html_navigation?
+ @md.opt.opt_act[:html_navigation][:bool] \
+ && (not_heading_make_omit_listed?('html_navigation')) \
+ && (@env.build.html_navigation?) \
+ ? true \
+ : false
+ end
+ def html_navigation_bar?
+ @md.opt.opt_act[:html_navigation_bar][:bool] \
+ && (not_heading_make_omit_listed?('html_navigation_bar')) \
+ && (@env.build.html_navigation_bar?) \
+ ? true \
+ : false
+ end
+ def html_search_form?
+ @md.opt.opt_act[:html_search_form][:bool] \
+ && (not_heading_make_omit_listed?('html_search_form')) \
+ && (@env.build.html_search_form?) \
+ ? true \
+ : false
+ end
+ def html_right_column?
+ @md.opt.opt_act[:html_right_column][:bool] \
+ && ((not_heading_make_omit_listed?('html_right_column')) \
+ || (not_heading_make_omit_listed?('html_promo'))) \
+ && (@env.build.html_right_column?) \
+ ? true \
+ : false
+ end
+ end
class CreateFile <InfoEnv #todo unify with FileOp
def initialize(fns)
begin
@@ -5045,7 +5366,7 @@ WOK
class CSS_Select < InfoEnv
def initialize(md)
@md=md
- @env=SiSU_Env::InfoEnv.new
+ @env=SiSU_Env::InfoEnv.new('',@md)
end
def html
css=if @md.doc_css \
@@ -5115,7 +5436,7 @@ WOK
def initialize(md)
@md=md
@css=SiSU_Env::CSS_Select.new(@md)
- @env=SiSU_Env::InfoEnv.new
+ @env=SiSU_Env::InfoEnv.new('',@md)
@file=SiSU_Env::FileOp.new(@md)
end
def html
@@ -5203,7 +5524,7 @@ WOK
def cp_external_images
src="#{@env.processing_path.processing}/external_document/image"
dest="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_external"
- if FileTest.directory?(src)
+ if FileTest.directory?(src)
cp_images(src,dest)
end
end