Skip to content

Commit

Permalink
docs(readme): fix broken links, add toc (#163)
Browse files Browse the repository at this point in the history
  • Loading branch information
thompsonsj authored Oct 16, 2024
1 parent 127f759 commit 895e09a
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions packages/html/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,17 @@ Convert [Slate](https://www.npmjs.com/package/slate) JSON objects to HTML and vi

View the demo at [https://thompsonsj.github.io/slate-serializers-demo](https://thompsonsj.github.io/slate-serializers-demo).

## Table of contents

- [Engineering](#engineering)
- [Install](#install)
- [Usage](#usage)
- [slateToHtml](#slatetohtml)
- [htmlToSlate](#htmltoslate)

## Engineering

For details on how all serializers work, see [Engineering decisions](https://github.com/thompsonsj/slate-serializers/docs/engineering.md).
For details on how all serializers work, see [Engineering decisions](https://github.com/thompsonsj/slate-serializers/blob/main/docs/engineering.md).

## Install

Expand Down Expand Up @@ -74,14 +82,14 @@ const serializedToHtml = slateToHtml(slate, payloadSlateToHtmlConfig)

##### Custom configuration

You can create your own configuration file that implements your schema. See [packages/dom/src/lib/config/payload.ts](packages/dom/src/lib/config/payload.ts) for an example of how to extend the default configuration or copy [packages/dom/src/lib/config/default.ts](packages/dom/src/lib/config/default.ts) and rewrite it as appropriate.
You can create your own configuration file that implements your schema. See [packages/dom/src/lib/config/payload.ts](https://github.com/thompsonsj/slate-serializers/blob/main/packages/dom/src/lib/config/payload.ts) for an example of how to extend the default configuration or copy [packages/dom/src/lib/config/default.ts](https://github.com/thompsonsj/slate-serializers/blob/main/packages/dom/src/lib/config/default.ts) and rewrite it as appropriate.

| Option | Description | Default |
| - | - | - |
| `markMap` | Map Slate JSON properties to HTML formatting element tags. Accepts an array of HTML element tag names. | See [default config](packages/dom/src/lib/config/default.ts). Example: `{ code: ['pre', 'code'], /* ... */ }` |
| `elementMap` | Map Slate JSON `type` values to HTML element tags. Use `elementTransforms` for more control over the returned element. | See [default config](packages/dom/src/lib/config/default.ts). Example: `{ paragraph: 'p', /* ... */ }` |
| `markMap` | Map Slate JSON properties to HTML formatting element tags. Accepts an array of HTML element tag names. | See [default config](https://github.com/thompsonsj/slate-serializers/blob/main/packages/dom/src/lib/config/default.ts). Example: `{ code: ['pre', 'code'], /* ... */ }` |
| `elementMap` | Map Slate JSON `type` values to HTML element tags. Use `elementTransforms` for more control over the returned element. | See [default config](https://github.com/thompsonsj/slate-serializers/blob/main/packages/dom/src/lib/config/default.ts). Example: `{ paragraph: 'p', /* ... */ }` |
| `markTransforms` | Define transform functions for Slate JSON properties. Overrides and corresponding values in `markMap`. | ``{ fontSize: ({ node }) => { return new Element('span', { style: `font-size:${node.fontSize};` }) } }`` |
| `elementTransforms` | Define transform functions for Slate JSON node types. Overrides and corresponding values in `elementMap`. | See [default config](packages/dom/src/lib/config/default.ts). |
| `elementTransforms` | Define transform functions for Slate JSON node types. Overrides and corresponding values in `elementMap`. | See [default config](https://github.com/thompsonsj/slate-serializers/blob/main/packages/dom/src/lib/config/default.ts). |
| `encodeEntities` | See [cheeriojs/dom-serializer - encodeEntities](https://github.com/cheeriojs/dom-serializer#encodeentities) | `true` |
| `alwaysEncodeBreakingEntities` | Encode `&`, `<` and `>` regardless of other option settings. | `false` |
| `alwaysEncodeCodeEntities` | Encode entities in `<pre>` tags regardless of other option settings. | `true` |
Expand Down Expand Up @@ -137,12 +145,12 @@ const serializedToSlate = htmlToSlate(html, payloadHtmlToSlateConfig)
##### Custom configuration
You can create your own configuration file that implements your schema. See [packages/html/src/lib/serializers/htmlToSlate/config/payload.ts](packages/html/src/lib/serializers/htmlToSlate/config/payload.ts) for an example of how to extend the default configuration or copy [packages/html/src/lib/serializers/htmlToSlate/config/default.ts](packages/html/src/lib/serializers/htmlToSlate/config/default.ts) and rewrite it as appropriate.
You can create your own configuration file that implements your schema. See [packages/html/src/lib/serializers/htmlToSlate/config/payload.ts](https://github.com/thompsonsj/slate-serializers/blob/main/packages/html/src/lib/serializers/htmlToSlate/config/payload.ts) for an example of how to extend the default configuration or copy [packages/html/src/lib/serializers/htmlToSlate/config/default.ts](https://github.com/thompsonsj/slate-serializers/blob/main/packages/html/src/lib/serializers/htmlToSlate/config/default.ts) and rewrite it as appropriate.
| Option | Description | Default |
| - | - | - |
| `textTags` | Define transform functions for HTML formatting elements. | See [default config](packages/html/src/lib/serializers/htmlToSlate/config/default.ts). Example `{ i: () => ({ italic: true }), /* ... */ }`. |
| `elementTags` | Define transform functions for HTML element tag names. | See [default config](packages/html/src/lib/serializers/htmlToSlate/config/default.ts). Example `{ p: () => ({ type: 'p' }), /* ... */ }`. |
| `textTags` | Define transform functions for HTML formatting elements. | See [default config](https://github.com/thompsonsj/slate-serializers/blob/main/packages/html/src/lib/serializers/htmlToSlate/config/default.ts). Example `{ i: () => ({ italic: true }), /* ... */ }`. |
| `elementTags` | Define transform functions for HTML element tag names. | See [default config](https://github.com/thompsonsj/slate-serializers/blob/main/packages/html/src/lib/serializers/htmlToSlate/config/default.ts). Example `{ p: () => ({ type: 'p' }), /* ... */ }`. |
| `htmlPreProcessString` | Perform operations on the HTML string before serialization. | `(html) => html.replace(/<pre[^>]*>/g, '<code>').replace(/<\/pre>/g, '</code>')` | /* ... */ }`. |
| `filterWhitespaceNodes` | Remove whitespace that does not contribute meaning. | `true` |
| `convertBrToLineBreak` | Convert br tags to a new line character (\n). | `true` |

0 comments on commit 895e09a

Please sign in to comment.