Name | Modified | Size | Downloads / Week |
---|---|---|---|
sample.png | 2024-01-14 | 351.0 kB | |
README.md | 2024-01-14 | 15.8 kB | |
sample.fl0 | 2024-01-14 | 3.4 kB | |
CHANGES.md | 2024-01-14 | 1.6 kB | |
flo2pix | 2024-01-14 | 16.6 kB | |
flo_0.5.tar.gz | 2024-01-14 | 328.8 kB | |
flo_v0.4.tar.gz | 2023-05-01 | 10.9 kB | |
flo_v0.3.tar.gz | 2023-04-09 | 10.5 kB | |
flo_v0.2.tar.gz | 2023-04-07 | 10.0 kB | |
flo_v0.1.tar.gz | 2023-03-24 | 9.7 kB | |
Totals: 10 Items | 758.3 kB | 0 |
FLO MARKUP LANGUAGE
— updated: 2024/01/14
Introduction:
FLO is a new markup language that makes it easier to visualize complex systems, processes, and relationships in text form. It is suitable for systems of all sizes, from small and simple to large and complex.
With its simple text format, FLO allows users to easily create diagrams and visual representations of even the most intricate concepts. Whether you are an engineer, scientist, educator, storyteller, or just someone who wants to better understand the world around you, FLO provides a simple, yet powerful tool for presenting information.
What sets FLO apart is its ease of use. Unlike other markup languages that can be complex and difficult to learn, FLO has a simple set of rules that can be easily understood and applied by anyone.
The language allows you to create descriptions of nodes and define the connections between them using just a few lines of text. This simplicity makes it possible for anyone, regardless of their technical expertise, to create powerful visualizations that can be used to communicate complex concepts to others.
One of the key advantages of FLO is its power. With FLO, you can create diagrams and visualizations of virtually anything. Whether you are working on a complex engineering project, mapping out the relationships between different parts of a biological system, or visualizing the flow of a story by their plot points, FLO provides a powerful tool for representing complex information in a clear and concise way.
But FLO is not just a powerful tool for professionals. It also has a wide range of practical applications for everyday users. For example, FLO can be used to create mind maps, which can help you organize your thoughts and ideas. It can also be used to create diagrams of processes, which can help you better understand how different parts of a system work together. FLO can also be used in education, as a tool for teachers to create visual aids for their lessons. Finally, FLO can be used by anyone who wants to create beautiful visualizations for their personal projects or hobbies.
In particular, storytelling is an area where FLO can be quite useful. By visualizing the flow of a story by their plot points, FLO can help authors, filmmakers, and other storytellers better understand the structure of their stories.
With FLO, it is possible to create a visual representation of the plot, with each plot point represented by a node and the connections between them showing the flow of the story. This makes it possible to see the overall structure of the story, identify any weak spots, and make changes to improve the flow and pacing.
In conclusion, FLO is a powerful and versatile markup language that has a wide range of practical applications. Its simplicity and ease of use make it accessible to anyone, regardless of their technical expertise, and its power makes it possible to create visualizations of even the most complex systems, processes, and relationships. Whether you are a professional, a student, or just someone who wants to better understand the world around you, FLO provides a powerful tool for organizing and presenting information.
Descriptions, Flows, and Comments
A FLO-formatted text consists of descriptions, flows, and comments. A description describes an element in the flowchart by a unique node-ID and its description. A flow defines the connections between the descriptions (node-IDs). A comment is any line that is not a description or a flow. The order of descriptions and comments in a FLO text is irrelevant. The order of flows in a FLO text determines the order in which the nodes are displayed (but has no effect on their connections). It is good practice to put flows directly after descriptions.
DESCRIPTION
A description starts with a number (node-ID), followed by a period, a space, and the description. A newline determines the end of the description. Asterisks in descriptions will be replaced with spaces. Node-IDs should be unique, otherwise the file is invalid. The following characters are not allowed in FLO texts: { } | \ < >
FLOW
The flow lines define the connections between the nodes. A flow line starts with the word "from ", followed by one or more (comma-separated) source node-IDs, the word "to", and one or more (comma-separated) destination node-IDs. The nodes on the left side of "to" are connected to the nodes on the right side.
Here's an example flow line that connects node 1 to node 2:
from 1 to 2
And here's an example flow line that connects nodes 3 and 4 to nodes 5 and 6:
from 3,4 to 5,6
COMMENT
All lines NOT starting with either a number+period or 'from', are comments. Comments may use all available characters.
Example 1:
- Start the car engine.
- Check the fuel gauge. from 1 to 2
The above example describes two nodes: "Start the car engine" and "Check the fuel gauge", and a flow between them.
Example 2:
Suppose we want to create a simple graph with 3 nodes: A, B, and C, with the following connections: A → B and B → C. Here's how we would write it in the text format:
1. A
2. B
3. C
from 1 to 2
from 2 to 3
Each node is described on its own line, starting with a period and a (unique) node-ID, followed by a space and its description. The node-ID can be any alphanumeric string, but it's a good practice to use numbers for simplicity. The connections between the nodes are specified with flow lines, which start with a dash, followed by the IDs of the source nodes, two dashes, and the IDs of the destination nodes.
Example 3:
Let's move on to a more complex example. Here's the graph we want to create:
+-----------+
| 1 |
| Text nr 1 |
+-----------+
|
v
+-----------+
| 3 |
| Text nr 3 |
+-----------+
/ \
v v
+-----------+ +-----------+
| 2 | | 4 |
| Text nr 2 | | Text nr 4 |
+-----------+ +-----------+
\ /
v v
+-----------+
| 9 |
| Text nr 9 |
+-----------+
/ \
v v
+-----------+ +-----------+
| 8 | | 5 |
| Text nr 8 | | Text nr 5 |
+-----------+ +-----------+
\ /
v v
+-----------+
| 7 |
| Text nr 7 |
+-----------+
| ^
v |
+-----------+
| 6 |
| Text nr 6 |
+-----------+
|
v
+-----------+
| 11 |
| Text nr 11|
+-----------+
|
v
+-----------+
| 10 |
| Text nr 10|
+-----------+
First, we define the descriptions for each node with the period notation. Each description should be unique. We can then define the connections between the nodes with the dash notation:
# Descriptions:
1. Text nr 1
2. Text nr 2
3. Text nr 3
4. Text nr 4
5. Text nr 5
6. Text nr 6
7. Text nr 7
8. Text nr 8
9. Text nr 9
10. Text nr 10
11. Text nr 11
# Flow:
from 1 to 3
from 2,4 to 9
from 3 to 2,4
from 6 to 7,11
from 7 to 6
from 9 to 5,8
from 11 to 10
Final example: "Avengers — The End Game", a story structure in FLO
The following example is a FLO-file is the story structure of "Avengers — The End Game". Try this out for yourself:
Descriptions
1. Thanos has wiped out half of all life in the universe with the Infinity Stones
2. The surviving Avengers locate Thanos on a distant planet and confront him
3. Thanos reveals he has destroyed the Infinity Stones to prevent their use again
4. Thor kills Thanos in anger, but it is too late to undo his actions
5. Five years later, Ant-Man returns from the quantum realm and proposes a plan to use time travel to retrieve the Infinity Stones from the past
6. The Avengers split into teams and travel to different points in time where they encountered the Infinity Stones before
7. Team 1 (Iron Man, Captain America, Ant-Man, Hulk) goes to New York in 2012 during the Battle of New York
8. Team 2 (Thor, Rocket) goes to Asgard in 2013 during Thor: The Dark World
9. Team 3 (Hawkeye, Black Widow) goes to Vormir in 2014 before Guardians of the Galaxy
10. Team 4 (Nebula, War Machine) goes to Morag in 2014 during Guardians of the Galaxy
11. Team 1 successfully retrieves the Mind Stone from Loki's scepter and the Time Stone from Ancient One
12. Team 2 successfully retrieves the Reality Stone from Jane Foster
13. Team 3 successfully retrieves the Soul Stone after Black Widow sacrifices herself
14. Team 4 successfully retrieves the Power Stone before Star-Lord does
15. Loki escapes with the Tesseract containing the Space Stone after a mishap by Ant-Man
16. Thor takes Mjolnir from his past self
17. Past Nebula is captured by past Thanos who learns about their plan through her neural network
18. Present Nebula is swapped with past Nebula who infiltrates their team
19. Team 1 fails to secure the Space Stone and decides to go further back in time to 1970 where they find it at a S.H.I.E.L.D facility along with more Pym Particles for their return trip
20. Team 2 returns to present with Reality Stone and Mjolnir
21. Team 3 returns to present with Soul Stone but mourns Black Widow's death
22. Team 4 returns to present with Power Stone but realizes that Nebula has been replaced by her past self
23. The Avengers return to present with all six Infinity Stones and create a new gauntlet
24. Hulk uses gauntlet to bring back everyone who was snapped away by Thanos
25. Past Thanos arrives with his army through portal created by past Nebula
26. A massive battle ensues between Thanos' forces and Avengers' allies who have been resurrected
27. Iron Man steals Infinity Stones from Thanos and uses them to disintegrate him and his army but dies from energy surge
28. Captain America returns Infinity Stones and Mjolnir back their original timelines then decides live out his life Peggy Carter alternate timeline
29. An elderly Captain America passes on his shield mantle Falcon
Flows
from 1 to 2
from 1,2,3,4 to 5
from 1,2,3,4 to 7
from 2 to 3
from 3,4 to 9
from 4 to 8
from 4 to 10
from 4 to 16
from 5 to 6
from 5,8 to 1
from 7 to 19
from 9 to 14
from 10 to 13
from 16 to 23
from 14 to 23
from 13 to 23
from 19 to 23
from 23 to 24
from 11 to 23
from 12 to 23
from 15 to 23
from 23 to 26
from 17 to 18
from 18 to 26
from 26 to 27
from 23 to 28
from 28 to 29
Short flow notations in FLO
Instead of "from" you can use the dash (-) character. Instead of "to" you can use double dashes (--).
from 1 to 2 can be noted as: -1--2
from 1,2,3,4 to 7 can be noted as: -1,2,3,4--7
from 4 to 5,6,7 can be noted as: -4--5,6,7
FLO2PIX
FLO2PIX is a versatile tool that converts FLO-formatted files to PNGs and DOTs for easy visualization and customization of flow diagrams.
Generating Visual Representations of FLO Markup Files with FLO2PIX
When working with the FLO Markup format, files are typically saved with the extension ".fl0" (Foxtrot Lima Zero) to indicate that they are FLO files. Once a FLO file has been created, it can be converted into a graphical format using a tool called FLO2PIX. This tool takes a FLO file as input and produces a visual representation of the flow diagram as output, typically in PNG or SVG format. The resulting image can be used for a variety of purposes, such as including it in a document, presentation or website, or sharing it with others who may not be familiar with the FLO Markup format. FLO2PIX is an important tool for working with FLO files, as it allows users to easily visualize the flow diagram without having to manually draw it.
USAGE
flo2pix [-e engine] [-d direction] inputfile
Options: -e engine: Specify the layout engine to use (dot, circo, fdp, neato, osage, twopi). Default is 'dot'. -d direction: Specify the direction of the layout (down, up, left, right). Default is 'down'. inputfile: The input file in FLO format.
Examples: flo2pix input.flo # Convert input.flo to input.png using default settings flo2pix -e neato input.flo # Convert input.flo to input.png using neato engine flo2pix -d left input.flo # Convert input.flo to input.png with left direction flo2pix -e twopi -d up input.flo # Convert input.flo to input.png using twopi engine and up direction
To convert the "Avengers — The End Game" FLO text to a PNG image, save it as a FLO-text (f.e.: "Avengers_endgame.fl0") and run the following command:
flo2pix avengers_endgame.fl0
This will create two files: Avengers_endgame.png and Avengers_endgame.dot. The PNG file is a visual representation of the flow, and the DOT file can be used to customize the flow diagram.
Enhancing Flow Diagrams with FLO2PIX's Conversion to Graphviz DOT Files
In addition to its primary function of generating visual representations of FLO Markup files, the FLO2PIX tool also provides an option to convert FLO files to input files for Graphviz in the form of DOT files. Graphviz is an open source graph visualization software that can be used to create graphs and diagrams in various formats, including PNG, SVG, PDF, and more.
The ability to convert FLO files to DOT files is a valuable feature for users who wish to further customize or enhance their flow diagrams. Once a FLO file has been converted to a DOT file, it can be imported into Graphviz and edited using the many features and options available within the software. For example, users can change the layout, font style, or color of the diagram, add annotations, or create interactive elements such as hyperlinks or tooltips.
By providing users with the option to convert FLO files to DOT files, FLO2PIX allows them to leverage the power and flexibility of Graphviz to create more complex and visually appealing diagrams. This can be particularly useful in scenarios where a high degree of customization is required or when working with large and complex flow diagrams that may be difficult to create or visualize using other tools. Overall, the FLO2PIX tool, with its ability to generate visual representations of FLO files and convert them to DOT files for use in Graphviz, is an important asset for anyone working with FLO Markup files.