From da610bff1dc2d303404638afea9e007e7726f75c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 18 Apr 2025 14:55:53 +0530 Subject: [PATCH] chore: Add `@mermaid-js/tiny` package --- .esbuild/build.ts | 17 ++++++++++++++++- packages/tiny/README.md | 37 +++++++++++++++++++++++++++++++++++++ packages/tiny/package.json | 25 +++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 packages/tiny/README.md create mode 100644 packages/tiny/package.json diff --git a/.esbuild/build.ts b/.esbuild/build.ts index 4eb6ab002..143546bc1 100644 --- a/.esbuild/build.ts +++ b/.esbuild/build.ts @@ -1,5 +1,5 @@ import { build } from 'esbuild'; -import { mkdir, writeFile } from 'node:fs/promises'; +import { mkdir, readFile, rename, writeFile } from 'node:fs/promises'; import { packageOptions } from '../.build/common.js'; import { generateLangium } from '../.build/generateLangium.js'; import type { MermaidBuildOptions } from './util.js'; @@ -77,6 +77,20 @@ const handler = (e) => { process.exit(1); }; +const buildTinyMermaid = async () => { + await mkdir('./packages/tiny/dist', { recursive: true }); + await rename( + './packages/mermaid/dist/mermaid.tiny.min.js', + './packages/tiny/dist/mermaid.tiny.min.js' + ); + // Copy version from mermaid's package.json to tiny's package.json + const mermaidPkg = JSON.parse(await readFile('./packages/mermaid/package.json', 'utf8')); + const tinyPkg = JSON.parse(await readFile('./packages/tiny/package.json', 'utf8')); + tinyPkg.version = mermaidPkg.version; + + await writeFile('./packages/tiny/package.json', JSON.stringify(tinyPkg, null, 2) + '\n'); +}; + const main = async () => { await generateLangium(); await mkdir('stats', { recursive: true }); @@ -85,6 +99,7 @@ const main = async () => { for (const pkg of packageNames) { await buildPackage(pkg).catch(handler); } + await buildTinyMermaid(); }; void main(); diff --git a/packages/tiny/README.md b/packages/tiny/README.md new file mode 100644 index 000000000..b01b0c4a8 --- /dev/null +++ b/packages/tiny/README.md @@ -0,0 +1,37 @@ +# Tiny Mermaid + +This is a tiny version of mermaid that is optimized for the web. It is a subset of the mermaid library and is designed to be used in the browser via CDN. + +## Usage via NPM + +This package is not meant to be installed directly from npm. It is designed to be used via CDN. +If you need to use mermaid in your project, please install the full [`mermaid` package](https://www.npmjs.com/package/mermaid) instead. + +## Removals from mermaid + +This does not support + +- Mindmap Diagram +- Architecture Diagram +- Katex rendering + +## Usage via CDN + +### Latest version + +```html + +``` + +### Specific version + +```html + + + + + + + + +``` diff --git a/packages/tiny/package.json b/packages/tiny/package.json new file mode 100644 index 000000000..2ecc0caa3 --- /dev/null +++ b/packages/tiny/package.json @@ -0,0 +1,25 @@ +{ + "name": "@mermaid-js/tiny", + "version": "11.6.0", + "description": "Tiny version of mermaid", + "type": "commonjs", + "main": "./dist/mermaid.tiny.min.js", + "scripts": { + "clean": "rimraf dist" + }, + "repository": { + "type": "git", + "url": "https://github.com/mermaid-js/mermaid" + }, + "author": "Sidharth Vinod", + "license": "MIT", + "dependencies": {}, + "devDependencies": {}, + "files": [ + "dist/", + "README.md" + ], + "publishConfig": { + "access": "public" + } +}