Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: clean up code in mermaidAPI render() and write specs/tests #3684

Conversation

weedySeaDragon
Copy link
Contributor

@weedySeaDragon weedySeaDragon commented Oct 16, 2022

📑 Summary

Cleaned up and refactored render() in mermaidAPI so that specs/tests could be written for discrete steps, reduced duplication, and made it easier to understand for future maintainers.

Partially resolves #3648

📏 Design Decisions

There is more refactoring and clean-up that can be done (including the other main functions), but this is a first pass. render() seemed the most important because it is the core functionality.

Could not figure out how to mock/spyOn just one function within mermaidAPI, so some tests instead painfully check results. See TODOs in mermaidAPI.spec.ts.

  • cleaned up code: DRY, created constants for literals, renamed variables to clarify intent
  • refactored into testable functions
  • wrote specs/tests

📋 Tasks

Make sure you

  • 📖 have read the contribution guidelines
  • 💻 have added unit/e2e tests (if appropriate)
  • 🔖 targeted develop branch

@github-actions github-actions bot added the chore label Oct 16, 2022
@weedySeaDragon weedySeaDragon changed the title (chore) clean up code in mermaidAPI render() and write specs/tests chore: clean up code in mermaidAPI render() and write specs/tests Oct 16, 2022
* develop: (21 commits)
  Theme update from release 9.2
  testcode
  Delete dependabot.yml
  changed cspell config in eslint from warn to error
  Update .eslintrc.json
  fix cypress tests for erDiagram, add eslint-plugin-no-only-tests plugin because of this comment: mermaid-js#3647 (comment)
  chore: Add CORS to vite dev
  configured 3 more words in cspell.json
  removed eslint-ignore statements
  chore(deps): pin dependencies
  chore(deps): update all non-major dependencies (mermaid-js#3671)
  style(sequence): rename lineStarty to lineStartY
  style: fix @cspell/eslint warnings
  test(gantt): remove incorrect comment
  added words to cspell ignore words list, removed mywords.txt
  update: open graph image
  fix: prettier
  remove id attribute
  feat(issue#3675): added open graph meta tags
  updated eslint config and fixed cspell warnings
  ...
@sidharthv96
Copy link
Member

@weedySeaDragon, added some more types and slightly wandered into some related files.
Saw some TODOs, are they intended for a discussion here?

@weedySeaDragon
Copy link
Contributor Author

@sidharthv96 -- looks like I shouldn't change if statements to one line. Ex:

if (someConditional) {
  something = someNewValue; // some short 1 line statement
}

changed to

if (someConditional)  something = someNewValue; // some short 1 line statement

There is an eslint rule for this: curly: "error" (default is that all should be blocks with curly braces). Should we put it into .eslintrc.json? (Obv we should create a separate issue. Mentioning it here because I was looking at your changes.

@weedySeaDragon
Copy link
Contributor Author

@sidharthv96 Re TODOs -- mostly they are for the future. But we can discuss and try to resolve with this PR if you think that's best.

@weedySeaDragon
Copy link
Contributor Author

@sidharthv96 p.s. I just logged into Slack if you want to chat there. (My user name there is 'Ashley Engelund' which is my IRL name :-)

@sidharthv96
Copy link
Member

There is an eslint rule for this: curly: "error" (default is that all should be blocks with curly braces). Should we put it into .eslintrc.json? (Obv we should create a separate issue. Mentioning it here because I was looking at your changes.

I didn't add curly to keep the footprint low. We should add it separately. I'll create an issue.

@knsv
Copy link
Collaborator

knsv commented Nov 1, 2022

@weedySeaDragon @sidharthv96 Hey, whats the status on this one?

@weedySeaDragon
Copy link
Contributor Author

I've been waiting for more reviews.

(I'll merge it with the most recent to bring it up to date.)

cSpell.json Outdated Show resolved Hide resolved
@weedySeaDragon
Copy link
Contributor Author

weedySeaDragon commented Nov 9, 2022

@sidharthv96 - This is still failing during pnpm run docs:verify.
The package.json file doesn't even have any of the docs.. scripts. (They got removed during all of the vitepress/documentation changes.)
Even so, when I (manually) run

ts-node-esm packages/mermaid/src/docs.mts

no document are updated ("Transforming 0 ___ files..." for all file types), and

ts-node-esm packages/mermaid/src/docs.mts --verify

verifies 0 files (for all file types).

Not sure how else to verify or change the src/docs files locally to get this to pass during CI.

ETA: Comparing /docs/setup/modules/mermaidAPI.md with src/setup/modules/mermaidAPI.md on my machine, there are 2 differences:

  1. line 19 in docs version, line 13 on src version:
    there is a "/" before the closing ">" in src but not in the docs version

  2. The parameters tables are not the same for only some of the functions. There are differences for these functions:

    • createCssStyles
    • createUserStyles
    • cssImportantStyles

(As a side note: those are exported just so they can be tested in the spec. Is there a different/better way to be able to test them without having them be "public" via export statements? Certainly the "right" way is to never test private (non-exported) functions, but to only test the results of them (the ultimate effect/result). I can certainly do that, but it's rather tedious. )

@sidharthv96
Copy link
Member

sidharthv96 commented Nov 9, 2022

image

I think this might be the issue.

@weedySeaDragon
Copy link
Contributor Author

Thanks for fixing those.

Shouldn't those differences have been taken care of automatically?
And is there anything I could have done locally to detect the problem?

@sidharthv96
Copy link
Member

Thanks for fixing those.

Shouldn't those differences have been taken care of automatically? And is there anything I could have done locally to detect the problem?

They should be, from now on.

Added the correct config for typedoc here.

Copy link
Member

@sidharthv96 sidharthv96 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

This should make the merge from master with the duplicate renderAsync much smaller.

Copy link

@MermaidChart MermaidChart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job! I can see how the d3 mock can be usefull!

@knsv knsv merged commit dfb1440 into mermaid-js:develop Nov 14, 2022
fuxingloh pushed a commit to fuxingloh/contented that referenced this pull request Dec 19, 2022
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mermaid](https://togithub.com/mermaid-js/mermaid) | [`9.2.2` ->
`9.3.0`](https://renovatebot.com/diffs/npm/mermaid/9.2.2/9.3.0) |
[![age](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/compatibility-slim/9.2.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/confidence-slim/9.2.2)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>mermaid-js/mermaid</summary>

###
[`v9.3.0`](https://togithub.com/mermaid-js/mermaid/releases/tag/v9.3.0)

[Compare
Source](https://togithub.com/mermaid-js/mermaid/compare/v9.2.2...v9.3.0)

### Significant Changes

-   25% Smaller
-   New docs
-   Replaces the deprecated and vulnerable `dagre-d3` with `dagre-es`

### Release Notes

- [#&#8203;3778](https://togithub.com/mermaid-js/mermaid/issues/3778)
Adding a hexgon shape
([#&#8203;3834](https://togithub.com/mermaid-js/mermaid/issues/3834))
[@&#8203;knsv](https://togithub.com/knsv)
- [#&#8203;3831](https://togithub.com/mermaid-js/mermaid/issues/3831)
Re-enabling themes for er diagrams
([#&#8203;3837](https://togithub.com/mermaid-js/mermaid/issues/3837))
[@&#8203;knsv](https://togithub.com/knsv)
- [#&#8203;3882](https://togithub.com/mermaid-js/mermaid/issues/3882)
fix for issues with mindmaps with only a single node
([#&#8203;3833](https://togithub.com/mermaid-js/mermaid/issues/3833))
[@&#8203;knsv](https://togithub.com/knsv)
- (chore) remove console stmt in pieDetector
([#&#8203;3840](https://togithub.com/mermaid-js/mermaid/issues/3840))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- (feat) state classDef documentation
([#&#8203;3841](https://togithub.com/mermaid-js/mermaid/issues/3841))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- 3882 edge labels
([#&#8203;3883](https://togithub.com/mermaid-js/mermaid/issues/3883))
[@&#8203;knsv](https://togithub.com/knsv)
- Add GHA that will check links + Fix broken links
([#&#8203;3765](https://togithub.com/mermaid-js/mermaid/issues/3765))
[@&#8203;spier](https://togithub.com/spier)
- Add official vim plugin to list in integrations
([#&#8203;3847](https://togithub.com/mermaid-js/mermaid/issues/3847))
[@&#8203;craigmac](https://togithub.com/craigmac)
- Add package visualizations
([#&#8203;3823](https://togithub.com/mermaid-js/mermaid/issues/3823))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Add support for [@&#8203;include](https://togithub.com/include) in
docs
([#&#8203;3863](https://togithub.com/mermaid-js/mermaid/issues/3863))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- CI: disable pinning dependencies
([#&#8203;3735](https://togithub.com/mermaid-js/mermaid/issues/3735))
[@&#8203;aloisklink](https://togithub.com/aloisklink)
- Defects/issue 3878
([#&#8203;3880](https://togithub.com/mermaid-js/mermaid/issues/3880))
[@&#8203;MrCoder](https://togithub.com/MrCoder)
- Feat: Add aria-describedby, aria-roledescription
([#&#8203;3808](https://togithub.com/mermaid-js/mermaid/issues/3808))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- Fix
[#&#8203;3799](https://togithub.com/mermaid-js/mermaid/issues/3799):
Remove `type` from package.json
([#&#8203;3802](https://togithub.com/mermaid-js/mermaid/issues/3802))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Fix for
[#&#8203;3835](https://togithub.com/mermaid-js/mermaid/issues/3835),
makes it possible to style path elements
([#&#8203;3836](https://togithub.com/mermaid-js/mermaid/issues/3836))
[@&#8203;knsv](https://togithub.com/knsv)
- Fix typos
([#&#8203;3820](https://togithub.com/mermaid-js/mermaid/issues/3820))
[@&#8203;endolith](https://togithub.com/endolith)
- Housekeeping with eslint-unicorn
([#&#8203;3845](https://togithub.com/mermaid-js/mermaid/issues/3845))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Integrations added - Visual Studio Code \[Polyglot Interactive
Notebooks]
([#&#8203;3821](https://togithub.com/mermaid-js/mermaid/issues/3821))
[@&#8203;dfinke](https://togithub.com/dfinke)
- Mindmap integration docs
([#&#8203;3810](https://togithub.com/mermaid-js/mermaid/issues/3810))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Reduce mermaid size by 31%
([#&#8203;3825](https://togithub.com/mermaid-js/mermaid/issues/3825))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Remove extra arrow and adjust cross position
([#&#8203;3641](https://togithub.com/mermaid-js/mermaid/issues/3641))
[@&#8203;ishuen](https://togithub.com/ishuen)
- Replace `dagre`/`dagre-d3` with `dagre-d3-es`
([#&#8203;3809](https://togithub.com/mermaid-js/mermaid/issues/3809))
[@&#8203;aloisklink](https://togithub.com/aloisklink)
- Revert "Added pie"
([#&#8203;3842](https://togithub.com/mermaid-js/mermaid/issues/3842))
[@&#8203;pbrolin47](https://togithub.com/pbrolin47)
- Switch CDN to unpkg.com
([#&#8203;3777](https://togithub.com/mermaid-js/mermaid/issues/3777))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Switch back to jsdelivr
([#&#8203;3873](https://togithub.com/mermaid-js/mermaid/issues/3873))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Use `github-dark` to highlight fence blocks in vitepress docs
([#&#8203;3807](https://togithub.com/mermaid-js/mermaid/issues/3807))
[@&#8203;aloisklink](https://togithub.com/aloisklink)
- Use current mermaid version in docs.
([#&#8203;3846](https://togithub.com/mermaid-js/mermaid/issues/3846))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- Use stylis to prepend idSelector
([#&#8203;3829](https://togithub.com/mermaid-js/mermaid/issues/3829))
[@&#8203;DanInProgress](https://togithub.com/DanInProgress)
- bug: State diagram fix classes type
([#&#8203;3798](https://togithub.com/mermaid-js/mermaid/issues/3798))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- bug: change shiki getHighlighter import
([#&#8203;3804](https://togithub.com/mermaid-js/mermaid/issues/3804))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- chore(deps): remove dependency on `graphlib`
([#&#8203;3861](https://togithub.com/mermaid-js/mermaid/issues/3861))
[@&#8203;aloisklink](https://togithub.com/aloisklink)
- chore(deps): update all non-major dependencies (minor)
([#&#8203;3905](https://togithub.com/mermaid-js/mermaid/issues/3905))
[@&#8203;renovate](https://togithub.com/renovate)
- chore(deps): update all non-major dependencies (minor)
([#&#8203;3791](https://togithub.com/mermaid-js/mermaid/issues/3791))
[@&#8203;renovate](https://togithub.com/renovate)
- chore(deps): update lycheeverse/lychee-action action to v1.5.4
([#&#8203;3827](https://togithub.com/mermaid-js/mermaid/issues/3827))
[@&#8203;renovate](https://togithub.com/renovate)
- chore(deps): update pnpm to v7.17.0
([#&#8203;3828](https://togithub.com/mermaid-js/mermaid/issues/3828))
[@&#8203;renovate](https://togithub.com/renovate)
- chore(deps): update pnpm to v7.17.1
([#&#8203;3862](https://togithub.com/mermaid-js/mermaid/issues/3862))
[@&#8203;renovate](https://togithub.com/renovate)
- chore(docs): Auto build docs
([#&#8203;3547](https://togithub.com/mermaid-js/mermaid/issues/3547))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- chore: Housekeeping
([#&#8203;3783](https://togithub.com/mermaid-js/mermaid/issues/3783))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- chore: Merge master to develop
([#&#8203;3780](https://togithub.com/mermaid-js/mermaid/issues/3780))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- chore: clean up code in mermaidAPI render() and write specs/tests
([#&#8203;3684](https://togithub.com/mermaid-js/mermaid/issues/3684))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- chore: delete functions not used in diagrams/c4 code (dead code)
([#&#8203;3871](https://togithub.com/mermaid-js/mermaid/issues/3871))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- comments in states are skipped now
([#&#8203;3762](https://togithub.com/mermaid-js/mermaid/issues/3762))
[@&#8203;avijit1258](https://togithub.com/avijit1258)
- doc: remove links from atom.io; add note Atom has been archived
([#&#8203;3899](https://togithub.com/mermaid-js/mermaid/issues/3899))
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon)
- docs: refactor Theming doc
([#&#8203;3889](https://togithub.com/mermaid-js/mermaid/issues/3889))
[@&#8203;huynhicode](https://togithub.com/huynhicode)
- feat: Redirect old documentation links.
([#&#8203;3797](https://togithub.com/mermaid-js/mermaid/issues/3797))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)
- feat: Title support via front matter for ER, state, class, git, and
graph diagrams
([#&#8203;3706](https://togithub.com/mermaid-js/mermaid/issues/3706))
[@&#8203;MasonM](https://togithub.com/MasonM)
- fix(deps): update all non-major dependencies (patch)
([#&#8203;3790](https://togithub.com/mermaid-js/mermaid/issues/3790))
[@&#8203;renovate](https://togithub.com/renovate)
- fix(deps): update dependency rollup to v3
([#&#8203;3674](https://togithub.com/mermaid-js/mermaid/issues/3674))
[@&#8203;renovate](https://togithub.com/renovate)
- fix: LintStaged
([#&#8203;3844](https://togithub.com/mermaid-js/mermaid/issues/3844))
[@&#8203;sidharthv96](https://togithub.com/sidharthv96)

🎉 **Thanks to all contributors helping with this release!** 🎉

#### What's Changed

- chore(deps): update actions/checkout action to v3 by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3645
- chore(deps): update actions/setup-node action to v3 by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3646
- Remove inconsistent and deprecated semicolons by
[@&#8203;revolter](https://togithub.com/revolter) in
[mermaid-js/mermaid#3657
- Fix windows paths for `docs:build` by
[@&#8203;arpansaha13](https://togithub.com/arpansaha13) in
[mermaid-js/mermaid#3605
- feat: make `parseError` function more type-safe by
[@&#8203;Some-Dood](https://togithub.com/Some-Dood) in
[mermaid-js/mermaid#3643
- chore(deps): update all non-major dependencies (minor) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3632
- chore(deps): update all non-major dependencies (patch) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3671
- chore(deps): pin dependencies by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3685
- Added Open Graph meta tags by
[@&#8203;danangtomo](https://togithub.com/danangtomo) in
[mermaid-js/mermaid#3679
- add eslint-plugin-no-only-tests plugin by
[@&#8203;DKurilo](https://togithub.com/DKurilo) in
[mermaid-js/mermaid#3690
- Added and configured cspell plugin to eslint by
[@&#8203;devcer](https://togithub.com/devcer) in
[mermaid-js/mermaid#3604
- fix: gantt demo diagrams
([#&#8203;3655](https://togithub.com/mermaid-js/mermaid/issues/3655)) by
[@&#8203;isinek](https://togithub.com/isinek) in
[mermaid-js/mermaid#3688
- Chore/3697 eslint curly by
[@&#8203;jeroenekkelkamp](https://togithub.com/jeroenekkelkamp) in
[mermaid-js/mermaid#3698
- Update sequenceDiagram.md by
[@&#8203;imgss](https://togithub.com/imgss) in
[mermaid-js/mermaid#3707
- Use `eslint-plugin-tsdoc` for TypeScript files instead of
`eslint-plugin-jsdoc` by
[@&#8203;aloisklink](https://togithub.com/aloisklink) in
[mermaid-js/mermaid#3708
- chore(deps): pin dependencies by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3713
- chore(deps): update all non-major dependencies (patch) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3714
- Order pie chart slices clockwise by order of entries by
[@&#8203;jasmaa](https://togithub.com/jasmaa) in
[mermaid-js/mermaid#3609
- fix: border attribute does not work in a certain writing style by
[@&#8203;maiermic](https://togithub.com/maiermic) in
[mermaid-js/mermaid#3636
- add the way to add notes to class diagram by
[@&#8203;DKurilo](https://togithub.com/DKurilo) in
[mermaid-js/mermaid#3647
- add statement aliases for ER diagram by
[@&#8203;DKurilo](https://togithub.com/DKurilo) in
[mermaid-js/mermaid#3649
- fix: Fix useMaxWidth option for git graph by
[@&#8203;uttk](https://togithub.com/uttk) in
[mermaid-js/mermaid#3652
- [#&#8203;3659](https://togithub.com/mermaid-js/mermaid/issues/3659)
Adding height when not using maxWidth by
[@&#8203;knsv](https://togithub.com/knsv) in
[mermaid-js/mermaid#3668
- Change fill attribute to style by
[@&#8203;CalebUsadi](https://togithub.com/CalebUsadi) in
[mermaid-js/mermaid#3719
- feat: \[State diagram] Add classDefs and classes to states by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3644
- Fill inheritance arrow with background color by
[@&#8203;vallsv](https://togithub.com/vallsv) in
[mermaid-js/mermaid#3543
- Ensure example code and rendered output are synced by
[@&#8203;marcjansen](https://togithub.com/marcjansen) in
[mermaid-js/mermaid#3721
- fix(git): Support quoted branch names by
[@&#8203;gibson042](https://togithub.com/gibson042) in
[mermaid-js/mermaid#3726
- docs: Add link to docs source by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3612
- chore(deps): update all non-major dependencies (patch) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3736
- chore(deps): update all non-major dependencies (minor) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3737
- feat(gantt): Add option 'tickInterval' for custom tick interval by
[@&#8203;DarkNami](https://togithub.com/DarkNami) in
[mermaid-js/mermaid#3729
- Fix/convert attr to style in er graph by
[@&#8203;CalebUsadi](https://togithub.com/CalebUsadi) in
[mermaid-js/mermaid#3722
- update user story link for
[#&#8203;3740](https://togithub.com/mermaid-js/mermaid/issues/3740) by
[@&#8203;6footGeek](https://togithub.com/6footGeek) in
[mermaid-js/mermaid#3741
- Improved New Documentation by
[@&#8203;emersonbottero](https://togithub.com/emersonbottero) in
[mermaid-js/mermaid#3678
- chore: fix cSpell word entry misspelling "mermiad" -> "mermaid" by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3751
- Fix link to CSS classes by
[@&#8203;hugovk](https://togithub.com/hugovk) in
[mermaid-js/mermaid#3752
- docs: Update references to default config in directives page by
[@&#8203;raptor0929](https://togithub.com/raptor0929) in
[mermaid-js/mermaid#3738
- Fix link relative links to documentation files by
[@&#8203;spier](https://togithub.com/spier) in
[mermaid-js/mermaid#3760
- chore(deps): update all non-major dependencies (patch) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3769
- chore(deps): update all non-major dependencies (minor) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3770
- Fix CSpell by [@&#8203;sidharthv96](https://togithub.com/sidharthv96)
in
[mermaid-js/mermaid#3753
- Live edits for Docs by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3755
- Switch CDN to unpkg.com by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3777
- chore: Housekeeping by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3783
- Pnpm issue reproduction by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3784
- fix(deps): update all non-major dependencies (patch) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3790
- chore: clean up code in mermaidAPI render() and write specs/tests by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3684
- chore(deps): update all non-major dependencies (minor) by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3791
- fix(deps): update dependency rollup to v3 by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3674
- Add GHA that will check links + Fix broken links by
[@&#8203;spier](https://togithub.com/spier) in
[mermaid-js/mermaid#3765
- chore: Merge master to develop by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3780
- bug: change shiki getHighlighter import by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3804
- Fix
[#&#8203;3799](https://togithub.com/mermaid-js/mermaid/issues/3799):
Remove `type` from package.json by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3802
- CI: disable pinning dependencies by
[@&#8203;aloisklink](https://togithub.com/aloisklink) in
[mermaid-js/mermaid#3735
- bug: State diagram fix classes type by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3798
- Remove extra arrow and adjust cross position by
[@&#8203;ishuen](https://togithub.com/ishuen) in
[mermaid-js/mermaid#3641
- comments in states are skipped now by
[@&#8203;avijit1258](https://togithub.com/avijit1258) in
[mermaid-js/mermaid#3762
- feat: Redirect old documentation links. by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3797
- Mindmap integration docs by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3810
- Use `github-dark` to highlight fence blocks in vitepress docs by
[@&#8203;aloisklink](https://togithub.com/aloisklink) in
[mermaid-js/mermaid#3807
- chore(deps): update lycheeverse/lychee-action action to v1.5.4 by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3827
- chore(deps): update pnpm to v7.17.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3828
- feat: Title support via front matter for ER, state, class, git, and
graph diagrams by [@&#8203;MasonM](https://togithub.com/MasonM) in
[mermaid-js/mermaid#3706
- Replace `dagre`/`dagre-d3` with `dagre-d3-es` by
[@&#8203;aloisklink](https://togithub.com/aloisklink) in
[mermaid-js/mermaid#3809
- Add package visualizations by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3823
- [#&#8203;3882](https://togithub.com/mermaid-js/mermaid/issues/3882)
fix for issues with mindmaps with only a single node by
[@&#8203;knsv](https://togithub.com/knsv) in
[mermaid-js/mermaid#3833
- [#&#8203;3778](https://togithub.com/mermaid-js/mermaid/issues/3778)
Adding a hexgon shape by [@&#8203;knsv](https://togithub.com/knsv) in
[mermaid-js/mermaid#3834
- Fix for
[#&#8203;3835](https://togithub.com/mermaid-js/mermaid/issues/3835),
makes it possible to style path elements by
[@&#8203;knsv](https://togithub.com/knsv) in
[mermaid-js/mermaid#3836
- [#&#8203;3831](https://togithub.com/mermaid-js/mermaid/issues/3831)
Re-enabling themes for er diagrams by
[@&#8203;knsv](https://togithub.com/knsv) in
[mermaid-js/mermaid#3837
- (chore) remove console stmt in pieDetector by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3840
- Revert "Added pie" by
[@&#8203;pbrolin47](https://togithub.com/pbrolin47) in
[mermaid-js/mermaid#3842
- Fix typos by [@&#8203;endolith](https://togithub.com/endolith) in
[mermaid-js/mermaid#3820
- (feat) state classDef documentation by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3841
- Integrations added - Visual Studio Code \[Polyglot Interactive
Notebooks] by [@&#8203;dfinke](https://togithub.com/dfinke) in
[mermaid-js/mermaid#3821
- Reduce mermaid size by 31% by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3825
- fix: LintStaged by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3844
- Add official vim plugin to list in integrations by
[@&#8203;craigmac](https://togithub.com/craigmac) in
[mermaid-js/mermaid#3847
- chore(deps): remove dependency on `graphlib` by
[@&#8203;aloisklink](https://togithub.com/aloisklink) in
[mermaid-js/mermaid#3861
- chore(deps): update pnpm to v7.17.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[mermaid-js/mermaid#3862
- Make gitgraph snapshots consistent in E2E tests by
[@&#8203;aloisklink](https://togithub.com/aloisklink) in
[mermaid-js/mermaid#3860
- Use stylis to prepend idSelector by
[@&#8203;DanInProgress](https://togithub.com/DanInProgress) in
[mermaid-js/mermaid#3829
- Use current mermaid version in docs. by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3846
- Add support for [@&#8203;include](https://togithub.com/include) in
docs by [@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3863
- Housekeeping with eslint-unicorn by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3845
- chore: delete functions not used in diagrams/c4 code (dead code) by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3871
- Switch back to jsdelivr by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3873
- 3882 edge labels by [@&#8203;knsv](https://togithub.com/knsv) in
[mermaid-js/mermaid#3883
- Small fix for issue
[#&#8203;3881](https://togithub.com/mermaid-js/mermaid/issues/3881) by
[@&#8203;knsv](https://togithub.com/knsv) in
[mermaid-js/mermaid#3884
- Defects/issue 3878 by [@&#8203;MrCoder](https://togithub.com/MrCoder)
in
[mermaid-js/mermaid#3880
- chore(docs): Auto build docs by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3547
- docs: refactor Theming doc by
[@&#8203;huynhicode](https://togithub.com/huynhicode) in
[mermaid-js/mermaid#3889
- Feat: Add aria-describedby, aria-roledescription by
[@&#8203;weedySeaDragon](https://togithub.com/weedySeaDragon) in
[mermaid-js/mermaid#3808
- Release/9.3.0 by
[@&#8203;sidharthv96](https://togithub.com/sidharthv96) in
[mermaid-js/mermaid#3911

#### New Contributors

- [@&#8203;revolter](https://togithub.com/revolter) made their first
contribution in
[mermaid-js/mermaid#3657
- [@&#8203;Some-Dood](https://togithub.com/Some-Dood) made their first
contribution in
[mermaid-js/mermaid#3643
- [@&#8203;danangtomo](https://togithub.com/danangtomo) made their first
contribution in
[mermaid-js/mermaid#3679
- [@&#8203;DKurilo](https://togithub.com/DKurilo) made their first
contribution in
[mermaid-js/mermaid#3690
- [@&#8203;devcer](https://togithub.com/devcer) made their first
contribution in
[mermaid-js/mermaid#3604
- [@&#8203;isinek](https://togithub.com/isinek) made their first
contribution in
[mermaid-js/mermaid#3688
- [@&#8203;jeroenekkelkamp](https://togithub.com/jeroenekkelkamp) made
their first contribution in
[mermaid-js/mermaid#3698
- [@&#8203;imgss](https://togithub.com/imgss) made their first
contribution in
[mermaid-js/mermaid#3707
- [@&#8203;jasmaa](https://togithub.com/jasmaa) made their first
contribution in
[mermaid-js/mermaid#3609
- [@&#8203;uttk](https://togithub.com/uttk) made their first
contribution in
[mermaid-js/mermaid#3652
- [@&#8203;CalebUsadi](https://togithub.com/CalebUsadi) made their first
contribution in
[mermaid-js/mermaid#3719
- [@&#8203;marcjansen](https://togithub.com/marcjansen) made their first
contribution in
[mermaid-js/mermaid#3721
- [@&#8203;DarkNami](https://togithub.com/DarkNami) made their first
contribution in
[mermaid-js/mermaid#3729
- [@&#8203;6footGeek](https://togithub.com/6footGeek) made their first
contribution in
[mermaid-js/mermaid#3741
- [@&#8203;hugovk](https://togithub.com/hugovk) made their first
contribution in
[mermaid-js/mermaid#3752
- [@&#8203;raptor0929](https://togithub.com/raptor0929) made their first
contribution in
[mermaid-js/mermaid#3738
- [@&#8203;spier](https://togithub.com/spier) made their first
contribution in
[mermaid-js/mermaid#3760
- [@&#8203;ishuen](https://togithub.com/ishuen) made their first
contribution in
[mermaid-js/mermaid#3641
- [@&#8203;avijit1258](https://togithub.com/avijit1258) made their first
contribution in
[mermaid-js/mermaid#3762
- [@&#8203;MasonM](https://togithub.com/MasonM) made their first
contribution in
[mermaid-js/mermaid#3706
- [@&#8203;endolith](https://togithub.com/endolith) made their first
contribution in
[mermaid-js/mermaid#3820
- [@&#8203;dfinke](https://togithub.com/dfinke) made their first
contribution in
[mermaid-js/mermaid#3821
- [@&#8203;craigmac](https://togithub.com/craigmac) made their first
contribution in
[mermaid-js/mermaid#3847
- [@&#8203;DanInProgress](https://togithub.com/DanInProgress) made their
first contribution in
[mermaid-js/mermaid#3829
- [@&#8203;MrCoder](https://togithub.com/MrCoder) made their first
contribution in
[mermaid-js/mermaid#3880
- [@&#8203;huynhicode](https://togithub.com/huynhicode) made their first
contribution in
[mermaid-js/mermaid#3889

**Full Changelog**:
mermaid-js/mermaid@v9.2.2...v9.3.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/BirthdayResearch/contented).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNjIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

(chore) DRY, clean up mermaidAPI, create tests
4 participants