Giter Site home page Giter Site logo

plantuml's Introduction

PlantUML in R


DOI

plantuml status badge

Coverage Status lifecycle


Overview

This package provides the functionality to create UML graphs using the PlantUML language.

Installation

Prerequisites

The actual work is done by the program plantuml. Please see the plantuml installation page for prerequisites of running plantuml.

Installation of plantuml

The package is not on CRAN, but it is in the R-Universe. The original installation instructions can be found there, but are here reproduced fdor simplicity:

# Enable repository from rkrug
options(repos = c(
  rkrug = 'https://rkrug.r-universe.dev',
  CRAN = 'https://cloud.r-project.org'))
# Download and install plantuml in R
install.packages('plantuml')
# Browse the plantuml manual pages
help(package = 'plantuml')

Plotting Plantuml graphics

Define plantuml code

First, we define a plantuml object based on some plantuml code

library(plantuml)
x <- '
(*) --> "Initialization"

if "Some Test" then
  -->[true] "Some Activity"
  --> "Another activity"
  -right-> (*)
else
  ->[false] "Something else"
  -->[Ending process] (*)
endif
'
x <- plantuml( 
  x
)

Plotting to a file

To save the graph in a file, we simply specify the file argument in the plot command:

plot( 
  x, 
  file = "./vignettes/test.svg" 
)

And here is the file

vignettes/test.svg

The type of the file is automatically determined based on the extension. Plantuml retturns an svg file, wi=hich is than converted using Suported extensions in plantuml are:

- svg     To generate images in SVG format
- png     To generate images in PNG format
- pdf       To generate images in PDF format
- ps        To generate images in PS format
- txt       To generate images with ASCII art

Plotting R objects

In addition to plotting based on plantuml code some basic functionality to document R objects has been included.

This is not much more than a proof of concept but includes all standard R objects.

If you think this is usefull, pelase let me know and leave sugestions in the issue tracker.

One example is:

x <- list(
  a = 1:10,
  b = letters[1:4],
  c = data.frame(
    x = 1:10,
    y = c(TRUE, FALSE)
  )
)
plot(
  as.plantuml(x)
)

## [1] "/var/folders/5k/g8z_7q3d6vb54m8k0cjy940r0000gq/T//RtmpKTtJj4/plantuml.10de13e819524.svg"

plantuml's People

Contributors

moodymudskipper avatar rkrug avatar royratcliffe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

plantuml's Issues

Add preview to knit engine

It should be relatively easy, to add an inline preview to the knit engine, as the resulting file only needs to be printed to a graphics device?

Based I=on a question from @retorquere

Diagram unreadable

Please run this:

library(plantuml)
dataForDiagramForExtrema = '
(*) --> "Arvutan tuletise"

if "Kas tuletis on null või esineb katkevusi?" then
  -->[jah] if "Kas tahan teha väärtuste tabeli?" then
    --> "Teen tuletise väärtuste tabeli."
    --> "Leian miinimumi, maksimumi või horisontaalse käänupunkti."
    --> (*)
  -->[ei] "Arvutan teise tuletise konkaavsuse väljaselgitamiseks."
  if "Kas teine tuletis on null?" then
    -->[jah] "Koostan teise tuletise väärtuste tabeli."
    if "Kas märk muutub?" then
      -->[jah] "horisontaalne käänupunkt"
    else
      -->[ei] "Teen tuletise väärtuste tabeli."
    end if
  else
    -->[ei] "maksimum või miinimum"
  end if
  -left-> (*)
else
  -->[ei] "Statsionaarsed punktid puuduvad."
endif

--> (*)
'

diagramForExtrema = plantuml(dataForDiagramForExtrema)
plot(x = diagramForExtrema, vector = FALSE)

You see that the created diagram is so small that it's unreadable.

Cannot reproduce the example

Hi and thanks for the promising package. Unfortunately I can't reproduce the example from the README :

library(plantuml)
x <- '
(*) --> "Initialization"

if "Some Test" then
  -->[true] "Some Activity"
  --> "Another activity"
  -right-> (*)
else
  ->[false] "Something else"
  -->[Ending process] (*)
endif
'
x <- plantuml( 
  x
)

