sisu 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (207) hide show
  1. checksums.yaml +7 -0
  2. data/bin/sisu +367 -0
  3. data/bin/sisugem +367 -0
  4. data/data/sisu/image/arrow_next_red.png +0 -0
  5. data/data/sisu/image/arrow_prev_red.png +0 -0
  6. data/data/sisu/image/arrow_up_red.png +0 -0
  7. data/data/sisu/image/b_bluebell.png +0 -0
  8. data/data/sisu/image/b_doc.png +0 -0
  9. data/data/sisu/image/b_epub.png +0 -0
  10. data/data/sisu/image/b_home.png +0 -0
  11. data/data/sisu/image/b_info.png +0 -0
  12. data/data/sisu/image/b_odf.png +0 -0
  13. data/data/sisu/image/b_pdf.png +0 -0
  14. data/data/sisu/image/b_search.png +0 -0
  15. data/data/sisu/image/b_toc.png +0 -0
  16. data/data/sisu/image/bullet_08.png +0 -0
  17. data/data/sisu/image/bullet_09.png +0 -0
  18. data/data/sisu/image/bullet_10.png +0 -0
  19. data/data/sisu/image/bullet_11.png +0 -0
  20. data/data/sisu/image/bullet_12.png +0 -0
  21. data/data/sisu/image/bullet_doc.png +0 -0
  22. data/data/sisu/image/bullet_red.png +0 -0
  23. data/data/sisu/image/dot_clear.png +0 -0
  24. data/data/sisu/image/dot_white.png +0 -0
  25. data/data/sisu/image/gplv3.png +0 -0
  26. data/data/sisu/image/gplv3_free_software.png +0 -0
  27. data/data/sisu/image/next.png +0 -0
  28. data/data/sisu/image/previous.png +0 -0
  29. data/data/sisu/image/rb7.ico +0 -0
  30. data/data/sisu/image/sisu.png +0 -0
  31. data/data/sisu/image/toctoc.png +0 -0
  32. data/data/sisu/version.yml +5 -0
  33. data/lib/sisu.rb +94 -0
  34. data/lib/sisu/air.rb +80 -0
  35. data/lib/sisu/ao.rb +590 -0
  36. data/lib/sisu/ao_character_check.rb +102 -0
  37. data/lib/sisu/ao_composite.rb +286 -0
  38. data/lib/sisu/ao_doc_objects.rb +565 -0
  39. data/lib/sisu/ao_doc_str.rb +2269 -0
  40. data/lib/sisu/ao_endnotes.rb +136 -0
  41. data/lib/sisu/ao_expand_insertions.rb +514 -0
  42. data/lib/sisu/ao_hash_digest.rb +174 -0
  43. data/lib/sisu/ao_idx.rb +422 -0
  44. data/lib/sisu/ao_images.rb +187 -0
  45. data/lib/sisu/ao_metadata.rb +86 -0
  46. data/lib/sisu/ao_misc_arrange.rb +207 -0
  47. data/lib/sisu/ao_numbering.rb +720 -0
  48. data/lib/sisu/ao_persist.rb +194 -0
  49. data/lib/sisu/ao_references.rb +502 -0
  50. data/lib/sisu/ao_syntax.rb +640 -0
  51. data/lib/sisu/cgi.rb +84 -0
  52. data/lib/sisu/cgi_pgsql.rb +270 -0
  53. data/lib/sisu/cgi_sql_common.rb +986 -0
  54. data/lib/sisu/cgi_sqlite.rb +244 -0
  55. data/lib/sisu/conf.rb +287 -0
  56. data/lib/sisu/constants.rb +388 -0
  57. data/lib/sisu/css.rb +3484 -0
  58. data/lib/sisu/db_columns.rb +1997 -0
  59. data/lib/sisu/db_create.rb +689 -0
  60. data/lib/sisu/db_dbi.rb +90 -0
  61. data/lib/sisu/db_drop.rb +207 -0
  62. data/lib/sisu/db_import.rb +877 -0
  63. data/lib/sisu/db_indexes.rb +146 -0
  64. data/lib/sisu/db_load_tuple.rb +323 -0
  65. data/lib/sisu/db_remove.rb +182 -0
  66. data/lib/sisu/db_select.rb +230 -0
  67. data/lib/sisu/db_sqltxt.rb +173 -0
  68. data/lib/sisu/db_tests.rb +114 -0
  69. data/lib/sisu/dbi.rb +166 -0
  70. data/lib/sisu/dbi_discrete.rb +206 -0
  71. data/lib/sisu/digests.rb +306 -0
  72. data/lib/sisu/dp.rb +1606 -0
  73. data/lib/sisu/dp_identify_markup.rb +161 -0
  74. data/lib/sisu/dp_make.rb +668 -0
  75. data/lib/sisu/embedded.rb +149 -0
  76. data/lib/sisu/errors.rb +84 -0
  77. data/lib/sisu/generic_parts.rb +131 -0
  78. data/lib/sisu/git.rb +277 -0
  79. data/lib/sisu/html.rb +775 -0
  80. data/lib/sisu/html_concordance.rb +391 -0
  81. data/lib/sisu/html_format.rb +1348 -0
  82. data/lib/sisu/html_harvest.rb +109 -0
  83. data/lib/sisu/html_harvest_author_format.rb +111 -0
  84. data/lib/sisu/html_harvest_authors.rb +466 -0
  85. data/lib/sisu/html_harvest_topics.rb +893 -0
  86. data/lib/sisu/html_lite_shared.rb +324 -0
  87. data/lib/sisu/html_manifest.rb +1032 -0
  88. data/lib/sisu/html_minitoc.rb +230 -0
  89. data/lib/sisu/html_parts.rb +437 -0
  90. data/lib/sisu/html_persist.rb +237 -0
  91. data/lib/sisu/html_promo.rb +440 -0
  92. data/lib/sisu/html_scroll.rb +235 -0
  93. data/lib/sisu/html_segments.rb +716 -0
  94. data/lib/sisu/html_shared.rb +62 -0
  95. data/lib/sisu/html_table.rb +64 -0
  96. data/lib/sisu/html_tune.rb +301 -0
  97. data/lib/sisu/hub.rb +277 -0
  98. data/lib/sisu/hub_actions.rb +1122 -0
  99. data/lib/sisu/hub_loop_markup_files.rb +170 -0
  100. data/lib/sisu/hub_options.rb +1695 -0
  101. data/lib/sisu/i18n.rb +702 -0
  102. data/lib/sisu/manpage.rb +377 -0
  103. data/lib/sisu/manpage_format.rb +85 -0
  104. data/lib/sisu/object_munge.rb +307 -0
  105. data/lib/sisu/prog_text_translation.rb +1702 -0
  106. data/lib/sisu/qrcode.rb +754 -0
  107. data/lib/sisu/relaxng.rb +1153 -0
  108. data/lib/sisu/remote.rb +246 -0
  109. data/lib/sisu/rexml.rb +148 -0
  110. data/lib/sisu/se.rb +158 -0
  111. data/lib/sisu/se_cleanoutput.rb +145 -0
  112. data/lib/sisu/se_clear.rb +105 -0
  113. data/lib/sisu/se_createsite.rb +273 -0
  114. data/lib/sisu/se_css.rb +221 -0
  115. data/lib/sisu/se_date.rb +92 -0
  116. data/lib/sisu/se_db.rb +214 -0
  117. data/lib/sisu/se_envcall.rb +326 -0
  118. data/lib/sisu/se_file_op.rb +2758 -0
  119. data/lib/sisu/se_filemap.rb +247 -0
  120. data/lib/sisu/se_get_init.rb +238 -0
  121. data/lib/sisu/se_hub_particulars.rb +234 -0
  122. data/lib/sisu/se_info_env.rb +2179 -0
  123. data/lib/sisu/se_info_port.rb +70 -0
  124. data/lib/sisu/se_info_system.rb +202 -0
  125. data/lib/sisu/se_load.rb +108 -0
  126. data/lib/sisu/se_processing.rb +659 -0
  127. data/lib/sisu/se_programs.rb +394 -0
  128. data/lib/sisu/se_remotes.rb +553 -0
  129. data/lib/sisu/se_standardise_lang.rb +176 -0
  130. data/lib/sisu/se_version.rb +174 -0
  131. data/lib/sisu/shared_images.rb +137 -0
  132. data/lib/sisu/shared_markup_alt.rb +336 -0
  133. data/lib/sisu/shared_metadata.rb +1361 -0
  134. data/lib/sisu/shared_sem.rb +156 -0
  135. data/lib/sisu/sisu_thor_lib.rb +407 -0
  136. data/lib/sisu/sitemaps.rb +224 -0
  137. data/lib/sisu/src_kdissert_share.rb +102 -0
  138. data/lib/sisu/src_po4a_share.rb +309 -0
  139. data/lib/sisu/src_po4a_shelf.rb +1217 -0
  140. data/lib/sisu/src_po4a_shelf_set.rb +297 -0
  141. data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
  142. data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
  143. data/lib/sisu/src_po4a_sstm.rb +135 -0
  144. data/lib/sisu/src_shared.rb +347 -0
  145. data/lib/sisu/src_sisupod_make.rb +171 -0
  146. data/lib/sisu/src_sisupod_sstm.rb +109 -0
  147. data/lib/sisu/sst_convert_markup.rb +323 -0
  148. data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
  149. data/lib/sisu/sst_from_xml.rb +178 -0
  150. data/lib/sisu/sst_identify_markup.rb +482 -0
  151. data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
  152. data/lib/sisu/termsheet.rb +163 -0
  153. data/lib/sisu/texinfo.rb +430 -0
  154. data/lib/sisu/texinfo_format.rb +541 -0
  155. data/lib/sisu/texpdf.rb +1162 -0
  156. data/lib/sisu/texpdf_format.rb +1689 -0
  157. data/lib/sisu/texpdf_parts.rb +235 -0
  158. data/lib/sisu/txt_asciidoc.rb +354 -0
  159. data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
  160. data/lib/sisu/txt_markdown.rb +389 -0
  161. data/lib/sisu/txt_markdown_decorate.rb +207 -0
  162. data/lib/sisu/txt_orgmode.rb +376 -0
  163. data/lib/sisu/txt_orgmode_decorate.rb +186 -0
  164. data/lib/sisu/txt_output.rb +86 -0
  165. data/lib/sisu/txt_plain.rb +410 -0
  166. data/lib/sisu/txt_plain_decorate.rb +189 -0
  167. data/lib/sisu/txt_read.rb +109 -0
  168. data/lib/sisu/txt_rst.rb +371 -0
  169. data/lib/sisu/txt_rst_decorate.rb +186 -0
  170. data/lib/sisu/txt_shared.rb +241 -0
  171. data/lib/sisu/txt_textile.rb +367 -0
  172. data/lib/sisu/txt_textile_decorate.rb +186 -0
  173. data/lib/sisu/update.rb +141 -0
  174. data/lib/sisu/urls.rb +696 -0
  175. data/lib/sisu/utils.rb +232 -0
  176. data/lib/sisu/utils_composite.rb +115 -0
  177. data/lib/sisu/utils_response.rb +114 -0
  178. data/lib/sisu/utils_screen_text_color.rb +472 -0
  179. data/lib/sisu/utils_spell.rb +99 -0
  180. data/lib/sisu/webrick.rb +191 -0
  181. data/lib/sisu/wikispeak.rb +375 -0
  182. data/lib/sisu/xhtml.rb +472 -0
  183. data/lib/sisu/xhtml_epub2.rb +890 -0
  184. data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
  185. data/lib/sisu/xhtml_epub2_format.rb +2272 -0
  186. data/lib/sisu/xhtml_epub2_persist.rb +278 -0
  187. data/lib/sisu/xhtml_epub2_segments.rb +599 -0
  188. data/lib/sisu/xhtml_epub2_tune.rb +330 -0
  189. data/lib/sisu/xhtml_parts.rb +183 -0
  190. data/lib/sisu/xhtml_shared.rb +62 -0
  191. data/lib/sisu/xhtml_table.rb +97 -0
  192. data/lib/sisu/xml_docbook5.rb +376 -0
  193. data/lib/sisu/xml_dom.rb +624 -0
  194. data/lib/sisu/xml_fictionbook2.rb +389 -0
  195. data/lib/sisu/xml_format.rb +865 -0
  196. data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
  197. data/lib/sisu/xml_odf_odt.rb +887 -0
  198. data/lib/sisu/xml_odf_odt_format.rb +674 -0
  199. data/lib/sisu/xml_parts.rb +191 -0
  200. data/lib/sisu/xml_persist.rb +126 -0
  201. data/lib/sisu/xml_sax.rb +521 -0
  202. data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
  203. data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
  204. data/lib/sisu/xml_shared.rb +665 -0
  205. data/lib/sisu/xml_tables.rb +261 -0
  206. data/lib/sisu/zap.rb +90 -0
  207. metadata +251 -0
