Graph-Easy
view release on metacpan or search on metacpan
* Layout: move path management code to Graph::Simple::Layout::Path
* Layout: find path loops (from one node back to same node again)
* Layout: find U-shaped paths
* Edge : add styles for EDGE_x_y (x = N/S, y = E/W)
2005-05-17 v0.16 Tels 426 tests - Make, make, make, make the invisible nodes...
* forgot to include As_svg.pm
* Simple.pm: Note other formats in NAME and SYNOPSIS sections
* As_svg: small cleanups
2005-05-16 v0.15 Tels 422 tests - Make, make, make, make the invisible nodes...
* load the As_*() modules on-demand
* fixed NAME in As_graphviz
* add basic support for node shapes
* Node: add del_attribute(), as_svg(), title()
* Parser: check attributes more closely
* Parser: support [] for anonymous, invisible nodes
* added Graph::Simple::Node::Anon
* Graph: move code to prepare layout from as_ascii() to _prepare_layout()
since it can be reused by as_svg()
* as_html: deal better with empty graphs
* as_graphviz: default node shape is rectangular
* Node: successor/predecessor did corrupt nodes w/o a graph
* Node: add _reset_id() for testsuite
* require Graph 0.65
2005-04-11 v0.14 Tels 354 tests - Lay, lay, lay, lay out the edges...
* add experimental graphviz output
* require Graph 0.61
2005-02-12 v0.13 Tels 345 tests - Group, group, group, group the nodes...
* shorten CSS considerable (especially for graphs with groups)
* fix CSS for Opera/Firefox for vertical edges
* fix node-borders for Firefox/Opera by inserting dummy cells at each row
2005-02-07 v0.12 Tels 345 tests - Group, group, group, group the nodes...
* register groups with the graph when adding them
* Parser: parse attributes on groups like: "( Group [ Node ] ) { ... }"
* Parser: parse attributes on edges like: "[ 1 ] -> { ... } [ 2 ]"
* Group: handle attribute "nodeclass" - put nodes into that class
* Node: handle attribute "group" - puts node into that group
* Node: query "node.class" from graph before trying just "node"
* Node: convert literal "\n" in label/name to "<br>"
* Layout: padd around all cells with filler cells (to make group backgrounds
really work)
* Layout: cleanup on group output
* as_txt(): output attributes of a group
* add Graph::Simple::Node::Cell, Graph::Simple::Group::Cell
* moved Graph::Simple::Path to Graph::Simple::Edge::Cell
* Graph: shorten HTML output by combining table cells with colspan=X
* Graph: use CSS child selectors to shorten classnames (and remove
class='fill' or class='' from output)
* Graph: as_html(): fix IDs on labels, lines etc
* Graph: fix layout code for edges with labels: no longer needs position:
relative, allows better copy&paste and is not garbled on scrolling
* syntax.pl: support custom template name
* simplifiy and generalize t/simple.t
* always run test files under -w
* don't use warnings (for older perls)
* remove needless routines in subclasses of "Node"
* use Test::Differences if t/ascii.t fails
2005-01-31 v0.11 Tels 294 tests - Close, close, close, close the ugly holes...
* Parser: add parsing of groups like in "( Groupname [ Node ] )"
* Parser: fix for "[1] -> [2] -> [3] { ... }" to not lose attributes on 3
* Parser: can now handle "[1], [2], [3] -> [4]" correctly
* Parser: cut out rendundant parsing code
* Graph: add group(), add_group(), del_group(), groups()
* Graph: fix css(): 'link', 'label' and 'title' do not need to appear in CSS
* Graph: suppress default attributes from groups, too
* Graph: close "holes" in "arrows" (edges) with line-height & letter-spacing
* Graph: inherit background from page, no border as default
* Graph: as_html() - remove trailing empty tags for shorter output
* Node: add group(), groups(), add_to_groups()
* Node: rename as_txt_node() to as_pure_txt(), document it
* Node: add label() and the handling of the label-attribute
* Node: support "label" as property in autolink/autotitle
* Node: as_txt(): no need to quote ":" and " " in attribute values
* Node: as_html(): quote " " in URLs
* Move as_txt() to As_txt.pm to reduce code size
* Group: keep nodes indexed by their name
* Group: fix as_txt() to quote group name, and include nodes
* Group: fix: add_nodes() did include the group itself by accident
* include examples/base.css for output of syntax.pl
* fix examples/syntax.tpl to have a non-scrolling menu
* add command-line dirnames to syntax.pl
* include t/fun/ - fun with graph-examples
* added Graph::Simple::Path and refactored Edge code - an edge now only
knows as_txt(); The other two, as_html() and as_ascii() are handled by
Path.pm (for each element of the edge separately)
* more syntax examples
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, add footer
* Graph: support attributes: linkbase, autolink, autotitle, link, title
* Graph: as_html(): output title attributes, as well as links
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:
( run in 2.598 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )