SiSU -->
[ document manifest ]
<< previous TOC next >>
< ^ >

SiSU - Manual,
Ralph Amissah

What is SiSU?

1. Introduction - What is SiSU?

2. How does sisu work?

3. Summary of features

4. Help

4.1 SiSU Manual
4.2 SiSU man pages
4.3 SiSU built-in interactive help

5. Commands Summary

5.1 Description
5.2 Document Processing Command Flags

6. command line modifiers

7. database commands

8. Shortcuts, Shorthand for multiple flags

8.1 Command Line with Flags - Batch Processing

9. Introduction to SiSU Markup  10 

9.1 Summary
9.2 Markup Examples
9.2.1 Online
9.2.2 Installed

10. Markup of Headers

10.1 Sample Header
10.2 Available Headers

11. Markup of Substantive Text

11.1 Heading Levels
11.2 Font Attributes
11.3 Indentation and bullets
11.4 Footnotes / Endnotes
11.5 Links
11.5.1 Naked URLs within text, dealing with urls
11.5.2 Linking Text
11.5.3 Linking Images
11.6 Grouped Text
11.6.1 Tables
11.6.2 Poem
11.6.3 Group
11.6.4 Code
11.7 Book index

12. Composite documents markup

Markup Syntax History

13. Notes related to Files-types and Markup Syntax

14. SiSU filetypes

14.1 .sst .ssm .ssi marked up plain text
14.1.1 sisu text - regular files (.sst)
14.1.2 sisu master files (.ssm)
14.1.3 sisu insert files (.ssi)
14.2 sisupod, zipped binary container (sisupod.zip, .ssp)

15. Experimental Alternative Input Representations

15.1 Alternative XML
15.1.1 XML SAX representation
15.1.2 XML DOM representation
15.1.3 XML Node representation

16. Configuration

16.1 Determining the Current Configuration
16.2 Configuration files (config.yml)

17. Skins

17.1 Document Skin
17.2 Directory Skin
17.3 Site Skin
17.4 Sample Skins

18. CSS - Cascading Style Sheets (for html, XHTML and XML)

19. Organising Content

19.1 Directory Structure and Mapping
19.1.1 General Directories
19.1.2 Remote Directories
19.1.3 Sisupod
19.2 Organising Content

20. Homepages

20.1 Home page and other custom built pages in a sub-directory
20.2 Home page within a skin

21. Markup and Output Examples

21.1 Markup examples
21.2 A few book (and other) examples
21.2.1 "Viral Spiral", David Bollier
"The Wealth of Networks", Yochai Benkler
"Two Bits", Christopher Kelty
"Free Culture", Lawrence Lessig
"CONTENT", Cory Doctorow
"Democratizing Innovation", by Eric von Hippel
"Free as in Freedom: Richard Stallman's Crusade for Free Software", by Sam Williams
"Free For All: How Linux and the Free Software Movement Undercut the High Tech Titans", by Peter Wayner
"The Cathedral and the Bazaar", by Eric S. Raymond
"Down and out in the Magic Kingdom", Cory Doctorow
"Little Brother", Cory Doctorow
"For the Win", Cory Doctorow
"Accelerando", Charles Stross
"Tainaron", Leena Krohn
"Sphinx or Robot", Leena Krohn
"War and Peace", Leo Tolstoy, PG Etext 2600
"Don Quixote", Miguel de Cervantes [Saavedra], translated by John Ormsby, PG Etext 996
"Gulliver's Travels", Jonathan Swift, transcribed from the 1892 George Bell and Sons edition by David Price, PG Etext 829
"Alice's Adventures in Wonderland", Lewis Carroll, PG Etext 11
"Through The Looking-Glass", Lewis Carroll, PG Etext 12
"Alice's Adventures in Wonderland" and "Through The Looking-Glass", Lewis Carroll, PG Etexts 11 and 12
"Gnu Public License 2", (GPL 2) Free Software Foundation
"Gnu Public License v3 - Third discussion draft", (GPLv3) Free Software Foundation
"Debian Social Contract"
"Debian Constitution v1.3", (simple/default markup)
"Debian Constitution v1.3", (markup adjusted for output to more closely match the original)
"Debian Constitution v1.2", (simple/default markup)
"Debian Constitution v1.2", (markup adjusted for output to more closely match the original)
"A Uniform Sales Terminology", Vikki Rogers and Albert Kritzer
"The Autonomous Contract" 1997 - markup sample
"The Autonomous Contract Revisited" - markup sample
"United Nations Convention on Contracts for the International Sale of Goods"
/PECL/ the "Principles of European Contract Law"
21.3 SQL - PostgreSQL, SQLite
21.4 Lex Mercatoria as an example
21.5 For good measure the markup for a document with lots of (simple) tables
21.6 And a link to the output of a reported case

