summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-15FIXME: Add comment about char::escape_default()wip/stop_mangling_non-asciicos
2021-06-15Update test cases for IDsfix/allow_id_stringscos
Ideally there should be test cases validating that strings longer than 80 characters are getting line breaks injected, but such tests would likely fail.
2021-06-15Bugfix: Allow ID Stringsseancarroll
A user, Martin, reached out about a bug with IDs specifically with quoting. Dotavious initially just used the string provided by caller however this is problematic for a few different scenarios amongst others 1. Strings with spaces 2. Double-quoted strings 3. Strings with non-alphanumerical content Details about IDs can be found at https://graphviz.org/doc/info/lang.html This commit conditional formats IDs based on the following 1. Wrap string in quotes if containing non alpha-numerical characters 2. Escape quotes found in string My rationale for conditionally formatting is mostly around keeping previous behavior intact. Quote from the link above An ID is just a string; the lack of quote characters in the first two forms is just for simplicity. There is no semantic difference between abc_2 and "abc_2", or between 2.34 and "2.34" Given these IDs are semantically the same I wanted to keep the same formatting which is unquoted. NOTE: This does not address HTML strings as IDs which needs to be addressed at a later date.
2021-06-15Allow any ID stringcos
According to the grammar of The DOT Language[1], an ID can be given in one of four possible formats. Where the most permissive format is any string quoted within double quotes. For generated output to be valid, the ID strings better use that format. Since dotavious does not, and should not, enforce that the ID only contains characters from any of the more limited forms. [1]: https://www.graphviz.org/doc/info/lang.html
2021-03-24oops forgot the checkoutHEADmainseancarroll
2021-03-24bump to 0.2.0seancarroll
2021-03-23support Into<String> in more scenarios to remove the need for users to ↵seancarroll
always have to perform a .to_string
2021-03-23make publish a manaul triggerseancarroll
2021-03-22fix html_root_urlseancarroll
2021-03-22add quickstart example to readme. include badges in readmeseancarroll
2021-03-22some minor tweaksseancarroll
2021-03-22update CI workflow nameseancarroll
2021-03-20adds ViewPort structseancarroll
2021-03-20bump indexmap versionseancarroll
2021-01-20Attribute Constraintsseancarroll
This adds some attribute constraints. We validate certain constraints based on information from http://www.graphviz.org/doc/info/attrs.html. Validation errors are collected as part of builders, we still add the attribute regardless or not if it fails validation, and build methods return ValidationResult<T> where errors is a Vec<ValidationError>. We still add attributes even if the validation fails so that users can ignore validation errors and build appropriate struct.
2021-01-17flushing out more complex example for docsseancarroll
2021-01-16fix some docsseancarroll
2021-01-16Remove Attribute Statement Structs for IndexMapseancarroll
I didnt think we were getting a ton of benefit from the AttributeStatement abstraction so I replaced it with IndexMap which the attribute statement impl were using internally. While the DOT language docs (https://graphviz.org/doc/info/lang.html) do call out attr_stmt as part of the language definition the overhead of the related traits, impl, structs, etc felt a bit heavy. In particular, supporting the ability to create them as part of a build as well as allowing users to add to them via other bulid fns was a bit awkward. For now I think removing the abstraction makes sense and provides for a simpler implementation. Can revisit this down the road if other requirements come up that perhaps warrant the addittional code.
2021-01-12support subgraphsseancarroll
2021-01-10improve rust docsseancarroll
2021-01-10add sonar and intellij files to .gitignoreseancarroll
2021-01-10ditch render options for nowseancarroll
2021-01-09cargo fmtseancarroll
2021-01-08working through how to make it easier to render DOT to stringseancarroll
2021-01-08improving docsseancarroll
2021-01-07adding rustdocsseancarroll
2021-01-06trying to organize files and use declarationsseancarroll
2021-01-03include license in Cargo.tomlseancarroll
2021-01-03more organizationseancarroll
2021-01-03starting some work on improving organizationseancarroll
2021-01-03we arent using Config and i'm not 100% sure what if any configuration or ↵seancarroll
rendering options I want to support so for now delete
2021-01-02add licenseseancarroll
2021-01-02adding rustfmt.toml and ran cargo fmt on projectseancarroll
2021-01-02tidy up some shared code and docsseancarroll
2021-01-02tweak Point constructorsseancarroll
2021-01-02adds rectangle structseancarroll
2021-01-02Create rust.ymlSean Carroll
adding basic default rust github actions workflow
2021-01-02minor tweaksseancarroll
2021-01-02allows to specify port positions on edge statementsseancarroll
2021-01-02adding port position attributeseancarroll
2021-01-02ditch custom trait for converting struct/enums to AttributeText and instead ↵seancarroll
use Rust's From trait
2021-01-01start using From trait to convert u32, f32, bool, etc to AttributeTextseancarroll
2021-01-01split out attribute_text from DotString into own trait called Attributeseancarroll
2021-01-01fix typoseancarroll
2021-01-01adds tests. still working through some DotString implementationsseancarroll
2020-12-30alter dot rendering to fix issue when graph id not providedseancarroll
2020-12-30moving more things over to DotString traitseancarroll
2020-12-29cant spell. quotted -> quotedseancarroll
2020-12-29adding more colorlist and point methods. adding Ratio enum. Thinking about a ↵seancarroll
new trait that will provide attribute text and string
2020-12-29trying some usability changes for fill_color by accepting vec of tuplesseancarroll