Seaside Doc

A Documentation system for Smalltalk

Motivation

SeasideDoc displays exsisting Squeak documentation while providing ability to crowd source new documentation and export it to various formats

Roadmap

  • Display existing Squeak Help as HTML5 (in progress. almost done. duplicate data bug)
  • links to blogs (in progress)
  • links to videos (in progress)
  • links to books (in progress)
  • Create new Doclets via web interface/Ajax
  • Comments with rating
  • Persistence (leaning towards in-image persistence at the moment
  • Exporting from HTML5 to Squeak Help, Texinfo, 'foo' formats
  • Provide a Proxy for Squeak Wiki at http://wiki.squeak.org/
    1. Extract and wrap each wiki page as a Doclet (in progress)
    2. Need a method to flag useless pages and store them as such See Page 3 for example.
    3. Extract meta-information by having each DocletSwiki subclass categorize iself via parsing itself for keywords, author, subject, etc
    4. Display all 6000+ wiki pages as ordinary doclets
    5. Organize and display wiki doclets per the meta information
    6. JQuery search on...
    7. CRUD Proxy functionality to keep SWiki and SeasideDoc in sync
      1. Create on SeasideDoc creates corresponding page on Swiki
      2. Retrieve from Swiki displays automatically on SeasideDoc
      3. Update on SeasideDoc updates Swiki
      4. Delete....does nothing (:
  • Need a good favicon
  • Need to provide initialRequest: mapping directing to Doclets via URL

The goal is to display existing information via the web, enable easy creation of new content with mechanisms for exporting to existing and new formats

Source

.mcz files available via anonymous FTP at www.menmachinesmaterials.com

We will be deploying to some repository sometime. I have not used one in several years and I want to work with the community on this

I will probably do this when the 'display' functionality is complete, prior to the interactive functionality being started.

Theory of Operation

SeasideDoc is a collection of Doclets, Applications and Hyperlinks

A Doclet is an object that renders itself. They are typically rendered 'in-place' withing the SeasideDoc framework.

Doclets come in several flavors..

  • AbstractHelpTopicDoclet subclasses for displaying Squeak native Help system topics/books
  • Doclet for basic topics
  • DocletHOWTO are basic Doclets organized and formatted to render HOWTOS
  • DocletPattern for organizing and formatting GoF Design Patterns within Squeak/Smalltalk
  • DocletSwiki for organizing, displaying, CRUD ops on the Squeak Wiki

Applications are existing Seaside applications such as JQuery UI, Twitter Bootstrap, etc..
See Category
SeasideDoc
class
SeasideDocOffCanvasLeft
protocol
rendering
method
renderContentOn:html
in the code block that looks like:

...
					[self 
						renderApps:html;
						renderSwiki:html;
						renderBlogs:html;
						renderVideos:html;	
						renderBooks:html;	
						renderHowTos:html;
						renderPatterns:html;
						renderDoclets: html;
						renderJobs:html;				
						renderHelpTopics: html.

Links are links (:

Worked Examples

To manually create a new doclet, simply subclass Doclet in category SeasideDoc-Doclet and override the renderDoclet: html method

SeasideDoc utilizes the Zurb Foundation Framework for markup

Theory of Operation

SeasideDoc is a collection of Doclets, Applications and Hyperlinks

A Doclet is an object that renders itself. They are typically rendered 'in-place' withing the SeasideDoc framework.

Doclets come in several flavors..

  • AbstractHelpTopicDoclet subclasses for displaying Squeak native Help system topics/books
  • Doclet for basic topics
  • DocletHOWTO are basic Doclets organized and formatted to render HOWTOS
  • DocletPattern for organizing and formatting GoF Design Patterns within Squeak/Smalltalk
  • DocletSwiki for organizing, displaying, CRUD ops on the Squeak Wiki

Applications are existing Seaside applications such as JQuery UI, Twitter Bootstrap, etc..
See Category
SeasideDoc
class
SeasideDocOffCanvasLeft
protocol
rendering
method
renderContentOn:html
in the code block that looks like:

...
					[self 
						renderApps:html;
						renderSwiki:html;
						renderBlogs:html;
						renderVideos:html;	
						renderBooks:html;	
						renderHowTos:html;
						renderPatterns:html;
						renderDoclets: html;
						renderJobs:html;				
						renderHelpTopics: html.

Links are links (:

Tricks and traps

Tricksy and trapsy, precious.

Credits and Connections.

Revision history

See Version History in class DocletSeasideDoc >> renderDoclet for revision history of this doclet

New Session Configure Halos Profile Memory 0/0 ms