Add sub and sup Markdown tags.

pull/1000/head
Coma Grayce 2020-07-21 01:06:22 +03:00
parent d2f015d5d0
commit 6fbfb69ee4
No known key found for this signature in database
GPG Key ID: ADC223901D3524FE
5 changed files with 28 additions and 0 deletions

View File

@ -35,6 +35,8 @@ Horizontal Rule <br>\--- | Horizontal Rule<br>\*\*\* | Horizontal Rule <br><hr>
\`Inline code\` with backticks | |`Inline code` with backticks \`Inline code\` with backticks | |`Inline code` with backticks
\`\`\`<br>\# code block <br>print '3 backticks or'<br>print 'indent 4 spaces' <br>\`\`\` | ····\# code block<br>····print '3 backticks or'<br>····print 'indent 4 spaces' | \# code block <br>print '3 backticks or'<br>print 'indent 4 spaces' \`\`\`<br>\# code block <br>print '3 backticks or'<br>print 'indent 4 spaces' <br>\`\`\` | ····\# code block<br>····print '3 backticks or'<br>····print 'indent 4 spaces' | \# code block <br>print '3 backticks or'<br>print 'indent 4 spaces'
::: spoiler hidden or nsfw stuff<br>*a bunch of spoilers here*<br>::: | | <details><summary> hidden or nsfw stuff </summary><p><em>a bunch of spoilers here</em></p></details> ::: spoiler hidden or nsfw stuff<br>*a bunch of spoilers here*<br>::: | | <details><summary> hidden or nsfw stuff </summary><p><em>a bunch of spoilers here</em></p></details>
Some ~subscript~ text | | Some <sub>subscript</sub> text
Some ^superscript^ text | | ome <sup>superscript</sup> text
[CommonMark Tutorial](https://commonmark.org/help/tutorial/) [CommonMark Tutorial](https://commonmark.org/help/tutorial/)

2
ui/package.json vendored
View File

@ -37,6 +37,8 @@
"markdown-it": "^10.0.0", "markdown-it": "^10.0.0",
"markdown-it-container": "^2.0.0", "markdown-it-container": "^2.0.0",
"markdown-it-emoji": "^1.4.0", "markdown-it-emoji": "^1.4.0",
"markdown-it-sub": "^1.0.0",
"markdown-it-sup": "^1.0.0",
"moment": "^2.24.0", "moment": "^2.24.0",
"node-fetch": "^2.6.0", "node-fetch": "^2.6.0",
"prettier": "^2.0.4", "prettier": "^2.0.4",

View File

@ -469,6 +469,16 @@ export class MarkdownTextArea extends Component<
i.simpleInsert('#'); i.simpleInsert('#');
} }
handleInsertSubscript(i: MarkdownTextArea, event: any) {
event.preventDefault();
i.simpleInsert('~');
}
handleInsertSuperscript(i: MarkdownTextArea, event: any) {
event.preventDefault();
i.simpleInsert('^');
}
simpleInsert(chars: string) { simpleInsert(chars: string) {
if (!this.state.content) { if (!this.state.content) {
this.state.content = `${chars} `; this.state.content = `${chars} `;

4
ui/src/utils.ts vendored
View File

@ -49,6 +49,8 @@ import { UserService, WebSocketService } from './services';
import Tribute from 'tributejs/src/Tribute.js'; import Tribute from 'tributejs/src/Tribute.js';
import markdown_it from 'markdown-it'; import markdown_it from 'markdown-it';
import markdown_it_sub from 'markdown-it-sub';
import markdown_it_sup from 'markdown-it-sup';
import markdownitEmoji from 'markdown-it-emoji/light'; import markdownitEmoji from 'markdown-it-emoji/light';
import markdown_it_container from 'markdown-it-container'; import markdown_it_container from 'markdown-it-container';
import emojiShortName from 'emoji-short-name'; import emojiShortName from 'emoji-short-name';
@ -148,6 +150,8 @@ export const md = new markdown_it({
linkify: true, linkify: true,
typographer: true, typographer: true,
}) })
.use(markdown_it_sub)
.use(markdown_it_sup)
.use(markdown_it_container, 'spoiler', { .use(markdown_it_container, 'spoiler', {
validate: function (params: any) { validate: function (params: any) {
return params.trim().match(/^spoiler\s+(.*)$/); return params.trim().match(/^spoiler\s+(.*)$/);

10
ui/yarn.lock vendored
View File

@ -4317,6 +4317,16 @@ markdown-it-emoji@^1.4.0:
resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc" resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc"
integrity sha1-m+4OmpkKljupbfaYDE/dsF37Tcw= integrity sha1-m+4OmpkKljupbfaYDE/dsF37Tcw=
markdown-it-sub@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/markdown-it-sub/-/markdown-it-sub-1.0.0.tgz#375fd6026eae7ddcb012497f6411195ea1e3afe8"
integrity sha1-N1/WAm6ufdywEkl/ZBEZXqHjr+g=
markdown-it-sup@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/markdown-it-sup/-/markdown-it-sup-1.0.0.tgz#cb9c9ff91a5255ac08f3fd3d63286e15df0a1fc3"
integrity sha1-y5yf+RpSVawI8/09YyhuFd8KH8M=
markdown-it@^10.0.0: markdown-it@^10.0.0:
version "10.0.0" version "10.0.0"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc"