GitLab's annual major release is around the corner. Along with a lot of new and exciting features, there will be a few breaking changes. Learn more here.

Commit d537725b authored by Mark Hansen's avatar Mark Hansen
Browse files

Convert markdown pages to Hugo/Docsy

Had to move some inline Jekyll templating to shortcodes as Hugo
doesn't allow direct templating inside markdown files.

Put the markdown files in a nice hierarchy.

Move download.md to download/_index.md

Ensure all URLs stay the same.

Convert some markdown IDs to work with the new markdown parser.
parent f1eac5de
---
layout: default
redirect_from:
title: Graphviz
url: /
aliases:
# Fixes a broken Home Page link from Gallery pages.
- /_pages/
---
# Welcome to Graphviz
![Graphviz logo -- arrows pointing between circles on graph paper, with magnifying glass on top](/Resources/app.png)
Please join the [Graphviz forum](https://forum.graphviz.org) to ask
questions and discuss Graphviz.
......
---
layout: page
title: Graphviz build notes
redirect_from:
url: /doc/build.html
aliases:
- /_pages/doc/build.html
---
## External packages
......@@ -12,9 +12,9 @@ with reduced functionality if an external library is not found. Newer
versions of these libraries should be fine - if not, please let us know.
A list of these external libraries can be found on the Graphviz [source
download page](http://www.graphviz.org/download/source/).
download page](/download/source/).
### Notes:
### Notes
* GD (generic raster graphics driver for PNG, GIF, JPEG)
Graphviz contains a copy of libgd, but we hope to remove it eventually so the external library is preferred.
......
---
layout: page
title: Graphviz Build Instructions for Windows
redirect_from:
url: /doc/winbuild.html
aliases:
- /_pages/doc/winbuild.html
---
For building on Windows:
......@@ -197,7 +197,7 @@ made a static build of the libraries on MinGW.
replace these lines:
```make
```makefile
SUBDIRS = cdt graph agraph gd pathplan agutil sfio vmalloc ast vpsc \
circogen dotgen fdpgen neatogen twopigen common pack gvc \
ingraphs expr
......@@ -205,7 +205,7 @@ made a static build of the libraries on MinGW.
with these lines:
```make
```makefile
SUBDIRS = cdt graph agraph gd pathplan vpsc \
circogen dotgen fdpgen neatogen twopigen common pack gvc \
ingraphs
......
---
layout: page
title: Contact
permalink: /contact/
redirect_from:
url: /contact/
aliases:
# We want to redirect from /MailingList.php. We need ".php.html" else the
# redirect page is downloaded to ~/Downloads/ rather than shown in browser. See:
# https://github.com/jekyll/jekyll-redirect-from/issues/145#issuecomment-392277818
- /MailingList.php.html
order: 10
weight: 10
---
Please join the [Graphviz forum](https://forum.graphviz.org) to ask questions and discuss Graphviz.
......
---
layout: page
title: Credits
permalink: /credits/
order: 8
url: /credits/
weight: 8
---
......
---
layout: page
title: Documentation
permalink: /documentation/
order: 4
redirect_from:
url: /documentation/
weight: 4
aliases:
# We want to redirect from /Documentation.php. We need ".php.html" else the
# redirect page is downloaded to ~/Downloads/ rather than shown in browser. See:
# https://github.com/jekyll/jekyll-redirect-from/issues/145#issuecomment-392277818
- /Documentation.php.html
- /doc/info/
no_list: true
menu:
main:
weight: 20
pre: "<i class='fas fa-book'></i>"
---
## On-line reference pages
......
---
layout: page
title: Arrow Shapes
url: /doc/info/arrows.html
weight: 6
---
Arrow shapes can be specified and named using the following simple
grammar.
......@@ -10,7 +11,7 @@ Square brackets [ and ] enclose optional items.
Vertical bars | separate alternatives.
<TABLE>
{% include arrow_grammar.html %}
{{< arrow_grammar >}}
</TABLE>
The primitive shapes are:
......@@ -87,5 +88,5 @@ arrow shape. The node attached to the arrow is not drawn but would appear
on the right side of the edge.
<TABLE>
{% include arrow_table.html %}
{{< arrow_table >}}
</TABLE>
---
title: Node, Edge and Graph Attributes
layout: page
redirect_from:
url: /doc/info/attrs.html
aliases:
- /doc/info/attrs1.html
- /doc/info/attrs2.html
weight: 4
---
The table below describes the attributes used by various Graphviz tools.
The table gives the name of the attribute, the graph components (node,
......@@ -82,115 +83,13 @@ of the layout programs.
---
<TABLE ALIGN=CENTER>
<TR>
<TH>Name</TH>
<TH><A HREF="#h:uses">Used By</A></TH>
<TH>Type</TH>
<TH STYLE="text-align: center;">Default</TH>
<TH>Minimum</TH>
<TH>Notes</TH>
</TR>
{% assign sorted_attrs = site.attrs | sort_natural: "name" %}
{%- for attr in sorted_attrs %}
<TR>
<TD><A ID="a:{{ attr.name }}" HREF="#d:{{ attr.name }}">{{ attr.name }}</A></TD>
<TD>{{ attr.used_by | xml_escape }}</TD>
<TD>
{%- for type in attr.types -%}
{%- unless forloop.first -%}
<BR>
{%- endunless -%}
<A HREF="#k:{{type}}">{{type}}</A>
{%- endfor -%}
</TD>
<TD STYLE="text-align: center;">
{%- for default in attr.defaults -%}
{%- unless forloop.first -%}
<BR>
{%- endunless -%}
{{ default | xml_escape }}
{%- endfor -%}
</TD>
<TD>
{%- for minimum in attr.minimums -%}
{%- unless forloop.first -%}
<BR>
{%- endunless -%}
{{- minimum | xml_escape -}}
{%- endfor -%}
</TD>
<TD>
{%- if attr.flags.size == 0 -%}
{%- elsif attr.flags[0] == 'notdot' -%}
not dot
{%- else -%}
{%- for flag in attr.flags reversed -%}
{{ flag }}
{%- unless forloop.last %}, {% endunless -%}
{%- endfor %} only
{%- endif -%}
</TD>
</TR>
{%- endfor %}
</TABLE>
{{<attributes_toc>}}
---
## Attribute Descriptions
<DL>
{%- for attr in sorted_attrs %}
<DT>
<A ID="d:{{attr.name}}" HREF="#a:{{attr.name}}"><STRONG>{{ attr.name }}</STRONG></A> :
<I>
{%- for t in attr.types -%}
<A HREF="#k:{{t}}">{{t}}</A>
{%- unless forloop.last %}|{% endunless -%}
{% endfor -%}
{%- for d in attr.defaults %}
{%- if forloop.first %}, default: {% endif %}
{{ d | xml_escape }}
{%- unless forloop.last %}, {% endunless -%}
{%- endfor -%}
{%- for minimum in attr.minimums -%}
{%- if forloop.first %}, minimum: {% endif %}
{{- minimum | xml_escape -}}
{%- unless forloop.last %}, {% endunless -%}
{%- endfor -%}
</I>
</DT>
<DD>
{{- attr.content -}}
<P>
<I>Valid for:
{% assign used_by_characters = attr.used_by | split: "" | sort_natural %}
{%- for c in used_by_characters %}
{%- if c contains 'N' %} Nodes{% endif -%}
{%- if c contains 'E' %} Edges{% endif -%}
{%- if c contains 'G' %} Graphs{% endif -%}
{%- if c contains 'C' %} Clusters{% endif -%}
{%- if c contains 'S' %} Subgraphs{% endif -%}
{% unless forloop.last %},{% endunless -%}
{% endfor %}.</I>
<I>
{%- if attr.flags.size > 0 -%}
Note:
{% if attr.flags[0] == 'notdot' -%}
not dot
{% else -%}
{% for flag in attr.flags reversed -%}
{{ flag }}
{%- unless forloop.last %}, {% endunless -%}
{%- endfor %} only
{%- endif -%}
{%- endif -%}
</I>
</P>
</DD>
{% endfor %}
</DL>
{{<attribute_descriptions>}}
---
......@@ -204,16 +103,4 @@ For regular expressions, `(...)*` indicates 0 or more copies of the expression
enclosed in the parentheses, `(...)+` indicates 1 or more, and
`(...)?` denotes 0 or 1 copy.
{% assign sorted_attr_types = site.attr_types | sort_natural: "name" %}
{% for t in sorted_attr_types -%}
<H3 ID="k:{{t.name}}"><A HREF="#k:{{t.name}}">{{t.name}}</A></H3>
{{t.content}}
<I>Attributes:
{% assign attrs_for_type = sorted_attrs | where_exp: "attr", "attr.types contains t.name" %}
{%- for attr in attrs_for_type -%}
<A HREF="#d:{{ attr.name }}"><CODE>{{ attr.name }}</CODE></A>
{%- unless forloop.last %}, {% endunless -%}
{% endfor -%}
</I>
{% endfor %}
{{< attribute_type_descriptions >}}
---
layout: page
title: Character Set Reference
redirect_from:
url: doc/char.html
aliases:
- /_pages/doc/char.html
---
This reference is generated from: [http://www.w3.org/TR/html4/sgml/entities.html](http://www.w3.org/TR/html4/sgml/entities.html) using the `entities.tcl` demo program from the graphviz distribution.
......
---
layout: page
title: Color Names
url: /doc/info/colors.html
stylesheet: colors.css
weight: 7
---
* Table of Contents
{:toc}
Color names are resolved in the context of a
[color scheme](attrs.html#d:colorscheme). Graphviz currently
supports the [X11 scheme](#x11),
......@@ -20,15 +18,15 @@ The Brewer color schemes below are covered by this [license](#brewer_license).
## The X11 color scheme {#x11}
{% include x11_colors.html %}
{{< x11_colors >}}
## The SVG color scheme {#svg}
{% include svg_colors.html %}
{{< svg_colors >}}
## Brewer color schemes {#brewer}
{% include brewer_colors.html %}
{{< brewer_colors >}}
### ColorBrewer License {#brewer_license}
......
---
layout: page
title: Command-line Invocation
url: /doc/info/command.html
weight: 2
---
All Graphviz programs have a similar invocation:
......@@ -19,11 +20,11 @@ If no input files are supplied, the program reads from **stdin**.
**-E**_name_\[=_value_\]
: Set a default edge attribute, with default _value_ = `true`.
{:#minusK} **-K**_layout_
<span id="minusK">**-K**_layout_</span>
: Specifies which default layout algorithm to use, overriding the default from the command name. For example, running
`dot -Kneato` is equivalent to running `neato`.
{:#d:T} **-T**_format_\[:_renderer_\[:_formatter_\]\]
<span id="d:T">**-T**_format_\[:_renderer_\[:_formatter_\]\]</span>
: Set output language to one of the [supported formats](output.html).
By default, [attributed dot](output.html#d:dot) is produced.
......@@ -59,7 +60,7 @@ If no input files are supplied, the program reads from **stdin**.
If _library_ is the empty string `""`, the standard preamble
is not emitted.
{:#d:n} **-n**\[_num_\]
<span id="d:n">**-n**\[_num_\]</span>
: Sets no-op flag in **neato**.
If set, **neato** assumes nodes have already been
positioned and all nodes have a [pos](attrs.html#d:pos)
......@@ -99,7 +100,7 @@ If no input files are supplied, the program reads from **stdin**.
**-q**
: Suppress warning messages.
{:#d:s} **-s**\[_scale_\]
<span id="d:s">**-s**\[_scale_\]</span>
: Set input scale to _scale_. If this value is omitted,
72.0 is used. This number is used to convert the point coordinate
units used in the [pos](attrs.html#d:pos) attribute
......@@ -153,17 +154,17 @@ output, the graph will have these attributes.
Overridden by [DOTFONTPATH](#d:DOTFONTPATH).
_Used only if Graphviz is not built with the `fontconfig` library_
{:#d:DOTFONTPATH} **DOTFONTPATH**
<span id="DOTFONTPATH">**DOTFONTPATH**</span>
: List of pathnames giving directories which a program should search for fonts.
Overridden by [**fontpath**](attrs.html#d:fontpath).
_Used only if Graphviz is not built with the `fontconfig` library_
{:#d:SERVER_NAME} **SERVER_NAME**
<span id="d:SERVER_NAME">**SERVER_NAME**</span>
: If defined, this indicates that the software is running as a web application,
which restricts access to image files. See
[GV\_FILE\_PATH](#d:GV_FILE_PATH).
{:#d:GV_FILE_PATH} **GV\_FILE\_PATH**
<span id="GV_FILE_PATH">**GV\_FILE\_PATH**</span>
: If [SERVER_NAME](#d:SERVER_NAME) is defined, image files are
restricted to exist in one of the directories specified by `GV_FILE_PATH`.
This last is a list of directory pathnames, separated by semicolons in Windows or
......@@ -180,7 +181,7 @@ output, the graph will have these attributes.
image file is specified as an absolute or relative pathname, a warning is given and only
the base name is used.
{:#d:GVBINDIR} **GVBINDIR**
<span id="d:GVBINDIR">**GVBINDIR**</span>
: Indicates which directory contains the Graphviz config file and
plug-in libraries. If it is defined, the value overrides any other
mechanism for finding this directory. If Graphviz is properly installed,
......
---
layout: page
title: The DOT Language
redirect_from:
url: /doc/info/lang.html
aliases:
- /content/dot-language/
weight: 1
---
The following is an abstract grammar defining the DOT language.
Terminals are shown in bold font and nonterminals in italics.
......@@ -12,7 +13,7 @@ Square brackets `[` and `]` enclose optional items.
Vertical bars `|` separate alternatives.
<TABLE>
{% include grammar.html %}
{{< grammar >}}
</TABLE>
The keywords **node**, **edge**, **graph**, **digraph**, **subgraph**, and **strict** are case-independent.
......
---
layout: page
title: Output Formats
url: /doc/info/output.html
stylesheet: output.css
weight: 3
---
The output format is specified with the **-T**_lang_
flag on the [command line](command.html), where _lang_
......@@ -23,48 +24,17 @@ Thus, positions in the
[plain-ext](#d:plain-ext)
formats need to be interpreted in this manner.
<TABLE ALIGN="CENTER">
<TR>
<TH>Command-line<BR>parameter</TH>
<TH>Format</TH>
</TR>
{%- assign sorted_formats = site.formats | sort_natural: "params" -%}
{% for f in sorted_formats %}
<TR>
<TD STYLE="text-align: center;">
{%- for p in f.params -%}
<A NAME="a:{{p}}" HREF="#d:{{p}}">{{p}}</A>
{%- unless forloop.last %}
<BR>
{%- endunless %}
{%- endfor %}
</TD>
<TD>{{ f.name }}</TD>
</TR>
{%- endfor %}
</TABLE>
{{<outputs_toc>}}
---
## Format Descriptions
<DL>
{% for f in sorted_formats -%}
{%- for p in f.params -%}
<DT>
<A NAME="d:{{p}}" HREF="#a:{{p}}"><STRONG>{{p}}</STRONG></A>
{%- unless forloop.last -%},{%- endunless -%}
</DT>
{%- endfor -%}
<DD>
{{- f.content }}
</DD>
{% endfor %}
</DL>
{{<format_descriptions>}}
* * *
## Image Formats {#d:image_fmts}
## Image Formats
The [image](attrs.html#a:image) and [shapefile](attrs.html#a:shapefile) attributes specify an image file to be included
as part of the final diagram. Not all image formats can be read. In addition,
......
---
layout: page
title: Node Shapes
url: /doc/info/shapes.html
stylesheet: shapes.css
weight: 5
---
* Table of Contents
{:toc}
There are three main types of shapes :
[polygon-based](shapes.html#polygon),
[record-based](shapes.html#record) and
......@@ -30,14 +28,7 @@ the node attributes
The possible polygon-based shapes are displayed below.
{% for shape in site.data.shapelist %}
<figure class="gv-shape">
<div class="gv-shape-img-container">
<img src="{{shape}}.gif" class="gv-shape-img">
</div>
<figcaption class="gv-shape-caption"><code id="d:{{shape}}">{{shape}}</code></figcaption>
</figure>
{% endfor %}
{{< polygons >}}
As the figures suggest, the shapes `rect` and `rectangle` are synonyms for `box`, and `none` is a synonym for `plaintext`.
The shape `plain` is similar to these two, except that it also enforces
......@@ -214,7 +205,8 @@ it then looks like:
![](mrecord.gif)
## Styles for Nodes {#d:style}
## Styles for Nodes
The [`style`](attrs.html#d:style)
attribute can be used to modify the appearance of a node.
At present, there are 8 style values recognized:
......@@ -225,7 +217,7 @@ attribute can be a comma-separated list of any of these. If the
style contains conflicts (e.g, `style="dotted, solid"`), the last
attribute wins.
{:#filled} `filled`
<code id="filled">filled</code>
: This value indicates that the node's interior should be filled.
The color used is the node's `fillcolor` or, if that's not defined, its
`color`. For unfilled nodes, the interior of the node is transparent to
......@@ -248,11 +240,11 @@ attribute wins.
![](fill.gif)
{:#d:invisible} `invisible`
<code id="d:invisible">invisible</code>
: Setting this style causes the node not to be displayed at all.
Note that the node is still used in laying out the graph.
{:#d:diagonals} `diagonals`
<code id="d:diagonals">diagonals</code>
: The diagonals style causes small chords to be drawn near the vertices
of the node's polygon or, in case of circles and ellipses, two chords near
the top and the bottom of the shape. The special node shapes
......@@ -262,7 +254,7 @@ attribute wins.
are simply an ordinary square, circle and
diamond with the diagonals style set.
{:#d:rounded} `rounded`
<code id="d:rounded">rounded</code>
: The rounded style causes the polygonal corners to be smoothed.
Note that this style also applies to record-based nodes. Indeed,
the `Mrecord` shape is simply shorthand for setting this style.
......@@ -287,17 +279,17 @@ attribute wins.
![](round.gif)
{:#d:dashed} `dashed`
<code id="d:dashed">dashed</code>
: This style causes the node's border to be drawn as a dashed line.
{:#d:dotted} `dotted`
<code id="d:dotted">dotted</code>
: This style causes the node's border to be drawn as a dotted line.
{:#d:solid} `solid`
<code id="d:solid">solid</code>
: This style causes the node's border to be drawn as a solid line,
which is the default.
{:#d:bold} `bold`
<code id="d:bold">bold</code>
: This style causes the node's border to be drawn as a bold line.
See also [penwidth](attrs.html#d:penwidth).
......@@ -371,7 +363,7 @@ Note that, as in HTML, element and attribute names are case-insensitive.
[HTML 4.01 specification](http://www.w3.org/TR/html401)).
<TABLE>
{% include html_grammar.html %}
{{< html_grammar >}}
</TABLE>
All non-printing characters such as tabs or newlines are ignored.
......@@ -407,7 +399,7 @@ easier reading.
Each of the HTML elements has a set of optional attributes.
Attribute values must appear in double quotes.
{:#table} Table element
<span id="table">Table element</span>
: <pre>
&lt;TABLE
<a href="#align">ALIGN</a>="CENTER|LEFT|RIGHT"
......@@ -435,13 +427,13 @@ Attribute values must appear in double quotes.
&gt;
</pre>
{:#tr} Table row
<span id="tr">Table row</span>
: <PRE>&lt;TR
&lt;!-- No attributes --&gt;
&gt;
</PRE>
{:#td} Table cell
<span id="td">Table cell</span>
: <PRE>