gvti 0.1.0.0 → 0.1.1.0
raw patch · 5 files changed
+172/−133 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- 4895040000.example.neato.gv.svg +97/−0
- ChangeLog.md +5/−85
- Main.hs +0/−37
- README.markdown +68/−9
- gvti.cabal +2/−2
+ 4895040000.example.neato.gv.svg view
@@ -0,0 +1,97 @@+<?xml version="1.0" encoding="UTF-8" standalone="no"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">+<!-- Generated by graphviz version 5.0.1 (20220820.1526)+ -->+<!-- Title: 1 Pages: 1 -->+<svg width="414pt" height="271pt"+ viewBox="0.00 0.00 414.47 271.08" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 267.08)">+<title>1</title>+<polygon fill="white" stroke="none" points="-4,4 -4,-267.08 410.47,-267.08 410.47,4 -4,4"/>+<!-- glue -->+<g id="node1" class="node">+<title>glue</title>+<ellipse fill="none" stroke="black" cx="195.56" cy="-82.01" rx="27" ry="18"/>+<text text-anchor="middle" x="195.56" y="-78.31" font-family="Times,serif" font-size="14.00">glue</text>+</g>+<!-- spreadsheets -->+<g id="node2" class="node">+<title>spreadsheets</title>+<ellipse fill="none" stroke="black" cx="277.99" cy="-18" rx="55.49" ry="18"/>+<text text-anchor="middle" x="277.99" y="-14.3" font-family="Times,serif" font-size="14.00">spreadsheets</text>+</g>+<!-- glue->spreadsheets -->+<g id="edge1" class="edge">+<title>glue->spreadsheets</title>+<path fill="none" stroke="black" d="M213.45,-68.12C223.58,-60.25 236.52,-50.2 248.15,-41.17"/>+<polygon fill="black" stroke="black" points="250.58,-43.72 256.33,-34.82 246.29,-38.19 250.58,-43.72"/>+</g>+<!-- GraphViz -->+<g id="node4" class="node">+<title>GraphViz</title>+<ellipse fill="none" stroke="black" cx="151.41" cy="-162.91" rx="44.69" ry="18"/>+<text text-anchor="middle" x="151.41" y="-159.21" font-family="Times,serif" font-size="14.00">GraphViz</text>+</g>+<!-- glue->GraphViz -->+<g id="edge3" class="edge">+<title>glue->GraphViz</title>+<path fill="none" stroke="black" d="M186.19,-99.17C180.3,-109.96 172.58,-124.11 165.91,-136.34"/>+<polygon fill="black" stroke="black" points="162.78,-134.77 161.06,-145.22 168.92,-138.12 162.78,-134.77"/>+</g>+<!-- tabular interface -->+<g id="node3" class="node">+<title>tabular interface</title>+<ellipse fill="none" stroke="black" cx="256.09" cy="-210.85" rx="68.49" ry="18"/>+<text text-anchor="middle" x="256.09" y="-207.15" font-family="Times,serif" font-size="14.00">tabular interface</text>+</g>+<!-- tabular interface->glue -->+<g id="edge2" class="edge">+<title>tabular interface->glue</title>+<path fill="none" stroke="black" d="M247.67,-192.93C237.4,-171.08 219.96,-133.94 208.1,-108.71"/>+<polygon fill="black" stroke="black" points="211.13,-106.92 203.71,-99.36 204.79,-109.9 211.13,-106.92"/>+</g>+<!-- using neato -->+<g id="node5" class="node">+<title>using neato</title>+<ellipse fill="none" stroke="black" cx="355.13" cy="-170.09" rx="51.19" ry="18"/>+<text text-anchor="middle" x="355.13" y="-166.39" font-family="Times,serif" font-size="14.00">using neato</text>+</g>+<!-- tabular interface->using neato -->+<g id="edge5" class="edge">+<title>tabular interface->using neato</title>+<path fill="none" stroke="black" d="M292.97,-195.67C299.32,-193.06 305.97,-190.32 312.47,-187.65"/>+<polygon fill="black" stroke="black" points="313.9,-190.84 321.81,-183.8 311.23,-184.37 313.9,-190.84"/>+</g>+<!-- GraphViz->tabular interface -->+<g id="edge4" class="edge">+<title>GraphViz->tabular interface</title>+<path fill="none" stroke="black" d="M181.12,-176.52C190.94,-181.02 202.07,-186.11 212.7,-190.98"/>+<polygon fill="black" stroke="black" points="211.31,-194.19 221.86,-195.17 214.22,-187.83 211.31,-194.19"/>+</g>+<!-- visualization -->+<g id="node7" class="node">+<title>visualization</title>+<ellipse fill="none" stroke="black" cx="55.9" cy="-76.34" rx="55.79" ry="18"/>+<text text-anchor="middle" x="55.9" y="-72.64" font-family="Times,serif" font-size="14.00">visualization</text>+</g>+<!-- GraphViz->visualization -->+<g id="edge7" class="edge">+<title>GraphViz->visualization</title>+<path fill="none" stroke="black" d="M132.99,-146.22C118.64,-133.22 98.53,-114.98 82.44,-100.4"/>+<polygon fill="black" stroke="black" points="84.67,-97.7 74.91,-93.58 79.97,-102.89 84.67,-97.7"/>+</g>+<!-- example -->+<g id="node6" class="node">+<title>example</title>+<ellipse fill="#ffffba" stroke="black" cx="96.01" cy="-245.08" rx="40.89" ry="18"/>+<text text-anchor="middle" x="96.01" y="-241.38" font-family="Times,serif" font-size="14.00">example</text>+</g>+<!-- example->GraphViz -->+<g id="edge6" class="edge">+<title>example->GraphViz</title>+<path fill="none" stroke="black" d="M107.75,-227.66C115.39,-216.33 125.49,-201.36 134.04,-188.67"/>+<polygon fill="black" stroke="black" points="136.99,-190.56 139.67,-180.32 131.18,-186.65 136.99,-190.56"/>+</g>+</g>+</svg>
ChangeLog.md view
@@ -1,91 +1,11 @@-# Revision history for mmsyn4--## 0.1.0.0 -- 2019-10-17--* First version. Released on an unsuspecting world.--## 0.1.1.0 -- 2019-10-18--* First version revised A. Some documentation and .cabal file improvements.--## 0.1.1.1 -- 2019-10-18--* First version revised B. Some minor documentation and .cabal file improvements.--## 0.1.2.0 -- 2019-10-22--* First version revised C. Changed the output files scheme. Avoided a pipe redirection in the terminal.- Some minor documentation and .cabal file improvements.--## 0.1.3.0 -- 2019-12-16--* First version revised D. Added the possibility to avoid using the at-sign in the resulting visualization file. Added the possibility to choose-different splines schemes according to the GraphViz documentation.--## 0.1.4.0 -- 2019-12-17--* First version revised E. Added filtering for not to duplicate records in the-.gv file. Some minor documentation improvement.--## 0.1.5.0 -- 2019-12-24--* First version revised F. Changed dependency bounds so that it can now be compiled for GHC 8.8.1.--## 0.1.6.0 -- 2020-01-31--* First version revised G. Changed README to README.markdown--## 0.2.0.0 -- 2020-05-14--* Second version. Changed the bounds for dependencies so that now also GHC 8.10* series is supported. Changed a module structur so that now it has-additional module MMSyn4 with almost all functions in it (they mostly are not exported because of their specific usage). Added possibility-to specify another basic file to work with except 1.csv. Added a possibility to specify an output graphics format. Some code and-documentation improvements.--## 0.3.0.0 -- 2020-05-16--* Third version. The code is almost fully rewritten. Fixed issues with wrong processing and formatting of the file. Fixed issue with double-printed prompt message in the MMSyn4 module. Changed the exported and imported functions and dependencies for modules. Added the possibility-to specify three additional command line arguments to specify the command to be executed to create the visualization file and its format.-So, now the program behavior can be basically controlled with command line arguments.--## 0.3.1.0 -- 2020-05-16--* Third version revised A. Added CPP pre-processor to support compilation also for GHC-7.8* series.--## 0.3.1.1 -- 2020-05-16--* Third version revised B. Trying the same as above with more specific syntaxis and LANGUAGE CPP pragma.--## 0.4.0.0 -- 2020-05-19--* Fourth version. Added the new command line arguments "-y", "-s...", "-b..." to specify whether to remove the '@' markers, which option is used to splines-GraphViz functionality and what is the basic name for the created files respectively. For this changed the functions. Some documentation additions-respectively.--## 0.5.0.0 -- 2020-10-29--* Fifth version. Changed the inlining policies. Some minor code improvements. Boundaries changes for dependencies.--## 0.6.0.0 -- 2020-12-15--* Sixth version. Switched to the GHC.Arr module from the base package. Removed vector and mmsyn2 as dependencies.-Some code improvements.--## 0.6.1.0 -- 2020-12-15--* Sixth version revised A. Removed also mmsyn2-array as a dependency.--## 0.6.2.0 -- 2020-12-16+# Revision history for gvti -* Sixth version revised B. Fixed issue with incorrectly defined fold that has led to incorrect some results.+## 0.1.0.0 -- 2022-11-12 -## 0.6.3.0 -- 2020-12-16+* First version. Released on an unsuspecting world. Is a fork of the now deprecated mmsyn4 package. -* Sixth version revised C. Fixed another issue with incorrectly defined fold that has led to incorrect some results.+## 0.1.1.0 -- 2022-11-12 -## 0.6.4.0 -- 2022-08-13+* First version revised A. Some documentation improvements. -* Sixth version revised D. Updated the dependencies so that the newer versions of the dependencies-are supported.
Main.hs view
@@ -19,43 +19,6 @@ import Data.Char (isLetter, isDigit) import Formatting (formatLines) -{-| Usage with only the first command line--1. After installation the executable gvti is created. Afterwards, it is used to process files. So, open an office spreadsheet program, -e. g. LibreOffice Calc.-2. Begin to enter the text in the cells. You can use Unicode characters. No quotation marks should be used, instead use some -special delimiter except '@' sign.-3. Do not use colons, instead when needed switch to the nearest cell to the right. -4. To make a text visually highlighted (yellowish), start the cell with an ’@’ sign.-5. Lines in the table create different chains in the resulting graph. To produce an arrow to the text in the cell, enter it in the next cell -in the row to the right.-6. To make several arrows from the cell, switch to the next cell to the right for this parent one (the cell that will be a parent -for several other cells), enter needed new texts there and in the located below cells.-7. Usually, you can search the needed text with Ctrl+F if needed.-8. Empty lines in the table do not influence the resulting visualization. Above each line, except the first one, there must be at least one filled cell. -It must be located above the text on the new line or even further to the right above. Otherwise, the program will produce no reasonably useful output.-9. After entering all the text, export the sheet as a \"\*.csv\" file using colons (\':\') as separator in the working directory. Otherwise, -the program won’t work.-10. Run the appropriate executable gvti in the terminal or from the command line while being in the directory with the created .csv file. -Specify as a command line argument its name. While executing a program enter a word name of the .csv file to be saved. DO use alphanumeric symbols -and dashes if needed. Then specify the needed visualization scheme by specifying the appropriate character in the terminal and the format of the -resulting visualization file (refer to GraphViz documentation for the default list of formats).-11. Your first visualization is then created. -12. Save the spreadsheet document as a spreadsheet file (if you worked with spreadsheets, otherwise this step can be omitted). -13. Repeat the steps from 2 to 12 as needed to produce more visualizations. -14. Afterwards, you have a list of graphics files, a list of .gv files -- source files for Graphviz -- and a saved spreadsheet file. -Then you can use the produced visualizations for some other documents.--Usage of the next command line arguments after the first one--Supports the following further command lines arguments (given after the first one -- see above):---c... -- dots are instead of one letter to specify the first character of the GraphViz command (e. g. \'n\' -- for \'neato\')---f... -- dots are instead of two letters to specify the format (according to the 'getFormat') of the GraphViz command (e. g. \'jp\' -- for \'jpg\')--They can be given in any combinations (if needed) or omitted. In the latter one case the program will prompt you the needed information.--} main :: IO () main = do args00 <- getArgs
README.markdown view
@@ -75,27 +75,86 @@ gvti executable supports the following further command lines arguments (given after the first one -- see above): --c... -- dots are instead of one letter to specify the first character - of the GraphViz command (e. g. \'n\' -- for \'neato\')+-c... — dots are instead of one letter to specify the first character + of the GraphViz command (e. g. \'n\' — for \'neato\') --f... -- dots are instead of two letters to specify the format (according to - the 'getFormat') of the GraphViz command (e. g. \'jp\' -- for \'jpg\')+-f... — dots are instead of two letters to specify the format (according to + the 'getFormat') of the GraphViz command (e. g. \'jp\' — for \'jpg\') Besides, supports the following further command line arguments (additionally to the previous ones): --b... -- dots are instead of the basic name for the created files (the +-b... — dots are instead of the basic name for the created files (the name without prefixes and extensions) --s... -- dots are instead of one digit to specify the GraphViz splines -functionality. 0 -- for "splines=false"; 1 -- for "splines=true"; -2 -- for "splines=ortho"; 3 -- for "splines=polyline". The default +-s... — dots are instead of one digit to specify the GraphViz splines +functionality. 0 — for "splines=false"; 1 — for "splines=true"; +2 — for "splines=ortho"; 3 — for "splines=polyline". The default one is "splines=true". --y -- (if present) means that the '@' signs will be removed from the created +-y — (if present) means that the '@' signs will be removed from the created files. +-g — (if present) means that instead of the exporting from the spreadsheets,+you can use gvti specifications (see as an example the following).+ They can be given in any combinations (if needed) or omitted. In the latter one case the program will prompt you the needed information (but this is not the case for a separator, which must be specified in such a way to be used instead).++** Example of .gvti File Format Usage++Create a file example.gvti++Actually, the file extension is not important, but it must be a usual text file.++Enter there:++@example:GraphViz:visualization+2,tabular interface:using neato+3,glue:GraphViz+4,spreadsheets++Afterwards, save the file and quit the editing program.++Install the gvti package using cabal:++cabal v1-install gvti++Then run in the terminal:++gvti -g example.gvti -cneato -y+Please, input the basic name of the visualization file!+example.neato+Please, specify the splines mode for GraphViz (see the documentation for GraphViz)+0 -- for "splines=false"+1 -- for "splines=true"+2 -- for "splines=ortho"+3 -- for "splines=polyline"+The default one is "splines=true"+1+The visualization will be created without the at-sign.+Please, specify the GraphViz output format for the file: +"do" -- for -Tdot"+"xd" -- for -Txdot"+"ps" -- for -Tps"+"pd" -- for -Tpdf"+"sv" -- for -Tsvg"+"sz" -- for -Tsvgz"+"fi" -- for -Tfig"+"pn" -- for -Tpng"+"gi" -- for -Tgif"+"jp" -- for -Tjpg"+"je" -- for -Tjpeg"+"js" -- for -Tjson"+"im" -- for -Timap"+"cm" -- for -Tcmapx"+otherwise there will be used the default -Tsvg+sv++Afterwards, you will have a visualization in the svg format in the directory. Here, it is:++https://hackage.haskell.org/package/gvti-0.1.1.0/src/4895040000.example.neato.gv.svg++
gvti.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: gvti-version: 0.1.0.0+version: 0.1.1.0 synopsis: GraphViz Tabular Interface description: Introduces a new file extension .gvti and is a special tabular or line-based GraphViz subset interface. Is a fork of the now deprecated mmsyn4 package. homepage: https://hackage.haskell.org/package/gvti@@ -13,7 +13,7 @@ copyright: Oleksandr Zhabenko category: Graphics build-type: Simple-extra-source-files: ChangeLog.md, README.markdown+extra-source-files: ChangeLog.md, README.markdown, 4895040000.example.neato.gv.svg cabal-version: >=1.10 library