Markdown-Confluence Development Guide 🚀

Welcome to the development documentation for the markdown-confluence project! Let's dive into the development process for this fantastic TypeScript project that uses tsc and esbuild for building and packaging.

🛠️ Development Scripts

Here's a detailed overview of the essential scripts that keep our project flowing:

1. dev-obsidian

npm run dev --workspace=@markdown-confluence/lib & npm run dev --workspace=@markdown-confluence/mermaid-electron-renderer & npm run dev --workspace=obsidian-confluence

dev-obsidian is used for local development of the Obsidian plugin. This script simultaneously watches and builds code for the lib, mermaid-electron-renderer, and obsidian-confluence workspaces.

2. build

npm run build -ws --if-present

build is used to build all packages within the workspace. It's essential to run this command whenever you add a new type or modify an exported type across the package boundary to ensure everything is updated accordingly.

3. fmt

npm run fmt -ws --if-present

fmt is a convenient script for formatting all the code in the workspace using Prettier. This command helps maintain code consistency and readability throughout the project.

4. test

npm test -ws --if-present

test is used to run all the tests within the workspace. It helps ensure that new changes don't introduce unexpected issues or break existing functionality.

⚠️ Note: If you add a new type or modify an exported type across the package boundary, make sure to run npm run build.

🌐 Mono Repo Development

Development is done in the mono repo markdown-confluence/markdown-confluence.

Code Consistency and Formatting

We use husky to help keep files formatted, but please rely on eslint and prettier to maintain code consistency. These tools run as part of the CI in check mode.

TypeScript Strict Mode

TypeScript strict mode is enabled to assist with type checking as much as possible.

Have Fun

Happy coding, and we hope you enjoy contributing to the delightful universe of markdown-confluence!