plot( 
  x = x
)
#> Warning in system2(command = java_bin, args = paste(java_opt, cmd,
#> plantuml_opt), : '"java"' not found
#> Warning in system(cmd, invisible = TRUE): 'gswin32c.exe' not found
#> Error in grImport::PostScriptTrace(file = fn, outfilename = fnrgl): status 127 in running command 'gswin32c.exe -q -dBATCH -dNOPAUSE -dNOSAFER -sDEVICE=ps2write -sOutputFile=C:\Users\Antoine\AppData\Local\Temp\RtmpgRKa9l\file56b0783ccda -sstdout=C:\Users\Antoine\AppData\Local\Temp\RtmpgRKa9l\file56b0363566d2.rgml C:\Users\Antoine\AppData\Local\Temp\RtmpgRKa9l\file56b0558746b6.ps'

plot( 
  x = x,
  vector = FALSE
)
#> Warning in system2(command = java_bin, args = paste(java_opt, cmd,
#> plantuml_opt), : '"java"' not found
#> Error in png::readPNG(fn, info = TRUE): file is not in PNG format

plot( 
  x, 
  file = "./README_files/test.svg" 
)
#> [1] 1

Created on 2020-08-29 by the reprex package (v0.3.0)

I see it might be due to java, and ghostscript, but I thought I'd describe the issue as I encountered it before changing anything on my system.


After installing java it still doesn't work but the output is a bit different :

library(plantuml)
x <- '
(*) --> "Initialization"

if "Some Test" then
  -->[true] "Some Activity"
  --> "Another activity"
  -right-> (*)
else
  ->[false] "Something else"
  -->[Ending process] (*)
endif
'
x <- plantuml( 
  x
)

plot( 
  x = x
)
#> Warning in system(cmd, invisible = TRUE): 'gswin32c.exe' not found
#> Error in grImport::PostScriptTrace(file = fn, outfilename = fnrgl): status 127 in running command 'gswin32c.exe -q -dBATCH -dNOPAUSE -dNOSAFER -sDEVICE=ps2write -sOutputFile=C:\Users\Antoine\AppData\Local\Temp\Rtmpq8f6kF\file19dc7d865ff8 -sstdout=C:\Users\Antoine\AppData\Local\Temp\Rtmpq8f6kF\file19dc5e1273aa.rgml C:\Users\Antoine\AppData\Local\Temp\Rtmpq8f6kF\file19dc2bb0440e.ps'

plot( 
  x = x,
  vector = FALSE
)

#> [1] 0

plot( 
  x, 
  file = "./README_files/test.svg" 
)
#> [1] 1

Created on 2020-08-29 by the reprex package (v0.3.0)


If I follow the suggestion in the image :

library(plantuml)
x <- "testdot"

x <- plantuml( 
  x
)
plot( 
  x = x,
  vector = FALSE
)

#> [1] 0

Created on 2020-08-29 by the reprex package (v0.3.0)

Invalid or corrupt jarfile

When I let the package download the jarfile on Windows, I get "Invalid or corrupt jarfile" (when ran from the package or when ran from the command line with java -jar). When downloading directly from the plantuml site it does work.

Error message `Error in plot.window(...) : need finite 'ylim' values`

Hi there,

I love the idea of an R package for plantUML. However, I get this error message when executing the demo code:

x <- '
(*) --> "Initialization"

if "Some Test" then
  -->[true] "Some Activity"
  --> "Another activity"
  -right-> (*)
else
  ->[false] "Something else"
  -->[Ending process] (*)
endif
'
x <- plantuml( 
  x
)


plot( 
  x = x
  # vector = TRUE
)

Error in plot.window(...) : need finite 'ylim' values
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf

Any help is greatly appreciated. Thanks for this software!

sessionInfo()

R version 3.6.0 (2019-04-26)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.6

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] plantuml_0.2.4

loaded via a namespace (and not attached):
 [1] compiler_3.6.0  magrittr_1.5    htmltools_0.3.6 tools_3.6.0     Rcpp_1.0.1      rmarkdown_1.14  grid_3.6.0      knitr_1.23      xfun_0.8       
