sisu 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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__