plantuml-file-loader

2.0.0 • Public • Published
PlantUML logo Webpack logo

PlantUML file loader

Converts PlantUML files into images during the webpack processing.

The image conversion is inspired by the Yury Korolev's plantuml-loader which uses a dockerized version of PlantUML, which includes GraphViz for the image generation. However this loader:

  • uses ES6 syntax
  • involves non-blocking methods and abstractions (streams and buffers) to perform the generation
  • produces image files instead of returning the generated file content (that may come later as an option if needed)

Installation

Install the plantuml-file-loader:

# via yarn 
yarn add -D webpack plantuml-file-loader
 
# via npm 
npm i -D webpack plantuml-file-loader

In your webpack.config.js file:

module.exports = {
  // ...
  module: {
    rules: [
      // ...
      {
        test: /\.p?uml$/,
        use: 'plantuml-file-loader?format=svg&outputPath=img/'
      },
      // ...
    ]
  },
  // ...
}

The format can be any of those supported by PlantUML: see the -t formats in the command-line Help section.

Use cases

Requirements

The loader spawns a docker container to which it delegates the image conversion. Therefore:

Web-based slideshows

Combine this loader with the markdown-image-loader to build slideshows based on markdown documents. In your markdown file, simply refer to PlantUML source files and they will be converted into images (in SVG format by default, which can be zoomed-in without aliasing).

  • the my-class-diagram.puml PlantUML file:
@startuml
class Car

Driver - Car : drives >
Car *- Wheel : have 4 >
Car -- Person : < owns

@enduml
  • your slideshow.md markdown document:
# Class-diagram slide

The class diagram is as follows:

![](img/my-class-diagram.puml)

And the diagram will be displayed as a real image in your slideshow:

Unit tests

Unit tests can be run with the npm test command.

Despite these efforts, should you find an issue or spot a vital feature, you are welcome to report bugs and submit code requests!

Changelog

  • 2.0.0: updated for webpack 4.x (see modifications done on the loader's option and context)
  • 1.0.3: screenshot fix
  • 1.0.2: added: screenshot of class-diagram slide demo, docker requirements
  • 1.0.1: link fix in README.md
  • 1.0.0: initial version for webpack 3.x

License

May be freely distributed under the MIT license.

Copyright (c) 2017-2018 Luc Sorel

Package Sidebar

Install

npm i plantuml-file-loader

Weekly Downloads

0

Version

2.0.0

License

MIT

Unpacked Size

66.2 kB

Total Files

10

Last publish

Collaborators

  • lucsorel