[10] digest_0.6.20   packrat_0.5.0   png_0.1-7       XML_3.98-1.20   evaluate_0.14   grImport_0.9-2 ```

plotting R classes and their relationship

Hi @rkrug,

thanks a lot for this package - I just came across it when searching good ways to visualize multiple classes and their inheritance relationship for a vignette. So I would definitely be interested / encourage you to develop that functionality further (as mentioned in the Readme file at the end).

Cheers
Daniel

Issue in ? server.status (0.6)

Hello,
I found an issue with installation of 0.6 (current on 2022-10-12) version, in R (see sessionInfo below).
It seems to come from server.status() function, where response variable isn't properly managed (perhaps NULL value ?)

I precise installation of 0.4 version is OK on same computer/same R version, through an manual installation of (plantuml 0.4).zip file and using the following R code

Thanks for correct 0.6 version or precise how installation within R could be done.

fic <- "(directory where this file is stored)/plantuml-0.4.zip"
devtools::install_local(fic)

Details on my R sessionInfo

R version 4.1.1 (2021-08-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044))

Error: le chargement du package ou de l'espace de noms a �chou� pour 'plantuml' :
.onAttach a �chou� dans attachNamespace() pour 'plantuml', d�tails :
  appel : if ((response != -404) & (response != -999)) {
  erreur : l'argument est de longueur nulle
Erreur : loading failed
Ex�cution arr�t�e
ERROR: loading failed
* removing ' (... my personal directory here ) plantuml'

Exited with status 1.

R plantuml package produce error when the label contains new line while planttext.com can display it fine.

I am relatively new to plantuml and your package. So I may be reporting a known issue. We encountered some issue in our project that used plantuml package. I isolated into the following reproducible simple example.
The following simple plantuml code works fine in planttext.com:
@startuml
a:A,\nAA
b:B,\nBB
a --> b
@enduml
However, if I do this in R plantuml package with:
plot(plantuml('
@startuml
a:A,\nAA
b:B,\nBB
a --> b
@enduml
'))

It produces errors:
ERROR 2 Syntax Error? Some diagram description contains errors Error in polypath(trans(pathX, pathY), rule = switch(p@rule, nonzero = "winding", : unable to allocate memory (in GPath)
Notice the embedded newline character in the description fields for a and b. If we take out the newline, the diagram works.
plot(plantuml('
@startuml
a:A,AA
b:B,BB
a --> b
@enduml
'))

I am not sure if it is a problem with the R package or the plantuml.jar that it uses.
Any suggestions for workaround or fixes?

error while install on R

Sorry, I forgot this issue was already reported ; see #34
I close it.


  • Hello
    I meet the following error while tryiing to install plantuml as told within R
** testing if installed package can be loaded from temporary location
*** arch - i386
Error: le chargement du package ou de l'espace de noms a échoué pour 'plantuml' :
.onAttach a échoué dans attachNamespace() pour 'plantuml', détails :
  appel : utils::str(si)
  erreur : objet 'si' introuvable
Erreur : loading failed
Exécution arrêtée
*** arch - x64
Error: le chargement du package ou de l'espace de noms a échoué pour 'plantuml' :
.onAttach a échoué dans attachNamespace() pour 'plantuml', détails :
  appel : utils::str(si)
  erreur : objet 'si' introuvable
Erreur : loading failed
Exécution arrêtée
ERROR: loading failed for 'i386', 'x64'
* removing 'E:/2022_10-07_PC_de_pret/R/R-4.1.1/library/plantuml'

Version used of R : ```

version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 4
minor 1.1
year 2021
month 08
day 10
svn rev 80725
language R
version.string R version 4.1.1 (2021-08-10)
nickname Kick Things



Thanks.

cache output of plantuml knitr engine

In the case of something like

```{plantuml name, plantuml.path="images"}
...
```

it should in principle be possible to hash the input and check if it has changed if the generated image could have the hash attached to it somehow (maybe in the metadata? filename would mean it would be harder to clean up)

Register as knitr engine

I've tried registering plantuml as a knitr engine using

knitr::knit_engines$set(plantuml = function(options) {
  code <- paste(options$code, collapse = "\n")
  if (options$eval) plot(x = plantuml(code), vector=TRUE) else code
})

with vector=TRUE it seems to work but I see a warning "don't know how to handle 'plantuml' engine output". With vector=FALSE I'm getting no output.

Ghostscript error with knitr engine

With this document: https://gist.github.com/bb8584b40032742b0c275405a7a0ba4a I get

GPL Ghostscript 9.52: Unrecoverable error, exit code 1
Error in grImport::PostScriptTrace(file = fn, outfilename = fnrgl) : 
  status 1 in running command 'gs -q -dBATCH -dNOPAUSE -dNOSAFER -sDEVICE=ps2write -sOutputFile=/dev/null -sstdout=/var/folders/4w/n0_41y251ld3zzgs_lx6gkq80000gn/T//RtmpAkSnIE/filebca53e1af1d.rgml /var/folders/4w/n0_41y251ld3zzgs_lx6gkq80000gn/T//RtmpAkSnIE/filebca57be3214a.ps'

If I remove the legend block, I see no error, but when running plantuml directly, I see no error with the legend.

Use local web server instead of cli

As detailed in https://plantuml.com/picoweb, plantuml.jar comes with it's own sim[le web server.
At tha moment, I am using two different paths to render plantuml graphs locally (via cli) or remotely (web server). This could be simplified by always using the web server, only by changing the URL to localhost:

