#+OPTIONS: ^:nil _:nil Developer Notes, Dependencies * description ** short summary: 80 chars documents - structuring, publishing in multiple formats and search ** longer SiSU is a lightweight markup based, command line oriented, document structuring, publishing and search, static content tool for document collections. . With minimal preparation of a plain-text (UTF-8) file, using sisu markup syntax in your text editor of 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 of being able to finely match text in documents, using common object numbers, across different output formats and across languages if you have translations of the same document. For search, 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 and the means to make book indexes that make use of its object numbering. . Syntax highlighting and folding (outlining) files are provided for the Vim and Emacs 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 *** interpreter ruby all, provides outputs text, html *** compression tools xz sisupod (sisu source) zip unzip epub & odt *** images imagemagick | graphicsmagick ruby-rmagick ? ** special requirements *** ruby requires (checked for sisu 6.5.0 & 7.0.0) require 'RMagick' ao_images.rb require 'base64' xml_fictionbook2.rb require 'cgi' cgi_pgsql.rb cgi_sqlite.rb webrick.rb require 'date' se_date.rb require 'dbi' se_load.rb require 'digest/md5' shared_markup_alt.rb require 'digest/sha2' shared_markup_alt.rb shared_markup_alt.rb require 'fcgi' cgi_pgsql.rb cgi_sqlite.rb webrick.rb require 'fileutils' dbi_discrete.rb hub.rb se.rb se_cleanoutput.rb se_createsite.rb se_file_op.rb se_file_op.rb se_info_env.rb se_info_env.rb se_remotes.rb src_kdissert_share.rb require 'find' xml_odf_odt.rb require 'net/http' remote.rb require 'open-uri' ao_composite.rb remote.rb require 'pathname' hub_options.rb se_info_env.rb require 'pg' cgi_pgsql.rb dbi.rb se_db.rb require 'pp' ao_composite.rb remote.rb require 'profile' hub.rb require 'pstore' dp.rb html.rb texpdf.rb texpdf.rb xhtml_epub2.rb require 'rbconfig' se_info_system.rb se_version.rb require 'rexml/document' sst_from_xml.rb rexml.rb rexml.rb require 'singleton' se.rb se_clear.rb se_envcall.rb se_hub_particulars.rb se_info_env.rb se_programs.rb se_version.rb se_version.rb require 'socket' se_remotes.rb require 'sqlite3' cgi_sqlite.rb dbi.rb dbi_discrete.rb se_db.rb require 'time' webrick.rb webrick.rb require 'timeout' src_po4a_shelf.rb src_po4a_sst_ao_sst.rb require 'uri' ao_composite.rb dp.rb hub.rb hub_loop_markup_files.rb require 'webrick' webrick.rb require 'yaml' se_get_init.rb se_get_init.rb se_get_init.rb se_get_init.rb se_version.rb require 'zlib' xml_odf_odt.rb require @prog se_load.rb require termsheet termsheet.rb ao_hash_digest.rb sha_ ? (require 'digest/sha2') : (require 'digest/md5') *** 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 sql db, search ruby-sqlite3 ruby driver **** postgresql postgresql sql db, search ruby-pg ruby driver *** web serve & search ruby-fcgi (fast-cgi) search form httpd web server (along with sql db) *** qr codes qrencode qr codes based on document metadata *** misc tree information on document structure *** 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 tree sudo pacman -S ruby \ texlive-core texlive-latexextra texlive-fontsextra texlive-langcjk sudo pacman -S ruby \ sqlite postgresql \ fastcgi ruby-sqlite ruby-postgrsql # issue with ruby-pg ruby-sqlite ruby-fcgi ** sort *** 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