docs: update content

This commit is contained in:
Hans Pagel
2021-03-30 21:17:10 +02:00
parent 8fcfaef4f1
commit 69ba3e3c97
3 changed files with 154 additions and 1 deletions

View File

@@ -0,0 +1,133 @@
import { Extension } from '@tiptap/core'
import { InputRule } from 'prosemirror-inputrules'
export const SmilieReplacer = Extension.create({
name: 'smilieReplacer',
addInputRules() {
return [
new InputRule(/-___-/, '😑'),
new InputRule(/:'-\)/, '😂'),
new InputRule(/':-\)/, '😅'),
new InputRule(/':-D/, '😅'),
new InputRule(/>:-\)/, '😆'),
new InputRule(/-__-/, '😑'),
new InputRule(/':-\(/, '😓'),
new InputRule(/:'-\(/, '😢'),
new InputRule(/>:-\(/, '😠'),
new InputRule(/O:-\)/, '😇'),
new InputRule(/0:-3/, '😇'),
new InputRule(/0:-\)/, '😇'),
new InputRule(/0;\^\)/, '😇'),
new InputRule(/O;-\)/, '😇'),
new InputRule(/0;-\)/, '😇'),
new InputRule(/O:-3/, '😇'),
new InputRule(/:'\)/, '😂'),
new InputRule(/:-D/, '😃'),
new InputRule(/':\)/, '😅'),
new InputRule(/'=\)/, '😅'),
new InputRule(/':D/, '😅'),
new InputRule(/'=D/, '😅'),
new InputRule(/>:\)/, '😆'),
new InputRule(/>;\)/, '😆'),
new InputRule(/>=\)/, '😆'),
new InputRule(/;-\)/, '😉'),
new InputRule(/\*-\)/, '😉'),
new InputRule(/;-\]/, '😉'),
new InputRule(/;\^\)/, '😉'),
new InputRule(/B-\)/, '😎'),
new InputRule(/8-\)/, '😎'),
new InputRule(/B-D/, '😎'),
new InputRule(/8-D/, '😎'),
new InputRule(/:-\*/, '😘'),
new InputRule(/:\^\*/, '😘'),
new InputRule(/:-\)/, '🙂'),
new InputRule(/-_-/, '😑'),
new InputRule(/:-X/, '😶'),
new InputRule(/:-#/, '😶'),
new InputRule(/:-x/, '😶'),
new InputRule(/>.</, '😣'),
new InputRule(/:-O/, '😮'),
new InputRule(/:-o/, '😮'),
new InputRule(/O_O/, '😮'),
new InputRule(/>:O/, '😮'),
new InputRule(/:-P/, '😛'),
new InputRule(/:-p/, '😛'),
new InputRule(/:-Þ/, '😛'),
new InputRule(/:-þ/, '😛'),
new InputRule(/:-b/, '😛'),
new InputRule(/>:P/, '😜'),
new InputRule(/X-P/, '😜'),
new InputRule(/x-p/, '😜'),
new InputRule(/':\(/, '😓'),
new InputRule(/'=\(/, '😓'),
new InputRule(/>:\\/, '😕'),
new InputRule(/>:\//, '😕'),
new InputRule(/:-\//, '😕'),
new InputRule(/:-./, '😕'),
new InputRule(/>:\[/, '😞'),
new InputRule(/:-\(/, '😞'),
new InputRule(/:-\[/, '😞'),
new InputRule(/:'\(/, '😢'),
new InputRule(/;-\(/, '😢'),
new InputRule(/#-\)/, '😵'),
new InputRule(/%-\)/, '😵'),
new InputRule(/X-\)/, '😵'),
new InputRule(/>:\(/, '😠'),
new InputRule(/0:3/, '😇'),
new InputRule(/0:\)/, '😇'),
new InputRule(/O:\)/, '😇'),
new InputRule(/O=\)/, '😇'),
new InputRule(/O:3/, '😇'),
new InputRule(/<\/3/, '💔'),
new InputRule(/:D/, '😃'),
new InputRule(/=D/, '😃'),
new InputRule(/;\)/, '😉'),
new InputRule(/\*\)/, '😉'),
new InputRule(/;\]/, '😉'),
new InputRule(/;D/, '😉'),
new InputRule(/B\)/, '😎'),
new InputRule(/8\)/, '😎'),
new InputRule(/:\*/, '😘'),
new InputRule(/=\*/, '😘'),
new InputRule(/:\)/, '🙂'),
new InputRule(/=\]/, '🙂'),
new InputRule(/=\)/, '🙂'),
new InputRule(/:\]/, '🙂'),
new InputRule(/:X/, '😶'),
new InputRule(/:#/, '😶'),
new InputRule(/=X/, '😶'),
new InputRule(/=x/, '😶'),
new InputRule(/:x/, '😶'),
new InputRule(/=#/, '😶'),
new InputRule(/:O/, '😮'),
new InputRule(/:o/, '😮'),
new InputRule(/:P/, '😛'),
new InputRule(/=P/, '😛'),
new InputRule(/:p/, '😛'),
new InputRule(/=p/, '😛'),
new InputRule(/:Þ/, '😛'),
new InputRule(/:þ/, '😛'),
new InputRule(/:b/, '😛'),
new InputRule(/d:/, '😛'),
new InputRule(/:\//, '😕'),
new InputRule(/:\\/, '😕'),
new InputRule(/=\//, '😕'),
new InputRule(/=\\/, '😕'),
new InputRule(/:L/, '😕'),
new InputRule(/=L/, '😕'),
new InputRule(/:\(/, '😞'),
new InputRule(/:\[/, '😞'),
new InputRule(/=\(/, '😞'),
new InputRule(/;\(/, '😢'),
new InputRule(/D:/, '😨'),
new InputRule(/:\$/, '😳'),
new InputRule(/=\$/, '😳'),
new InputRule(/#\)/, '😵'),
new InputRule(/%\)/, '😵'),
new InputRule(/X\)/, '😵'),
new InputRule(/:@/, '😠'),
new InputRule(/<3/, '❤️'),
]
},
})

View File

@@ -10,6 +10,7 @@ import Text from '@tiptap/extension-text'
import Code from '@tiptap/extension-code' import Code from '@tiptap/extension-code'
import Typography from '@tiptap/extension-typography' import Typography from '@tiptap/extension-typography'
import { ColorHighlighter } from './ColorHighlighter' import { ColorHighlighter } from './ColorHighlighter'
import { SmilieReplacer } from './SmilieReplacer'
export default { export default {
components: { components: {
@@ -31,6 +32,7 @@ export default {
Code, Code,
Typography, Typography,
ColorHighlighter, ColorHighlighter,
SmilieReplacer,
], ],
content: ` content: `
<p> <p>
@@ -41,8 +43,13 @@ export default {
</p> </p>
<p></p> <p></p>
<p> <p>
Also, you can teach the editor new things. For example to recognize hex colors and add a color swatch on the fly: #FFF, #0D0D0D, #616161, #A975FF, #FB5151, #FD9170, #FFCB6B, #68CEF8, #80cbc4, #9DEF8F Or teach the editor new things. We added a custom extension to this example that replaces smilies like <code>:-)</code>, <code><3</code> or <code>>:P</code> with emojis. Try it out:
</p> </p>
<p></p>
<p>
You can also teach the editor new things. For example to recognize hex colors and add a color swatch on the fly: #FFF, #0D0D0D, #616161, #A975FF, #FB5151, #FD9170, #FFCB6B, #68CEF8, #80cbc4, #9DEF8F
</p>
`, `,
}) })
}, },

View File

@@ -23,3 +23,16 @@ yarn add @tiptap/extension-character-count
## Usage ## Usage
<demo name="Extensions/CharacterCount" /> <demo name="Extensions/CharacterCount" />
## Count words, emojis, letters …
Want to count words instead? Or emojis? Or the letter *a*? Sure, no problem. You can access the `textContent` directly and count whatever youre into.
```js
new Editor({
onUpdate({ editor }) {
const wordCount = editor.state.doc.textContent.split(' ').length
console.log(wordCount)
},
})
```