22. A Checklist of Output Features

23. SiSU Search - Introduction

24. SQL

24.1 populating SQL type databases

25. Postgresql

25.1 Name
25.2 Description
25.3 Synopsis
25.4 Commands
25.4.1 create and destroy database
25.4.2 import and remove documents

26. Sqlite

26.1 Name
26.2 Description
26.3 Synopsis
26.4 Commands
26.4.1 create and destroy database
26.4.2 import and remove documents

27. Introduction

27.1 Search - database frontend sample, utilising database and SiSU features, including object citation numbering (backend currently PostgreSQL)
27.2 Search Form

28. Hyperestraier

29. sisu_webrick

29.1 Name
29.2 Synopsis
29.3 Description
29.4 Summary of man page
29.5 Document processing command flags
29.6 Further information
29.7 Author
29.8 SEE ALSO

30. Remote Source Documents

Remote Document Output

31. Remote Output

31.1 commands
31.2 configuration

32. Remote Servers

Download information

33. Download SiSU - Linux/Unix

SiSU Current Version - Linux/Unix
Source (tarball tar.gz)
Git (source control management)
Debian
RPM

Installation

34. Installation

34.1 Debian
34.2 Other Unix / Linux
34.2.1 source tarball

35. SiSU Components, Dependencies and Notes

35.1 sisu
35.2 sisu-complete
35.3 sisu-examples
35.4 sisu-pdf
35.5 sisu-postgresql
35.6 sisu-remote
35.7 sisu-sqlite

36. Quickstart - Getting Started Howto

36.1 Installation
36.1.1 Debian Installation
36.1.2 RPM Installation
36.1.3 Installation from source
36.2 Testing SiSU, generating output
36.2.1 basic text, plaintext, html, XML, ODF, EPUB
36.2.2 LaTeX / pdf
36.2.3 relational database - postgresql, sqlite
36.3 Getting Help
36.3.1 The man pages
36.3.2 Built in help
36.3.3 The home page
36.4 Markup Samples

HowTo

37. Getting Help

37.1 SiSU "man" pages
37.2 SiSU built-in help
37.3 Command Line with Flags - Batch Processing

38. Setup, initialisation

38.1 initialise output directory
38.1.1 Use of search functionality, an example using sqlite
38.2 misc
38.2.1 url for output files -u -U
38.2.2 toggle screen color
38.2.3 verbose mode
38.2.4 quiet mode
38.2.5 maintenance mode intermediate files kept -M
38.2.6 start the webrick server
38.3 remote placement of output

39. Configuration Files

40. Markup

40.1 Headers
40.2 Font Face
40.2.1 Bold
40.2.2 Italics
40.2.3 Underscore
40.2.4 Strikethrough
40.3 Endnotes
40.4 Links
40.5 Number Titles
40.6 Line operations
40.7 Tables
40.8 Grouped Text
40.9 Composite Document

41. Change Appearance

41.1 Skins
41.2 CSS

Extracts from the README

42. README

42.1 Online Information, places to look
42.2 Installation
42.2.1 Debian
42.2.2 RPM
42.2.3 Source package .tgz
42.2.4 to use setup.rb
42.2.5 to use install (prapared with "Rake")
42.2.6 to use install (prapared with "Rant")
42.3 Dependencies
42.4 Quick start
42.5 Configuration files
42.6 Use General Overview
42.7 Help
42.8 Directory Structure
42.9 Configuration File
42.10 Markup
42.11 Additional Things
42.12 License
42.13 SiSU Standard

Extracts from man 8 sisu

43. Post Installation Setup

43.1 Post Installation Setup - Quick start
43.2 Document markup directory
43.2.1 Configuration files
43.2.2 Debian INSTALLATION Note
43.2.3 Document Resource Configuration
43.2.4 Skins

44. FAQ - Frequently Asked/Answered Questions

44.1 Why are urls produced with the -v (and -u) flag that point to a web server on port 8081 ?
44.2 I cannot find my output, where is it?
44.3 I do not get any pdf output, why?
44.4 Where is the latex (or some other interim) output?
44.5 Why isn't SiSU markup XML
44.6 LaTeX claims to be a document preparation system for high-quality typesetting. Can the same be said about SiSU?
44.7 Can the SiSU markup be used to prepare for a LaTex automatic building of an index to the work?
44.8 Can the conversion from SiSU to LaTeX be modified if we have special needs for the LaTeX, or do we need to modify the LaTeX manually?
44.9 How do I create GIN or GiST index in Postgresql for use in SiSU
44.10 Are there some examples of using Ferret Search with a SiSU repository?
Have you had any reports of building SiSU from tar on Mac OS 10.4?
44.12 Where is version 1?
44.13 What is the difference between version 1 and 2?

