• Stars
    star
    216
  • Rank 173,198 (Top 4 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sassy 'UML' Diagrams for R

nomnoml

R-CMD-check CRAN_Status_Badge Codecov test coverage Lifecycle: experimental

nomnoml provides an R interface to nomnoml.js, a tool for drawing sassy UML diagrams based on syntax with customizable styling.

Installation

Install from CRAN:

install.packages("nomnoml")

Or from GitHub using:

install.packages("remotes")
remotes::install_github("rstudio/nomnoml")

To use nomnoml in an R Markdown document, you also need to make sure the external dependency on PhantomJS is available. You may either download PhantomJS from its website, or use the function webshot::install_phantomjs() to install it automatically.

install.packages("webshot")
webshot::install_phantomjs()

Getting Started

You can create your first diagram by running:

nomnoml::nomnoml("[Hello]-[World!]")

To make the diagram flow vertically, the default at nomnoml.com, add the direction directive:

#direction: down
[Hello]-[World!]

You can also use nomnoml in R Markdown:

---
title: "A Diagram"
output: html_document
---

```{r, setup, include=FALSE}
library(nomnoml)
```

```{nomnoml}
#stroke: orange
#.box: fill=#8f8 dashed visual=ellipse

[A]-[B]
[B]-[<box>C]
```

SVG

To render using SVG, add svg = TRUE

nomnoml(diagram, svg = TRUE)

To render a nomnoml chunk in R Markdown, add svg=TRUE to the chunk options

```{nomnoml, svg=TRUE}
#stroke: orange
#.box: fill=#8f8 dashed visual=ellipse

[A]-[B]
[B]-[<box>C]
```

Advanced

Notice that much more complex diagrams can be designed using nomnoml by combining association types, classifier types, directives and custom classifier styles.

#stroke: #a86128
#direction: down
[<frame>Decorator pattern|
  [<abstract>Component||+ operation()]
  [Client] depends --> [Component]
  [Decorator|- next: Component]
  [Decorator] decorates -- [ConcreteComponent]
  [Component] <:- [Decorator]
  [Component] <:- [ConcreteComponent]
]

Association types

-    association
->   association
<->  association
-->  dependency
<--> dependency
-:>  generalization
<:-  generalization
--:> implementation
<:-- implementation
+-   composition
+->  composition
o-   aggregation
o->  aggregation
-o)  ball and socket
o<-) ball and socket
->o  ball and socket
--   note
-/-  hidden
_>   weightless edge
__   weightless dashed edge

Classifier types

[name]
[<abstract> name]
[<instance> name]
[<reference> name]
[<note> name]
[<package> name]
[<frame> name]
[<database> name]
[<pipe> name]
[<start> name]
[<end> name]
[<state> name]
[<choice> name]
[<sync> name]
[<input> name]
[<lollipop> lollipop]
[<sender> name]
[<socket> socket]
[<receiver> name]
[<transceiver> name]
[<actor> name]
[<usecase> name]
[<label> name]
[<hidden> name]
[<table> name| a | 5 || b | 7]

Directives

#import: my-common-styles.nomnoml
#arrowSize: 1
#bendSize: 0.3
#direction: down | right
#gutter: 5
#edgeMargin: 0
#gravity: 1
#edges: hard | rounded
#background: transparent
#fill: #eee8d5; #fdf6e3
#fillArrows: false
#font: Calibri
#fontSize: 12
#leading: 1.25
#lineWidth: 3
#padding: 8
#spacing: 40
#stroke: #33322E
#title: filename
#zoom: 1
#acyclicer: greedy
#ranker: network-simplex | tight-tree | longest-path

Directives only available when using the command line interface

#import: my-common-styles.nomnoml

Custom classifier styles

A directive that starts with β€œ.” define a classifier style.

#.box: fill=#88ff88
#.blob: fill=pink visual=ellipse italic bold dashed
[<box> GreenBox]
[<blob> HideousBlob]

Available key/value pairs:

fill=(any css color)

stroke=(any css color)

align=center
align=left

direction=right
direction=down

