Difference between revisions of "Manual/File format"
< Manual
Jump to navigation
Jump to search
(File v4) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{vbox|0.9.5}} | ||
The native file format for Knotter is a human-readable XML. | The native file format for Knotter is a human-readable XML. | ||
Line 24: | Line 25: | ||
<cusp> <!-- Default cusp style --> | <cusp> <!-- Default cusp style --> | ||
<shape>pointed</shape> <!-- Shape of the cusp --> | <shape>pointed</shape> <!-- Shape of the cusp --> | ||
− | < | + | <angle>225</angle> <!-- Minimum angle (in degrees) to trigger a cusp redering --> |
<distance>32</distance> <!-- Distance from cusp and node --> | <distance>32</distance> <!-- Distance from cusp and node --> | ||
+ | <curve>24</curve> <!-- Curve control --> | ||
</cusp> | </cusp> | ||
<crossing> <!-- Default crossing style --> | <crossing> <!-- Default crossing style --> | ||
<gap>10</gap> <!-- Crossing gap --> | <gap>10</gap> <!-- Crossing gap --> | ||
<slide>0.5</slide> <!-- Crossing offset --> | <slide>0.5</slide> <!-- Crossing offset --> | ||
− | < | + | <curve>24</curve> <!-- Curve control --> |
</crossing> | </crossing> | ||
<stroke> | <stroke> | ||
Line 69: | Line 71: | ||
</node> | </node> | ||
</nodes> | </nodes> | ||
− | |||
<edges> <!-- list of edges --> | <edges> <!-- list of edges --> | ||
<edge style="wall" v1="node_1" v2="node_2"/> <!-- An edge connecting two nodes --> | <edge style="wall" v1="node_1" v2="node_2"/> <!-- An edge connecting two nodes --> | ||
Line 78: | Line 79: | ||
<style> <!-- Override default node style --> | <style> <!-- Override default node style --> | ||
<gap>5</gap> <!-- Can contain anything that is in /knot/style/crossing --> | <gap>5</gap> <!-- Can contain anything that is in /knot/style/crossing --> | ||
− | < | + | <curve>4</curve> <!-- But all the elements are optional --> |
</style> <!-- The value of such elements override the default edge style --> | </style> <!-- The value of such elements override the default edge style --> | ||
</edge> | </edge> | ||
Line 93: | Line 94: | ||
# The version from 0.5 to 0.8, it's mostly compatible with version 1 with only minor changes to how style is handled. | # The version from 0.5 to 0.8, it's mostly compatible with version 1 with only minor changes to how style is handled. | ||
# From 0.9.0 to 0.9.5 incompatible with previous versions. | # From 0.9.0 to 0.9.5 incompatible with previous versions. | ||
− | # Current version, it's mostly compatible with version 3 with | + | # Current version, it's mostly compatible with version 3 with some changes to how style is handled. |
Knotter 0.9.5 and above writes only knot files version 4 but is able to read older versions for compatibility. | Knotter 0.9.5 and above writes only knot files version 4 but is able to read older versions for compatibility. |
Latest revision as of 21:45, 16 October 2013
This page is updated to Knotter version 0.9.5 |
The native file format for Knotter is a human-readable XML.
Knot file v4
Follows a commented example file to show the XML elements and attributes
<?xml version="1.0" encoding="UTF-8"?>
<!--
<knot> Root element
version Knot document version, see below
generator String displaying the version of Knotter used to generate the file
-->
<knot version="4" generator="Knotter 0.9.5">
<style> <!-- Contains information about the display and style of the knot -->
<colors> <!-- List of colors -->
<color alpha="255">#99ff00</color> <!-- The text must be a valid SVG color (hex notation or name) -->
<color alpha="255">#ff9700</color> <!-- Alpha is the transparency, ranged from 0 to 255 -->
</colors>
<borders> <!-- List of borders -->
<border width="3" alpha="255">#000000</border> <!-- Same element as color, but with the width attribute-->
<border width="3" alpha="255">#ffffff</border>
<border width="1" alpha="255">#000000</border>
</borders>
<cusp> <!-- Default cusp style -->
<shape>pointed</shape> <!-- Shape of the cusp -->
<angle>225</angle> <!-- Minimum angle (in degrees) to trigger a cusp redering -->
<distance>32</distance> <!-- Distance from cusp and node -->
<curve>24</curve> <!-- Curve control -->
</cusp>
<crossing> <!-- Default crossing style -->
<gap>10</gap> <!-- Crossing gap -->
<slide>0.5</slide> <!-- Crossing offset -->
<curve>24</curve> <!-- Curve control -->
</crossing>
<stroke>
<width>5</width> <!-- Width of the ropes -->
<style>SolidPattern</style> <!-- Brush style, ignored as of 0.9.0 -->
<join>MiterJoin</join> <!-- Joint style -->
</stroke>
</style>
<graph> <!-- Graph structure -->
<nodes> <!-- List of all the nodes -->
<node id="node_1" x="-128" y="-160"/><!-- A node in the graph -->
<node id="node_2" x="-128" y="-96"/> <!-- id must be a valid XML ID, referenced by the edges -->
<node id="node_3" x="-64" y="-96"/> <!-- x,y are the position of the node -->
<node id="node_4" x="-64" y="-160"/>
<node id="node_5" x="0" y="-32">
<style> <!-- Override default node style -->
<shape>round</shape> <!-- Can contain anything that is in /knot/style/cusp -->
<distance>40</distance> <!-- But all the elements are optional -->
</style> <!-- The value of such elements override the default node style -->
</node>
<node id="node_6" x="-32" y="0">
<style>
<shape>round</shape>
<distance>40</distance>
</style>
</node>
<node id="node_7" x="0" y="32">
<style>
<shape>round</shape>
<distance>40</distance>
</style>
</node>
<node id="node_8" x="32" y="0">
<style>
<shape>round</shape>
<distance>40</distance>
</style>
</node>
</nodes>
<edges> <!-- list of edges -->
<edge style="wall" v1="node_1" v2="node_2"/> <!-- An edge connecting two nodes -->
<edge style="regular" v1="node_2" v2="node_3"/> <!-- style is the type of edge -->
<edge style="hole" v1="node_3" v2="node_4"/> <!-- v1 and v2 are the IDs of the vertices -->
<edge type="inverted" v1="node_4" v2="node_1"/>
<edge type="regular" v1="node_5" v2="node_6">
<style> <!-- Override default node style -->
<gap>5</gap> <!-- Can contain anything that is in /knot/style/crossing -->
<curve>4</curve> <!-- But all the elements are optional -->
</style> <!-- The value of such elements override the default edge style -->
</edge>
<edge type="regular" v1="node_6" v2="node_7"/>
<edge type="regular" v1="node_7" v2="node_8"/>
<edge type="regular" v1="node_8" v2="node_5"/>
</edges>
</graph>
</knot>
Knot file versions
- The first version from 0.1 to 0.4.
- The version from 0.5 to 0.8, it's mostly compatible with version 1 with only minor changes to how style is handled.
- From 0.9.0 to 0.9.5 incompatible with previous versions.
- Current version, it's mostly compatible with version 3 with some changes to how style is handled.
Knotter 0.9.5 and above writes only knot files version 4 but is able to read older versions for compatibility.