class SiSU_AO_Insertions::Insertions

Public Class Methods

new(md,data) click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 57
def initialize(md,data)
  @md,@data=md,data
end

Public Instance Methods

by_filename(linked_doc,lng,src=nil) click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 290
def by_filename(linked_doc,lng,src=nil)
  @linked_doc,@lng,@src=linked_doc,lng,src
  @lc=SiSU_Env::FilenameLanguageCodeInsert.new(@md.opt,lng).language_code_insert
  @base_path="#{@md.file.output_path.base.url}/#{@linked_doc}"
  def fnh
    {
      fn: @linked_doc,
      lng: @lc,
    }
  end
  def path_and_file(fn,pth=nil)
    (pth.nil?) \
    ? @base_path + '/' + fn
    : @base_path + '/' + pth + '/' + fn
  end
  def manifest
    fn=@md.file.base_filename.manifest(fnh)
    path_and_file(fn)
  end
  def html_toc
    fn=@md.file.base_filename.html_segtoc(fnh)
    path_and_file(fn)
  end
  def html_doc
    fn=@md.file.base_filename.html_scroll(fnh)
    path_and_file(fn)
  end
  def html_concordance
    fn=@md.file.base_filename.html_concordance
    path_and_file(fn)
  end
  def epub
    fn=@md.file.base_filename.epub(fnh)
    path_and_file(fn,'epub')
  end
  def pdf_landscape
    fn=@md.file.base_filename.pdf_l_a4(fnh)
    path_and_file(fn)
  end
  def pdf_portrait
    fn=@md.file.base_filename.pdf_p_a4(fnh)
    path_and_file(fn)
  end
  def odt
    fn=@md.file.base_filename.odt(fnh)
    path_and_file(fn)
  end
  def xhtml
    fn=@md.file.base_filename.xhtml(fnh)
    path_and_file(fn)
  end
  def docbook
    fn=@md.file.base_filename.xml_docbook_book(fnh)
    path_and_file(fn)
  end
  def xml_sax
    fn=@md.file.base_filename.xml_sax(fnh)
    path_and_file(fn)
  end
  def xml_dom
    fn=@md.file.base_filename.xml_dom(fnh)
    path_and_file(fn)
  end
  def txt
    fn=@md.file.base_filename.txt(fnh)
    path_and_file(fn)
  end
  def digest
    fn=@md.file.base_filename.hash_digest(fnh)
    path_and_file(fn)
  end
  def source
    @base_path + '/' + @src
  end
  def sisupod
    @base_path + '/' + @src + '.zip'
  end
  self
end
by_filetype(linked_doc,lng,src=nil) click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 212
def by_filetype(linked_doc,lng,src=nil)
  @linked_doc,@lng,@src=linked_doc,lng,src
  @lc=SiSU_Env::FilenameLanguageCodeInsert.new(@md.opt,lng).
    language_code_insert
  @base_path="#{@md.file.output_path.base.url}"
  def fnh
    {
      fn: @linked_doc,
      lng: @lc,
    }
  end
  def path_and_file(fn,pth)
    @base_path + '/' + pth + '/' + fn
  end
  def manifest
    fn=@md.file.base_filename.manifest(fnh)
    path_and_file(fn,'manifest')
  end
  def html_toc
    fn=@md.file.base_filename.html_segtoc(fnh)
    path_and_file(fn,'html')
  end
  def html_doc
    fn=@md.file.base_filename.html_scroll(fnh)
    path_and_file(fn,'html')
  end
  def html_concordance
    fn=@md.file.base_filename.html_concordance
    path_and_file(fn,'html')
  end
  def epub
    fn=@md.file.base_filename.epub(fnh)
    path_and_file(fn,'epub')
  end
  def pdf_landscape
    fn=@md.file.base_filename.pdf_l_a4(fnh)
    path_and_file(fn,'pdf')
  end
  def pdf_portrait
    fn=@md.file.base_filename.pdf_p_a4(fnh)
    path_and_file(fn,'pdf')
  end
  def odt
    fn=@md.file.base_filename.odt(fnh)
    path_and_file(fn,'odt')
  end
  def xhtml
    fn=@md.file.base_filename.xhtml(fnh)
    path_and_file(fn,'xhtml')
  end
  def docbook
    fn=@md.file.base_filename.xml_docbook_book(fnh)
    path_and_file(fn,'docbook')
  end
  def xml_sax
    fn=@md.file.base_filename.xml_sax(fnh)
    path_and_file(fn,'xml_sax')
  end
  def xml_dom
    fn=@md.file.base_filename.xml_dom(fnh)
    path_and_file(fn,'xml_dom')
  end
  def txt
    fn=@md.file.base_filename.txt(fnh)
    path_and_file(fn,'txt')
  end
  def digest
    fn=@md.file.base_filename.hash_digest(fnh)
    path_and_file(fn,'digest')
  end
  def source
    @base_path + '/src/' + @src
  end
  def sisupod
    @base_path + '/src/' + @src + '.zip'
  end
  self