java -jar plantuml.jar -picoweb:8000:127.0.0.1

and point the server address to

http://127.0.0.1:8080

Add note concerning dot dependency

The package plantuml depends on dot to be installed.

A missing dot installation can lead to error messages.

As the installation of graphviz (which includes dot) is different from platform to platform, a missing dot installation should print an informative warning.

Starting point:

Write function instsllationOK(error = TRUE) which

  • checks if plantuml part is downloaded. If not, raise error with:plantuml not installed. Run 'plantuml::updatePlantumlJar()' to install. error message
  • executes plantuml -testdot to check if dot (graphviz) is installed. If not, raise error with PlantUML needs dot to run. dot is part of graphviz. ADDITIONAL INFO?

Use system wide plantuml installation

Check if it is possible to use a systemwide plantuml installation.

Considerations:

  • plantuml command versus `plantuml.jar - being able to use both
  • to variables in internal environment

possible steps

  1. check what x <- system2(command = "plantuml", args = "-version", stdout = TRUE) returns
  2. if it returns plantuml info, use the installed plantuml, if not, download the new one when calling plantuml_run()

Could be done when starting the package, and the path to the plantuml command could be set in an environment variable.

First example: Permission denied

Hello,

Thank you for providing this package. I just installed the package, but keep getting a Permission denied error as below upon running the first example in the README. Would you kindly advise?

Thank you,
Azza

> plot( 
+   x = x
+   # vector = TRUE
+ )
sh: 1: : Permission denied
[1] 127
Warning message:
In system2(command = java_bin, args = paste(java_opt, cmd, plantuml_opt),  :
  error in running command

Here are my session info:


> sessionInfo()
R version 4.0.5 (2021-03-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.2 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] flow_0.0.2   plantuml_0.4

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.6        compiler_4.0.5    pillar_1.6.0      R.utils_2.10.1    R.methodsS3_1.8.1
 [6] prettyunits_1.1.1 remotes_2.3.0     tools_4.0.5       digest_0.6.27     testthat_3.0.2   
[11] pkgbuild_1.2.0    pkgload_1.2.1     jsonlite_1.7.2    R.cache_0.15.0    memoise_2.0.0    
[16] lifecycle_1.0.0   tibble_3.1.1      pkgconfig_2.0.3   png_0.1-7         rlang_0.4.11     
[21] rstudioapi_0.13   cli_2.5.0         yaml_2.2.1        nomnoml_0.2.3     curl_4.3         
[26] fastmap_1.1.0     withr_2.4.2       styler_1.4.1      htmlwidgets_1.5.3 desc_1.3.0       
[31] fs_1.5.0          vctrs_0.3.8       devtools_2.4.1    rprojroot_2.0.2   grid_4.0.5       
[36] grImport_0.9-3    glue_1.4.2        R6_2.5.0          processx_3.5.2    fansi_0.4.2      
[41] XML_3.99-0.6      pacman_0.5.1      sessioninfo_1.1.1 callr_3.7.0       purrr_0.3.4      
[46] magrittr_2.0.1    htmltools_0.5.1.1 backports_1.2.1   ps_1.6.0          ellipsis_0.3.2   
[51] usethis_2.0.1     utf8_1.2.1        cachem_1.0.4      crayon_1.4.1      R.oo_1.24.0      
> 

failure to find plantuml.jar due to white space in file path

When calling plantuml.jar, plot.plantuml the file path passed to system2 is not wrapped in quotes. resulting in the error "Unable to access jarfile C:/Users/FirstName"

It appears to be at lines 73 to 76 in the plot.plantuml.R file. I ran a local version updating the lines to wrap the path in double quotes which seemed to resolve the issue:

   cmd <- paste0(
     '-jar "',
     system.file("jar", "plantuml.jar", package = "plantuml"), '"'
  ) 

Add plotting of yaml and json strings

PlantUML has new diagram types. Of interest, and requiring special treatment, are yaml and json, as these essentially enclose in

@startyaml

THE YAML AS TEXT
@endyaml

and

@startjson

THE JSON AS TEXT
@endjson

A function

plantuml_from_yaml(x)
plantuml_from_json(x)

where x can be either a file name or the actual yaml / json text.

Graphviz must also be installed

Running in Windows 10. Followed plantuml installation instructions, including updatePlantumlJar(), but received error message (in RStudio viewer window) that graphviz needed to be installed.

After doing so, diagram successfully created (message about graphvis in background of viewer window):
image
but only if argument vector is set to FALSE in plot(x, vector=FALSE). Otherwise this error is returned to console:

> plot(x)
Error in grImport::PostScriptTrace(file = fn, outfilename = fnrgl) : 
  status 127 in running command 'gswin32c.exe -q -dBATCH -dNOPAUSE -dNOSAFER -sDEVICE=ps2write -sOutputFile=C:\Users\erexs\AppData\Local\Temp\RtmpUrUguc\file1854704f28a4 -sstdout=C:\Users\erexs\AppData\Local\Temp\RtmpUrUguc\file185465d725d8.rgml C:\Users\erexs\AppData\Local\Temp\RtmpUrUguc\file18542755602.ps'

I now see this comment in readme.md

make selection dependant on installed packages, as vector = TRUE requires postscript to be installed!

It would be nice if there could be a more gentle failure of the plot function.

Using PlantUML server

I have implemented in release v0.4.BETA a function to generate the graph, based on PlantUML code, by using a PlantUML server. The function is called plantuml_URL().

I am thinking about making the use of the server the default method of generation, therefore illuminating the need to install PlantUML and to get it to work properly locally.

This would solve most of the issues raised here.

@royratcliffe and @moodymudskipper - could I have your thoughts on this?

Thanks.

java.awt.AWTError

─ Session info ──────────────────────────────────────────────────────
 setting  value                       
 version  R version 3.4.4 (2018-03-15)
 os       Ubuntu 16.04.5 LTS          
 system   x86_64, linux-gnu           
 ui       RStudio                     
 language (EN)                        
 collate  en_US.UTF-8                 
 tz       Etc/UTC                     
 date     2018-09-25                  

─ Packages ──────────────────────────────────────────────────────────
 package     * version   date       source                         
 clisymbols    1.2.0     2017-05-21 CRAN (R 3.4.4)                 
 digest        0.6.12    2017-01-27 CRAN (R 3.2.3)                 
 DT            0.4       2018-01-30 CRAN (R 3.4.4)                 
 grImport      0.9-1     2018-06-18 CRAN (R 3.4.4)                 
 htmltools     0.3.6     2017-04-28 CRAN (R 3.4.4)                 
 htmlwidgets   1.2       2018-04-19 CRAN (R 3.4.4)                 
 magrittr      1.5       2014-11-22 CRAN (R 3.2.3)                 
 plantuml    * 0.2.2.1   2018-09-25 Github (rkrug/plantuml@c19355c)
 png           0.1-7     2013-12-03 CRAN (R 3.4.4)                 
 Rcpp          0.12.18   2018-07-23 CRAN (R 3.4.4)                 
 sessioninfo   1.0.0     2017-06-21 CRAN (R 3.4.4)                 
 withr         2.1.1     2017-12-19 CRAN (R 3.4.3)                 
 XML           3.98-1.13 2018-08-01 CRAN (R 3.4.4)                 
 yaml          2.1.14    2016-11-12 CRAN (R 3.2.3) 

Running: plot(as.plantuml(list(a = 1, b = 2)))

Produces the following error:

Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
	at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
	at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
	at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
	at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
	at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1181)
	at net.sourceforge.plantuml.FileFormat.<clinit>(FileFormat.java:88)
	at net.sourceforge.plantuml.Option.<init>(Option.java:94)
	at net.sourceforge.plantuml.Run.main(Run.java:90)

Is there a way to set the -Djava.awt.headless=true option which presumably fixes this?

diagram type "wbs" not supported?

This code (source) appears not to be supported. Apparently, it is no genuine UML grammar.

@startwbs
* Business Process Modelling WBS
** Launch the project
*** Part 1-1
*** Paret 1-2
** Design phase
*** Part 2-1
**** Part 2-1-1
**** Part 2-1-2
*** Part 2-2
*** Part 2-3
** Part 3
@endwbs

Renderring this image:

image

x <- '
@startwbs
* Business Process Modelling WBS
** Launch the project
*** Complete Stakeholder Research
*** Initial Implementation Plan
** Design phase
*** Model of AsIs Processes Completed
**** Model of AsIs Processes Completed1
**** Model of AsIs Processes Completed2
*** Measure AsIs performance metrics
*** Identify Quick Wins
** Complete innovate phase
@endwbs
'
x <- plantuml( 
  x
)


plot( 
  x = x
  # vector = TRUE
)

Error code:

ERROR
1
Empty description
Some diagram description contains errors
Error in polypath(trans(pathX, pathY), rule = switch(p@rule, nonzero = "winding",  : 
  unable to allocate memory (in GPath)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.