sisu 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/sisu +367 -0
- data/bin/sisugem +367 -0
- data/data/sisu/image/arrow_next_red.png +0 -0
- data/data/sisu/image/arrow_prev_red.png +0 -0
- data/data/sisu/image/arrow_up_red.png +0 -0
- data/data/sisu/image/b_bluebell.png +0 -0
- data/data/sisu/image/b_doc.png +0 -0
- data/data/sisu/image/b_epub.png +0 -0
- data/data/sisu/image/b_home.png +0 -0
- data/data/sisu/image/b_info.png +0 -0
- data/data/sisu/image/b_odf.png +0 -0
- data/data/sisu/image/b_pdf.png +0 -0
- data/data/sisu/image/b_search.png +0 -0
- data/data/sisu/image/b_toc.png +0 -0
- data/data/sisu/image/bullet_08.png +0 -0
- data/data/sisu/image/bullet_09.png +0 -0
- data/data/sisu/image/bullet_10.png +0 -0
- data/data/sisu/image/bullet_11.png +0 -0
- data/data/sisu/image/bullet_12.png +0 -0
- data/data/sisu/image/bullet_doc.png +0 -0
- data/data/sisu/image/bullet_red.png +0 -0
- data/data/sisu/image/dot_clear.png +0 -0
- data/data/sisu/image/dot_white.png +0 -0
- data/data/sisu/image/gplv3.png +0 -0
- data/data/sisu/image/gplv3_free_software.png +0 -0
- data/data/sisu/image/next.png +0 -0
- data/data/sisu/image/previous.png +0 -0
- data/data/sisu/image/rb7.ico +0 -0
- data/data/sisu/image/sisu.png +0 -0
- data/data/sisu/image/toctoc.png +0 -0
- data/data/sisu/version.yml +5 -0
- data/lib/sisu.rb +94 -0
- data/lib/sisu/air.rb +80 -0
- data/lib/sisu/ao.rb +590 -0
- data/lib/sisu/ao_character_check.rb +102 -0
- data/lib/sisu/ao_composite.rb +286 -0
- data/lib/sisu/ao_doc_objects.rb +565 -0
- data/lib/sisu/ao_doc_str.rb +2269 -0
- data/lib/sisu/ao_endnotes.rb +136 -0
- data/lib/sisu/ao_expand_insertions.rb +514 -0
- data/lib/sisu/ao_hash_digest.rb +174 -0
- data/lib/sisu/ao_idx.rb +422 -0
- data/lib/sisu/ao_images.rb +187 -0
- data/lib/sisu/ao_metadata.rb +86 -0
- data/lib/sisu/ao_misc_arrange.rb +207 -0
- data/lib/sisu/ao_numbering.rb +720 -0
- data/lib/sisu/ao_persist.rb +194 -0
- data/lib/sisu/ao_references.rb +502 -0
- data/lib/sisu/ao_syntax.rb +640 -0
- data/lib/sisu/cgi.rb +84 -0
- data/lib/sisu/cgi_pgsql.rb +270 -0
- data/lib/sisu/cgi_sql_common.rb +986 -0
- data/lib/sisu/cgi_sqlite.rb +244 -0
- data/lib/sisu/conf.rb +287 -0
- data/lib/sisu/constants.rb +388 -0
- data/lib/sisu/css.rb +3484 -0
- data/lib/sisu/db_columns.rb +1997 -0
- data/lib/sisu/db_create.rb +689 -0
- data/lib/sisu/db_dbi.rb +90 -0
- data/lib/sisu/db_drop.rb +207 -0
- data/lib/sisu/db_import.rb +877 -0
- data/lib/sisu/db_indexes.rb +146 -0
- data/lib/sisu/db_load_tuple.rb +323 -0
- data/lib/sisu/db_remove.rb +182 -0
- data/lib/sisu/db_select.rb +230 -0
- data/lib/sisu/db_sqltxt.rb +173 -0
- data/lib/sisu/db_tests.rb +114 -0
- data/lib/sisu/dbi.rb +166 -0
- data/lib/sisu/dbi_discrete.rb +206 -0
- data/lib/sisu/digests.rb +306 -0
- data/lib/sisu/dp.rb +1606 -0
- data/lib/sisu/dp_identify_markup.rb +161 -0
- data/lib/sisu/dp_make.rb +668 -0
- data/lib/sisu/embedded.rb +149 -0
- data/lib/sisu/errors.rb +84 -0
- data/lib/sisu/generic_parts.rb +131 -0
- data/lib/sisu/git.rb +277 -0
- data/lib/sisu/html.rb +775 -0
- data/lib/sisu/html_concordance.rb +391 -0
- data/lib/sisu/html_format.rb +1348 -0
- data/lib/sisu/html_harvest.rb +109 -0
- data/lib/sisu/html_harvest_author_format.rb +111 -0
- data/lib/sisu/html_harvest_authors.rb +466 -0
- data/lib/sisu/html_harvest_topics.rb +893 -0
- data/lib/sisu/html_lite_shared.rb +324 -0
- data/lib/sisu/html_manifest.rb +1032 -0
- data/lib/sisu/html_minitoc.rb +230 -0
- data/lib/sisu/html_parts.rb +437 -0
- data/lib/sisu/html_persist.rb +237 -0
- data/lib/sisu/html_promo.rb +440 -0
- data/lib/sisu/html_scroll.rb +235 -0
- data/lib/sisu/html_segments.rb +716 -0
- data/lib/sisu/html_shared.rb +62 -0
- data/lib/sisu/html_table.rb +64 -0
- data/lib/sisu/html_tune.rb +301 -0
- data/lib/sisu/hub.rb +277 -0
- data/lib/sisu/hub_actions.rb +1122 -0
- data/lib/sisu/hub_loop_markup_files.rb +170 -0
- data/lib/sisu/hub_options.rb +1695 -0
- data/lib/sisu/i18n.rb +702 -0
- data/lib/sisu/manpage.rb +377 -0
- data/lib/sisu/manpage_format.rb +85 -0
- data/lib/sisu/object_munge.rb +307 -0
- data/lib/sisu/prog_text_translation.rb +1702 -0
- data/lib/sisu/qrcode.rb +754 -0
- data/lib/sisu/relaxng.rb +1153 -0
- data/lib/sisu/remote.rb +246 -0
- data/lib/sisu/rexml.rb +148 -0
- data/lib/sisu/se.rb +158 -0
- data/lib/sisu/se_cleanoutput.rb +145 -0
- data/lib/sisu/se_clear.rb +105 -0
- data/lib/sisu/se_createsite.rb +273 -0
- data/lib/sisu/se_css.rb +221 -0
- data/lib/sisu/se_date.rb +92 -0
- data/lib/sisu/se_db.rb +214 -0
- data/lib/sisu/se_envcall.rb +326 -0
- data/lib/sisu/se_file_op.rb +2758 -0
- data/lib/sisu/se_filemap.rb +247 -0
- data/lib/sisu/se_get_init.rb +238 -0
- data/lib/sisu/se_hub_particulars.rb +234 -0
- data/lib/sisu/se_info_env.rb +2179 -0
- data/lib/sisu/se_info_port.rb +70 -0
- data/lib/sisu/se_info_system.rb +202 -0
- data/lib/sisu/se_load.rb +108 -0
- data/lib/sisu/se_processing.rb +659 -0
- data/lib/sisu/se_programs.rb +394 -0
- data/lib/sisu/se_remotes.rb +553 -0
- data/lib/sisu/se_standardise_lang.rb +176 -0
- data/lib/sisu/se_version.rb +174 -0
- data/lib/sisu/shared_images.rb +137 -0
- data/lib/sisu/shared_markup_alt.rb +336 -0
- data/lib/sisu/shared_metadata.rb +1361 -0
- data/lib/sisu/shared_sem.rb +156 -0
- data/lib/sisu/sisu_thor_lib.rb +407 -0
- data/lib/sisu/sitemaps.rb +224 -0
- data/lib/sisu/src_kdissert_share.rb +102 -0
- data/lib/sisu/src_po4a_share.rb +309 -0
- data/lib/sisu/src_po4a_shelf.rb +1217 -0
- data/lib/sisu/src_po4a_shelf_set.rb +297 -0
- data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
- data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
- data/lib/sisu/src_po4a_sstm.rb +135 -0
- data/lib/sisu/src_shared.rb +347 -0
- data/lib/sisu/src_sisupod_make.rb +171 -0
- data/lib/sisu/src_sisupod_sstm.rb +109 -0
- data/lib/sisu/sst_convert_markup.rb +323 -0
- data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
- data/lib/sisu/sst_from_xml.rb +178 -0
- data/lib/sisu/sst_identify_markup.rb +482 -0
- data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
- data/lib/sisu/termsheet.rb +163 -0
- data/lib/sisu/texinfo.rb +430 -0
- data/lib/sisu/texinfo_format.rb +541 -0
- data/lib/sisu/texpdf.rb +1162 -0
- data/lib/sisu/texpdf_format.rb +1689 -0
- data/lib/sisu/texpdf_parts.rb +235 -0
- data/lib/sisu/txt_asciidoc.rb +354 -0
- data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
- data/lib/sisu/txt_markdown.rb +389 -0
- data/lib/sisu/txt_markdown_decorate.rb +207 -0
- data/lib/sisu/txt_orgmode.rb +376 -0
- data/lib/sisu/txt_orgmode_decorate.rb +186 -0
- data/lib/sisu/txt_output.rb +86 -0
- data/lib/sisu/txt_plain.rb +410 -0
- data/lib/sisu/txt_plain_decorate.rb +189 -0
- data/lib/sisu/txt_read.rb +109 -0
- data/lib/sisu/txt_rst.rb +371 -0
- data/lib/sisu/txt_rst_decorate.rb +186 -0
- data/lib/sisu/txt_shared.rb +241 -0
- data/lib/sisu/txt_textile.rb +367 -0
- data/lib/sisu/txt_textile_decorate.rb +186 -0
- data/lib/sisu/update.rb +141 -0
- data/lib/sisu/urls.rb +696 -0
- data/lib/sisu/utils.rb +232 -0
- data/lib/sisu/utils_composite.rb +115 -0
- data/lib/sisu/utils_response.rb +114 -0
- data/lib/sisu/utils_screen_text_color.rb +472 -0
- data/lib/sisu/utils_spell.rb +99 -0
- data/lib/sisu/webrick.rb +191 -0
- data/lib/sisu/wikispeak.rb +375 -0
- data/lib/sisu/xhtml.rb +472 -0
- data/lib/sisu/xhtml_epub2.rb +890 -0
- data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
- data/lib/sisu/xhtml_epub2_format.rb +2272 -0
- data/lib/sisu/xhtml_epub2_persist.rb +278 -0
- data/lib/sisu/xhtml_epub2_segments.rb +599 -0
- data/lib/sisu/xhtml_epub2_tune.rb +330 -0
- data/lib/sisu/xhtml_parts.rb +183 -0
- data/lib/sisu/xhtml_shared.rb +62 -0
- data/lib/sisu/xhtml_table.rb +97 -0
- data/lib/sisu/xml_docbook5.rb +376 -0
- data/lib/sisu/xml_dom.rb +624 -0
- data/lib/sisu/xml_fictionbook2.rb +389 -0
- data/lib/sisu/xml_format.rb +865 -0
- data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
- data/lib/sisu/xml_odf_odt.rb +887 -0
- data/lib/sisu/xml_odf_odt_format.rb +674 -0
- data/lib/sisu/xml_parts.rb +191 -0
- data/lib/sisu/xml_persist.rb +126 -0
- data/lib/sisu/xml_sax.rb +521 -0
- data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
- data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
- data/lib/sisu/xml_shared.rb +665 -0
- data/lib/sisu/xml_tables.rb +261 -0
- data/lib/sisu/zap.rb +90 -0
- metadata +251 -0
@@ -0,0 +1,171 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
=begin
|
3
|
+
|
4
|
+
* Name: SiSU
|
5
|
+
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
7
|
+
*** create sisupod filetype and copy it to output directory!
|
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/src_sisupod_make.rb;hb=HEAD>
|
55
|
+
|
56
|
+
=end
|
57
|
+
module SiSU_Doc
|
58
|
+
require_relative 'src_shared' # scr_shared.rb
|
59
|
+
include SiSU_Source
|
60
|
+
require_relative 'se' # se.rb
|
61
|
+
include SiSU_Env
|
62
|
+
class Source < SiSU_Source::SiSUpodSource
|
63
|
+
require_relative 'utils_response' # utils_response.rb
|
64
|
+
def initialize(opt,build=nil,place=nil)
|
65
|
+
super(opt,build,place)
|
66
|
+
@zipfile=@opt.fno.gsub(/(?:\~\S{2,3})?(\.ss[tm])$/,'\1')
|
67
|
+
unless @opt.act[:quiet][:set]==:on
|
68
|
+
pthinfo="#{@file.output_path.sisupod.dir}/#{@zipfile}.txz"
|
69
|
+
(@opt.act[:verbose][:set]==:on \
|
70
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
71
|
+
|| @opt.act[:maintenance][:set]==:on) \
|
72
|
+
? SiSU_Screen::Ansi.new(
|
73
|
+
@opt.act[:color_state][:set],
|
74
|
+
'Assemble source for sisu document',
|
75
|
+
"#{@opt.fns} -> file://#{pthinfo}"
|
76
|
+
).cyan_hi_blue
|
77
|
+
: SiSU_Screen::Ansi.new(
|
78
|
+
@opt.act[:color_state][:set],
|
79
|
+
'Assemble source for sisu document',
|
80
|
+
pthinfo
|
81
|
+
).cyan_title_hi
|
82
|
+
end
|
83
|
+
end
|
84
|
+
def sisupod_tar_xz
|
85
|
+
begin
|
86
|
+
FileUtils::mkdir_p(@file.output_path.sisupod.dir) \
|
87
|
+
unless FileTest.directory?(@file.output_path.sisupod.dir)
|
88
|
+
tree=((@opt.act[:verbose][:set]==:on \
|
89
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
90
|
+
|| @opt.act[:maintenance][:set]==:on) \
|
91
|
+
&& SiSU_Env::SystemCall.new.program_found?('tree')) \
|
92
|
+
? 'tree sisupod'
|
93
|
+
: ''
|
94
|
+
if FileTest.directory?(@path_pod[:fnb])
|
95
|
+
Dir.chdir(@path_pod[:fnb])
|
96
|
+
system(%{
|
97
|
+
#{tree}
|
98
|
+
tar -cJf #{@zipfile}.txz sisupod
|
99
|
+
#echo "#{@file.place_file.sisupod.dir}"
|
100
|
+
})
|
101
|
+
FileUtils::mv("#{@zipfile}.txz",@file.place_file.sisupod.dir)
|
102
|
+
Dir.chdir(@env.path.pwd)
|
103
|
+
if (@opt.act[:verbose][:set]==:on \
|
104
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
105
|
+
|| @opt.act[:maintenance][:set]==:on)
|
106
|
+
SiSU_Screen::Ansi.new('',"#{@opt.fns}.txz").blue_tab
|
107
|
+
end
|
108
|
+
else
|
109
|
+
if (@opt.act[:verbose][:set]==:on \
|
110
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
111
|
+
|| @opt.act[:maintenance][:set]==:on)
|
112
|
+
SiSU_Screen::Ansi.new('',"#{@opt.fns}.txz not built").blue_tab
|
113
|
+
end
|
114
|
+
end
|
115
|
+
rescue
|
116
|
+
ensure
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
__END__
|
122
|
+
question?: should you permit the packing of multiple documents in single .xz ?
|
123
|
+
|
124
|
+
open @opt.fns, parse file
|
125
|
+
extract from file content:
|
126
|
+
images and copy each image from whatever image source to _sisu/sisupod/sisu/_sisu/image
|
127
|
+
|
128
|
+
remove previously existing contents of _/sisu/sisupod &
|
129
|
+
make directory structure:
|
130
|
+
|
131
|
+
v3 -->
|
132
|
+
_sisu
|
133
|
+
sisupod
|
134
|
+
doc
|
135
|
+
manifest.txt
|
136
|
+
en/content.sst [file content]
|
137
|
+
fr/content.sst
|
138
|
+
_sisu
|
139
|
+
conf
|
140
|
+
image (ln -s ../../image)
|
141
|
+
audio (ln -s ../../audio)
|
142
|
+
video (ln -s ../../video)
|
143
|
+
image [all images for specific document gathered here]
|
144
|
+
audio
|
145
|
+
video
|
146
|
+
|
147
|
+
v2 -->
|
148
|
+
_sisu
|
149
|
+
sisupod
|
150
|
+
content.sst [file content]
|
151
|
+
filename.sst [link to content.sst]
|
152
|
+
_sisu/
|
153
|
+
image/ [all images for specific document gathered here]
|
154
|
+
|
155
|
+
sisu
|
156
|
+
_sisu
|
157
|
+
sisurc.yml
|
158
|
+
convert/
|
159
|
+
standard_terms/
|
160
|
+
image
|
161
|
+
processing
|
162
|
+
ao/
|
163
|
+
tex/
|
164
|
+
texinfo/
|
165
|
+
tune/
|
166
|
+
sisupod
|
167
|
+
|
168
|
+
special case
|
169
|
+
|
170
|
+
composite file (master), e.g.
|
171
|
+
SiSU.ssm
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
=begin
|
3
|
+
|
4
|
+
* Name: SiSU
|
5
|
+
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
7
|
+
*** share sisu source markup file, copy it to output directory!
|
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/src_sisupod_sstm.rb;hb=HEAD>
|
55
|
+
|
56
|
+
=end
|
57
|
+
module SiSU_Markup
|
58
|
+
require_relative 'src_shared' # src_shared.rb
|
59
|
+
include SiSU_Source
|
60
|
+
require_relative 'se' # se.rb
|
61
|
+
include SiSU_Env
|
62
|
+
class Source_Sisupod < SiSU_Source::SiSUpodSource
|
63
|
+
def initialize(opt,build=nil,place=nil)
|
64
|
+
super(opt,build,place)
|
65
|
+
@opt=opt
|
66
|
+
end
|
67
|
+
def read
|
68
|
+
unless @opt.act[:quiet][:set]==:on
|
69
|
+
(@opt.act[:verbose][:set]==:on \
|
70
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
71
|
+
|| @opt.act[:maintenance][:set]==:on) \
|
72
|
+
? SiSU_Screen::Ansi.new(
|
73
|
+
@opt.act[:color_state][:set],
|
74
|
+
'Share document markup text source',
|
75
|
+
@opt.fns
|
76
|
+
).cyan_hi_blue
|
77
|
+
: SiSU_Screen::Ansi.new(
|
78
|
+
@opt.act[:color_state][:set],
|
79
|
+
'Share document markup text source',
|
80
|
+
@opt.fns
|
81
|
+
).cyan_title_hi
|
82
|
+
end
|
83
|
+
if FileTest.directory?(@path_pod[:fnb])
|
84
|
+
FileUtils::mkdir_p(@file.output_path.src.dir) \
|
85
|
+
unless FileTest.directory?(@file.output_path.src.dir)
|
86
|
+
v=(@opt.act[:maintenance][:set]==:on) \
|
87
|
+
? 'v' : ''
|
88
|
+
system(%{
|
89
|
+
rsync -a#{v} #{@path_pod[:fnb]} #{@file.output_path.sisupod.dir}
|
90
|
+
chbk=`pwd`
|
91
|
+
cd #{@file.output_path.sisupod.dir}
|
92
|
+
for I in `find -type d` ; do chmod 755 $I ; done
|
93
|
+
for I in `find -type f` ; do chmod 644 $I ; done
|
94
|
+
cd ${chbk}
|
95
|
+
})
|
96
|
+
else
|
97
|
+
if (@opt.act[:verbose][:set]==:on \
|
98
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
99
|
+
|| @opt.act[:maintenance][:set]==:on)
|
100
|
+
SiSU_Screen::Ansi.new(
|
101
|
+
'',
|
102
|
+
"#{@opt.fno} not available"
|
103
|
+
).blue_tab
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
__END__
|
@@ -0,0 +1,323 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
=begin
|
3
|
+
|
4
|
+
* Name: SiSU
|
5
|
+
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
7
|
+
*** A conversion script for canned substitutions, a fairly generic
|
8
|
+
simple tool that can be used to store other canned conversions, used here for
|
9
|
+
altering SiSU markup
|
10
|
+
|
11
|
+
** Author: Ralph Amissah
|
12
|
+
<ralph@amissah.com>
|
13
|
+
<ralph.amissah@gmail.com>
|
14
|
+
|
15
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
16
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
17
|
+
All Rights Reserved.
|
18
|
+
|
19
|
+
** License: GPL 3 or later:
|
20
|
+
|
21
|
+
SiSU, a framework for document structuring, publishing and search
|
22
|
+
|
23
|
+
Copyright (C) Ralph Amissah
|
24
|
+
|
25
|
+
This program is free software: you can redistribute it and/or modify it
|
26
|
+
under the terms of the GNU General Public License as published by the Free
|
27
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
28
|
+
any later version.
|
29
|
+
|
30
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
31
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
32
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
33
|
+
more details.
|
34
|
+
|
35
|
+
You should have received a copy of the GNU General Public License along with
|
36
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
37
|
+
|
38
|
+
If you have Internet connection, the latest version of the GPL should be
|
39
|
+
available at these locations:
|
40
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
41
|
+
<http://www.gnu.org/licenses/gpl.html>
|
42
|
+
|
43
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
44
|
+
|
45
|
+
** SiSU uses:
|
46
|
+
* Standard SiSU markup syntax,
|
47
|
+
* Standard SiSU meta-markup syntax, and the
|
48
|
+
* Standard SiSU object citation numbering and system
|
49
|
+
|
50
|
+
** Hompages:
|
51
|
+
<http://www.jus.uio.no/sisu>
|
52
|
+
<http://www.sisudoc.org>
|
53
|
+
|
54
|
+
** Git
|
55
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
|
56
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/sst_convert_markup.rb;hb=HEAD>
|
57
|
+
|
58
|
+
=end
|
59
|
+
module SiSU_Modify
|
60
|
+
require_relative 'sst_identify_markup' # sst_identify_markup.rb
|
61
|
+
require_relative 'sst_from_xml' # sst_from_xml.rb
|
62
|
+
require_relative 'utils_response' # utils_response.rb
|
63
|
+
class ConvertMarkup
|
64
|
+
include SiSU_Response
|
65
|
+
def initialize(opt)
|
66
|
+
@opt=opt
|
67
|
+
@description='This is a script that contains canned text conversions for reuse'
|
68
|
+
@warn='WARNING, PROCEED AT YOUR OWN RISK, will make file changes.'
|
69
|
+
end
|
70
|
+
def current_match_and_replace
|
71
|
+
convert_37_to_38
|
72
|
+
end
|
73
|
+
def message(text)
|
74
|
+
response=''
|
75
|
+
unless @opt.cmd=~/QQ/ \
|
76
|
+
or @opt.act[:quiet][:set]==:on
|
77
|
+
response=response?(%{#{ text}\nProceed? })
|
78
|
+
end
|
79
|
+
end
|
80
|
+
def help
|
81
|
+
print <<WOK
|
82
|
+
|
83
|
+
#{@description}
|
84
|
+
|
85
|
+
sisu --convert --to38 [filename/wildcard]
|
86
|
+
converts pre 0.37 sisu markup to 0.38 experimental
|
87
|
+
[--37to38]
|
88
|
+
|
89
|
+
sisu --convert --to37 [filename/wildcard]
|
90
|
+
converts pre 0.37 sisu markup to 0.38 experimental
|
91
|
+
[--38to37]
|
92
|
+
|
93
|
+
sisu --convert --36to37 [filename/wildcard]
|
94
|
+
converts pre 0.36 file-name, to 0.37 file-name
|
95
|
+
[--36to37]
|
96
|
+
|
97
|
+
sisu --identify [filename]
|
98
|
+
attempts to identify markup version used in file
|
99
|
+
|
100
|
+
sisu --query [version number]
|
101
|
+
gives short summary of distinguishing characteristic
|
102
|
+
of that version of markup
|
103
|
+
|
104
|
+
WOK
|
105
|
+
exit
|
106
|
+
end
|
107
|
+
#%% substitutions to be made
|
108
|
+
def convert_37_to_38
|
109
|
+
message("#{@warn}\nConvert sisu markup from 0.37 to 0.38")
|
110
|
+
[
|
111
|
+
[/^0~(\S+?)([+-])\s+/, '@\1:\2 ', //],
|
112
|
+
[/^0~(\S+)\s+/, '@\1: ', //],
|
113
|
+
[/^@toc:\s+/, '@structure: ', //],
|
114
|
+
[/^1~/, ':A~', //],
|
115
|
+
[/^2~/, ':B~', //],
|
116
|
+
[/^3~/, ':C~', //],
|
117
|
+
[/^4~/, '1~', //],
|
118
|
+
[/^5~/, '2~', //],
|
119
|
+
[/^6~/, '3~', //],
|
120
|
+
[/^7~/, '4~', //],
|
121
|
+
[/^8~/, '5~', //],
|
122
|
+
[/^9~/, '6~', //],
|
123
|
+
[/1/, ':A', /^@(?:level|markup):\s/],
|
124
|
+
[/2/, ':B', /^@(?:level|markup):\s/],
|
125
|
+
[/3/, ':C', /^@(?:level|markup):\s/],
|
126
|
+
[/4/, '1', /^@(?:level|markup):\s/],
|
127
|
+
[/5/, '2', /^@(?:level|markup):\s/],
|
128
|
+
[/6/, '3', /^@(?:level|markup):\s/]
|
129
|
+
]
|
130
|
+
end
|
131
|
+
def convert_38_to_37
|
132
|
+
message("#{@warn}\nConvert sisu markup from 0.38 to 0.37")
|
133
|
+
[
|
134
|
+
[/^@(\S+?):([+-])\s+/, '0~\1\2 ', //],
|
135
|
+
[/^@(\S+?):\s+/, '0~\1 ', //],
|
136
|
+
[/^0~structure\s+/, '0~toc ', //],
|
137
|
+
[/^1~/, '4~', //],
|
138
|
+
[/^2~/, '5~', //],
|
139
|
+
[/^3~/, '6~', //],
|
140
|
+
[/^4~/, '7~', //],
|
141
|
+
[/^5~/, '8~', //],
|
142
|
+
[/^6~/, '9~', //],
|
143
|
+
[/^:?A~/, '1~', //],
|
144
|
+
[/^:?B~/, '2~', //],
|
145
|
+
[/^:?C~/, '3~', //],
|
146
|
+
[/1/, '4', /^0~(?:level|markup)\s/],
|
147
|
+
[/2/, '5', /^0~(?:level|markup)\s/],
|
148
|
+
[/3/, '6', /^0~(?:level|markup)\s/],
|
149
|
+
[/:?A/, '1', /^0~(?:level|markup)\s/],
|
150
|
+
[/:?B/, '2', /^0~(?:level|markup)\s/],
|
151
|
+
[/:?C/, '3', /^0~(?:level|markup)\s/]
|
152
|
+
]
|
153
|
+
end
|
154
|
+
def convert_filename_36_to_37
|
155
|
+
@opt.files.each do |f|
|
156
|
+
s=case f
|
157
|
+
when /(\.s[1-3])$/ then f.sub($1,'.sst')
|
158
|
+
when /(\.r[1-3])$/ then f.sub($1,'.ssm')
|
159
|
+
when /(\.ri)$/ then f.sub($1,'.ssi')
|
160
|
+
else f
|
161
|
+
end
|
162
|
+
pwd=Dir.pwd
|
163
|
+
unless f==s
|
164
|
+
unless File.exist?("#{pwd}/#{s}")
|
165
|
+
puts "./#{f} -> ./#{s}"
|
166
|
+
FileUtils::cp("#{pwd}/#{f}","#{pwd}/#{s}")
|
167
|
+
else "File already exists, < #{s} > will not overwrite"
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
def convert_to_simple_xml_model_sax
|
173
|
+
SiSU_SimpleXML_ModelSax::Convert.new(@opt).read
|
174
|
+
end
|
175
|
+
def convert_to_simple_xml_model_dom
|
176
|
+
SiSU_simple_xml_model_dom::Convert.new(@opt).read
|
177
|
+
end
|
178
|
+
def convert_to_simple_xml_model_node
|
179
|
+
SiSU_simple_xml_model_node::Convert.new(@opt).read
|
180
|
+
end
|
181
|
+
def convert_kdi_to_sst
|
182
|
+
SiSU_Kdissert::Convert.new(@opt).read
|
183
|
+
end
|
184
|
+
def convert_s_xml_to_sst
|
185
|
+
SiSU_sstFromXML::Convert.new(@opt).read
|
186
|
+
end
|
187
|
+
def convert_footnotes
|
188
|
+
require_relative 'sst_do_inline_footnotes'
|
189
|
+
SiSU_ConvertFootnotes::Source.new(@opt).read
|
190
|
+
end
|
191
|
+
def conversion
|
192
|
+
#%% do it -------------------------->
|
193
|
+
if @opt.files \
|
194
|
+
and @opt.files.length > 0
|
195
|
+
mr=nil
|
196
|
+
#%% changes to make m match, r replace -------------------------->
|
197
|
+
if @opt.selections.str =~/--help/ then help
|
198
|
+
elsif @opt.selections.str =~/(?:convert|to)[=-](?:xml |sxs|sax|sxd|dom|sxn|node)/
|
199
|
+
ext=case @opt.selections.str
|
200
|
+
when /(?:convert|to)[=-](?:xml|sxs|sax)/ then '.sxs.xml'
|
201
|
+
when /(?:convert|to)[=-](?:sxd|dom)/ then '.sxd.xml'
|
202
|
+
when /(?:convert|to)[=-](?:sxn|node)/ then '.sxn.xml'
|
203
|
+
end
|
204
|
+
message("#{@opt.files.inspect}\n\nWARNING, PROCEED AT YOUR OWN RISK,\noverwriting any equivalent file with the extension #{ext}")
|
205
|
+
mr=case @opt.selections.str
|
206
|
+
when /(?:convert|to)[=-](?:sxs|sax|xml )/ then convert_to_simple_xml_model_sax
|
207
|
+
when /(?:convert|to)[=-](?:sxd|dom)/ then convert_to_simple_xml_model_dom
|
208
|
+
when /(?:convert|to)[=-](?:sxn|node)/ then convert_to_simple_xml_model_node
|
209
|
+
else help
|
210
|
+
end
|
211
|
+
else
|
212
|
+
mr=case @opt.selections.str
|
213
|
+
when /(?:(?:37)?to-?38|--(?:convert|to)[=-](?:current|0.38))/ then convert_37_to_38
|
214
|
+
when /(?:(?:38)?to-?37|--(?:convert|to)[=-](?:0.37))/ then convert_38_to_37
|
215
|
+
when /(?:36to37)/ then convert_filename_36_to_37
|
216
|
+
when /(?:convert|from)[=-]kdi/ then convert_kdi_to_sst
|
217
|
+
when /(?:(?:convert|from)[=-])?(?:xml_to_sst|xml2sst|sxml|sxs|sxd|sxd)/ then convert_s_xml_to_sst
|
218
|
+
when /(?:convert|to)[=-]footnotes/ then convert_footnotes
|
219
|
+
when /convert|default/ then current_match_and_replace
|
220
|
+
else help
|
221
|
+
end
|
222
|
+
end
|
223
|
+
unless @opt.selections.str =~/kdi/
|
224
|
+
match_and_replace=mr
|
225
|
+
#start_processing =/not used in this example/i
|
226
|
+
end_processing =/END\s+OF\s+FILE/
|
227
|
+
i=@opt.fns
|
228
|
+
if i =~/(?:\.sst|\.ssm|\.ssi)$/
|
229
|
+
@new,@matched,@flag_start,@flag_end,@empty1,@empty2=true,false,false,false,false,false
|
230
|
+
o="#{i}.bk" #o is for old
|
231
|
+
markup_version=SiSU_Markup::MarkupIdentify.new(@opt).markup_version?
|
232
|
+
if (@opt.selections.str=~/37/ and markup_version=~/0.38/) \
|
233
|
+
or (@opt.selections.str=~/current|38/ and markup_version=~/0.37/)
|
234
|
+
puts "#{i} #{markup_version}"
|
235
|
+
file=File.open(i,'r')
|
236
|
+
cont=file.readlines
|
237
|
+
file.close
|
238
|
+
cont.each do |y|
|
239
|
+
match_and_replace.each do |m,r,w|
|
240
|
+
if y =~m \
|
241
|
+
and y =~w
|
242
|
+
if @new
|
243
|
+
@new=false
|
244
|
+
File.unlink(o) if File.exist?(o)
|
245
|
+
File.rename(i,o)
|
246
|
+
File.unlink(i) if File.exist?(i)
|
247
|
+
@file=File.new(i,'w')
|
248
|
+
@matched=true
|
249
|
+
break
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
end
|
254
|
+
if @matched
|
255
|
+
puts "conversion match in #{i}" unless @opt.act[:quiet][:set]==:on
|
256
|
+
@flag_start=true
|
257
|
+
cont.each do |y|
|
258
|
+
if y =~end_processing
|
259
|
+
@flag_end=true
|
260
|
+
end
|
261
|
+
if @flag_start \
|
262
|
+
and not @flag_end
|
263
|
+
match_and_replace.each do |m,r,w|
|
264
|
+
if y =~m \
|
265
|
+
and y =~w
|
266
|
+
puts m.inspect + ' -> ' + r unless @opt.act[:quiet][:set]==:on
|
267
|
+
if (@opt.act[:verbose][:set]==:on \
|
268
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
269
|
+
|| @opt.act[:maintenance][:set]==:on)
|
270
|
+
puts "in: #{y}"
|
271
|
+
end
|
272
|
+
y.gsub!(m,r) if m and r
|
273
|
+
if (@opt.act[:verbose][:set]==:on \
|
274
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
275
|
+
|| @opt.act[:maintenance][:set]==:on)
|
276
|
+
puts "out: #{y}"
|
277
|
+
end
|
278
|
+
end
|
279
|
+
end
|
280
|
+
end
|
281
|
+
@empty1=(y=~/^\s*$/) \
|
282
|
+
? true
|
283
|
+
: false
|
284
|
+
@file.puts y unless (@empty1==true and @empty2==true)
|
285
|
+
@empty2=(y=~/^\s*$/) \
|
286
|
+
? true
|
287
|
+
: false
|
288
|
+
end
|
289
|
+
@file.close
|
290
|
+
else puts "NO conversion match in #{i}" unless @opt.act[:quiet][:set]==:on
|
291
|
+
end
|
292
|
+
else
|
293
|
+
if (@opt.act[:verbose][:set]==:on \
|
294
|
+
|| @opt.act[:verbose_plus][:set]==:on \
|
295
|
+
|| @opt.act[:maintenance][:set]==:on)
|
296
|
+
puts "Requested conversion #{@opt.selections.str} markup #{markup_version} identified in #{i}"
|
297
|
+
end
|
298
|
+
end
|
299
|
+
end
|
300
|
+
end
|
301
|
+
else puts 'this routine makes permanent changes to the contents of the files matched, as instructed within [no matches]'
|
302
|
+
end
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
#%% files to match for this conversion set ------------------------->
|
307
|
+
require_relative 'hub_options' # hub_options.rb
|
308
|
+
argv=$*
|
309
|
+
base_path=Dir.pwd
|
310
|
+
@opt=SiSU_Commandline::Options.new(argv,base_path)
|
311
|
+
case @opt.selections.str
|
312
|
+
when /=kdi/
|
313
|
+
SiSU_Modify::ConvertMarkup.new(@opt).conversion
|
314
|
+
when /(?:36|37|38)?to-?(?:37|38)|--convert|--to|--from|default/
|
315
|
+
@opt.files.each do |fns|
|
316
|
+
@opt.fns=fns
|
317
|
+
SiSU_Modify::ConvertMarkup.new(@opt).conversion
|
318
|
+
end
|
319
|
+
else
|
320
|
+
@opt.selections.str='--help'
|
321
|
+
SiSU_Modify::ConvertMarkup.new(@opt).help
|
322
|
+
end
|
323
|
+
__END__
|