visual=actor
visual=class
visual=database
visual=ellipse
visual=end
visual=frame
visual=hidden
visual=input
visual=none
visual=note
visual=package
visual=receiver
visual=rhomb
visual=roundrect
visual=sender
visual=start
visual=table
visual=transceiver

Available modifiers are

center
bold
underline
italic
dashed
empty

More Repositories

1

cheatsheets

Posit Cheat Sheets - Can also be found at https://posit.co/resources/cheatsheets/.
TeX
5,382
star
2

shiny

Easy interactive web applications with R
R
5,139
star
3

rstudio

RStudio is an integrated development environment (IDE) for R
Java
4,432
star
4

bookdown

Authoring Books and Technical Documents with R Markdown
JavaScript
3,525
star
5

rmarkdown

Dynamic Documents for R
R
2,737
star
6

shiny-examples

JavaScript
1,909
star
7

gt

Easily generate information-rich, publication-quality tables from R
R
1,853
star
8

blogdown

Create Blogs and Websites with R Markdown
R
1,691
star
9

reticulate

R Interface to Python
R
1,604
star
10

webinars

Code and slides for RStudio webinars
HTML
1,510
star
11

rticles

LaTeX Journal Article Templates for R Markdown
TeX
1,402
star
12

plumber

Turn your R code into a web API.
R
1,352
star
13

tensorflow

TensorFlow for R
R
1,313
star
14

renv

renv: Project environments for R.
R
949
star
15

shinydashboard

Shiny Dashboarding framework
CSS
852
star
16

pagedown

Paginate the HTML Output of R Markdown with CSS for Print
R
850
star
17

keras

R Interface to Keras
R
811
star
18

pointblank

Data quality assessment and metadata reporting for data frames and database tables
R
794
star
19

flexdashboard

Easy interactive dashboards for R
JavaScript
778
star
20

leaflet

R Interface to Leaflet Maps
JavaScript
775
star
21

rmarkdown-book

R Markdown: The Definitive Guide (published by Chapman & Hall/CRC in July 2018)
RMarkdown
738
star
22

ggvis

Interactive grammar of graphics for R
R
709
star
23

rstudio-conf

Materials for rstudio::conf
HTML
694
star
24

learnr

Interactive Tutorials with R Markdown
R
692
star
25

shiny-server

Host Shiny applications over the web.
JavaScript
686
star
26

RStartHere

A guide to some of the most useful R Packages that we know about
R
655
star
27

py-shiny

Shiny for Python
Python
627
star
28

DT

R Interface to the jQuery Plug-in DataTables
JavaScript
577
star
29

rmarkdown-cookbook

R Markdown Cookbook. A range of tips and tricks to make better use of R Markdown.
RMarkdown
562
star
30

blastula

Easily send great-looking HTML email messages from R
R
522
star
31

r2d3

R Interface to D3 Visualizations
R
506
star
32

bookdown-demo

A minimal book example using bookdown
CSS
476
star
33

hex-stickers

RStudio hex stickers
R
426
star
34

distill

Distill for R Markdown
HTML
418
star
35

bslib

Tools for theming Shiny and R Markdown via Bootstrap 3, 4, or 5.
SCSS
408
star
36

packrat

Packrat is a dependency management system for R
R
394
star
37

tufte

Tufte Styles for R Markdown Documents
R
385
star
38

dygraphs

R interface to dygraphs
JavaScript
358
star
39

revealjs

R Markdown Format for reveal.js Presentations
JavaScript
316
star
40

pins-r

Pin, Discover and Share Resources
R
295
star
41

fontawesome

Easily insert FontAwesome icons into R Markdown docs and Shiny apps
R
288
star
42

profvis

Visualize R profiling data
JavaScript
285
star
43

crosstalk

Inter-htmlwidget communication for R (with and without Shiny)
JavaScript
283
star
44

config

config package for R
R
248
star
45

pool

Object Pooling in R
R
241
star
46

thematic

Theme ggplot2, lattice, and base graphics based on a few simple settings.
R
237
star
47

Intro

Course materials for "Introduction to Data Science with R", a video course by RStudio and O'Reilly Media
R
234
star
48

shinytest

Automated testing for shiny apps
JavaScript
227
star
49

tinytex-releases

Windows/macOS/Linux binaries and installation methods of TinyTeX
PowerShell
226
star
50

