Last Modified - Thu, 13 Jul 2017 16:32:09

Open All
Close All

Printable Rendering

What does Buzz do?
Buzz is fundamentally an outliner
Design Philosophy
Buzz views outlines as part of a web of outlines that refer to each other. Buzz
supports links and xlinks between the outlines and keeps a history of
navigation as well as recently editted files.
As my note taking as evolved closer to Topic Maps I have begun implementing Topic Map features
Outlines can be imported and exported from:
Save as html and then import into Buzz
Reverse for export. In Word view as an outline to see the tree
Via Word 97 Outline Format
Exports Text Outlines that Powerpoint can import
Export Via XSL Rendering (csv.xsl) to csv
Import into XML from csv
All rows of your spreadsheet must have the same number of elements
You may be able to Repair poorly formed csv files with
OpenOffice / Staroffice
Export your OPML file to MS Word HTML
Open a blank document in Writer
Insert the HTML file generated above into writer
Open the Navigator in Writer from the Edit Menu
Verify that you are in the correct mode by seeing the outline
Follow the instructions for Writer
From the file menu choose Send-> Outline to Presentation
Export Via XSL Rendering (csv.xsl) to csv
Import into XML from csv
Repair poorly formed csv files with
Dot graphviz graphs
This allows exporting to graphs for example:
3d Graphs
List Pro
Shadow Planner 2.0
ThoughtMill - via Word Format
Doc Format using the Pyrite Project
Static and Active Documents
Like this Page!
vCal Calendar files
This makes it easy to turn OPML into ToDo lists
This is verified to work with Korganizer, Gnomecal, Exchange
NB: Use merge calendar from Korganizer
Freemind Mind Maps (MindMap)
opml2mm.xsl and mm2opml.xsl
Arbitrary Text Files with indentation
Buzz contains cross file (cross internet) xml search, XLINK and link
This is coded as an external command also:
xsearch "something to search for" "filename" "casesensitive(0 or 1)"
This will recursively search and create a set of xlinks into the web
caveat coder: There is no depth limit
It supports the subset of xlinks where the path elements are referenced by offset only
Outlines are syntactically compatible with Userland
Buzz and Userland have overlapping functionality.
With Peerkat and Buzz one can have Userland functionality on Linux or anywhere Python runs
Because Peerkat is SLOW, I created a script that feeds RSS/RDF to a web server via XSL
In addition a script that filters a pubmed query through XML is here
Outlines can be editted in structured manner or free form (text edittor)
Topic Map like outlines
Buzz handles topic maps by adding instance and role attributes to outline elements
xref, unique ids, allow cross linking. Internal links, xlinks and links are supported as a means of turning the tree into a true graph
Xmarks and Xlinks
xrefs are a unique location that can be linked to no matter how the destination file changes
If you want to link subsections of an outline xlinks, xmarks and xref allow you to do that
xlinks, xmarks and favorites are simply tree offsets therefore if the file changes they will not reference the correct location
There are three ways to use the xlinks
1 - Generate an ID with right click or Shift B and paste with right click or shift V - this creates a unique location that can always be linked to
2 - copy an ID with Shift X and paste with shift V
3- create an xlink using the add favorite function and then paste
Buzz can convert back and forth between OPML and XML
Buzz can create its schema by example. Give it a set of files and it will produce a schema
Complete with values for the attributes
XML can be transformed to multiple modalities using XSL
EG Export you XML as a spreadsheet, Bibliography,
Buzz has a schema for XSL and supports accurate white space preservation
Buzz can export,import save and send to the browser any xml file passed thru XSL
For example Buzz renders to HTML using the format you see here but
you can render using many formats including the "standard" Userland formats
Choose rendep to browser and then the opml2userland.xsl file
NB:remember to copy the javascript file to the target directory
Buzz can pass xml thru xsl:fo via FOP
Buzz has a schema for html/ xhtml
Buzz is faster than Userland, Xeena and JOE by 2-10 times
The 3000 line Buzz source OPML file takes 15 seconds to load in Userland on a PIII 650
The same file takes 1.5-2 seconds in Buzz
Interacting with XML on the Web
I use Buzz to do all my Pubmed queries in XML
You can exchange them with Endnote via the XSL rendering facilities
You can do RSS queries and view the results in Buzz and render them with XSL to a browser
Talk to a Manila XMLRPC server
Writing Python Code
Buzz was written in Buzz
Left Click: On Text: Select; On Button: Expand
Double Click: Expand Node
Right Click: Popup Menu
File Menu
Open: Opens a File
Choose Recen Filet: 10 recent files are maintained the most recent file is opened by default
Choose Recent URL: 10 recent URLS
Open URL: Open an XML file at an arbitrary URL
Render Open: Render a file with XSL and open the product
Print OPML: Prints to from HTML Version. Places images inline
Preview HTML: Send the actual content of the file unrendered to the browser
Webify: Like print except centralizes external references into directory of document
Save As: Save a copy as
Import Menu
Import: Import a text file as an indented Outline
Export: Export OPML as indented text
Import HTML Outline: Import MS word html outline file
Import / Export ...: Imports and exports Lpro, Shadow and MS Word documents
MS Word import and export works via HTML as an intermediary format
In other words use Save As HTML in MS Word prior to importing
Export HTML Outline: Useful for interacting with MS products like Word
If you open a file exported as an HTML Outline Word will open it as an outline
This is especially useful for interacting with Powerpoint for slides
Buzz is setup to render XSL and XSL:FO in place, to a browser, file, acrobat etc
Render Directory
This will render all the OPML files in a directory as HTML and create a document with links
to all the files
X Render Directory this render the files you choose from a directory with an xsl file you choose
Edit Menu
Paste Clipboard: Pastes clipboard as child of current node
May be faster than normal pasting when pasting more than 100 lines
Paste Clipboard as CDATA
Insert URL
Insert Image
Insert File
Insert File from URL
Find Item
Find and Replace
This starts a text search that will procede across any LINK,XLINK,HREF,URL and
returns the result as a file of XLINKS
Open XML
This differs from Open in that characters are forced into ISO-8859-1 and long text blocks
are broken word wrapped to less than 200 character blocks.
Webify XML: Display XML as HTML Document
Preview Decision Tree: Shows an HTML version of a DT schema
Save as XML
It is easy tm mix XML and OPML when editting OPML files
Using this converts all OPML elements to XML on the presumptions:
Outline items are tag names or attributes
Attributes come before children and anything with the = sign is an attribute
Text elements are not assumed and must be created using the appropriate keys
New from schema: create a document using schema layout
Set XML Schema: Loads a BUZZ specific schema to appropriately structured XML
X Favorites: Set of XLINK favorites
Delete Favorites
Add Favorite
Schema from example: Creates a buzz schema from a set of XML files
Schema from example with attributes: as above but includes values of attributes
Toggle Find and Replace: Useful for interactive find and replace
Toggle Case sensitive find: By default find is not case sensitive
Toggle Free Form XML Mode: While a schema is active allows arbitrary XML to be entered
Can be set from the config file
Wrap text fields
Configure Buzz: Setup default configuration options
Preliminary functions
Default Keys
Left/Right/Up/Down: Navigate Tree
Ctrl-R: Open Recent File
F1: [s]ave
F2: Assign Topic
Cmd-F, F3: Find below current node
N,I: repeat find
<return>,e,a: edit node
F: Find below root node
Ctrl-C : Copy Node
Copies into the cut buffer ring
Allows one to select multiple items and paste them in back somewhere else
F4: Open node as URL
P: Open a node next to my parent
o,F6: [o]pen a node at the same level
c,F7: open a [c]hild node
F8: Goto last selected node
Useful under Windows where alpha keystrokes jump to nearest node that starts with that key
Ctrl-J: Join Node with next sibling
Shift-J: Join Node with first child
F9: Toggle between most recent files
F10: Enter Free text
F11: Expand URL below current Item
F12: Insert an OPML/XML file below the current Item
Ctrl-A: open attribute
<Home>: Move Node Up
<End>: Move Node Down
<Tab>: Indent item
Shift-<Tab>: Outdent Item
Backspace: Outdent Item
b- back in history
Ctrl-X or <Delete>: Cut branch to buffer
Ctrl-V :paste into tree from buffer
V: Paste from cut ring and advance to next item
Ctrl-D :paste into tree from buffer as child
Ctrl-U : Insert URL
Ctrl-O : Insert Picture
Ctrl-P: Paste Clipboard
Shift-B: Generate a Unique ID for Xref targetting
Shift-X: Store an xmark to this location
Shift-V: Paste the stored xmark
Shift-G: Goto the stored xmark
Shift-P: Insert Pubmed Link
<Insert> or Ctrl-B: Repeated use will progressively insert the cut ring
<space>: expand or collapse branch
Ctrl-T: open child [t]ext node
<up>/<down>: up/down visible nodes
<left>/<right>:Parent/Child of current node
PgUp/PgDn: Move Fast
Command Line Options
First item on line is assumed to be an XML file
Second Item is optional. 0 turns off highlighting
Crash Recovery
Buzz copies the file to filename~ before saving for crash recovery
Charles Nofsinger
Helpful Feedback
Simon Kittle
Andrew Pearle
David Rosen
Christian Boehme
Schemas are currently implemented at a crude level and use a modified BNF syntax
However, that is ameliorated by the schema generator. It builds schema from xml files by example
Use the schema from example option in the XML menu
This is a work in progress. I recommend that you edit the schemas generated to validate their
The syntax is: tag | required children | optional children
Double quoted elements are assumed to be text, underscores are translated to spaces
You must order the file in dependency tree order with the leaves first and the root last
schemas should be named foo.schema. Files created with the schema should be named (for the foo schema). and placed in the buzzdir
7/27/01 - First Schema Supporting Version
8/21/01 - Switched to Sax2 parser from Expat
8/31/01 - Added xsl:fo functionality and compatibility
9/01/01 - Added Cross File XML Search and XLINK functionality
9/14/01 - XLINK history added. Schema generation from GUI
10/19/01 - Added Toolbar and Popup on Right Click
11/2/01 - Added Preliminary Manila Functionality
11/15/01 - Added Free Form Text Editting of Outlines
11/28/01 -
Updated Shadow Plan import export to 2.0
Controls keys working under wxGTK
12/1/01 - Cleaned up importing text and free form text editting
12/2/01 - Import and Export of CSV Spreadsheets to XML,HTML
12/5/01 - Added Todo Schema and Export to Vcal
12/8/01 - Cleaned up multiple issues with wxGTK
12/11/01 - Fixed the Dreaded wxGTK Label Editting focus bug
12/14/01 - Continued wxGTK bug cleanup
12/19/01 - Pyrite Palm OS integration started
3/3/02 - Automated configuration file creation
3/11/02 - Made history more reliable
3/12/02 - Under *nix Sablotron can be used for all XSL - Rendering is FAST!!!
3/19/02 - Toolbar help - web rendering clean up
3/21/02 - Font selection added
3/30/02 - Added SVG and Flowchart XSL rendering
4/2/02 - Added initial Topic Map capabilities
4/10/02 - Added Xsearch attribute that automatically recreates an xsearch
4/21/02 - minor fixes to allow buzz to run on Mac OS X
5/30/02 - Unique ID support added to XPATH and graph export
6/10/02 - Buzz Lite in pygtk for the Familiar Distribution
6/12/02 - Cleaned up many issues in Buzz Lite
6/13/02 - Added pyqt version of Buzz Lite
8/20/02 - Compatibility updates for wxwindows
2/1/03 - Multiple Bug Fixes, Features OpenOffice, Staroffice compatibility
2/1/03 - Interactive Font Selection
2/11/03 - Multiple fixes for XML file compatibility
4/5/3 - Buzzlite in C code
1/11/4 - Removing Dependency on external xsl processor - using libxml2
1/12/4 - Cygwin no longer necessary for Windows
2/4/4 - saxon or sablotron no longer necessary . Fixed multiple bugs
2/16/6 - OS X bug work arounds and fixes
8/4/11 - OS X Lion, python 2.7, wxpython cocoa fixes
10/16/15 - Small Fixes for windows
2/2/17 - More fixes for windows
6/16/17 - Switched to Phoenix and lxml given their better support with pypi
7/12/17 - One branch for *nix xml2,wxgtk and one for windows/macos with lxml and phoenix
Buzz is a note taking system
Buzz is an XML/OPML editor based on Woody, Radio Userland and Xeena
It Run's on OS X, Windows and Linux and PDAs
Standard Installation
NB: These are largely deprecated but are included for border cases
The minimal installation will allow editting and saving opml and xml
Download and Install python 2.7 or greater
Download and install wxpython/wxwindows
On X-windows systems this will require wxGTK that can be found in the "other" section of the wxpython download
Download the appropriate buzz to your home directory on *nix or c:\buzz on windows
XML2 and original wxpython buzz file will have xml2 in name
Open a terminal
Verify that the HOME environment variable is set
unzip buzz in home directory
Copy the buzz.cfg.unix file to .buzzcfg in home dir
Windows and OS X
lxml and phoenix buzz file
Buzz will ask you to configure it if this is the first time you've run it.
python NB for Mac: Double click on from the finder. See below
If you are *nix wizard you can edit the configuration file as described below
Configuration File
first line is buzzdir a "home directory". For example:
*nix and OS X
next line is the command that will "expand"/open any file
explorer.exe on windows
I use konqueror on linux
On OS X use "open"
next line is a temporary directory
next line is a command to execute scripts
Under windows this should be the cygwin bash command
e:\\cygin\\bin\\bash --login -c
If your default shell on *nix or OS X is bash leave this blank
otherwise use
bash -c
The next line is a configuration switch to turn on free form editting of XML while a schema is set.
The next line is the "Home" file
Next is your manila site
Next is your manila username
Next is 0 or 1 for whether or not to use the size parameters of the OPML file
They are always saved this enables automatic resizing to the location and size that
the file was last saved with.
Next is the font name
Next is the font size
These functions are necessary for importing, exporting, printing etc
Necessary for all exporting:
On Windows and Macos
Install lxml from pypi
On *nix Systems
Install python libxml2 and libxslt wrappers
Deprecated after 2/2004
Download and install sabcmd for Unix or instant-saxon for Windows or full Saxon for OS X
Make sure the saxon command is in your PATH
There is a script that uses sabcmd to emulate saxon
You should copy this script to your PATH. Sabcmd is orders of magnitude faster than saxon
If you don't use sabcmd copy to It's compatible with saxon's parameter passing
NB: instant-saxon requires the MS JVM, which you must install if you're using windows 2000 or greater
Necessary for Schema from example under linux
Necessary for rendering Acrobat Files
Download and install FOP
You'll need to modify the fop script to point to the installation directory of fop
Necessary for Importing HTML
Download and install tidy
Necessary for Importing Spreadsheets to XML
The file csv-0.5.tgz is included in the tarball. decompress this and install it with
python build ; python install
put csv.pyd where python can find it.
Necessary for creating Graphs (GIF,SVG) of OPML files
Necessary for communicating directly with Palm OS 3
Use pyrpub to publish buzz html files to Doc format
Install with Jpilot or pilot-link
Coming soon direct integration...
Necessary for Palm OS 5
plucker web compression using the opml2flatweb.xsl for render directory
Deprecated Mac OS Notes
Mac OS no different from Windows now
Os X installation is now EASY! Three cheers for the OS X port!
The buzz applescript can be editted with the applescript editor
NB: Buzz is somewhat crippled by the standard Mac mouse - use a wheel mouse
you'll love the functionality in all the mac programs
use 'sudo command' to do anything as root
or use 'sudo -s'
Deprecated (See install in homepage)
Go to
Get mac-pythonOSX and wxpython os x
Follow the instructions for installation
Install Buzz
Download buzz.tgz
move the buzz directory to ~/buzz
cd ~/buzz
cp smallbmp/* .
Install Saxon or Sablotron
I recommend sablotron
use saxon 6.5.2 from
Install Fink and install the expat libraries
Download sablotron and compile against the fink libraries in /sw
The expat library may not have the latin1 codepage
in that case all the latin1 references can be replaced with ISO-8859-1
The script convertencodings takes a fileprefix oldencoding newencoding
Start Buzz
Double click on the from the finder.
Or use pythonw from the command line
The non mac guide applies from here
Buzzlite Installation
buzz.c is an alpha version of Buzz Lite in C code using the libxml2 library
The source and an arm binary are available
Buzz Lite is a py gtk and a py qt version of Buzz that runs on the Ipaq. It is only the most essential features
of Buzz. <filename> or <filename>
Be cautious, these are alpha versions...
See screenshots below
6/17/02 update - I'm only continuing development of the pygtk version secondary to
the excellent handwriting recognition with xstroke
The command interface is soley single characters:
a,e - edit
return,o - new node
c - child node
@ - attribute
. - cdata
<q button> or / - scroll incrementally right
<menu button> or v - scroll completely left
z or ipaq keypad right- zoom node (open)
l - move node left
r - move node right
u - move node up
d - move node down
h - home file (file buzzlite was opened with)
H - Help file
x - cut node
p - paste node
f - find
n,i - iterate find
S - save
A - save as
m - clear modified status
b - back one file
double click or <ipaq enter key> or space or / - go to url of attribute, if opml file or dillo url or open a file if not on a url attribute
t - toggle all nodes below node
4 - toggle 4 levels deep
Use this ~/.gtkrc for left and right arrow expansion

binding "my-ctree-bindings" { bind "Right" {"change_focus_row_expansion" (expand) } bind "Left" {"change_focus_row_expansion" (collapse) } }class "GtkCTree" binding "my-ctree-bindings"