diff options
author | Ralph Amissah <ralph@amissah.com> | 2012-02-14 21:10:19 -0500 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2012-02-14 21:17:32 -0500 |
commit | 2b884fb73428186df29bf22ff38d77e5d2f823cf (patch) | |
tree | 117330ff01c641b19c3963d3e91ce7f19056ca66 /lib/sisu/v3dv/css.rb | |
parent | v3dv: sysenv, output_dir_structure, rewritten, affected code modified (diff) |
v3dv: --redirect (--redirect=dir_path) & --dump (--dump=dir_path) + consequences
* --dump places output in directory specified, if none specified in the current
directory (pwd).
* --redirect places output in subdirectory under specified directory,
subdirectory uses the filename (without the suffix). If no output directory is
specified places the subdirectory under the current directory (pwd).
* html, css incorporated into each file (concordance & manifest included)
* html, xhtml & xmls, css copied into css subdirectory (not used by html as
embedded)
* html xmls, images copied to output directory
* no links to manifest
* manifest with relative links only
* longer html filenames given to avoid names clashing (e.g. for toc, manifest,
concordance)
* html, epub, remove manifest toc links
* -j copy images associated with file (images used by html & xmls)
* automatically invoked by --dump & redirect
* v3 v3dv: document --redirect, --dump, -j update sisu_commands.sst
[documents not generated until v3.2.0 (when v3dv branch is merged into v3)]
Diffstat (limited to 'lib/sisu/v3dv/css.rb')
-rw-r--r-- | lib/sisu/v3dv/css.rb | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/lib/sisu/v3dv/css.rb b/lib/sisu/v3dv/css.rb index 522aae7e..cdcd16cd 100644 --- a/lib/sisu/v3dv/css.rb +++ b/lib/sisu/v3dv/css.rb @@ -59,6 +59,98 @@ module SiSU_Style require_relative 'sysenv' # sysenv.rb require_relative 'defaults' # defaults.rb + class CSS_HeadInfo + def initialize(md,ft='html') + @md,@ft=md,ft + @env=SiSU_Env::InfoEnv.new('',md) + @fn_css ||=SiSU_Env::CSS_Default.new + @o_str ||=SiSU_Env::OutputStructure.new(md).output_dir_structure + css_copy + end + def stylesheet + def css_path + SiSU_Env::CSS_Stylesheet.new(@md) + end + def css_embed_content + @css_embed_content ||=SiSU_Style::CSS.new + end + def css_embed? + if @ft=='html' \ + && @o_str.dump_or_redirect? + true + else + false + end + end + def css_embed(css) + <<-WOK + <style TYPE="text/css"> + #{css} + </style> + WOK + end + def css_action + style_css=SiSU_Style::CSS.new + css=case @ft + when 'html' + css=css_embed_content.html + css_embed(css) + when 'xhtml' + css_path.xhtml + when 'xml_sax' + css_path.xml_sax + when 'xml_dom' + css_path.xml_dom + else + css_embed_content.html + end + end + def css_head + (css_embed?) \ + ? css_action\ + : "#{css_path.html}#{css_path.html_seg}" + end + def css_head_seg + (css_embed?) \ + ? css_action \ + : css_path.html_seg + end + def css_head_xml + css_action + end + self + end + def css_copy + if @o_str.dump_or_redirect? + css=SiSU_Style::CSS.new + if @o_str.dump? + css_pth="#{@md.opt.opt_act[:dump][:inst]}/#{@env.path.style}" + elsif @o_str.redirect? + css_pth="#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}/#{@env.path.style}" + end + FileUtils::mkdir_p(css_pth) unless FileTest.directory?(css_pth) + case @ft + when 'html' + style=File.new("#{css_pth}/#{@fn_css.html}",'w') + style << css.html + style.close + when 'xhtml' + style=File.new("#{css_pth}/#{@fn_css.xhtml}",'w') + style << css.xhtml + style.close + when 'xml_sax' + style=File.new("#{css_pth}/#{@fn_css.xml_sax}",'w') + style << css.xml_sax + style.close + when 'xml_dom' + style=File.new("#{css_pth}/#{@fn_css.xml_dom}",'w') + style << css.xml_dom + style.close + css_path.xml_dom + end + end + end + end class CSS def initialize @vz=SiSU_Env::GetInit.instance.skin |