45. Who might be interested in the SiSU feature set?

46. Work Needed

47. Wishlist

48. Editor Files, Syntax Highlighting

49. Help Sources

49.1 man pages
49.2 sisu generated output - links to html
49.2.1 www.sisudoc.org
49.3 man2html
49.3.1 locally installed
49.3.2 www.jus.uio.no/sisu

Endnotes

Endnotes

Metadata

SiSU Metadata, document information

Manifest

SiSU Manifest, alternative outputs etc.

SiSU - Manual,
Ralph Amissah

What is SiSU?

Extracts from man 8 sisu

44. FAQ - Frequently Asked/Answered Questions

44.1 Why are urls produced with the -v (and -u) flag that point to a web server on port 8081 ?
44.2 I cannot find my output, where is it?
44.3 I do not get any pdf output, why?
44.4 Where is the latex (or some other interim) output?
44.5 Why isn't SiSU markup XML
44.6 LaTeX claims to be a document preparation system for high-quality typesetting. Can the same be said about SiSU?
44.7 Can the SiSU markup be used to prepare for a LaTex automatic building of an index to the work?
44.8 Can the conversion from SiSU to LaTeX be modified if we have special needs for the LaTeX, or do we need to modify the LaTeX manually?
44.9 How do I create GIN or GiST index in Postgresql for use in SiSU
44.10 Are there some examples of using Ferret Search with a SiSU repository?
Have you had any reports of building SiSU from tar on Mac OS 10.4?
44.12 Where is version 1?
44.13 What is the difference between version 1 and 2?
1730

