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.
- 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,224 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** sitemap created from document parameters
|
|
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/sitemaps.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_Sitemaps
|
|
58
|
+
require_relative 'dp' # dp.rb
|
|
59
|
+
include SiSU_Param
|
|
60
|
+
require_relative 'se' # se.rb
|
|
61
|
+
include SiSU_Env
|
|
62
|
+
require_relative 'xml_shared' # xml_shared.rb
|
|
63
|
+
include SiSU_XML_Munge
|
|
64
|
+
class Source
|
|
65
|
+
def initialize(opt)
|
|
66
|
+
@opt=opt
|
|
67
|
+
end
|
|
68
|
+
def read
|
|
69
|
+
songsheet
|
|
70
|
+
end
|
|
71
|
+
def songsheet
|
|
72
|
+
begin
|
|
73
|
+
@sys=SiSU_Env::SystemCall.new
|
|
74
|
+
fn_set_lang=SiSU_Env::StandardiseLanguage.new(@opt.lng).language
|
|
75
|
+
@fn=SiSU_Env::EnvCall.new(@opt.fns).lang(fn_set_lang[:c])
|
|
76
|
+
if @opt.act[:sitemap][:set]==:on
|
|
77
|
+
@md=SiSU_Param::Parameters.new(@opt).get
|
|
78
|
+
@trans=SiSU_XML_Munge::Trans.new(@md) #check @md is required
|
|
79
|
+
@env=SiSU_Env::InfoEnv.new(@md.fns)
|
|
80
|
+
# @file=SiSU_Env::FileOp.new(@md)
|
|
81
|
+
@rdf=SiSU_XML_Tags::RDF.new(@md)
|
|
82
|
+
@fnb_utf8_xml=@md.fnb.dup
|
|
83
|
+
@trans.char_enc.utf8(@fnb_utf8_xml) \
|
|
84
|
+
if @sys.locale =~/utf-?8/i
|
|
85
|
+
output_map(sitemap)
|
|
86
|
+
elsif @opt.selections.str =~/--sitemaps/
|
|
87
|
+
@sitemap_idx_fn='sitemapindex.xml'
|
|
88
|
+
@env=SiSU_Env::InfoEnv.new
|
|
89
|
+
output_idx(sitemap_index)
|
|
90
|
+
SiSU_Screen::Ansi.new(
|
|
91
|
+
@opt.act[:color_state][:set],
|
|
92
|
+
'sitemap index:',
|
|
93
|
+
"#{@env.path.output}/#{@sitemap_idx_fn}"
|
|
94
|
+
).result unless @opt.act[:quiet][:set]==:on
|
|
95
|
+
end
|
|
96
|
+
rescue
|
|
97
|
+
SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do
|
|
98
|
+
__LINE__.to_s + ':' + __FILE__
|
|
99
|
+
end
|
|
100
|
+
ensure
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
def make_file(path,filename)
|
|
104
|
+
(File.writable?("#{path}/.")) \
|
|
105
|
+
? (File.new("#{path}/#{filename}",'w+'))
|
|
106
|
+
: (SiSU_Screen::Ansi.new(
|
|
107
|
+
'',
|
|
108
|
+
"is the file or directory writable?, could not create #{filename}"
|
|
109
|
+
).warn)
|
|
110
|
+
end
|
|
111
|
+
def output_map(sitemap)
|
|
112
|
+
path=@md.file.output_path.sitemaps.dir
|
|
113
|
+
filename=@fn[:sitemap]
|
|
114
|
+
touch_path=@md.file.output_path.sitemaps.dir
|
|
115
|
+
touch_filename=@fn[:sitemap_touch]
|
|
116
|
+
SiSU_Env::FileOp.new(@md).make_path(path)
|
|
117
|
+
file=SiSU_Env::FileOp.new(@md).make_file(path,filename)
|
|
118
|
+
file << sitemap
|
|
119
|
+
if FileTest.file?("#{touch_path}/#{touch_filename}")
|
|
120
|
+
FileUtils::rm("#{touch_path}/#{touch_filename}")
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
def output_idx(sitemap)
|
|
124
|
+
path=@env.path.output
|
|
125
|
+
filename=@sitemap_idx_fn
|
|
126
|
+
make_path(path)
|
|
127
|
+
file=make_file(path,filename)
|
|
128
|
+
file << sitemap
|
|
129
|
+
end
|
|
130
|
+
def sitemap_index
|
|
131
|
+
sitemap_files=Dir.glob("#{@env.path.sitemaps}/sitemap_*.xml")
|
|
132
|
+
sitemap_idx=[]
|
|
133
|
+
sitemap_idx << <<WOK
|
|
134
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
135
|
+
<sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
136
|
+
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemaps/0.9
|
|
137
|
+
http://www.sitemaps.org/schemas/sitemaps/sitemap.xsd"
|
|
138
|
+
xmlns="http://www.sitemaps.org/schemas/sitemapindex/0.9">
|
|
139
|
+
WOK
|
|
140
|
+
sitemap_files.each do |s|
|
|
141
|
+
f=s.gsub(/.+?\/sitemap_([^\/]+?)\.xml$/,'\1')
|
|
142
|
+
@trans.char_enc.utf8(f) \
|
|
143
|
+
if @sys.locale =~/utf-?8/i
|
|
144
|
+
sitemap_idx << <<WOK
|
|
145
|
+
<sitemap>
|
|
146
|
+
<loc>#{@env.path.url.remote}/#{f}/sitemap.xml</loc>
|
|
147
|
+
</sitemap>
|
|
148
|
+
WOK
|
|
149
|
+
end
|
|
150
|
+
sitemap_idx << <<WOK
|
|
151
|
+
</sitemapindex>
|
|
152
|
+
WOK
|
|
153
|
+
sitemap_idx.join
|
|
154
|
+
end
|
|
155
|
+
def sitemap
|
|
156
|
+
if defined? @md.date.modified \
|
|
157
|
+
and @md.date.modified=~/\d{4}-\d{2}-\d{2}/
|
|
158
|
+
sitemap_date_modified
|
|
159
|
+
else sitemap_no_date
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
def sitemap_date_modified
|
|
163
|
+
<<WOK
|
|
164
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
|
165
|
+
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
166
|
+
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemaps/0.9
|
|
167
|
+
http://www.sitemaps.org/schemas/sitemaps/sitemap.xsd"
|
|
168
|
+
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
169
|
+
#{@rdf.comment_xml}
|
|
170
|
+
<url>
|
|
171
|
+
<loc>#{@env.path.url.remote}/#{@fnb_utf8_xml}/#{@fn[:toc]}</loc>
|
|
172
|
+
<lastmod>#{@md.date.modified}</lastmod>
|
|
173
|
+
<changefreq>monthly</changefreq>
|
|
174
|
+
<priority>0.7</priority>
|
|
175
|
+
</url>
|
|
176
|
+
<url>
|
|
177
|
+
<loc>#{@env.path.url.remote}/#{@fnb_utf8_xml}/#{@fn[:doc]}</loc>
|
|
178
|
+
<lastmod>#{@md.date.modified}</lastmod>
|
|
179
|
+
<priority>0.5</priority>
|
|
180
|
+
</url>
|
|
181
|
+
<url>
|
|
182
|
+
<loc>#{@env.path.url.remote}/#{@fnb_utf8_xml}/#{@fn[:manifest]}</loc>
|
|
183
|
+
<lastmod>#{@md.date.modified}</lastmod>
|
|
184
|
+
<priority>0.5</priority>
|
|
185
|
+
</url>
|
|
186
|
+
</urlset>
|
|
187
|
+
WOK
|
|
188
|
+
end
|
|
189
|
+
def sitemap_no_date
|
|
190
|
+
<<WOK
|
|
191
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
192
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
193
|
+
#{@rdf.comment_xml}
|
|
194
|
+
<url>
|
|
195
|
+
<loc>#{@env.path.url.remote}/#{@fnb_utf8_xml}/#{@fn[:toc]}</loc>
|
|
196
|
+
<changefreq>monthly</changefreq>
|
|
197
|
+
<priority>0.7</priority>
|
|
198
|
+
</url>
|
|
199
|
+
<url>
|
|
200
|
+
<loc>#{@env.path.url.remote}/#{@fnb_utf8_xml}/#{@fn[:doc]}</loc>
|
|
201
|
+
<priority>0.5</priority>
|
|
202
|
+
</url>
|
|
203
|
+
<url>
|
|
204
|
+
<loc>#{@env.path.url.remote}/#{@fnb_utf8_xml}/#{@fn[:manifest]}</loc>
|
|
205
|
+
<priority>0.5</priority>
|
|
206
|
+
</url>
|
|
207
|
+
</urlset>
|
|
208
|
+
WOK
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
__END__
|
|
213
|
+
* sanitize xml, pass through filter to ensure is valid - done but needs testing
|
|
214
|
+
* remote placement of sitemaps --sitemaps -R (probably makes more sense than doing against -Y [filename/wildcard]) - done but needs testing
|
|
215
|
+
* gzip sitemaps - not before testing / after testing
|
|
216
|
+
* issue with master documnts, naming and mapping, check multilingual
|
|
217
|
+
|
|
218
|
+
<!-- Document processing information:
|
|
219
|
+
* Generated by: SiSU 0.48.6 of 2006w45/6 (20061111)
|
|
220
|
+
* Ruby version: ruby 1.8.5 (2006-08-25) [i486-linux]
|
|
221
|
+
*
|
|
222
|
+
* Last Generated on: Sat Nov 18 15:28:08 +0000 2006
|
|
223
|
+
* SiSU http://www.jus.uio.no/sisu
|
|
224
|
+
-->
|
|
@@ -0,0 +1,102 @@
|
|
|
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_share_kdissert.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_KdiSource
|
|
58
|
+
require_relative 'se' # se.rb
|
|
59
|
+
include SiSU_Env
|
|
60
|
+
class Source
|
|
61
|
+
begin
|
|
62
|
+
require 'fileutils'
|
|
63
|
+
include FileUtils
|
|
64
|
+
rescue LoadError
|
|
65
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
|
|
66
|
+
error('fileutils NOT FOUND (LoadError)')
|
|
67
|
+
end
|
|
68
|
+
def initialize(opt)
|
|
69
|
+
@opt=opt
|
|
70
|
+
@env=SiSU_Env::InfoEnv.new(@opt.fns)
|
|
71
|
+
@output_path="#{@env.path.output}/#{@opt.fnb}"
|
|
72
|
+
end
|
|
73
|
+
def read
|
|
74
|
+
SiSU_Screen::Ansi.new(
|
|
75
|
+
@opt.act[:color_state][:set],
|
|
76
|
+
'Share Kdissert Source Document!',
|
|
77
|
+
@opt.fnb
|
|
78
|
+
).green_hi_blue unless @opt.act[:quiet][:set]==:on
|
|
79
|
+
SiSU_Screen::Ansi.new(
|
|
80
|
+
@opt.act[:color_state][:set],
|
|
81
|
+
"Copy kdissert file to output directory",
|
|
82
|
+
"#{@opt.fnb} -> #{@output_path}"
|
|
83
|
+
).warn unless @opt.act[:quiet][:set]==:on
|
|
84
|
+
FileUtils::mkdir_p(@env.path.output) unless FileTest.directory?(@env.path.output)
|
|
85
|
+
FileUtils::mkdir_p(@output_path) unless FileTest.directory?(@output_path)
|
|
86
|
+
if FileTest.directory?(@output_path)
|
|
87
|
+
if @opt.fns =~/\.kdi\._sst$/ \
|
|
88
|
+
and FileTest.file?(@opt.fnb)
|
|
89
|
+
FileUtils::cp(@opt.fnb,@output_path)
|
|
90
|
+
end
|
|
91
|
+
else
|
|
92
|
+
SiSU_Screen::Ansi.new(
|
|
93
|
+
@opt.act[:color_state][:set],
|
|
94
|
+
"Output directory does not exist",
|
|
95
|
+
"#{@opt.fnb} -> #{@output_path}"
|
|
96
|
+
).warn unless @opt.act[:quiet][:set]==:on
|
|
97
|
+
exit
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
__END__
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** pot file generation
|
|
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_po4a_share.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
#module SiSU_SStm_AO_SStm
|
|
58
|
+
module SiSU_Languages_Selected
|
|
59
|
+
require_relative 'utils_response' # utils_response.rb
|
|
60
|
+
def language
|
|
61
|
+
def sisu_languages_available
|
|
62
|
+
Px[:lng_lst]
|
|
63
|
+
end
|
|
64
|
+
def source_language_selected_str
|
|
65
|
+
@opt.act[:po4a_lang][:src] \
|
|
66
|
+
? @opt.act[:po4a_lang][:src]
|
|
67
|
+
: 'en'
|
|
68
|
+
end
|
|
69
|
+
def translation_languages_selected
|
|
70
|
+
@opt.act[:po4a_lang][:trn] \
|
|
71
|
+
? @opt.act[:po4a_lang][:trn]
|
|
72
|
+
: []
|
|
73
|
+
end
|
|
74
|
+
def translation_languages_available
|
|
75
|
+
sisu_languages_available - [source_language_selected_str]
|
|
76
|
+
end
|
|
77
|
+
def translation_languages_selected_that_are_available
|
|
78
|
+
translation_languages_selected & sisu_languages_available
|
|
79
|
+
end
|
|
80
|
+
def translation_languages_selected_that_are_available_str
|
|
81
|
+
translation_languages_selected_that_are_available.join(' ')
|
|
82
|
+
end
|
|
83
|
+
def translation_languages_selected_str
|
|
84
|
+
@opt.act[:po4a_lang][:trn].join(' ')
|
|
85
|
+
end
|
|
86
|
+
self
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
module SiSU_Po4a_Project
|
|
90
|
+
class Po4aCfg
|
|
91
|
+
include SiSU_Composite_Doc_Utils # composite doc, .ssm, extract all related insert files, array of filenames test
|
|
92
|
+
include SiSU_Response
|
|
93
|
+
include SiSU_Languages_Selected
|
|
94
|
+
def initialize(opt,file)
|
|
95
|
+
@opt,@file=opt,file
|
|
96
|
+
end
|
|
97
|
+
def song
|
|
98
|
+
if @opt.lng==language.source_language_selected_str
|
|
99
|
+
ans=response?('po4a config file')
|
|
100
|
+
if ans
|
|
101
|
+
po4a_cfg
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
def po4a_cfg_filename
|
|
106
|
+
'po4a.cfg'
|
|
107
|
+
end
|
|
108
|
+
def dir
|
|
109
|
+
def pwd
|
|
110
|
+
Dir.pwd
|
|
111
|
+
end
|
|
112
|
+
def po4a_
|
|
113
|
+
'po4a/' # ''
|
|
114
|
+
end
|
|
115
|
+
def pot
|
|
116
|
+
#po4a_ + 'pot'
|
|
117
|
+
'pot'
|
|
118
|
+
end
|
|
119
|
+
def po
|
|
120
|
+
#po4a_ + 'po'
|
|
121
|
+
'po'
|
|
122
|
+
end
|
|
123
|
+
self
|
|
124
|
+
end
|
|
125
|
+
def po4a_cfg_file
|
|
126
|
+
File.open("#{Dir.pwd}/#{po4a_cfg_filename}",'w')
|
|
127
|
+
end
|
|
128
|
+
def po4a_cfg
|
|
129
|
+
lng=language.source_language_selected_str
|
|
130
|
+
doc_import_list=composite_and_imported_filenames_array(@opt.fno)
|
|
131
|
+
po4a_cfg_arr=[]
|
|
132
|
+
po4a_cfg_arr \
|
|
133
|
+
<< "[po4a_langs] #{language.translation_languages_selected_that_are_available_str}"
|
|
134
|
+
po4a_cfg_arr \
|
|
135
|
+
<< "[po4a_paths] #{dir.pot}/$master.pot $lang:#{dir.po}/$lang/$master.po"
|
|
136
|
+
doc_import_list.each do |file_src|
|
|
137
|
+
file_src_fn=
|
|
138
|
+
file_src.gsub(/#{language.source_language_selected_str}\//,'')
|
|
139
|
+
po4a_cfg_arr \
|
|
140
|
+
<< "[type: text] #{lng}/#{file_src} $lang:$lang/#{file_src_fn}"
|
|
141
|
+
end
|
|
142
|
+
file=@file.write_file.po4a_cfg
|
|
143
|
+
po4a_cfg_arr.each do |txt|
|
|
144
|
+
puts txt
|
|
145
|
+
file << txt << "\n"
|
|
146
|
+
end
|
|
147
|
+
file.close
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
class Po4aProject
|
|
151
|
+
include SiSU_Languages_Selected
|
|
152
|
+
include SiSU_Response
|
|
153
|
+
def initialize(opt,file)
|
|
154
|
+
@opt,@file=opt,file
|
|
155
|
+
end
|
|
156
|
+
def song
|
|
157
|
+
make_paths
|
|
158
|
+
if FileTest.directory?(@file.output_path.po4a.dir)
|
|
159
|
+
Dir.chdir(@file.output_path.po4a.dir)
|
|
160
|
+
dirs=Dir['*/']
|
|
161
|
+
dirs_language=[]
|
|
162
|
+
dirs.each do |x|
|
|
163
|
+
dirs_language << x.gsub(/\/$/,'')
|
|
164
|
+
end
|
|
165
|
+
dirs_translation = \
|
|
166
|
+
(language.translation_languages_available & dirs_language)
|
|
167
|
+
end
|
|
168
|
+
if (language.translation_languages_available & [@opt.lng]).length == 1
|
|
169
|
+
puts %{gettext for: #{dirs_translation}
|
|
170
|
+
in #{Dir.pwd}}
|
|
171
|
+
ans=response?('gettext?')
|
|
172
|
+
if ans
|
|
173
|
+
gettext_if_any_build_src_trans_po
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
ans=response?('build project?')
|
|
177
|
+
if ans
|
|
178
|
+
build_src_master_to_pot_and_po_and_srcs
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
def flags
|
|
182
|
+
def debug
|
|
183
|
+
'-d -v'
|
|
184
|
+
end
|
|
185
|
+
def normal
|
|
186
|
+
''
|
|
187
|
+
end
|
|
188
|
+
def quiet
|
|
189
|
+
'-q'
|
|
190
|
+
end
|
|
191
|
+
self
|
|
192
|
+
end
|
|
193
|
+
def build_src_master_to_pot_and_po_and_srcs
|
|
194
|
+
if SiSU_Sys_Call::SystemCall.new.po4a
|
|
195
|
+
pwd=Dir.pwd
|
|
196
|
+
#cmd='po4a --keep 0 -M UTF-8 --no-backups ' \
|
|
197
|
+
#+ '--package-name ' \
|
|
198
|
+
#+ 'sisu-manual' + ' ' \
|
|
199
|
+
#+ flags.normal + ' ' \
|
|
200
|
+
#+ filename.po4a_cfg
|
|
201
|
+
cmd='po4a --keep 0 -M UTF-8' \
|
|
202
|
+
+ flags.normal + ' ' \
|
|
203
|
+
+ @file.base_filename.po4a_cfg
|
|
204
|
+
Dir.chdir(@file.output_path.po4a.dir)
|
|
205
|
+
system("
|
|
206
|
+
cd #{@file.output_path.po4a.dir}
|
|
207
|
+
#{cmd}
|
|
208
|
+
cd -
|
|
209
|
+
"); puts cmd
|
|
210
|
+
Dir.chdir(pwd)
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
def gettext_if_any_build_src_trans_po
|
|
214
|
+
Dir.chdir(@file.output_path.po4a.dir)
|
|
215
|
+
dirs=Dir['*/']
|
|
216
|
+
dirs_language=[]
|
|
217
|
+
dirs.each do |x|
|
|
218
|
+
dirs_language << x.gsub(/\/$/,'')
|
|
219
|
+
end
|
|
220
|
+
dirs_translation = \
|
|
221
|
+
(language.translation_languages_available & dirs_language)
|
|
222
|
+
files_src=Dir.glob("./#{source_language_selected_str}/*.ss[tmi]")
|
|
223
|
+
dirs_translation.each do |lng|
|
|
224
|
+
files_src.each do |file|
|
|
225
|
+
fn=file.gsub(/\.\/#{source_language_selected_str}\//,'')
|
|
226
|
+
system("
|
|
227
|
+
po4a-gettextize -f text -M utf-8 \
|
|
228
|
+
-m ./#{source_language_selected_str}/#{fn} \
|
|
229
|
+
-l ./#{lng}/#{fn} \
|
|
230
|
+
-p ./po/#{lng}/#{fn}.po
|
|
231
|
+
")
|
|
232
|
+
puts fn
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
def dir_mk(dir)
|
|
237
|
+
unless FileTest.directory?(dir)
|
|
238
|
+
FileUtils::mkdir_p(dir)
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
def make_paths
|
|
242
|
+
dir_mk(@file.output_path.pot.dir)
|
|
243
|
+
dir_mk(@file.output_path.po.dir)
|
|
244
|
+
end
|
|
245
|
+
def clean
|
|
246
|
+
#rm -f po/*/*.po~
|
|
247
|
+
#rm -rf ../build
|
|
248
|
+
FileUtils.rm_f Dir.glob("./#{dir.po}/*/*.po~")
|
|
249
|
+
end
|
|
250
|
+
def distclean
|
|
251
|
+
#rm -f po4a.cfg
|
|
252
|
+
#rm -rf $(LANGUAGES)
|
|
253
|
+
FileUtils::rm_f(filename.po4a_cfg)
|
|
254
|
+
FileUtils::rm_r(language.possible_translations,:force => true)
|
|
255
|
+
#FileUtils::rm_r(language.translation_languages_selected_that_are_available,:force => true)
|
|
256
|
+
end
|
|
257
|
+
end
|
|
258
|
+
class Po4aDistClean
|
|
259
|
+
include SiSU_Languages_Selected
|
|
260
|
+
include SiSU_Response
|
|
261
|
+
def initialize(opt,file)
|
|
262
|
+
@opt,@file=opt,file
|
|
263
|
+
end
|
|
264
|
+
def song
|
|
265
|
+
pwd=Dir.pwd
|
|
266
|
+
if FileTest.directory?(@file.output_path.po4a.dir)
|
|
267
|
+
Dir.chdir(@file.output_path.po4a.dir)
|
|
268
|
+
dirs=Dir['*/']
|
|
269
|
+
dirs_language=[]
|
|
270
|
+
dirs.each do |x|
|
|
271
|
+
dirs_language << x.gsub(/\/$/,'')
|
|
272
|
+
end
|
|
273
|
+
dirs_translation = \
|
|
274
|
+
(language.translation_languages_available & dirs_language)
|
|
275
|
+
if dirs_translation.length > 0
|
|
276
|
+
puts %{remove language translation directorie(s): #{dirs_translation}
|
|
277
|
+
in #{Dir .pwd}}
|
|
278
|
+
ans=response?('disclean?')
|
|
279
|
+
if ans
|
|
280
|
+
FileUtils::rm_f(@file.base_filename.po4a_cfg)
|
|
281
|
+
FileUtils::rm_r(dirs_translation,:force => true)
|
|
282
|
+
#FileUtils::rm_r(language.translation_languages_available,:force => true)
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
Dir.chdir(pwd)
|
|
286
|
+
end
|
|
287
|
+
end
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
#end
|
|
291
|
+
__END__
|
|
292
|
+
REMOVE
|
|
293
|
+
!\|#\|&*\|-\|/\|_\|{\|}\|~\|&#
|
|
294
|
+
|
|
295
|
+
tables are problematic, difficult to reconstitute instruction, check
|
|
296
|
+
|
|
297
|
+
metadata, move to top? and work on
|
|
298
|
+
|
|
299
|
+
footnotes, different types, asterisk, also do you want to have separate
|
|
300
|
+
paragraphs, or breaks within one block?
|
|
301
|
+
|
|
302
|
+
where no ocn appropriately use ~# or -# or indeed 1~name-
|
|
303
|
+
|
|
304
|
+
comments in document, what to do about them, not sure they are currently
|
|
305
|
+
retained in dal, could be quite valuable to keep
|
|
306
|
+
|
|
307
|
+
Translate Shell
|
|
308
|
+
http://www.soimort.org/translate-shell/
|
|
309
|
+
translate.google.com
|