end
by_language(linked_doc,lng,src=nil) click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 137
def by_language(linked_doc,lng,src=nil)
  @linked_doc,@lng,@src=linked_doc,lng,src
  @base_path="#{@md.file.output_path.base.url}/#{lng}"
  def fnh
    {
      fn: @linked_doc,
    }
  end
  def path_and_file(fn,pth)
    @base_path + '/' + pth + '/' + fn
  end
  def manifest
    fn=@md.file.base_filename.manifest(fnh)
    path_and_file(fn,'manifest')
  end
  def html_toc
    fn=@md.file.base_filename.html_segtoc(fnh)
    @base_path + '/html/' + @linked_doc + '/' + fn
  end
  def html_doc
    fn=@md.file.base_filename.html_scroll(fnh)
    path_and_file(fn,'html')
  end
  def html_concordance
    fn=@md.file.base_filename.html_concordance
    @base_path + '/html/' + @linked_doc + '/' + fn
  end
  def epub
    fn=@md.file.base_filename.epub(fnh)
    path_and_file(fn,'epub')
  end
  def pdf_landscape
    fn=@md.file.base_filename.pdf_l_a4(fnh)
    path_and_file(fn,'pdf')
  end
  def pdf_portrait
    fn=@md.file.base_filename.pdf_p_a4(fnh)
    path_and_file(fn,'pdf')
  end
  def odt
    fn=@md.file.base_filename.odt(fnh)
    path_and_file(fn,'odt')
  end
  def xhtml
    fn=@md.file.base_filename.xhtml(fnh)
    path_and_file(fn,'xhtml')
  end
  def docbook
    fn=@md.file.base_filename.xml_docbook_book(fnh)
    path_and_file(fn,'docbook')
  end
  def xml_sax
    fn=@md.file.base_filename.xml_sax(fnh)
    path_and_file(fn,'xml_sax')
  end
  def xml_dom
    fn=@md.file.base_filename.xml_dom(fnh)
    path_and_file(fn,'xml_dom')
  end
  def txt
    fn=@md.file.base_filename.txt(fnh)
    path_and_file(fn,'txt')
  end
  def digest
    fn=@md.file.base_filename.hash_digest(fnh)
    path_and_file(fn,'digest')
  end
  def source
    @base_path + '/src/' + @src
  end
  def sisupod
    @base_path + '/src/' + @src + '.zip'
  end
  self
end
digest() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 200
def digest
  fn=@md.file.base_filename.hash_digest(fnh)
  path_and_file(fn,'digest')
end
docbook() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 184
def docbook
  fn=@md.file.base_filename.xml_docbook_book(fnh)
  path_and_file(fn,'docbook')
end
epub() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 164
def epub
  fn=@md.file.base_filename.epub(fnh)
  path_and_file(fn,'epub')