@@ -0,0 +1,136 @@
1
+ # encoding: utf-8
2
+ =begin
3
+
4
+ * Name: SiSU
5
+
6
+ ** Description: documents, structuring, processing, publishing, search
7
+ *** system environment, resource control and configuration details
8
+
9
+ ** Author: Ralph Amissah
10
+ <ralph@amissah.com>
11
+ <ralph.amissah@gmail.com>
12
+
13
+ ** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
14
+ 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
15
+ All Rights Reserved.
16
+
17
+ ** License: GPL 3 or later:
18
+
19
+ SiSU, a framework for document structuring, publishing and search
20
+
21
+ Copyright (C) Ralph Amissah
22
+
23
+ This program is free software: you can redistribute it and/or modify it
24
+ under the terms of the GNU General Public License as published by the Free
25
+ Software Foundation, either version 3 of the License, or (at your option)
26
+ any later version.
27
+
28
+ This program is distributed in the hope that it will be useful, but WITHOUT
29
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
30
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
31
+ more details.
32
+
33
+ You should have received a copy of the GNU General Public License along with
34
+ this program. If not, see <http://www.gnu.org/licenses/>.
35
+
36
+ If you have Internet connection, the latest version of the GPL should be
37
+ available at these locations:
38
+ <http://www.fsf.org/licensing/licenses/gpl.html>
39
+ <http://www.gnu.org/licenses/gpl.html>
40
+
41
+ <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
42
+
43
+ ** SiSU uses:
44
+ * Standard SiSU markup syntax,
45
+ * Standard SiSU meta-markup syntax, and the
46
+ * Standard SiSU object citation numbering and system
47
+
48
+ ** Hompages:
49
+ <http://www.jus.uio.no/sisu>
50
+ <http://www.sisudoc.org>
51
+
52
+ ** Git
53
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
54
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/ao_doc_endnotes.rb;hb=HEAD>
55
+
56
+ =end
57
+ module SiSU_AO_Endnotes
58
+ class Endnotes
59
+ def initialize(md,data,endnote_array=nil)
60
+ @md,@data,@endnote_array=
61
+ md, data, endnote_array
62
+ @endnote_counter,
63
+ @endnote_counter_asterisk,
64
+ @endnote_counter_dag=
65
+ 1,1,1
66
+ end
67
+ def endnotes
68
+ data=@data
69
+ endnote_ref=1
70
+ @tuned_file=data.each.map do |dob|
71
+ # manually numbered endnotes <!e(\d)!> <!e_(\d)!> -->
72
+ if @md.opt.selections.str =~/--no-asterisk|--no-annotate/
73
+ dob.obj=dob.obj.
74
+ gsub(/#{Mx[:en_b_o]}\s.+?#{Mx[:en_b_c]}/,'')
75
+ end
76
+ if @md.opt.selections.str =~/--no-dagger|--no-annotate/
77
+ dob.obj=dob.obj.
78
+ gsub(/#{Mx[:en_b_o]}[+]\s.+?#{Mx[:en_b_c]}/,'')
79
+ end
80
+ if (defined? dob.obj) \
81
+ && (defined? dob.is) \
82
+ && dob.is !=:code
83
+ case dob.obj # auto-numbered endnotes <!e!> <!e_!> -->
84
+ when /#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}[*+]\s+.+?#{Mx[:en_b_c]}/
85
+ dob.obj=dob.obj.
86
+ gsub(/\s*(#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/,'\1')
87
+ word_mode=dob.obj.scan(/\S+/m)
88
+ word_mode=endnote_call_number(word_mode)
89
+ dob.obj=word_mode.join(' ')
90
+ endnote_ref+=1
91
+ when /~\^(?:\s|$)/ #%note inserts endnotes previously gathered from /^(<!e[:_]!>|[-~]\{{3})/ (in earlier loop)
92
+ word_mode=dob.obj.scan(/\S+/m)
93
+ word_mode=endnote_call_number(word_mode)
94
+ dob.obj=word_mode.join(' ')
95
+ endnote_ref+=1
96
+ end
97
+ end
98
+ dob
99
+ end.flatten
100
+ @endnote_counter,
101
+ @endnote_counter_asterisk,
102
+ @endnote_counter_dag=
103
+ 1,1,1
104
+ @tuned_file
105
+ end
106
+ def endnote_call_number(words)
107
+ words.each do |word|
108
+ case word
109
+ when /#{Mx[:en_a_o]}/
110
+ unless word =~/#{Mx[:en_a_o]}[*+]+/
111
+ word.gsub!(/#{Mx[:en_a_o]}/,
112
+ "#{Mx[:en_a_o]}#{@endnote_counter} ")
113
+ @endnote_counter+=1
114
+ end
115
+ when /#{Mx[:en_b_o]}/
116
+ if word =~/#{Mx[:en_b_o]}[+]/
117
+ word.gsub!(/#{Mx[:en_b_o]}[+]/,
118
+ "#{Mx[:en_b_o]}\+#{@endnote_counter_dag} ")
119
+ @endnote_counter_dag+=1
120
+ else
121
+ word.gsub!(/#{Mx[:en_b_o]}[*]?/,
122
+ "#{Mx[:en_b_o]}\*#{@endnote_counter_asterisk} ")
123
+ @endnote_counter_asterisk+=1
124
+ end
125
+ when /~\^/
126
+ if @endnote_array
127
+ word.gsub!(/~\^/,
128
+ "#{@endnote_array[@endnote_counter-1]}")
129
+ @endnote_counter+=1
130
+ end
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
136
+ __END__
@@ -0,0 +1,514 @@
1
+ # encoding: utf-8
2
+ =begin
3
+
4
+ * Name: SiSU
5
+
6
+ ** Description: documents, structuring, processing, publishing, search
7
+ *** system environment, resource control and configuration details
8
+
9
+ ** Author: Ralph Amissah
10
+ <ralph@amissah.com>
11
+ <ralph.amissah@gmail.com>
12
+
13
+ ** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
14
+ 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
15
+ All Rights Reserved.
16
+
17
+ ** License: GPL 3 or later:
18
+
19
+ SiSU, a framework for document structuring, publishing and search
20
+
21
+ Copyright (C) Ralph Amissah
22
+
23
+ This program is free software: you can redistribute it and/or modify it
24
+ under the terms of the GNU General Public License as published by the Free
25
+ Software Foundation, either version 3 of the License, or (at your option)
26
+ any later version.
27
+
28
+ This program is distributed in the hope that it will be useful, but WITHOUT
29
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
30
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
31
+ more details.
32
+
33
+ You should have received a copy of the GNU General Public License along with
34
+ this program. If not, see <http://www.gnu.org/licenses/>.
35
+
36
+ If you have Internet connection, the latest version of the GPL should be
37
+ available at these locations:
38
+ <http://www.fsf.org/licensing/licenses/gpl.html>
39
+ <http://www.gnu.org/licenses/gpl.html>
40
+
41
+ <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
42
+
43
+ ** SiSU uses:
44
+ * Standard SiSU markup syntax,
45
+ * Standard SiSU meta-markup syntax, and the
46
+ * Standard SiSU object citation numbering and system
47
+
48
+ ** Hompages:
49
+ <http://www.jus.uio.no/sisu>
50
+ <http://www.sisudoc.org>
51
+
52
+ ** Git
53
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
54
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/ao_expand_insertions.rb;hb=HEAD>
55
+
56
+ =end
57
+ module SiSU_AO_Insertions
58
+ class Insertions
59
+ def initialize(md,data)
60
+ @md,@data=md,data
61
+ end
62
+ 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
63
+ act_defaults=SiSU_Env::InfoProcessingFlag.new
64
+ cmd_list=case cmd_shortcut.inspect #check on expectation, string v array
65
+ when /0/ then act_defaults.act_0.str
66
+ when /1/ then act_defaults.act_1.str
67
+ when /2/ then act_defaults.act_2.str
68
+ when /3/ then act_defaults.act_3.str
69
+ when /4/ then act_defaults.act_4.str
70
+ when /5/ then act_defaults.act_5.str
71
+ when /6/ then act_defaults.act_6.str
72
+ when /7/ then act_defaults.act_7.str
73
+ when /8/ then act_defaults.act_8.str
74
+ when /9/ then act_defaults.act_9.str
75
+ end
76
+ file_type_names={}
77
+ file_type_names[:gen],file_type_names[:src]=[],[]
78
+ file_type_names[:gen] <<= if cmd_list =~ /\b--manifest\b/
79
+ "~^ { document manifest }#{lnk[:manifest]}"
80
+ end
81
+ file_type_names[:gen] <<= if cmd_list =~ /\b--html\b/
82
+ [
83
+ " { html, segmented text }#{lnk[:html_toc]}",
84
+ " { html, scroll, document in one }#{lnk[:html_doc]}",
85
+ ]
86
+ end
87
+ file_type_names[:gen] <<= if cmd_list =~ /\b--epub\b/
88
+ [" { epub }#{lnk[:epub]}"]
89
+ end
90
+ file_type_names[:gen] <<= if cmd_list =~ /\b--pdf\b/ \
91
+ or cmd_list =~ /--pdf-landscape/
92
+ [
93
+ " { pdf, landscape }#{lnk[:pdf_landscape]}",
94
+ ]
95
+ end
96
+ file_type_names[:gen] <<= if cmd_list =~ /\b--pdf\b/ \
97
+ or cmd_list =~ /--pdf-portrait/
98
+ [
99
+ " { pdf, portrait }#{lnk[:pdf_portrait]}",
100
+ ]
101
+ end
102
+ file_type_names[:gen] <<= if cmd_list =~ /\b(?:--odt|--odf)\b/
103
+ " { odf:odt, open document text }#{lnk[:odt]}"
104
+ end
105
+ file_type_names[:gen] <<= if cmd_list =~ /\b--xhtml\b/
106
+ " { xhtml scroll }#{lnk[:xhtml]}"
107
+ end
108
+ file_type_names[:gen] <<= if cmd_list =~ /\b--docbook\b/
109
+ " { docbook }#{lnk[:docbook]}" #CHECK
110
+ end
111
+ file_type_names[:gen] <<= if cmd_list =~ /\b--xml-sax\b/
112
+ " { xml, sax }#{lnk[:xml_sax]}"
113
+ end
114
+ file_type_names[:gen] <<= if cmd_list =~ /\b--xml-dom\b/
115
+ " { xml, dom }#{lnk[:xml_dom]}"
116
+ end
117
+ file_type_names[:gen] <<= if cmd_list =~ /\b(?:--txt|--text|--plaintext)\b/
118
+ " { plain text utf-8 }#{lnk[:txt]}"
119
+ end
120
+ #file_type_names[:gen] <<= if cmd_list =~ /g/
121
+ # 'wiki.txt'
122
+ #end
123
+ file_type_names[:gen] <<= if cmd_list =~ /\b--concordance\b/
124
+ " { concordance }#{lnk[:html_concordance]}"
125
+ end
126
+ file_type_names[:gen] <<= if cmd_list =~ /\b--digest\b/
127
+ " { dcc, document content certificate (digests) }#{lnk[:digest]}"
128
+ end
129
+ file_type_names[:src] <<= if source and cmd_shortcut =~ /\b--source\b/
130
+ " { markup source text }#{lnk[:source]}"
131
+ end
132
+ file_type_names[:src] <<= if cmd_shortcut =~ /\b--sisupod\b/
133
+ " { markup source (zipped) pod }#{lnk[:sisupod]}"
134
+ end
135
+ file_type_names[:gen]=file_type_names[:gen].flatten
136
+ file_type_names[:src]=file_type_names[:src].flatten
137
+ file_type_names
138
+ end
139
+ def by_language(linked_doc,lng,src=nil)
140
+ @linked_doc,@lng,@src=linked_doc,lng,src
141
+ @base_path="#{@md.file.output_path.base.url}/#{lng}"
142
+ def fnh
143
+ {
144
+ fn: @linked_doc,
145
+ }
146
+ end
147
+ def path_and_file(fn,pth)
148
+ @base_path + '/' + pth + '/' + fn
149
+ end
150
+ def manifest
151
+ fn=@md.file.base_filename.manifest(fnh)
152
+ path_and_file(fn,'manifest')
153
+ end
154
+ def html_toc
155
+ fn=@md.file.base_filename.html_segtoc(fnh)
156
+ @base_path + '/html/' + @linked_doc + '/' + fn
157
+ end
158
+ def html_doc
159
+ fn=@md.file.base_filename.html_scroll(fnh)
160
+ path_and_file(fn,'html')
161
+ end
162
+ def html_concordance
163
+ fn=@md.file.base_filename.html_concordance
164
+ @base_path + '/html/' + @linked_doc + '/' + fn
165
+ end
166
+ def epub
167
+ fn=@md.file.base_filename.epub(fnh)
168
+ path_and_file(fn,'epub')
169
+ end
170
+ def pdf_landscape
171
+ fn=@md.file.base_filename.pdf_l_a4(fnh)
172
+ path_and_file(fn,'pdf')
173
+ end
174
+ def pdf_portrait
175
+ fn=@md.file.base_filename.pdf_p_a4(fnh)
176
+ path_and_file(fn,'pdf')
177
+ end
178
+ def odt
179
+ fn=@md.file.base_filename.odt(fnh)
180
+ path_and_file(fn,'odt')
181
+ end
182
+ def xhtml
183
+ fn=@md.file.base_filename.xhtml(fnh)
184
+ path_and_file(fn,'xhtml')
185
+ end
186
+ def docbook
187
+ fn=@md.file.base_filename.xml_docbook_book(fnh)
188
+ path_and_file(fn,'docbook')
189
+ end
190
+ def xml_sax
191
+ fn=@md.file.base_filename.xml_sax(fnh)
192
+ path_and_file(fn,'xml_sax')
193
+ end
194
+ def xml_dom
195
+ fn=@md.file.base_filename.xml_dom(fnh)
196
+ path_and_file(fn,'xml_dom')
197
+ end
198
+ def txt
199
+ fn=@md.file.base_filename.txt(fnh)
200
+ path_and_file(fn,'txt')
201
+ end
202
+ def digest
203
+ fn=@md.file.base_filename.hash_digest(fnh)
204
+ path_and_file(fn,'digest')
205
+ end
206
+ def source
207
+ @base_path + '/src/' + @src
208
+ end
209
+ def sisupod
210
+ @base_path + '/src/' + @src + '.zip'
211
+ end
212
+ self
213
+ end
214
+ def by_filetype(linked_doc,lng,src=nil)
215
+ @linked_doc,@lng,@src=linked_doc,lng,src
216
+ @lc=SiSU_Env::FilenameLanguageCodeInsert.new(@md.opt,lng).
217
+ language_code_insert
218
+ @base_path="#{@md.file.output_path.base.url}"
219
+ def fnh
220
+ {
221
+ fn: @linked_doc,
222
+ lng: @lc,
223
+ }
224
+ end
225
+ def path_and_file(fn,pth)
226
+ @base_path + '/' + pth + '/' + fn
227
+ end
228
+ def manifest
229
+ fn=@md.file.base_filename.manifest(fnh)
230
+ path_and_file(fn,'manifest')
231
+ end
232
+ def html_toc
233
+ fn=@md.file.base_filename.html_segtoc(fnh)
234
+ path_and_file(fn,'html')
235
+ end
236
+ def html_doc
237
+ fn=@md.file.base_filename.html_scroll(fnh)
238
+ path_and_file(fn,'html')
239
+ end
240
+ def html_concordance
241
+ fn=@md.file.base_filename.html_concordance
242
+ path_and_file(fn,'html')
243
+ end
244
+ def epub
245
+ fn=@md.file.base_filename.epub(fnh)
246
+ path_and_file(fn,'epub')
247
+ end
248
+ def pdf_landscape
249
+ fn=@md.file.base_filename.pdf_l_a4(fnh)
250
+ path_and_file(fn,'pdf')
251
+ end
252
+ def pdf_portrait
253
+ fn=@md.file.base_filename.pdf_p_a4(fnh)
254
+ path_and_file(fn,'pdf')
255
+ end
256
+ def odt
257
+ fn=@md.file.base_filename.odt(fnh)
258
+ path_and_file(fn,'odt')
259
+ end
260
+ def xhtml
261
+ fn=@md.file.base_filename.xhtml(fnh)
262
+ path_and_file(fn,'xhtml')
263
+ end
264
+ def docbook
265
+ fn=@md.file.base_filename.xml_docbook_book(fnh)
266
+ path_and_file(fn,'docbook')
267
+ end
268
+ def xml_sax
269
+ fn=@md.file.base_filename.xml_sax(fnh)
270
+ path_and_file(fn,'xml_sax')
271
+ end
272
+ def xml_dom
273
+ fn=@md.file.base_filename.xml_dom(fnh)
274
+ path_and_file(fn,'xml_dom')
275
+ end
276
+ def txt
277
+ fn=@md.file.base_filename.txt(fnh)
278
+ path_and_file(fn,'txt')
279
+ end
280
+ def digest
281
+ fn=@md.file.base_filename.hash_digest(fnh)
282
+ path_and_file(fn,'digest')
283
+ end
284
+ def source
285
+ @base_path + '/src/' + @src
286
+ end
287
+ def sisupod
288
+ @base_path + '/src/' + @src + '.zip'
289
+ end
290
+ self
291
+ end
292
+ def by_filename(linked_doc,lng,src=nil)
293
+ @linked_doc,@lng,@src=linked_doc,lng,src
294
+ @lc=SiSU_Env::FilenameLanguageCodeInsert.new(@md.opt,lng).language_code_insert
295
+ @base_path="#{@md.file.output_path.base.url}/#{@linked_doc}"
296
+ def fnh
297
+ {
298
+ fn: @linked_doc,
299
+ lng: @lc,
300
+ }
301
+ end
302
+ def path_and_file(fn,pth=nil)
303
+ (pth.nil?) \
304
+ ? @base_path + '/' + fn
305
+ : @base_path + '/' + pth + '/' + fn
306
+ end
307
+ def manifest
308
+ fn=@md.file.base_filename.manifest(fnh)
309
+ path_and_file(fn)
310
+ end
311
+ def html_toc
312
+ fn=@md.file.base_filename.html_segtoc(fnh)
313
+ path_and_file(fn)
314
+ end
315
+ def html_doc
316
+ fn=@md.file.base_filename.html_scroll(fnh)
317
+ path_and_file(fn)
318
+ end
319
+ def html_concordance
320
+ fn=@md.file.base_filename.html_concordance
321
+ path_and_file(fn)
322
+ end
323
+ def epub
324
+ fn=@md.file.base_filename.epub(fnh)
325
+ path_and_file(fn,'epub')
326
+ end
327
+ def pdf_landscape
328
+ fn=@md.file.base_filename.pdf_l_a4(fnh)
329
+ path_and_file(fn)
330
+ end
331
+ def pdf_portrait
332
+ fn=@md.file.base_filename.pdf_p_a4(fnh)
333
+ path_and_file(fn)
334
+ end
335
+ def odt
336
+ fn=@md.file.base_filename.odt(fnh)
337
+ path_and_file(fn)
338
+ end
339
+ def xhtml
340
+ fn=@md.file.base_filename.xhtml(fnh)
341
+ path_and_file(fn)
342
+ end
343
+ def docbook
344
+ fn=@md.file.base_filename.xml_docbook_book(fnh)
345
+ path_and_file(fn)
346
+ end
347
+ def xml_sax
348
+ fn=@md.file.base_filename.xml_sax(fnh)
349
+ path_and_file(fn)
350
+ end
351
+ def xml_dom
352
+ fn=@md.file.base_filename.xml_dom(fnh)
353
+ path_and_file(fn)
354
+ end
355
+ def txt
356
+ fn=@md.file.base_filename.txt(fnh)
357
+ path_and_file(fn)
358
+ end
359
+ def digest
360
+ fn=@md.file.base_filename.hash_digest(fnh)
361
+ path_and_file(fn)
362
+ end
363
+ def source
364
+ @base_path + '/' + @src
365
+ end
366
+ def sisupod
367
+ @base_path + '/' + @src + '.zip'
368
+ end
369
+ self
370
+ end
371
+ def expand_insertions?
372
+ data=@data
373
+ tuned_file,tuned_file_tmp=[],[]
374
+ codeblock_={
375
+ status: :false,
376
+ type: :na,
377
+ }
378
+ data.each do |para|
379
+ codeblock_=if para =~/^code(?:\.[a-z][0-9a-z_]+)?\{/ \
380
+ and codeblock_[:status]==:false
381
+ {
382
+ status: :true,
383
+ type: :curl,
384
+ }
385
+ elsif para =~/^```[ ]+code(?:\.[a-z][0-9a-z_]+)?/ \
386
+ and codeblock_[:status]==:false
387
+ {
388
+ status: :true,
389
+ type: :tics,
390
+ }
391
+ elsif codeblock_[:type]==:curl \
392
+ and para =~/^\}code/m
393
+ {
394
+ status: :false,
395
+ type: :na,
396
+ }
397
+ elsif codeblock_[:type]==:tics \
398
+ and para =~/^```(?:\s|$)/m
399
+ {
400
+ status: :false,
401
+ type: :na,
402
+ }
403
+ else codeblock_
404
+ end
405
+ if para !~/^%+\s/ \
406
+ and codeblock_[:status] != :true \
407
+ and para =~/\{(?:~\^\s+)?(.+?)\s\[(?:\d(?:[sS]*))\]\}(?:\.\.\/\S+?\/|\S+?\.ss[tm]\b)/
408
+ @u=SiSU_Env::InfoEnv.new.url
409
+ m_cmd=''
410
+ if defined? @u.remote
411
+ if /(?<m_pre>.+?)\{(?<m_txt>.+?)\s\[(?<m_cmd>\d[sS]*)\]\}(?<m_source>(?<m_linked_doc>\S+?)\.ss[tm]\b)(?<m_note>.*)/m =~ para
412
+ m_pre=m_pre.strip
413
+ elsif /\{(?<m_txt>.+?)\s\[(?<m_cmd>\d[sS]*)\]\}(?<m_source>(?<m_linked_doc>\S+?)\.ss[tm]\b)(?<m_note>.*)/m =~ para
414
+ end
415
+ if m_linked_doc =~ /(\S+?)\/(\S+)/
416
+ m_linked_doc,m_linked_doc_lang=$1,$2
417
+ else
418
+ m_linked_doc,m_linked_doc_lang=m_linked_doc,@md.opt.lng_base
419
+ end
420
+ else
421
+ 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__}"
422
+ 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
423
+ end
424
+ end
425
+ lnk=case @md.opt.dir_structure_by
426
+ when :language
427
+ {
428
+ manifest: by_language(m_linked_doc,m_linked_doc_lang).manifest,
429
+ html_toc: by_language(m_linked_doc,m_linked_doc_lang).html_toc,
430
+ html_doc: by_language(m_linked_doc,m_linked_doc_lang).html_doc,
431
+ epub: by_language(m_linked_doc,m_linked_doc_lang).epub,
432
+ pdf_landscape: by_language(m_linked_doc,m_linked_doc_lang).pdf_landscape,
433
+ pdf_portrait: by_language(m_linked_doc,m_linked_doc_lang).pdf_landscape,
434
+ odt: by_language(m_linked_doc,m_linked_doc_lang).odt,
435
+ xhtml: by_language(m_linked_doc,m_linked_doc_lang).xhtml,
436
+ docbook: by_language(m_linked_doc,m_linked_doc_lang).docbook,
437
+ xml_sax: by_language(m_linked_doc,m_linked_doc_lang).xml_sax,
438
+ xml_dom: by_language(m_linked_doc,m_linked_doc_lang).xml_dom,
439
+ txt: by_language(m_linked_doc,m_linked_doc_lang).txt,
440
+ html_concordance: by_language(m_linked_doc,m_linked_doc_lang).html_concordance,
441
+ digest: by_language(m_linked_doc,m_linked_doc_lang).digest,
442
+ sisupod: by_language(m_linked_doc,m_linked_doc_lang,m_source).sisupod,
443
+ source: by_language(m_linked_doc,m_linked_doc_lang,m_source).source,
444
+ }
445
+ when :filetype
446
+ {
447
+ manifest: by_filetype(m_linked_doc,m_linked_doc_lang).manifest,
448
+ html_toc: by_filetype(m_linked_doc,m_linked_doc_lang).html_toc,
449
+ html_doc: by_filetype(m_linked_doc,m_linked_doc_lang).html_doc,
450
+ epub: by_filetype(m_linked_doc,m_linked_doc_lang).epub,
451
+ pdf_landscape: by_filetype(m_linked_doc,m_linked_doc_lang).pdf_landscape,
452
+ pdf_portrait: by_filetype(m_linked_doc,m_linked_doc_lang).pdf_landscape,
453
+ odt: by_filetype(m_linked_doc,m_linked_doc_lang).odt,
454
+ xhtml: by_filetype(m_linked_doc,m_linked_doc_lang).xhtml,
455
+ docbook: by_filetype(m_linked_doc,m_linked_doc_lang).docbook,
456
+ xml_sax: by_filetype(m_linked_doc,m_linked_doc_lang).xml_sax,
457
+ xml_dom: by_filetype(m_linked_doc,m_linked_doc_lang).xml_dom,
458
+ txt: by_filetype(m_linked_doc,m_linked_doc_lang).txt,
459
+ html_concordance: by_filetype(m_linked_doc,m_linked_doc_lang).html_concordance,
460
+ digest: by_filetype(m_linked_doc,m_linked_doc_lang).digest,
461
+ sisupod: by_filetype(m_linked_doc,m_linked_doc_lang,m_source).sisupod,
462
+ source: by_filetype(m_linked_doc,m_linked_doc_lang,m_source).source,
463
+ }
464
+ else
465
+ {
466
+ manifest: by_filename(m_linked_doc,m_linked_doc_lang).manifest,
467
+ html_toc: by_filename(m_linked_doc,m_linked_doc_lang).html_toc,
468
+ html_doc: by_filename(m_linked_doc,m_linked_doc_lang).html_doc,
469
+ epub: by_filename(m_linked_doc,m_linked_doc_lang).epub,
470
+ pdf_landscape: by_filename(m_linked_doc,m_linked_doc_lang).pdf_landscape,
471
+ pdf_portrait: by_filename(m_linked_doc,m_linked_doc_lang).pdf_landscape,
472
+ odt: by_filename(m_linked_doc,m_linked_doc_lang).odt,
473
+ xhtml: by_filename(m_linked_doc,m_linked_doc_lang).xhtml,
474
+ docbook: by_filename(m_linked_doc,m_linked_doc_lang).docbook,
475
+ xml_sax: by_filename(m_linked_doc,m_linked_doc_lang).xml_sax,
476
+ xml_dom: by_filename(m_linked_doc,m_linked_doc_lang).xml_dom,
477
+ txt: by_filename(m_linked_doc,m_linked_doc_lang).txt,
478
+ html_concordance: by_filename(m_linked_doc,m_linked_doc_lang).html_concordance,
479
+ digest: by_filename(m_linked_doc,m_linked_doc_lang).digest,
480
+ sisupod: by_filename(m_linked_doc,m_linked_doc_lang,m_source).sisupod,
481
+ source: by_filename(m_linked_doc,m_linked_doc_lang,m_source).source,
482
+ }
483
+ end
484
+ linked_title="#{m_pre}{#{m_txt} }#{lnk[:manifest]}#{m_note}\n\n"
485
+ tuned_file_tmp << linked_title
486
+ output_filetypes=output_filetypes_in_cmd(m_cmd,lnk)
487
+ output_filetypes[:gen].each do |desc|
488
+ if desc
489
+ tuned_file_tmp << if @u.remote
490
+ "#{Mx[:nbsp]*4} #{desc} "
491
+ else # remove ...
492
+ "[provide document placement host location]"
493
+ end
494
+ end
495
+ end
496
+ output_filetypes[:src].each do |desc|
497
+ if desc
498
+ tuned_file_tmp << if @u.remote
499
+ "#{Mx[:nbsp]*4} #{desc} "
500
+ else
501
+ "[provide document placement host location]"
502
+ end
503
+ end
504
+ end
505
+ tuned_file << 'group{' << tuned_file_tmp.join("\n") << '}group'
506
+ tuned_file_tmp=[]
507
+ else tuned_file << para
508
+ end
509
+ end
510
+ tuned_file
511
+ end
512
+ end
513
+ end
514
+ __END__