httpuv

HTTP and WebSocket server package for R
C
217
star
51

shinymeta

Record and expose Shiny app logic using metaprogramming
R
212
star
52

htmltools

Tools for HTML generation and output
R
201
star
53

shinyuieditor

A GUI for laying out a Shiny application that generates clean and human-readable UI code
JavaScript
198
star
54

promises

A promise library for R
R
191
star
55

vetiver-r

Version, share, deploy, and monitor models
R
170
star
56

rstudioapi

Safely access RStudio's API (when available)
R
161
star
57

gradethis

Tools for teachers to use with learnr
R
161
star
58

concept-maps

Concept maps for all things data science
HTML
158
star
59

master-the-tidyverse

Course contents for Master the Tidyverse
158
star
60

shinythemes

Themes for Shiny
R
152
star
61

ShinyDeveloperConference

Materials collected from the First Shiny Developer Conference Palo Alto, CA January 30-31 2016
HTML
151
star
62

chromote

Chrome Remote Interface for R
R
143
star
63

shiny-gallery

Code and other documentation for apps in the Shiny Gallery ✨
HTML
139
star
64

sortable

R htmlwidget for Sortable.js
R
124
star
65

rsconnect

Publish Shiny Applications, RMarkdown Documents, Jupyter Notebooks, Plumber APIs, and more
R
120
star
66

reactlog

Shiny Reactivity Visualizer
JavaScript
119
star
67

redx

dynamic nginx configuration
Lua
118
star
68

bigdataclass

Two-day workshop that covers how to use R to interact databases and Spark
R
113
star
69

shinyapps

Deploy Shiny applications to ShinyApps
110
star
70

shinyloadtest

Tools for load testing Shiny applications
HTML
109
star
71

webshot2

Take screenshots of web pages from R
R
108
star
72

shinyvalidate

Input validation package for the Shiny web framework
JavaScript
108
star
73

r-docker

Docker images for R
Dockerfile
105
star
74

miniUI

R
102
star
75

sass

Sass compiler package for R
C++
102
star
76

r-system-requirements

System requirements for R packages
Shell
100
star
77

shinytest2

R
96
star
78

keras-customer-churn

Customer Churn Shiny Application
R
96
star
79

r-builds

an opinionated environment for compiling R
Shell
91
star
80

addinexamples

An R package showcasing how RStudio addins can be registered and used.
R
85
star
81

r-manuals

A re-styled version of the R manuals
R
83
star
82

shinyapps-package-dependencies

Collection of bash scripts that install R package system dependencies
R
74
star
83

markdown

The first generation of Markdown rendering for R (born in 2012). Originally based on the C library sundown. Now based on commonmark. Note that this package is markdown, not *rmarkdown*.
R
72
star
84

R-Websockets

HTML 5 Websockets implementation for R
R
68
star
85

webdriver

WebDriver client in R
R
68
star
86

beyond-dashboard-fatigue

Materials for the RStudio webinar 'Beyond Dashboard Fatigue'
R
66
star
87

cloudml

R interface to Google Cloud Machine Learning Engine
R
65
star
88

shinylive

Run Shiny on Python (compiled to wasm) in the browser
TypeScript
61
star
89

rstudio-conf-2022-program

rstudio::conf(2022, "program")
R
61
star
90

rstudio-docker-products

Docker images for RStudio Professional Products
Just
59
star
91

bookdown.org

Source documents to generate the bookdown.org website
R
59
star
92

education.rstudio.com

CSS
57
star
93

tfestimators

R interface to TensorFlow Estimators
R
57
star
94

sparkDemos

HTML
54
star
95

vetiver-python

Version, share, deploy, and monitor models.
Python
54
star
96

tfprobability

R interface to TensorFlow Probability
R
54
star
97

shiny-incubator

Examples and ideas that don't belong in the core Shiny package and aren't officially supported.
JavaScript
53
star
98

connections

https://rstudio.github.io/connections/
R
52
star
99

swagger

Swagger is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
HTML
51
star
100

leaflet.mapboxgl

Extends the R Leaflet package with a Mapbox GL JS plugin to allow easy drawing of vector tile layers.
R
49
star