Skip to content

Commit

Permalink
fix: Use AST to replace notes & warnings.
Browse files Browse the repository at this point in the history
  • Loading branch information
sidharthv96 committed Oct 28, 2022
1 parent 6b3892b commit d7bf92b
Show file tree
Hide file tree
Showing 11 changed files with 68 additions and 127 deletions.
11 changes: 11 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,17 @@
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
},
{
"name": "Docs generation",
"type": "node",
"request": "launch",
"args": ["src/docs.mts"],
"runtimeArgs": ["--loader", "ts-node/esm"],
"cwd": "${workspaceRoot}/packages/mermaid",
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"smartStep": true,
"internalConsoleOptions": "openOnSessionStart"
}
]
}
5 changes: 3 additions & 2 deletions cSpell.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,20 @@
"version": "0.2",
"language": "en",
"words": [
"blockquotes",
"customizability",
"Gantt",
"jison",
"knsv",
"Knut",
"mermiad",
"mindmap",
"Mindmaps",
"mitigations",
"sandboxed",
"Sveidqvist",
"verdana",
"Visio",
"mermiad"
"Visio"
],
"ignoreWords": [
"Faber",
Expand Down
13 changes: 5 additions & 8 deletions docs/community/newDiagram.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,8 @@ statement

In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered.

> **Note**\
> **Note**
> Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user.
>
> >
For more info look in the example diagram type:

Expand All @@ -50,8 +48,7 @@ exports.parseError = function (err, hash) {
when parsing the `yy` object is initialized as per below:

```javascript
var parser;
parser = exampleParser.parser;
const parser = exampleParser.parser;
parser.yy = db;
```

Expand All @@ -74,8 +71,8 @@ At this point when mermaid is trying to render the diagram, it will detect it as
### Setup

```javascript
var graph = require('./graphDb');
var flow = require('./parser/flow');
const graph = require('./graphDb');
const flow = require('./parser/flow');
flow.parser.yy = graph;
```

Expand All @@ -96,7 +93,7 @@ graph.getEdges();
The parser is also exposed in the mermaid api by calling:

```javascript
var parser = mermaid.getParser();
const parser = mermaid.getParser();
```

Note that the parse needs a graph object to store the data as per:
Expand Down
36 changes: 9 additions & 27 deletions docs/config/8.6.0_docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,8 @@ Implementors can only modify configurations using directives, and cannot change

The Two types of directives: are `init` (or `initialize`) and `wrap`.

> **Note**\
> **Note**
> All directives are enclosed in `%%{ }%%`
>
> >
Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible.

Expand All @@ -67,7 +65,7 @@ Older versions of mermaid will not parse directives because `%%` will comment ou
| --------- | ----------------------- | --------- | -------- | ----------------------------------------------- |
| init | modifies configurations | Directive | Optional | Any parameters not included in the secure array |

> **Note**\
> **Note**
> init would be an argument-directive: `%%{init: { **insert argument here**}}%%`
>
> The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored.
Expand All @@ -78,8 +76,6 @@ Older versions of mermaid will not parse directives because `%%` will comment ou
> Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict.
>
> When deployed within code, init is called before the graph/diagram description.
>
> >
**for example**:

Expand Down Expand Up @@ -113,16 +109,14 @@ Older versions of mermaid will not parse directives because `%%` will comment ou
| --------- | ----------------------------- | --------- | -------- | ---------- |
| wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% |

> **Note**\
> **Note**
> Wrap is a function that is currently only deployable for sequence diagrams.
>
> `Wrap respects a manually added <br>, so if the user wants to break up their text, they have full control over line breaks by adding <br> tags.`
>
> It is a non-argument directive and can be executed thusly:
>
> `%%{wrap}%%` .
>
> >
**An example of text wrapping in a sequence diagram**:

Expand Down Expand Up @@ -164,61 +158,51 @@ Example of **object.Assign**:
| --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- |
| `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig |

> **Note**\
> **Note**
> Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset
> the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig
> to the defaultConfig
> Note: currentConfig is set in this function。
> Default value: will mirror Global Config
>
> >
## getSiteConfig

| Function | Description | Type | Values |
| --------------- | --------------------------------------------------- | ----------- | ---------------------------------- |
| `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` |

> **Note**\
> **Note**
> Returns any values in siteConfig.
>
> >
## setConfig

| Function | Description | Type | Values | Parameters | Returns |
| ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- |
| `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf |

> **Note**\
> **Note**
> Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any
> values found in conf with key found in siteConfig.secure will be replaced with the corresponding
> siteConfig value.
>
> >
## getConfig

| Function | Description | Type | Return Values |
| ----------- | --------------------------- | ----------- | ------------------------------- |
| `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` |

> **Note**\
> **Note**
> Returns any values in currentConfig.
>
> >
## sanitize

| Function | Description | Type | Values |
| ---------- | ---------------------------------------- | -------------- | ------ |
| `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None |

> **Note**\
> **Note**
> modifies options in-place
> Ensures options parameter does not attempt to override siteConfig secure keys.
>
> >
## reset

Expand All @@ -232,9 +216,7 @@ Example of **object.Assign**:
| --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- |
| `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array |

> **Note**\
> **Note**
> default: current siteConfig (optional, default `getSiteConfig()`)
>
> >
## For more information, read [Setup](setup/README).
4 changes: 1 addition & 3 deletions docs/config/theming.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,10 +156,8 @@ You can create your own themes, by changing any of the given variables below. If

## Theme Variables Reference Table

> **Note**\
> **Note**
> Variables that are unique to some diagrams can be affected by changes in Theme Variables
>
> >
| Variable | Default/Base/Factor value | Calc | Description |
| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- |
Expand Down
34 changes: 11 additions & 23 deletions docs/config/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,9 @@ Values:
- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled
- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc.

> **Note**\
> **Note**
> This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled.
> **sandbox** security level is still in the beta version.
>
> >
**If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.**

Expand Down Expand Up @@ -188,10 +186,8 @@ Or with no config object, and a jQuery selection:
mermaid.init(undefined, $('#someId .yetAnotherClass'));
```

> **Warning**\
> **Warning**
> This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead.
>
> >
## Usage with webpack

Expand Down Expand Up @@ -230,15 +226,15 @@ The example code below is an extract of what mermaid does when using the API. Th
bind events to an SVG when using the API for rendering.

```javascript
var insertSvg = function (svgCode, bindFunctions) {
const insertSvg = function (svgCode, bindFunctions) {
element.innerHTML = svgCode;
if (typeof callback !== 'undefined') {
callback(id);
}
bindFunctions(element);
};

var id = 'theGraph';
const id = 'theGraph';

mermaidAPI.render(id, txt, insertSvg, element);
```
Expand All @@ -254,7 +250,7 @@ mermaidAPI.render(id, txt, insertSvg, element);
This is the renderer used for transforming the documentation from Markdown to html with mermaid diagrams in the html.

```javascript
var renderer = new marked.Renderer();
const renderer = new marked.Renderer();
renderer.code = function (code, language) {
if (code.match(/^sequenceDiagram/) || code.match(/^graph/)) {
return '<pre class="mermaid">' + code + '</pre>';
Expand Down Expand Up @@ -305,8 +301,8 @@ mermaid.parseError = function (err, hash) {
displayErrorInGui(err);
};

var textFieldUpdated = function () {
var textStr = getTextFromFormField('code');
const textFieldUpdated = function () {
const textStr = getTextFromFormField('code');

if (mermaid.parse(textStr)) {
reRender(textStr);
Expand Down Expand Up @@ -345,10 +341,8 @@ on what kind of integration you use.
</script>
```

> **Note**\
> **Note**
> This is the preferred way of configuring mermaid.
>
> >
### The following methods are deprecated and are kept only for backwards compatibility.

Expand All @@ -364,10 +358,8 @@ approach are:
mermaid.startOnLoad = true;
```

> **Warning**\
> **Warning**
> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility.
>
> >
## Using the mermaid_config

Expand All @@ -381,10 +373,8 @@ approach are:
mermaid_config.startOnLoad = true;
```

> **Warning**\
> **Warning**
> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility.
>
> >
## Using the mermaid.init call

Expand All @@ -397,7 +387,5 @@ To set some configuration via the mermaid object. The two parameters that are su
mermaid_config.startOnLoad = true;
```

> **Warning**\
> **Warning**
> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility.
>
> >
4 changes: 1 addition & 3 deletions docs/syntax/sequenceDiagram.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,10 @@ sequenceDiagram
Alice-)John: See you later!
```

> **Note**\
> **Note**
> A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted.
>
> If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}.
>
> >
## Syntax

Expand Down
Loading

0 comments on commit d7bf92b

Please sign in to comment.