# encoding: utf-8
=begin
* Name: SiSU
* Description: a framework for document structuring, publishing and search
constants
* Author: Ralph Amissah
* Copyright: (C) 1997 - 2011, Ralph Amissah, All Rights Reserved.
* License: GPL 3 or later:
SiSU, a framework for document structuring, publishing and search
Copyright (C) Ralph Amissah
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.
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
more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see .
If you have Internet connection, the latest version of the GPL should be
available at these locations:
* SiSU uses:
* Standard SiSU markup syntax,
* Standard SiSU meta-markup syntax, and the
* Standard SiSU object citation numbering and system
* Hompages:
* Download:
* Ralph Amissah
** Description: system environment, resource control and configuration details
=end
Sfx={ txt: '.txt', html: '.html', xhtml: '.xhtml', xml: '.xml', epub: '.epub', epub_xhtml: '.xhtml', odt: '.odt', pdf: '.pdf'}
Ax,Xx,Mx,Rx,Hx,Dx,Px,Db,Gt,Tex=Array.new(10){{}}
Ax[:tab]="\t"
Xx[:protect]='☞'
Xx[:segment]='Ф'
Xx[:html_relative2]='※※' #'※' '☼'
Xx[:html_relative1]='※' #'※' '☼'
Mx[:meta_o],Mx[:meta_c]='〔@','〕'
Mx[:lv_o_1],Mx[:lv_o_2],Mx[:lv_o_3],Mx[:lv_o_4],Mx[:lv_o_5],Mx[:lv_o_6],Mx[:lv_o_7],Mx[:lv_o_8],Mx[:lv_o_9]=1,2,3,4,5,6,7,8,9;
Mx[:lv_o],Mx[:lv_c]='〔','〕'
Mx[:en_a_o]='【'; Mx[:en_a_c]='】' #endnote Mx[:en_a_o]='~{'; Mx[:en_a_c]='}~'
Mx[:en_b_o]='〖'; Mx[:en_b_c]='〗' #endnote Mx[:en_b_o]='~['; Mx[:en_b_c]=']~'
Mx[:bl_o]='〔'; Mx[:bl_c]='〕' #block text mark
Mx[:gr_o]='〔'; Mx[:gr_c]='〕' #group text mark #REPLACE & RETIRE
Mx[:id_o]='〔'; Mx[:id_c]='〕' #object id mark
Mx[:tc_o]='『'; Mx[:tc_c]="』" #table row mark #Mx[:tc_c]="』\n"
Mx[:tc_p]='┆' #table col/misc mark
Mx[:pa_o]='〔'; Mx[:pa_c]='〕' #affects paragraph mark
Mx[:mk_o]='〔'; Mx[:mk_c]='〕' #generic mark
Mx[:gl_o]='〔'; Mx[:gl_c]='〕' #glyph
Mx[:fa_o]='〔'; Mx[:fa_o_c]='¤'; Mx[:fa_c_o]='¤'; Mx[:fa_c]='〕'
Mx[:fa_bold_o]= "#{Mx[:fa_o]}b#{Mx[:fa_o_c]}"; Mx[:fa_bold_c]= "#{Mx[:fa_c_o]}b#{Mx[:fa_c]}"
Mx[:fa_italics_o]= "#{Mx[:fa_o]}i#{Mx[:fa_o_c]}"; Mx[:fa_italics_c]= "#{Mx[:fa_c_o]}i#{Mx[:fa_c]}"
Mx[:fa_underscore_o]= "#{Mx[:fa_o]}u#{Mx[:fa_o_c]}"; Mx[:fa_underscore_c]= "#{Mx[:fa_c_o]}u#{Mx[:fa_c]}"
Mx[:fa_cite_o]= "#{Mx[:fa_o]}cite#{Mx[:fa_o_c]}"; Mx[:fa_cite_c]= "#{Mx[:fa_c_o]}cite#{Mx[:fa_c]}"
Mx[:fa_insert_o]= "#{Mx[:fa_o]}ins#{Mx[:fa_o_c]}"; Mx[:fa_insert_c]= "#{Mx[:fa_c_o]}ins#{Mx[:fa_c]}"
Mx[:fa_strike_o]= "#{Mx[:fa_o]}del#{Mx[:fa_o_c]}"; Mx[:fa_strike_c]= "#{Mx[:fa_c_o]}del#{Mx[:fa_c]}"
Mx[:fa_superscript_o]="#{Mx[:fa_o]}sup#{Mx[:fa_o_c]}"; Mx[:fa_superscript_c]="#{Mx[:fa_c_o]}sup#{Mx[:fa_c]}"
Mx[:fa_subscript_o]= "#{Mx[:fa_o]}sub#{Mx[:fa_o_c]}"; Mx[:fa_subscript_c]= "#{Mx[:fa_c_o]}sub#{Mx[:fa_c]}"
Mx[:fa_hilite_o]= "#{Mx[:fa_o]}hi#{Mx[:fa_o_c]}"; Mx[:fa_hilite_c]= "#{Mx[:fa_c_o]}hi#{Mx[:fa_c]}"
Mx[:fa_monospace_o]= "#{Mx[:fa_o]}mono#{Mx[:fa_o_c]}"; Mx[:fa_monospace_c]= "#{Mx[:fa_c_o]}mono#{Mx[:fa_c]}"
Mx[:gl_bullet]= "#{Mx[:gl_o]}●#{Mx[:gl_c]}"
Mx[:pa_non_object_dummy_heading]="#{Mx[:pa_o]}-##{Mx[:pa_c]}" #unnumbered paragraph, delete when not required [used in dummy headings, eg. for segmented html] (place marker at end of paragraph)
Mx[:pa_non_object_no_heading]="#{Mx[:pa_o]}~##{Mx[:pa_c]}" #unnumbered paragraph (place marker at end of paragraph)
Mx[:idx_o]='▢ '; Mx[:idx_c]='▢ ' #
Mx[:nbsp]= '░' #'▭ '
Mx[:br_line]= '╱' #lB ▌ 9612 ┘ ¶
Mx[:br_nl]= '╲' #lB ▌ 』 ┘
Mx[:br_paragraph]= '█' #FB █ 9608 # PP ∥ 8741 #▐ #'┘' #'¶' #FB █ 9608 lB ▌ 9612 RB ▐ 9616
Mx[:br_obj]= 'break_obj'; Hx[:br_obj]= { obj: Mx[:br_obj] } # line sep
Mx[:br_page]= 'break_page'; Hx[:br_page]= { obj: Mx[:br_page] } # newpage
Mx[:br_page_new]= 'break_page_new'; Hx[:br_page_new]= { obj: Mx[:br_page_new] } # clearpage
Mx[:br_endnotes]= "#{Mx[:mk_o]}ENDNOTES#{Mx[:mk_c]}"
Mx[:br_eof]= "#{Mx[:mk_o]}EOF#{Mx[:mk_c]}"
Mx[:lnk_o]='⌠'; Mx[:lnk_c]='⌡' #'⌈' '⌋' '⌠' '⌡' #Mx[:lnk_o]='◁'; Mx[:lnk_c]='▷' #‹ ›
Mx[:url_o]='「'; Mx[:url_c]='」'
Mx[:rel_o]='⌈'; Mx[:rel_c]='⌋'
Mx[:tag_o]='⌊'; Mx[:tag_c]='⌉'
Mx[:sm_set_o]='《'; Mx[:sm_set_c]='》'
Mx[:sm_subset_o]='《 '; Mx[:sm_subset_c]='》'
Mx[:vline]='┆' # ¦ |
#Mx[:sm_set_o]='∈ '; Mx[:sm_set_c]='∋ '
#Mx[:sm_subset_o]='∈ '; Mx[:sm_subset_c]='∋ '
Rx[:mx_fa_clean]= /#{Mx[:fa_o]}.+?#{Mx[:fa_c]}|#{Mx[:pa_o]}.+?#{Mx[:pa_c]}|#{Mx[:mk_o]}.+?#{Mx[:mk_c]}/
Rx[:lv],Rx[:lv_1],Rx[:lv_2],Rx[:lv_3],Rx[:lv_4],Rx[:lv_5],Rx[:lv_6],Rx[:lv_7],Rx[:lv_8],Rx[:lv_9]=
/〔([1-9]):(\S*?)〕/,/#{Mx[:lv_o_1]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_2]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_3]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_4]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_5]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_6]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_7]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_8]}(\S*?)#{Mx[:lv_c]}/,/#{Mx[:lv_o_9]}(\S*?)#{Mx[:lv_c]}/
Rx[:meta]=/#{Mx[:meta_o]}(\S+?)#{Mx[:meta_c]}/
Dx[:url_o]='‹'; Dx[:url_c]='›'
Dx[:url_o_xml]='<'; Dx[:url_c_xml]='>'
Dx[:rel_o]='‹'; Dx[:rel_c]='›' # Dx[:rel_o]='「'; Dx[:rel_c]='」'
Dx[:lt_xml]='<'; Dx[:gt_xml]='>'
Tex[:backslash]="\\\\"
Tex[:backslash]="\\\\"
Tex[:tilde]='\\\\\\~'
#Px[:emphasis_o]= '*'; Px[:emphasis_c]= '*'
#Px[:bold_o]= '!'; Px[:bold_c]= '!'
Px[:bold_o]= '*'; Px[:bold_c]= '*'
Px[:italics_o]= '/'; Px[:italics_c]= '/'
Px[:underscore_o]= '_'; Px[:underscore_c]= '_'
Px[:cite_o]= '"'; Px[:cite_c]= '"'
Px[:insert_o]= '+'; Px[:insert_c]= '+'
Px[:strike_o]= '-'; Px[:strike_c]= '-'
Px[:superscript_o]= '^'; Px[:superscript_c]= '^'
Px[:subscript_o]= '['; Px[:subscript_c]= ']'
Px[:hilite_o]= '*'; Px[:hilite_c]= '*'
Px[:monospace_o]= ''; Px[:monospace_c]= ''
Px[:po_bold_o]= '!{'; Px[:po_bold_c]= '}!'
Px[:po_italics_o]= '/{'; Px[:po_italics_c]= '}/'
Px[:po_underscore_o]= '_{'; Px[:po_underscore_c]= '}_'
Px[:po_cite_o]= '"{'; Px[:po_cite_c]= '}"'
Px[:po_insert_o]= '+{'; Px[:po_insert_c]= '}+'
Px[:po_strike_o]= '-{'; Px[:po_strike_c]= '}-'
Px[:po_superscript_o]='^{'; Px[:po_superscript_c]='}^'
Px[:po_subscript_o]= ',{'; Px[:po_subscript_c]= '},'
Px[:po_hilite_o]= '*{'; Px[:po_hilite_c]= '}*'
Px[:po_monospace_o]= '#{'; Px[:po_monospace_c]= '}#'
Px[:lng_lst]=%w[am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta te th tk tr uk ur us vi]
#Px[:lng_lst]=%w[sq am hy eu bn pt_BR br bg ca hr cs da nl en eo et gl de el he hi is ia ga it fi fr lo la lv lt ml mr no nn oc pl pt ro ru se sa sr sk sl es sv ta te th tr tk uk ur vi cy us]
Px[:lv1]= '*'
Px[:lv2]= '='
Px[:lv3]= '='
Px[:lv4]= '-'
Px[:lv5]= '.'
Px[:lv6]= '.'
Db[:name_prefix]="SiSU#{SiSU_version_dir}d_"
Db[:name_prefix_db]="sisu_#{SiSU_version_dir}d_"
Db[:col_title]=800
Db[:col_title_part]=400
Db[:col_title_edition]=10
Db[:col_name]=600
Db[:col_creator_misc_short]=100
Db[:col_language]=100
Db[:col_language_char]=6
Db[:col_date_text]=10
Db[:col_classify_txt_long]=600
Db[:col_classify_txt_short]=600
Db[:col_classify_short]=200
Db[:col_classify_identify]=256
Db[:col_classify_library]=30
Db[:col_classify_small]=16
Db[:col_filename]=256
Db[:col_digest]=64
Db[:col_filesize]=10
Db[:col_info_note]=2500
Gt[:grotto]='sisu:'
Gt[:src]='src'
Gt[:pod]='pod'
Gt[:po]='po4a/po'
Gt[:pot]='po4a/pot'
Gt[:image]='mm/image'
Gt[:audio]='mm/audio'
Gt[:video]='mm/video'
Gt[:conf]='conf'
Gt[:skin]='conf/skin' #Gt[:skin]='conf/skin/doc'
__END__
consider:
〔comment〕
〔links?????〕
import document?
check:
bold line
┆┆⋮┇┊┋
『』
「」
〔〕
【】
·
¤
#˝ " λ Ω β α π Ѫ Ж Я Ѳ ѳ Ф ㈣
Ѳ ѳ Ф
♩ ♭ ✠ ▭ ▬ ▪
【】〖〗《》「」
‹ › ∗
'〔lv1〕','〔lv2〕','〔lv3〕','〔lv4〕','〔lv5〕','〔lv6〕','〔lv7〕','〔lv8〕','〔lv9〕'
'〔 Ѳ1〕','〔 Ѳ2〕','〔 Ѳ3〕','〔 Ѳ4〕','〔 Ѳ5〕','〔Ѳ6〕','〔Ѳ7〕','〔Ѳ8〕','〔Ѳ9〕'
◁▷
◀this is text or an image▶ http://
p __FILE__ +':'+ __LINE__.to_s
p __FILE__ + ' ' + __LINE__.to_s + ' ' + html
puts "#{__FILE__} #{__LINE__} #{o.inspect}"
puts __FILE__ + ' ' + __LINE__.to_s + '--> ' + o.inspect
puts %{-\t#{__FILE__}::#{__LINE__}::#{caller}:\n"#{name}"}
p "\t" + txt.obj + " << #{__FILE__} #{__LINE__} >>"
p (__FILE__ + ' ' + __LINE__.to_s + '--> ' + dob.inspect) if dob.is=='heading'
data.each {|o| p (__FILE__ + ' ' + __LINE__.to_s + '--> ' + o.inspect) if o.is=='heading'}
puts "#{__FILE__} #{__LINE__} #{para}" if @opt.cmd =~/M/
puts "#{__FILE__} #{__LINE__} #{t_o}" if @opt.cmd =~/M/
dr ┌ 9484 dR ┍ 9485 Dr ┎ 9486 DR ┏ 9487 dl ┐ 9488 dL ┑ 9489 Dl ┒ 9490 LD ┓ 9491 ur └ 9492 uR ┕ 9493 Ur ┖ 9494 UR ┗ 9495 ul ┘ 9496 uL ┙ 9497 Ul ┚ 9498 UL ┛ 9499 vr ├
dr ┌ 9484 dR ┍ 9485 Dr ┎ 9486 DR ┏ 9487 dl ┐ 9488 dL ┑ 9489 Dl ┒ 9490 LD ┓ 9491 ur └ 9492 uR ┕ 9493 Ur ┖ 9494 UR ┗ 9495 ul ┘ 9496 uL ┙ 9497 Ul ┚ 9498 UL ┛ 9499 vr ├
└ ┘
Iu ⌠ 8992 Il ⌡ <7 ⌈ 8968 >7 ⌉ 8969 7< ⌊ 8970 7> ⌋ 8971
<" 『 12302 >" 』 12303
<' 「 12300 >' 」 12301