end
expand_insertions?() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 369
def expand_insertions?
  data=@data
  tuned_file,tuned_file_tmp=[],[]
  codeblock_={
    status: :false,
    type:   :na,
  }
  data.each do |para|
    codeblock_=if para =~/^code(?:\.[a-z][0-9a-z_]+)?\{/ \
    and codeblock_[:status]==:false
      {
        status: :true,
        type:   :curl,
      }
    elsif para =~/^```[ ]+code(?:\.[a-z][0-9a-z_]+)?/ \
    and codeblock_[:status]==:false
      {
        status: :true,
        type:   :tics,
      }
    elsif codeblock_[:type]==:curl \
    and para =~/^\}code/m
      {
        status: :false,
        type:   :na,
      }
    elsif codeblock_[:type]==:tics \
    and para =~/^```(?:\s|$)/m
      {
        status: :false,
        type:   :na,
      }
    else codeblock_
    end
    if para !~/^%+\s/ \
    and codeblock_[:status] != :true \
    and para =~/\{(?:~\^\s+)?(.+?)\s\[(?:\d(?:[sS]*))\]\}(?:\.\.\/\S+?\/|\S+?\.ss[tm]\b)/
      @u=SiSU_Env::InfoEnv.new.url
      m_cmd=''
      if defined? @u.remote
        if /(?<m_pre>.+?)\{(?<m_txt>.+?)\s\[(?<m_cmd>\d[sS]*)\]\}(?<m_source>(?<m_linked_doc>\S+?)\.ss[tm]\b)(?<m_note>.*)/m =~ para
          m_pre=m_pre.strip
        elsif /\{(?<m_txt>.+?)\s\[(?<m_cmd>\d[sS]*)\]\}(?<m_source>(?<m_linked_doc>\S+?)\.ss[tm]\b)(?<m_note>.*)/m =~ para
        end
        if m_linked_doc =~ /(\S+?)\/(\S+)/
          m_linked_doc,m_linked_doc_lang=$1,$2
        else
          m_linked_doc,m_linked_doc_lang=m_linked_doc,@md.opt.lng_base
        end
      else
        puts "error, does currently support relative paths (reltive paths were removed, as had problems for citation, and was not suited to all output types should possibly reconsider) #{__FILE__} #{__LINE__}"
        if /\{(?:~\^\s+)?(?<m_txt>.+?)\s\[(?<m_cmd>\d[sS]*)\]\}\.\.\/(?<m_linked_doc>\S+?)\/(?<m_note>\s+#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]})?/ =~ para
        end
      end
      lnk=case @md.opt.dir_structure_by
      when :language
        {
          manifest:         by_language(m_linked_doc,m_linked_doc_lang).manifest,
          html_toc:         by_language(m_linked_doc,m_linked_doc_lang).html_toc,
          html_doc:         by_language(m_linked_doc,m_linked_doc_lang).html_doc,
          epub:             by_language(m_linked_doc,m_linked_doc_lang).epub,
          pdf_landscape:    by_language(m_linked_doc,m_linked_doc_lang).pdf_landscape,
          pdf_portrait:     by_language(m_linked_doc,m_linked_doc_lang).pdf_landscape,
          odt:              by_language(m_linked_doc,m_linked_doc_lang).odt,
          xhtml:            by_language(m_linked_doc,m_linked_doc_lang).xhtml,
          docbook:          by_language(m_linked_doc,m_linked_doc_lang).docbook,
          xml_sax:          by_language(m_linked_doc,m_linked_doc_lang).xml_sax,
          xml_dom:          by_language(m_linked_doc,m_linked_doc_lang).xml_dom,
          txt:              by_language(m_linked_doc,m_linked_doc_lang).txt,
          html_concordance: by_language(m_linked_doc,m_linked_doc_lang).html_concordance,
          digest:           by_language(m_linked_doc,m_linked_doc_lang).digest,
          sisupod:          by_language(m_linked_doc,m_linked_doc_lang,m_source).sisupod,
          source:           by_language(m_linked_doc,m_linked_doc_lang,m_source).source,
        }
      when :filetype
        {
          manifest:         by_filetype(m_linked_doc,m_linked_doc_lang).manifest,
          html_toc:         by_filetype(m_linked_doc,m_linked_doc_lang).html_toc,
          html_doc:         by_filetype(m_linked_doc,m_linked_doc_lang).html_doc,
          epub:             by_filetype(m_linked_doc,m_linked_doc_lang).epub,
          pdf_landscape:    by_filetype(m_linked_doc,m_linked_doc_lang).pdf_landscape,
          pdf_portrait:     by_filetype(m_linked_doc,m_linked_doc_lang).pdf_landscape,
          odt:              by_filetype(m_linked_doc,m_linked_doc_lang).odt,
          xhtml:            by_filetype(m_linked_doc,m_linked_doc_lang).xhtml,
          docbook:          by_filetype(m_linked_doc,m_linked_doc_lang).docbook,
          xml_sax:          by_filetype(m_linked_doc,m_linked_doc_lang).xml_sax,
          xml_dom:          by_filetype(m_linked_doc,m_linked_doc_lang).xml_dom,
          txt:              by_filetype(m_linked_doc,m_linked_doc_lang).txt,
          html_concordance: by_filetype(m_linked_doc,m_linked_doc_lang).html_concordance,
          digest:           by_filetype(m_linked_doc,m_linked_doc_lang).digest,
          sisupod:          by_filetype(m_linked_doc,m_linked_doc_lang,m_source).sisupod,
          source:           by_filetype(m_linked_doc,m_linked_doc_lang,m_source).source,
        }
      else
        {
          manifest:         by_filename(m_linked_doc,m_linked_doc_lang).manifest,
          html_toc:         by_filename(m_linked_doc,m_linked_doc_lang).html_toc,
          html_doc:         by_filename(m_linked_doc,m_linked_doc_lang).html_doc,
          epub:             by_filename(m_linked_doc,m_linked_doc_lang).epub,
          pdf_landscape:    by_filename(m_linked_doc,m_linked_doc_lang).pdf_landscape,
          pdf_portrait:     by_filename(m_linked_doc,m_linked_doc_lang).pdf_landscape,
          odt:              by_filename(m_linked_doc,m_linked_doc_lang).odt,
          xhtml:            by_filename(m_linked_doc,m_linked_doc_lang).xhtml,
          docbook:          by_filename(m_linked_doc,m_linked_doc_lang).docbook,
          xml_sax:          by_filename(m_linked_doc,m_linked_doc_lang).xml_sax,
          xml_dom:          by_filename(m_linked_doc,m_linked_doc_lang).xml_dom,
          txt:              by_filename(m_linked_doc,m_linked_doc_lang).txt,
          html_concordance: by_filename(m_linked_doc,m_linked_doc_lang).html_concordance,
          digest:           by_filename(m_linked_doc,m_linked_doc_lang).digest,
          sisupod:          by_filename(m_linked_doc,m_linked_doc_lang,m_source).sisupod,
          source:           by_filename(m_linked_doc,m_linked_doc_lang,m_source).source,
        }
      end
      linked_title="#{m_pre}{#{m_txt} }#{lnk[:manifest]}#{m_note}\n\n"
      tuned_file_tmp << linked_title
      output_filetypes=output_filetypes_in_cmd(m_cmd,lnk)
      output_filetypes[:gen].each do |desc|
        if desc
          tuned_file_tmp << if @u.remote
            "#{Mx[:nbsp]*4} #{desc} "
          else # remove ...
            "[provide document placement host location]"
          end
        end
      end
      output_filetypes[:src].each do |desc|
        if desc
          tuned_file_tmp << if @u.remote
            "#{Mx[:nbsp]*4} #{desc} "
          else
            "[provide document placement host location]"
          end
        end
      end
      tuned_file << 'group{' << tuned_file_tmp.join("\n") << '}group'
      tuned_file_tmp=[]
    else tuned_file << para
    end
  end
  tuned_file
end
fnh() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 140
def fnh
  {
    fn: @linked_doc,
  }
end
html_concordance() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 160
def html_concordance
  fn=@md.file.base_filename.html_concordance
  @base_path + '/html/' + @linked_doc + '/' + fn
end
html_doc() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 156
def html_doc
  fn=@md.file.base_filename.html_scroll(fnh)
  path_and_file(fn,'html')
end
html_toc() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 152
def html_toc
  fn=@md.file.base_filename.html_segtoc(fnh)
  @base_path + '/html/' + @linked_doc + '/' + fn
end
manifest() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 148
def manifest
  fn=@md.file.base_filename.manifest(fnh)
  path_and_file(fn,'manifest')
end
odt() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 176
def odt
  fn=@md.file.base_filename.odt(fnh)
  path_and_file(fn,'odt')
end
output_filetypes_in_cmd(cmd_shortcut,lnk=nil) click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 60
def output_filetypes_in_cmd(cmd_shortcut,lnk=nil) #make list of file types in shortcut command (as configured), e.g. when sisu -3 is used
  act_defaults=SiSU_Env::InfoProcessingFlag.new
  cmd_list=case cmd_shortcut.inspect #check on expectation, string v array
  when /0/ then act_defaults.act_0.str
  when /1/ then act_defaults.act_1.str
  when /2/ then act_defaults.act_2.str
  when /3/ then act_defaults.act_3.str
  when /4/ then act_defaults.act_4.str
  when /5/ then act_defaults.act_5.str
  when /6/ then act_defaults.act_6.str
  when /7/ then act_defaults.act_7.str
  when /8/ then act_defaults.act_8.str
  when /9/ then act_defaults.act_9.str
  end
  file_type_names={}
  file_type_names[:gen],file_type_names[:src]=[],[]
  file_type_names[:gen] <<= if cmd_list =~ /\b--manifest\b/
    "~^ { document manifest }#{lnk[:manifest]}"
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--html\b/
    [
      " { html, segmented text }#{lnk[:html_toc]}",
      " { html, scroll, document in one }#{lnk[:html_doc]}",
    ]
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--epub\b/
    [" { epub }#{lnk[:epub]}"]
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--pdf\b/ \
  or cmd_list =~ /--pdf-landscape/
    [
      " { pdf, landscape }#{lnk[:pdf_landscape]}",
    ]
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--pdf\b/ \
  or cmd_list =~ /--pdf-portrait/
    [
      " { pdf, portrait }#{lnk[:pdf_portrait]}",
    ]
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b(?:--odt|--odf)\b/
    " { odf:odt, open document text }#{lnk[:odt]}"
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--xhtml\b/
    " { xhtml scroll }#{lnk[:xhtml]}"
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--docbook\b/
    " { docbook }#{lnk[:docbook]}" #CHECK
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--xml-sax\b/
    " { xml, sax }#{lnk[:xml_sax]}"
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--xml-dom\b/
    " { xml, dom }#{lnk[:xml_dom]}"
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b(?:--txt|--text|--plaintext)\b/
    " { plain text utf-8 }#{lnk[:txt]}"
  end
  #file_type_names[:gen] <<= if cmd_list =~ /g/
  #  'wiki.txt'
  #end
  file_type_names[:gen] <<= if cmd_list =~ /\b--concordance\b/
    " { concordance }#{lnk[:html_concordance]}"
  end
  file_type_names[:gen] <<= if cmd_list =~ /\b--digest\b/
    " { dcc, document content certificate (digests) }#{lnk[:digest]}"
  end
  file_type_names[:src] <<= if source and cmd_shortcut =~ /\b--source\b/
    " { markup source text }#{lnk[:source]}"
  end
  file_type_names[:src] <<= if cmd_shortcut =~ /\b--sisupod\b/
    " { markup source (zipped) pod }#{lnk[:sisupod]}"
  end
  file_type_names[:gen]=file_type_names[:gen].flatten
  file_type_names[:src]=file_type_names[:src].flatten
  file_type_names
end
path_and_file(fn,pth) click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 145
def path_and_file(fn,pth)
  @base_path + '/' + pth + '/' + fn
end
pdf_landscape() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 168
def pdf_landscape
  fn=@md.file.base_filename.pdf_l_a4(fnh)
  path_and_file(fn,'pdf')
end
pdf_portrait() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 172
def pdf_portrait
  fn=@md.file.base_filename.pdf_p_a4(fnh)
  path_and_file(fn,'pdf')
end
sisupod() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 207
def sisupod
  @base_path + '/src/' + @src + '.zip'
end
source() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 204
def source
  @base_path + '/src/' + @src
end
txt() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 196
def txt
  fn=@md.file.base_filename.txt(fnh)
  path_and_file(fn,'txt')
end
xhtml() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 180
def xhtml
  fn=@md.file.base_filename.xhtml(fnh)
  path_and_file(fn,'xhtml')
end
xml_dom() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 192
def xml_dom
  fn=@md.file.base_filename.xml_dom(fnh)
  path_and_file(fn,'xml_dom')
end
xml_sax() click to toggle source
# File lib/sisu/ao_expand_insertions.rb, line 188
def xml_sax
  fn=@md.file.base_filename.xml_sax(fnh)
  path_and_file(fn,'xml_sax')
end