JUMLY is a JavaScript library.
Using JUMLY, you can easily embed UML diagram on your HTML document.
All you need is just two things you use everyday.
- Text editor you get used to use.
- A modern browser like WebKit-base brwoser and Opera.
(working for Firefox now)
For more information, see https://jumly.tmtk.net/.
The auther's blog is https://tmtk75.github.com.
Trait I'd like to tell you is that JUMLY doesn't render diagram as image like PNG or SVG, but render as combination of DOM with CSS on browser. You can easily calibrate any CSS parameters like font-size, color, padding, margin, etc using CSS at runtime.
Actually you can also usual image data in PNG and JPEG.
They are generated by a CLI
or REST API,
so JUMLY is convenient way to embed small diagrams in your HTML documents like README file like below.
I aim to develop JUMLY to render small UML diagrams in handy without any heavy UML modeling tools. A UML diagram is usually more understandable than a tedious text. It's better that people can casually use UML digrams in every documents.
Copy following code, save as a file, and open the file with your browser.
<head>
<script src='https://code.jquery.com/jquery-2.1.0.min.js'></script>
<script src='https://coffeescript.org/extras/coffee-script.js'></script>
<script src='https://jumly.tmtk.net/public/jumly.min.js'></script>
</head>
<body>
<script type='text/jumly+sequence'>
@found "You", ->
@message "meet", "JUMLY"
</script>
</body>
Here is a minimal sample.
Requiring node.js v0.10.20 or upper.
nvm is good to get it.
$ git clone git:https://github.com/creationix/nvm.git ~/.nvm
$ . ~/.nvm/nvm.sh
$ nvm install 0.10
In order to build jumly.js, jumly.css and minified ones, it's shortly steps.
$ git clone https://github.com/tmtk75/jumly.git
$ cd jumly
$ . .env
$ npm install
$ make build
./public/jumly.min.js
is generated.
Written in CoffeeScript and stylus. They are in ./lib
directory.
./lib/js/jumly.coffee
organizes other *.coffee files in order.
On a webapp, which is described at next, you can use them without build. Editing *.coffee and *.styl, reload a page of webapp, and your change will make effect.
You can launch the webapp using express.
$ . .env
$ git submodule update --init
$ ./app.coffee
Please access to localhost:3000 thru your browser.
$ make test
Compile spec files, and open ./spec/index.html
with your browser.
To compile them,
$ . .env
$ build karam
$ open spec/index.html
jasmine is used for writing specs.
JUMLY v0.2.2 is under MIT License.
JUMLY v0.2.2, 2010-2015 copyright(c), all rights reserved Tomotaka Sakuma.
- 0.2.4, Jul 21, 2015
- Workaround for #40
- 0.2.3, Apr 1, 2015
- Fixed #38
- 0.2.2, Feb 7, 2015
- Fixed an issue for image width
- 0.2.1, Jan 25, 2015
- 0.2.0, Jan 4, 2015
- Followed CommonJS for module system
- Use Karam for test
- 0.1.5-2, Mar 12, 2014
- Removed z-index from
.sequence-diagram .lifeline .line
for #28
- Removed z-index from
- 0.1.5-1, June 23, 2013
- REST API to generate image
- 0.1.4, May 20, 2013
- Replaced canvas with svg
- 0.1.3b, Apr 27, 2013
- API JUMLY.scan (beta)
- 0.1.3a, Mar 29, 2013
- Robustness diagram prototyping
- Fixed pollution of jQuery namespace with some funcitons
- Use GRUNT for bulid, Mar 10, 2013
- 0.1.2b, Jan 9, 2013
- @fragment directive
- 0.1.2a, Dec 31, 2012
- Fixed #4
- Try JUMLY, Dec 29, 2012
- interactive demo for sequence diagram
- 0.1.2, Dec 29, 2012
- change CSS class name for .participant, which was .object
- Reference Manual r1 published Dec 10, 2012
- 0.1.1 Nov 29, 2012
- support @note directive
- adjust margins and spaces in stylesheet
- 0.1.0 Nov 23, 2012 -- initial release
- support sequence diagram
- jQuery https://jquery.com/
- CoffeeScript https://coffeescript.org/
- node.js https://nodejs.org/
- express https://expressjs.com/
- GitHub https://github.com/
- heroku https://www.heroku.com/
- jade https://jade-lang.com/
- Stylus https://learnboost.github.com/stylus/
- Markdown https://daringfireball.net/projects/markdown/
- GRUNT https://gruntjs.com/
- webpack https://webpack.github.io/
- Karma https://karma-runner.github.io/