README.md
# Plantuml
The goal of this project is implement [PlantUML](https://plantuml.com/) tooling for Elixir.
Right now it has:
- Encoding/Decoding of diagrams [https://plantuml.com/text-encoding](https://plantuml.com/text-encoding)
- Mix task to generate links with embedded diagrams pointing to a PlantUML web server (defaults to `https://plantuml.com/plantuml`)
## Installation
If [available in Hex](https://hex.pm/docs/publish)
The package can be installed by adding `plantuml` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:plantuml, "~> 0.1.0-dev"}
]
end
```
## Documentation
The docs can be found at <https://hexdocs.pm/plantuml>.
## Auto update markdown files
Running `mix plantuml.generate_markdown_links` on the project will search for all markdown files and look for markdown comments
with links referencing to a PlantUML file in the project.
This feature was inspired by [https://github.com/danielyaa5/puml-for-markdown](https://github.com/danielyaa5/puml-for-markdown), a CLI tool built with JavaScript.
The diagrams are rendered by passing an encoded diagram to a PlantUML Web Service.
### Example
You can add an embedded diagram by adding a comment to your markdown file like this:
```
<!--![Diagram Image Link](./priv/test_assets/example_diagram.plantuml)-->
```
Result:
![Diagram Image Link](https://plantuml.com/plantuml/png/JP4v3iCW44NxEGKNI16lKeh8MUj4oWKmfa1om86XyEs36JiP2dZwJupueWieFSRt25CwZJAJj2WUZ6KGT-T0AdHUq3en9hs7taKxI3ylsPan-GAKi-ZTcEzS69ClGLiqEDFC6sFo5GmIPI-3Nh8hO_9rcZ-EMg5nDgJvVoRVm2VggDStFncJRo5jOdVCNSH1l9p8XLbSKBprPAOaipPaeY91rLXUKxvLOgRPHlqACDbcbuj0f-sm_DeN)
You can also render a link to a diagram, by doing the same thing but without prepending the `!`
```
<!--[Link to Diagram](./priv/test_assets/example_diagram.plantuml)-->
```
Result:
[Link to Diagram](https://plantuml.com/plantuml/png/JP4v3iCW44NxEGKNI16lKeh8MUj4oWKmfa1om86XyEs36JiP2dZwJupueWieFSRt25CwZJAJj2WUZ6KGT-T0AdHUq3en9hs7taKxI3ylsPan-GAKi-ZTcEzS69ClGLiqEDFC6sFo5GmIPI-3Nh8hO_9rcZ-EMg5nDgJvVoRVm2VggDStFncJRo5jOdVCNSH1l9p8XLbSKBprPAOaipPaeY91rLXUKxvLOgRPHlqACDbcbuj0f-sm_DeN)
## Contributing
See our [contribution guidelines](https://github.com/ceolinrenato/plantuml/blob/main/CONTRIBUTING.md) and our [code of conduct](https://github.com/ceolinrenato/plantuml/blob/main/CODE_OF_CONDUCT.md)