Skip to content

Commit

Permalink
feat: add Marked instance (#2831)
Browse files Browse the repository at this point in the history
Co-authored-by: Steven <steven@ceriously.com>
  • Loading branch information
UziTech and styfle committed Jun 10, 2023
1 parent f19fe76 commit 353e13b
Show file tree
Hide file tree
Showing 12 changed files with 690 additions and 545 deletions.
4 changes: 2 additions & 2 deletions docs/INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ DOMPurify.sanitize(marked.parse(`<img src="x" onerror="alert('not happening')">`
**⚠️ Input: special ZERO WIDTH unicode characters (for example `\uFEFF`) might interfere with parsing. Some text editors add them at the start of the file (see: [#2139](https://github.com/markedjs/marked/issues/2139)).**

```js
// remove the most common zerowidth characters from the start of the file
// remove the most common zerowidth characters from the start of the file
marked.parse(
contents.replace(/^[\u200B\u200C\u200D\u200E\u200F\uFEFF]/,"")
)
Expand Down Expand Up @@ -121,7 +121,7 @@ By supporting the above Markdown flavors, it's possible that Marked can help you

<h2 id="tools">List of Tools Using Marked</h2>

We actively support the usability of Marked in super-fast markdown transformation, some of Tools using `Marked` for single-page creations are
We actively support the usability of Marked in super-fast markdown transformation, some of Tools using `Marked` for single-page creations are

| Tools | Description |
| :----------------------------------------------------------------- | :------------------------------------------------------------------------ |
Expand Down
16 changes: 16 additions & 0 deletions docs/USING_ADVANCED.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
## Marked instance

By default, Marked stores options and extensions in the global scope. That means changing the options in one script will also change the options in another script since they share the same instance.

If you don't want to mutate global scope, you can create a new instance of Marked to ensure options and extensions are locally scoped.

```js
import { Marked } from 'marked';
const marked = new Marked([options, extension, ...]);
```

|Argument |Type |Notes |
|:--------|:-------|:----------------------------------------------------------------------|
| options |`object`|The same arguments that can be passed to [`marked.use`](/using_pro#use)|

## The `parse` function

```js
Expand Down Expand Up @@ -162,6 +177,7 @@ markedWorker.onmessage = (e) => {

markedWorker.postMessage(markdownString);
```

<h2 id="cli-extensions">CLI Extensions</h2>

You can use extensions in the CLI by creating a new CLI that imports marked and the marked binary.
Expand Down
7 changes: 3 additions & 4 deletions docs/USING_PRO.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,19 @@ marked.use({

You can also supply multiple `extension` objects at once.

```
```js
marked.use(myExtension, extension2, extension3);

\\ EQUIVALENT TO:

marked.use(myExtension);
marked.use(extension2);
marked.use(extension3);
```

All options will overwrite those previously set, except for the following options which will be merged with the existing framework and can be used to change or extend the functionality of Marked: `renderer`, `tokenizer`, `walkTokens`, and `extensions`.
All options will overwrite those previously set, except for the following options which will be merged with the existing framework and can be used to change or extend the functionality of Marked: `renderer`, `tokenizer`, `hooks`, `walkTokens`, and `extensions`.

* The `renderer` and `tokenizer` options are objects with functions that will be merged into the built-in `renderer` and `tokenizer` respectively.
* The `renderer`, `tokenizer`, and `hooks` options are objects with functions that will be merged into the built-in `renderer` and `tokenizer` respectively.

* The `walkTokens` option is a function that will be called to post-process every token before rendering.

Expand Down

1 comment on commit 353e13b

@vercel
Copy link

@vercel vercel bot commented on 353e13b Jun 10, 2023

Choose a reason for hiding this comment

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

Please sign in to comment.