Merge pull request #4187 from Pr0dt0s/feature/4156_expose_detectType

Expose detectType function
This commit is contained in:
Sidharth Vinod 2023-03-07 09:40:50 +05:30 committed by GitHub
commit a57e392ed4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 1 deletions

View file

@ -247,6 +247,23 @@ The example below show an outline of how this could be used. The example just lo
</script> </script>
``` ```
To determine the type of diagram present in a given text, you can utilize the `mermaid.detectType` function, as demonstrated in the example below.
```html
<script type="module">
import mermaid from './mermaid.esm.mjs';
const graphDefinition = `sequenceDiagram
Pumbaa->>Timon:I ate like a pig.
Timon->>Pumbaa:Pumbaa, you ARE a pig.`;
try {
const type = mermaid.detectType(graphDefinition);
console.log(type); // 'sequence'
} catch (error) {
// UnknownDiagramError
}
</script>
```
### Binding events ### Binding events
Sometimes the generated graph also has defined interactions like tooltip and click events. When using the API one must Sometimes the generated graph also has defined interactions like tooltip and click events. When using the API one must

View file

@ -244,6 +244,23 @@ The example below show an outline of how this could be used. The example just lo
</script> </script>
``` ```
To determine the type of diagram present in a given text, you can utilize the `mermaid.detectType` function, as demonstrated in the example below.
```html
<script type="module">
import mermaid from './mermaid.esm.mjs';
const graphDefinition = `sequenceDiagram
Pumbaa->>Timon:I ate like a pig.
Timon->>Pumbaa:Pumbaa, you ARE a pig.`;
try {
const type = mermaid.detectType(graphDefinition);
console.log(type); // 'sequence'
} catch (error) {
// UnknownDiagramError
}
</script>
```
### Binding events ### Binding events
Sometimes the generated graph also has defined interactions like tooltip and click events. When using the API one must Sometimes the generated graph also has defined interactions like tooltip and click events. When using the API one must

View file

@ -7,7 +7,11 @@ import { MermaidConfig } from './config.type';
import { log } from './logger'; import { log } from './logger';
import utils from './utils'; import utils from './utils';
import { mermaidAPI, ParseOptions, RenderResult } from './mermaidAPI'; import { mermaidAPI, ParseOptions, RenderResult } from './mermaidAPI';
import { registerLazyLoadedDiagrams, loadRegisteredDiagrams } from './diagram-api/detectType'; import {
registerLazyLoadedDiagrams,
loadRegisteredDiagrams,
detectType,
} from './diagram-api/detectType';
import type { ParseErrorFunction } from './Diagram'; import type { ParseErrorFunction } from './Diagram';
import { isDetailedError } from './utils'; import { isDetailedError } from './utils';
import type { DetailedError } from './utils'; import type { DetailedError } from './utils';
@ -400,6 +404,7 @@ const mermaid: {
initialize: typeof initialize; initialize: typeof initialize;
contentLoaded: typeof contentLoaded; contentLoaded: typeof contentLoaded;
setParseErrorHandler: typeof setParseErrorHandler; setParseErrorHandler: typeof setParseErrorHandler;
detectType: typeof detectType;
} = { } = {
startOnLoad: true, startOnLoad: true,
mermaidAPI, mermaidAPI,
@ -412,6 +417,7 @@ const mermaid: {
parseError: undefined, parseError: undefined,
contentLoaded, contentLoaded,
setParseErrorHandler, setParseErrorHandler,
detectType,
}; };
export default mermaid; export default mermaid;