# dokuwiki-plugin-bpmnio Renders using the bpmn.io js libraries within dokuwiki: * BPMN v2.0 diagrams * DMN v1.3 decision requirement diagrams, decision tables and literal expressions Refer to this page for details: ## Development ### Prerequisites * PHP 8.1+ * [Composer](https://getcomposer.org/) * Node.js 20+ and npm ### Setup ```bash # Install PHP dev dependencies (phpcs, phpstan) composer install # Install JS/CSS dev dependencies and vendor build packages npm install ``` ### Linting ```bash # PHP code style composer cs # PHP static analysis composer stan # JavaScript lint npm run lint:js # LESS/CSS lint npm run lint:css # All JS + CSS lints npm run lint ``` ### Testing Tests run within the DokuWiki test framework. Clone the plugin into a DokuWiki installation's `lib/plugins/bpmnio/` directory, then run: ```bash cd /path/to/dokuwiki php vendor/bin/phpunit --group plugin_bpmnio ``` ### Updating vendor libraries The committed `vendor/` bundles are generated locally from the npm packages declared in [package.json](package.json). To update them: ```bash # Change the pinned bpmn-js / dmn-js versions in package.json when needed npm install # Rebuild the committed vendor bundles and copied assets npm run build:vendor # Or use the compatibility wrapper ./update-vendor.sh ``` The build step emits the production browser bundles into `vendor/`, copies the required LESS assets from `node_modules`, and refreshes the public `font/` directory used by DokuWiki.