No-man's folly is a free diagramming tool. This is a tool for people who love diagramming within.
Links
- Application: https://no-mans-folly.com/
- Documentation: https://doc.no-mans-folly.com/ (Repository)
This repository is licensed under the GNU Affero General Public License, Version 3. Individual files may have a different, but compatible license.
The content you create with this tool is yours and we make no copyright claim on it. However, you still need to follow certain license when you use external assets provided by thrid parties.
External icon are managed in below repository. They aren't under the license of this repository. https://github.com/miyanokomiya/no-mans-folly-assets
- There're some no-restricted-paths rules declared in
.eslintrc.json. useXXXcan be used only when the function is related to React Hooks.- Place them into
src/hooksor near by related components.
- Place them into
newXXXcan be used only when the function isn't related to React Hooks but is composable.- Place them into
src/composables.
- Place them into
statemay refer to the state pattern outside React components.- React related packages are available only in
src/components,src/hooksandsrc/contexts.- Feature driven directories should have similar structure as well.
Operations in the canvas should be managed via state pattern.
All state transition and handling should be shynchronous. Use defineAsyncState to make a state that handles something asynchronously.
Diagram data can be saved and restored via Indexed DB without opening a workspace. Add indexeddb=1 to URL query to turn on this functionality.
Asset files aren't kept in Indexed DB, so they are available until leaving the page.
This functionality is never intended for production environment.
debug attribute in UserSetting is used as a flag to show debug information in the app. Check "Debug mode" in the "Setting" panel to turn on this value.
You can turn on this flag in other than develop environment by directly modifying UserSetting saved in localStorage.
Debug information list
- Current state name at the top right of the canvas
Terminologies are defined in src/utils/terminology.ts.
<AppText> creates hints for terminologies when the text contains [[KEYWORD]] format.
Some modifiers are available to adjust key text.
(l): make key text lowercase.
Add feature flags in src/composables/featureFlags.ts if necessary.
main branch is automatically deployed to the production.