Skip to content

kuml-dev/plugin-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kUML Plugin Templates

Starter templates for all five kUML plugin categories. Each subdirectory is a self-contained, compilable Gradle project ready to customise.

The fastest path is the built-in scaffolding command. It substitutes all placeholder values for you interactively:

kuml plugin init

Or non-interactively:

kuml plugin init \
  --category=theme \
  --id=com.myorg.my-dark-theme \
  --name="My Dark Theme" \
  --maintainer="Jane Doe <jane@example.com>" \
  --output=./my-dark-theme

Supported categories: theme, renderer, layout, codegen, reverse.

Manual use

Copy the subdirectory that matches your category, then replace every com.example / MyXxxPlugin occurrence with your own identifiers:

cp -r theme/ my-plugin/
cd my-plugin/
# edit settings.gradle.kts, build.gradle.kts, kuml-plugin.json, src/...

Plugin categories

Directory Category What it does

theme/

THEME

Contributes one or more KumlTheme instances (palette, typography, borders).

renderer/

RENDERER

Adds a new output format (PDF, DOT, Excalidraw, …) for any diagram type.

layout/

LAYOUT

Provides an alternative layout engine (replaces or complements ELK / Grid).

codegen/

CODEGEN

Generates source files from a kUML diagram (requires fs.write permission).

reverse/

REVERSE

Analyses source files and produces a kUML UML model (requires fs.read permission).

After building

./gradlew build
kuml plugin install build/libs/<artifact>-1.0.0.jar
kuml plugin list --installed

Publishing to the kUML Plugin Registry

Submit a PR to https://github.com/kuml-dev/kuml-plugin-registry adding an entry to plugins/index.json. See the registry README for the required fields and the signing-key workflow.

Signing your plugin

Generate an Ed25519 keypair and include the public key in your registry entry:

openssl genpkey -algorithm ed25519 -out private.pem
openssl pkey -in private.pem -pubout -outform DER | base64 > public.b64

Sign the JAR:

sha256=$(sha256sum build/libs/*.jar | awk '{print $1}')
openssl pkeyutl -sign -inkey private.pem \
  -in <(echo -n "$sha256" | xxd -r -p) | base64 > plugin.jar.sig

See the key rotation guide for multi-key and rotation workflows.

License

All template files in this repository are released under the Apache License 2.0. You may use, modify, and distribute them freely — including in proprietary plugins.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages