Revision history for Graph::Layout::Simple.
2004-12-27 v0.01 Tels 18 tests
* original version; created by h2xs 1.23 with options
-A -X -n Graph::Layout::Simple -b 5.6.1 --skip-autoloader
2004-12-28 v0.02 Tels 20 tests
* added a stack-based, backtracking layout routine, that stuffs nodes and
paths between them into cells
* Simple.pm: as_ascii: deal with cell-layout and convert this to ASCII
* Simple.pm: add doc stub for METHODS
* Simple.pm: add score(), as_XXX() do layout if it hasn't done before
* Node.pm: revised code, and better parameter handling
* no longer needs Graph::Directed or Graph::Layout::Aesthetic as prereq
* added examples/ascii.pl
* forgot to add graph.t to MANIFEST
Renamed to Graph::Simple:
2004-12-29 v0.03 Tels 52 tests
* is a subclass of Graph::Directed, so add it as prereq again :o)
* Graph::Layout::Simple::Parser - parse graph from text
* Graph::Layout::Simple::Edge - an edge between two nodes
* Graph: added node() - find node by name
* Graph: add quite some more documentation
* Graph, Node: added as_txt()
* Node: added incoming(), and track incoming edges from other nodes
* added t/parser.t - test text parser
* added t/ascii.t - parse various text files to ascii
2005-01-03 v0.04 Tels 84 tests
* change code to work with Graph 0.50
* require Graph 0.50
* added: Group.pm -- a group of nodes
* added: examples/html.pl, examples/common.pl and TODO
* tests: use strict;, add t/edge.t
* Parser: document the different edge directions and styles
* Parser: construct edges with the proper style
* Parser: allow '..>' style
* Node:
+ document successorts()/predecessors(), as_txt(), as_html()
+ implement as_html($tag)
* Graph:
+ _trace_path() can also trace short, straight paths upwards
+ as_txt() uses $edge->as_txt() to render edge
+ as_ascii() generates proper output for edges with the right style
+ as_ascii() no longer generates trailing whitespace on lines
+ add css(), as_html_page(), html_page_footer(), html_page_header()
+ extend documentation, fix typos, add list of limitations
2005-01-03 v0.05 Tels 87 tests
* fix special paragraphs in pod to use =begin instead of =for
* typos in pod
* some more clarifications for LIMITATIONS
* move the layout code to Graph::Simple::Layout
* add a testcase with two not-connected node-pools in one graph
* amend README, INSTALL
2005-01-08 v0.06 Tels 94 tests
* fix version in Layout
* Edge: add EDGE_START, EDGE_END, EDGE_HOR, EDGE_VER, EDGE_CROSS
* Edge: add cell_type(), add_cell()
* fix pod with "=end graph" (vs. "=end") sections
* fix error message in t/ascii.t when reading file fails
* fix parser: did not add edge if both nodes already existed
* Layout: add _trace_straight_path() - trace a path horizontal/vertical
* Layout: add _remove_path() - remove a traced path
* tests: add t/layout.t, t/syntax/*
* add examples/syntax.pl, examples/syntax.tpl to create automatic
syntax test page for website
* Parser: add reset() and call it from from_text()
* Parser: handle quoted characters in node names
* Parser: handle comments
2005-01-09 v0.07 Tels 124 tests
* Parser: ignore empty lines
* Parser: unquote all special chars, not only the first
* Node: quote node name in as_txt()
* Parser: _parse_attributes();
* Graph: added attribute(), set_attributes()
* Graph: added id() to set/get a unique ID per graph
* Graph: default ID is '', CSS code contains ID in class names
* Parser: teach it to parse CSS and call $graph->set_attributes()
* Edge: output name in as_txt()
* Layout: use strict, fix _trace_straight_path()
* t/layout.t: add tests for _trace_straight_path()
* Layout: simplify _trace_path() by using _trace_straight_path()
* Layout: can trace straight edges occupying multiple cells
2005-01-10 v0.08 Tels 133 tests - Fix, fix, fix, fix the stupid bugs...
* grapher tries to place nodes without any incoming edges into first column
(this fixes all the examples which have groups of not-connected nodes)
* in HTML, use monospaced font for edges (prepare for box-art)
* Layout: set error if layout stage fails
* Edge: add EDGE_N_E, EDGE_N_W, EDGE_N_E_W etc for corner pieces
* Edge: add clear_cells()
* make _trace_path() more general by having _trace_straight_path() creating
the edge types
* Node: as_html(): no longer outputs 'style="border: none"' for class="edge"
* Node: include attributes in as_txt() as well as classes (for subclasses)
* Node: add class()
* Graph: always register nodes/edges with the graph
* Graph: as_txt() includes attributes (unless they are the defaults)
* Node: postpone calculation of 'w' (called by as_ascii() from Graph)
* add a stress test with a bend edge
2005-01-12 v0.09 Tels 147 tests - Place, place, place, place the pesky nodes...
* Layout: try to place node with only one predecessor around the predecessor
* add a stress test with a star-shaped graph (5 nodes)
* add a syntax test with newlines and one without any spaces
* Parser: accumulate left-over fragments to parse examples broken by newlines
* Parser: use compiled regexps for nodes, attributes etc
* Parser: finally handle trailing attributes on nodes
* Node: add set_attributes() for setting multiple ones at once
* Node: setting attribute "class" will set subclass instead
* add tests for parsing:
[ node ] { attribute: value; }
[ node ] { attribute: value; } -> [ node2] { attribute: value }
* fix edges going to the left
* tests for quoting in node names
2005-01-24 v0.10 Tels 248 tests - Color, color, color, color the pretty graph...
* added more stress/syntax tests
* fix parser to not treat colors in attributes as comments (like in
"color: #808080")
* use a pre-compiled regexp to match edges (cut down code-duplication)
* parser now handles successfully node chains like:
[ Ulm ] -> [ Lahn ] -> [ Bonn ]
-> [ Trier ]
[ Stein ] -> [ Wahns ]
* Simple.pm: fix edges() in list context to actually work
* require Graph v0.55 (to be safe)
* Node: add attributes_as_txt(), as_txt_node() to allow $graph->as_txt() to
output node attributes only once
* Graph: as_txt(): output node attributes only once
* Graph: add set_attribute()
* examples/syntax.pl: generate headlines from comments in input, include footer
* Graph: support attributes: linkbase, autolink, autotitle, link, title
* Graph: as_html(): output title attributes, as well as links