forked from newthuhole/hole_thu_frontend
feat: markdown render for thread author
This commit is contained in:
51
package-lock.json
generated
51
package-lock.json
generated
@@ -7899,6 +7899,14 @@
|
|||||||
"object.assign": "^4.1.0"
|
"object.assign": "^4.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"katex": {
|
||||||
|
"version": "0.6.0",
|
||||||
|
"resolved": "https://r.cnpmjs.org/katex/download/katex-0.6.0.tgz",
|
||||||
|
"integrity": "sha1-EkGOCRIcBckgQbazuftrqyE8tvM=",
|
||||||
|
"requires": {
|
||||||
|
"match-at": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"killable": {
|
"killable": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
|
||||||
@@ -7958,6 +7966,14 @@
|
|||||||
"type-check": "~0.3.2"
|
"type-check": "~0.3.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"linkify-it": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://r.cnpmjs.org/linkify-it/download/linkify-it-3.0.2.tgz",
|
||||||
|
"integrity": "sha1-9V7ri8HTrnVASeEkqzu1bZd5f7g=",
|
||||||
|
"requires": {
|
||||||
|
"uc.micro": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"load-json-file": {
|
"load-json-file": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
|
||||||
@@ -8182,6 +8198,31 @@
|
|||||||
"object-visit": "^1.0.0"
|
"object-visit": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"markdown-it": {
|
||||||
|
"version": "11.0.0",
|
||||||
|
"resolved": "https://r.cnpmjs.org/markdown-it/download/markdown-it-11.0.0.tgz",
|
||||||
|
"integrity": "sha1-2/wwNj5D11brxSw4WGuRuQBGuHY=",
|
||||||
|
"requires": {
|
||||||
|
"argparse": "^1.0.7",
|
||||||
|
"entities": "~2.0.0",
|
||||||
|
"linkify-it": "^3.0.1",
|
||||||
|
"mdurl": "^1.0.1",
|
||||||
|
"uc.micro": "^1.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"markdown-it-katex": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://r.cnpmjs.org/markdown-it-katex/download/markdown-it-katex-2.0.3.tgz",
|
||||||
|
"integrity": "sha1-17hqGuoLnWSW+rTnkZoY/e9YnDk=",
|
||||||
|
"requires": {
|
||||||
|
"katex": "^0.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match-at": {
|
||||||
|
"version": "0.1.1",
|
||||||
|
"resolved": "https://r.cnpmjs.org/match-at/download/match-at-0.1.1.tgz",
|
||||||
|
"integrity": "sha1-JdBA0pF3dwTV5lVru3kjDsLeBUA="
|
||||||
|
},
|
||||||
"md5.js": {
|
"md5.js": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
|
||||||
@@ -8197,6 +8238,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
|
||||||
"integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
|
"integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
|
||||||
},
|
},
|
||||||
|
"mdurl": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://r.cnpmjs.org/mdurl/download/mdurl-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
|
||||||
|
},
|
||||||
"media-typer": {
|
"media-typer": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||||
@@ -12396,6 +12442,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
||||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
|
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
|
||||||
},
|
},
|
||||||
|
"uc.micro": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://r.cnpmjs.org/uc.micro/download/uc.micro-1.0.6.tgz",
|
||||||
|
"integrity": "sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw="
|
||||||
|
},
|
||||||
"uglify-js": {
|
"uglify-js": {
|
||||||
"version": "3.4.10",
|
"version": "3.4.10",
|
||||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
"fix-orientation": "^1.1.0",
|
"fix-orientation": "^1.1.0",
|
||||||
"gh-pages": "^3.0.0",
|
"gh-pages": "^3.0.0",
|
||||||
"load-script": "^1.0.0",
|
"load-script": "^1.0.0",
|
||||||
|
"markdown-it": "^11.0.0",
|
||||||
|
"markdown-it-katex": "^2.0.3",
|
||||||
"pressure": "^2.1.2",
|
"pressure": "^2.1.2",
|
||||||
"react": "^16.9.0",
|
"react": "^16.9.0",
|
||||||
"react-dom": "^16.9.0",
|
"react-dom": "^16.9.0",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import './Flows.css';
|
|||||||
import LazyLoad from './react-lazyload/src';
|
import LazyLoad from './react-lazyload/src';
|
||||||
import {AudioWidget} from './AudioWidget';
|
import {AudioWidget} from './AudioWidget';
|
||||||
import {TokenCtx, ReplyForm} from './UserAction';
|
import {TokenCtx, ReplyForm} from './UserAction';
|
||||||
|
import renderMd from './Markdown'
|
||||||
|
|
||||||
import {API, THUHOLE_API_ROOT} from './flows_api';
|
import {API, THUHOLE_API_ROOT} from './flows_api';
|
||||||
|
|
||||||
@@ -129,7 +130,7 @@ class FlowItem extends PureComponent {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
let props=this.props;
|
let props=this.props;
|
||||||
let parts=props.parts||split_text(props.info.text,[
|
let parts=props.parts||split_text(renderMd(props.info.text),[
|
||||||
['url_pid',URL_PID_RE],
|
['url_pid',URL_PID_RE],
|
||||||
['url',URL_RE],
|
['url',URL_RE],
|
||||||
['pid',PID_RE],
|
['pid',PID_RE],
|
||||||
|
|||||||
8
src/Markdown.js
Normal file
8
src/Markdown.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import MarkdownIt from 'markdown-it'
|
||||||
|
|
||||||
|
let md = new MarkdownIt({
|
||||||
|
html: false,
|
||||||
|
linkify: false // avoid collision with text_splitter.js
|
||||||
|
})
|
||||||
|
|
||||||
|
export default (text) => md.render(text)
|
||||||
Reference in New Issue
Block a user