Browse Source

feat: markdown render for thread author

dev
Liu Jiangyi 5 years ago
parent
commit
b8b6dcf68d
  1. 51
      package-lock.json
  2. 2
      package.json
  3. 3
      src/Flows.js
  4. 8
      src/Markdown.js

51
package-lock.json generated

@ -7899,6 +7899,14 @@
"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": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
@ -7958,6 +7966,14 @@
"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": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
@ -8182,6 +8198,31 @@
"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": {
"version": "1.3.5",
"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",
"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": {
"version": "0.3.0",
"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",
"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": {
"version": "3.4.10",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",

2
package.json

@ -7,6 +7,8 @@
"fix-orientation": "^1.1.0",
"gh-pages": "^3.0.0",
"load-script": "^1.0.0",
"markdown-it": "^11.0.0",
"markdown-it-katex": "^2.0.3",
"pressure": "^2.1.2",
"react": "^16.9.0",
"react-dom": "^16.9.0",

3
src/Flows.js

@ -7,6 +7,7 @@ import './Flows.css';
import LazyLoad from './react-lazyload/src';
import {AudioWidget} from './AudioWidget';
import {TokenCtx, ReplyForm} from './UserAction';
import renderMd from './Markdown'
import {API, THUHOLE_API_ROOT} from './flows_api';
@ -129,7 +130,7 @@ class FlowItem extends PureComponent {
render() {
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',URL_RE],
['pid',PID_RE],

8
src/Markdown.js

@ -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)
Loading…
Cancel
Save