1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
#+OPTIONS: ^:nil _:nil
Developer Notes, Dependencies
* description
** short summary: 80 chars
smart text parser for document structuring, multiple format publishing & search
** longer
SiSU is a lightweight markup based, command line oriented, document
structuring, publishing and search framework for document collections.
.
With minimal preparation of a plain-text (UTF-8) file, using sisu markup
syntax in a text editor of your choice, SiSU can generate various document
formats (most of which share a common object numbering system for locating
content), including plain text, HTML, XHTML, XML, EPUB, OpenDocument text
(ODF:ODT), LaTeX, PDF files, and populate an SQL database with objects
(roughly paragraph-sized chunks) so searches may be performed and matches
returned with that degree of granularity. Think being able to finely match
text in documents, using object numbers, across different output formats (and
across languages if you have translations of the same document). Search results
can be an index of documents and object numbers within them, your criteria is
met by these documents at these locations within each document (equally
relevant across different output formats and languages). To be clear (if
obvious) page numbers provide none of this functionality. Object numbering is
particularly suitable for "published" works (finalized texts as opposed to
works that are frequently changed or updated) for which it provides a fixed
means of reference of content. Document outputs can also share provided
semantic meta-data.
.
SiSU also provides concordance files, document content certificates and
manifests of generated output. SiSU provides the means to make book indexes
that make use of its object numbering.
.
A vim syntax highlighting file and an ftplugin with folds for sisu markup is
provided. Vim 7 includes syntax highlighting for SiSU. Some syntax hilighting
is also available for Emacs and a few other editors.
.
Dependencies for various features are taken care of in sisu related packages.
The package sisu-complete installs the whole of SiSU.
.
Additional document markup samples are provided in the package
sisu-markup-samples which is found in the non-free archive. The licenses for
the substantive content of the marked up documents provided is that provided
by the author or original publisher.
.
SiSU uses utf-8 & parses left to right. Currently supported languages:
am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it
ja ko la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta
te th tk tr uk ur us vi zh (see XeTeX polyglossia & cjk)
.
SiSU works well under po4a translation management, for which an administrative
sample Rakefile is provided with sisu_manual under markup-samples.
* Generic Dependencies
** source
git clone --depth 1 git://git.sisudoc.org/git/code/sisu.git --branch upstream
*** full source
git clone git://git.sisudoc.org/git/code/sisu.git --branch upstream
** an install method
$ qi setup --bin --lib --share --dryrun
$ sudo ./qi setup --bin --lib --share
$ qi setup --bin --lib --share --conf --data --dryrun
$ sudo ./qi setup --bin --lib --share --conf --data
$ qi setup --all --dryrun
$ sudo ./qi setup --all dryrun
** minimal
needed for
----------------------
ruby all, provides outputs text, html
xz sisupod
zip unzip epub & odt
*** images
imagemagick | graphicsmagick
ruby-rmagick ?
** special requirements
*** pdf
texlive
texlive-cjk
texlive-fonts ?
texlive-latex ?
.sty (texpdf_format.rb)
alltt.sty
amssymb.sty
babel.sty
boites.sty
color.sty
endnotes.sty
fancyhdr.sty
fontspec.sty
footmisc.sty
graphicx.sty
inputenc.sty
listings.sty
longtable.sty
manyfoot.sty
multicol.sty
parskip.sty
polyglossia.sty
soul.sty
textcomp.sty
thumbpdf.sty
titlepic.sty
ucs.sty
ulem.sty
url.sty
xetex.sty
xltxtra.sty
xunicode.sty
*** sql db
**** sqlite3
sqlite3
ruby-sqlite3
ruby-fcgi (fast-cgi)
httpd
**** postgresql
postgresql
ruby-pg
ruby-fcgi (fast-cgi)
httpd
*** qr codes
qrencode
*** maintenance/installation
ruby-thor | rake
ruby-thor
rake
* Debian Dependencies
** source
git clone --depth 1 git://git.sisudoc.org/git/code/sisu.git --branch debian/sid
** debian/control (extract)
Package: sisu
Depends: ${misc:Depends}, ruby | ruby-interpreter, rsync, unzip, zip, xz-utils
Recommends:
sisu-pdf, sisu-sqlite, sisu-postgresql, imagemagick | graphicsmagick, keychain,
openssh-client | lsh-client, openssl, po4a, qrencode, rake, ruby-rmagick,
ruby-thor, tidy, tree, vim-addon-manager
Suggests: sisu-markup-samples, lv, calibre, pinfo, poedit, texinfo, trang
Package: sisu-complete
Depends:
${misc:Depends}, sisu (= ${source:Version}), sisu-pdf (= ${source:Version}),
sisu-postgresql (= ${source:Version}), sisu-sqlite (= ${source:Version}),
imagemagick | graphicsmagick, openssl, qrencode, ruby-thor, tree
Suggests: sisu-markup-samples
Package: sisu-pdf
Depends:
${misc:Depends}, sisu (= ${source:Version}),
texlive-latex-base, texlive-fonts-recommended, texlive-generic-recommended,
texlive-latex-recommended, texlive-latex-extra, texlive-math-extra,
texlive-xetex, fonts-liberation, lmodern, latex-cjk-all, texlive-lang-cjk
Suggests: evince | pdf-viewer
Package: sisu-postgresql
Depends:
${misc:Depends}, sisu (= ${source:Version}),
postgresql, ruby-pg, ruby-fcgi | libfcgi-ruby
Suggests: fcgiwrap, httpd, postgresql-contrib
Package: sisu-sqlite
Depends:
${misc:Depends}, sisu (= ${source:Version}),
sqlite3, ruby-sqlite3, ruby-fcgi | libfcgi-ruby
Suggests: fcgiwrap, httpd
* Arch Linux Dependencies
** source
sisu-git
full clone is more than is needed, so is limiting the branch
git clone --branch upstream git://git.sisudoc.org/git/code/sisu.git
try get a shallow clone that contains the last tag for git describe source version info
git clone --depth 1 --branch upstream git://git.sisudoc.org/git/code/sisu.git
git clone --depth 1 --branch archlinux git://git.sisudoc.org/git/code/sisu.git
git clone --depth 1 --no-single-branch --branch upstream \
git://git.sisudoc.org/git/code/sisu.git
*** git describe, source version
git describe --long --tags | sed 's/^sisu_//;s/\([^-]*-g\)/r\1/;s/-/./g'
git describe --long --tags | sed 's/^[a-z_-]\+//;s/\([^-]*-g\)/r\1/;s/-/./g'
git describe --long --tags | \
sed 's/^[a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g'
needs more than a shallow clone of depth 1
** pacman install
sudo pacman -S ruby \
zip unzip xy
sudo pacman -S ruby \
texlive-core texlive-latexextra texlive-fontsextra texlive-langcjk
sudo pacman -S ruby \
sqlite postgresql
# issue with ruby-pg ruby-sqlite ruby-fcgi
** interpreter
ruby
** compression tools (epub, odf:odt, sisupod)
zip unzip
xy
** texlive (pdf)
sudo pacman -S texlive-core texlive-latexextra
sudo pacman -S texlive-core texlive-latexextra texlive-fontsextra texlive-langcjk
texlive-core extra/texlive-core
texlive-fontsextra extra/texlive-fontsextra
texlive-langcjk extra/texlive-langcjk
*** .sty (called from texpdf_format.rb)
alltt.sty extra/texlive-core
amssymb.sty extra/texlive-core
babel.sty extra/texlive-core
boites.sty extra/texlive-latexextra
color.sty extra/texlive-core
endnotes.sty extra/texlive-latexextra
fancyhdr.sty extra/texlive-core
fontspec.sty extra/texlive-core
footmisc.sty extra/texlive-latexextra
graphicx.sty extra/texlive-core
inputenc.sty extra/texlive-core
listings.sty extra/texlive-core
longtable.sty extra/texlive-core
manyfoot.sty extra/texlive-latexextra
multicol.sty extra/texlive-core
parskip.sty extra/texlive-core
polyglossia.sty extra/texlive-core
soul.sty extra/texlive-latexextra
textcomp.sty extra/texlive-core
thumbpdf.sty extra/texlive-core
titlepic.sty extra/texlive-latexextra
ucs.sty extra/texlive-latexextra
ulem.sty extra/texlive-core
url.sty extra/texlive-core
xetex.sty ??
xltxtra.sty extra/texlive-core
xunicode.sty extra/texlive-core
|