Try the following rune:

  • sisu -W
  • This should start the ruby webserver. It should be done after having produced some output as it scans the output directory for what to serve.

    1734

    The following should provide help on output paths:

  • sisu --help env
  • sisu -V [same as the previous command]
  • sisu --help directory
  • sisu --help path
  • sisu -U [filename]
  • man sisu
  • 1742

    SiSU produces LaTeX and pdflatex is run against that to generate pdf files.

    If you use Debian the following will install the required dependencies

  • aptitude install sisu-pdf
  • the following packages are required: tetex-bin, tetex-extra, latex-ucs

    1747

    Try adding -M (for maintenance) to your command flags, e.g.:

  • sisu -HpMv [filename]
  • this should result in the interim processing output being retained, and information being provided on where to find it.

  • sisu --help directory
  • sisu --help path
  • should also provide some relevant information as to where it is placed.

    1754

    I worked with text and (though I find XML immensely valuable) disliked noise ... better to sidestep the question and say:

    SiSU currently "understands" three XML input representations - or more accurately, converts from three forms of XML to native SiSU markup for processing. The three types correspond to SAX (structure described), DOM (structure embedded, whole document must be read before structure is correctly discernable) and node based (a tree) forms of XML document structure representation. Problem is I use them very seldom and check that all is as it should be with them seldom, so I would not be surprised if something breaks there, but as far as I know they are working. I will check and add an XML markup help page before the next release. There already is a bit of information in the man page under the title SiSU VERSION CONVERSION

    sisu --to-sax [filename/wildcard]

    sisu --to-dom [filename/wildcard]

    sisu --to-node [filename/wildcard]

    The XML should be well formed... must check, but lacks sensible headers. Suggestions welcome as to what to make of them. [For the present time I am satisfied that I can convert (both ways) between 3 forms of XML representation and SiSU markup].

    sisu --from-xml2sst [filename/wildcard]

    1762

    SiSU is not really about type-setting.

    LaTeX is the ultimate computer instruction type-setting language for paper based publication.

    LaTeX is able to control just about everything that happens on page and pixel, position letters kerning, space variation between characters, words, paragraphs etc. formula.

    SiSU is not really about type-setting at all. It is about a lightweight markup instruction that provides enough information for an abstraction of the documents structure and objects, from which different forms of representation of the document can be generated.

    SiSU with very little markup instruction is able to produce relatively high quality pdf by virtue of being able to generate usable default LaTeX; it produces "quality" html by generating the html directly; likewise it populates an SQL database in a useful way with the document in object sized chunks and its meta-data. But SiSU works on an abstraction of the document's structure and content and custom builds suitable uniform output. The html for browser viewing and pdf for paper viewing/publishing are rather different things with different needs for layout - as indeed is what is needed to store information in a database in searchable objects.

    The pdfs or html produced for example by open office based on open document format and other office/word processor suits usually attempt to have similar looking outputs - your document rendered in html looks much the same, or in pdf... sisu is less this way, it seeks to have a starting point with as little information about appearance as possible, and to come up with the best possible appearance for each output that can be derived based on this minimal information.

    Where there are large document sets, it provides consistency in appearance in each output format for the documents.

    The excuse for going this way is, it is a waste of time to think much about appearance when working on substantive content, it is the substantive content that is relevant, not the way it looks beyond the basic informational tags - and yet you want to be able to take advantage of as many useful different ways of representing documents as are available, and for various types of output to to be/look as good as it can for each medium/format in which it is presented, (with different mediums having different focuses) and SiSU tries to achieve this from minimal markup.

    1771

    Has not been, is of interest though the question on introducing such possibilities is how to keep them as unobtrusive as possible, and as generically relevant as possible to other output formats (which is why the focus on object numbers). Unobtrusive refers both to the markup (where there is no big problem with introducing optional extras); and, more challengingly how to minimise impact on competing ideas/interests, such allowing the addition of semantic tags which could be tied to objects, mapped against the objects that contain them, (permitting mapping and mining of content in various ways that would be largely agnostic of output format - object numbering being an attempt to move beyond output format based content locators (such as page numbers). The desire being to (be a meta markup and) maintain agnosticism as to what is being generated and in development to favor solutions of that nature. Keep bridging LaTeX, XML, SQL ... make use of objects and serialisation for mapping whether against content or meta-content (such as semantic [or additional structural] markers).

    1773

    Should be possible to modify code, it is GPLv3, should be possible either to modify existing modules or write an independent module for generating bespoke latex. Generic improvements are welcome for inclusion/incorporation in the existing code base.

    If there are tools to generate mathematical/scientific formula from latex to images (jpg, png), the latex parser could conceivably be used to make these available to other output formats.

    1776

    This at present needs to be done "manually" and it is probably necessary to alter the sample search form. The following is a helpful response from one of the contributors of GiN to Postgresql Oleg Bartunov 2006-12-06:

    "I have tsearch2 slides which introduces tsearch2 ‹http://www.sai.msu.su/~megera/wiki/tsearch2slides

    FTS in PostgreSQL is provided by tsearch2, which should works without any indices (GiST or GIN) ! Indices provide performance, not functionality.

    In your example I'd do ( simple way, just for demo):

    0. compile, install tsearch2 and load tsearch2 into your database

    cd contrib/tsearch2; make&&make&&install&&make installcheck; psql DB < tsearch2.sql

    1. Add column fts, which holds tsvector

    alter table documents add column fts tsvector;

    2. Fill fts column

    update document set fts = to_tsvector(clean);

    3. create index - just for performance !

    create index fts_gin_idx on document using gin(fts);

    4. Run vacuum

    vacuum analyze document;

    That's all.

    Now you can search:

    select lid, metadata_tid, rank_cd(fts, q,2)as rank from document, plainto_tsquery('markup syntax') q where q @@ fts order by rank desc limit 10;

    1794

    Heard good things about Ferret, but have not used it. The output directory structure and content produced by SiSU is very uniform. Have looked at a couple of other engines (hyperestraier, lucene). There it was enough to identify the files that needed to be indexed and pass them to the search indexing tool. Some Unix rune doing the job, such as:

      find /home/ralph/sisu_www -type f | \
      egrep '/sisu_www/(sisu|document_archive)/.+?.html$' | \
      egrep -v '(doc|concordance).html$' | \
      estcmd gather -sd casket -

    you would have to experiment with what gives the desired result, the file doc.html is the complete text in html (there are additional smaller html segments), and plain.txt the document as a text file. It may be possible to index the text file and return the html document.

    1798

    None. In the early days of its release a Mac friend built and run the ruby code part that did not rely on system calls to bits like the latex engine. That is already some years back. He was not into writing or document markup, and did it as a favour at the time. I have not followed up that thread of development.

    It should however be possible, much of the output relies on plain ruby, and the system commands to latex etc. could be made appropriate for the underlying OS.

    1801

    Version 1 was finally released on December 21, 2009, and largely to make a version 1 branch available as version 2 was in the pipeline with an imminent release. Most of SiSU was mature and stable long before the release of version 1.

    1803

    Input and output of version 1 and 2 are largely the same with the following significant exceptions. On the input side, document headers, that is metadata and processing instructions have changed in version 2. On the output side, version 2 was introduced with EPUB documents as a possible output, and over time is likely to be developed further.

    Version 2 introduces a new processing layer, which relies more on the programming language Ruby' s objects (and regular expressions), than version 1 does which relies on regular expressions. The thinking behind version 1 use of regular expressions was that it made it more straightforward to switch languages for processing, as many languages support regular expressions; the thinking behind version 2 was version 1 was more complicated than it need be, and since Ruby was the language used, why not make programming more straightforward, as it would be easier to develop further.

    Version 1 was removed with the introduction of the version 3 development branch




    [ document manifest ]
    << previous TOC next >>
    < ^ >



    SiSU