点击tag搜索,插图依靠图片外链

This commit is contained in:
2020-09-07 11:23:29 +08:00
parent b539919550
commit 05aad972d6
6 changed files with 95 additions and 13 deletions

View File

@@ -9,6 +9,7 @@ import {
URL_RE,
PID_RE,
NICKNAME_RE,
TAG_RE,
split_text,
} from './text_splitter';
@@ -67,6 +68,7 @@ function normalize_url(url) {
return /^https?:\/\//.test(url) ? url : 'http://' + url;
}
/*
export class HighlightedText extends PureComponent {
render() {
return (
@@ -109,6 +111,7 @@ export class HighlightedText extends PureComponent {
);
}
}
*/
// props: text, show_pid, color_picker
export class HighlightedMarkdown extends Component {
@@ -116,12 +119,6 @@ export class HighlightedMarkdown extends Component {
const props = this.props;
const processDefs = new HtmlToReact.ProcessNodeDefinitions(React);
const processInstructions = [
{
shouldProcessNode: (node) => node.name === 'img', // disable images
processNode(node, children, index) {
return <div key={index}>[图片]</div>;
},
},
{
shouldProcessNode: (node) => /^h[123456]$/.test(node.name),
processNode(node, children, index) {
@@ -131,6 +128,26 @@ export class HighlightedMarkdown extends Component {
return <HeadingTag key={index}>{children}</HeadingTag>;
},
},
{
shouldProcessNode: (node) => node.name === 'img',
processNode(node, index) {
return (
<a
href={normalize_url(node.attribs.src)}
target="_blank"
rel="noopenner noreferrer"
className="ext-link"
key={index}
>
<img
src={normalize_url(node.attribs.src)}
alt={node.alt}
referrerpolicy="no-referrer"
/>
</a>
);
},
},
{
shouldProcessNode: (node) => node.name === 'a',
processNode(node, children, index) {
@@ -164,7 +181,7 @@ export class HighlightedMarkdown extends Component {
['url', URL_RE],
['pid', PID_RE],
['nickname', NICKNAME_RE],
//TODO: tag
['tag', TAG_RE],
]);
return (
@@ -202,6 +219,12 @@ export class HighlightedMarkdown extends Component {
</ColoredSpan>
) : rule === 'search' ? (
<span className="search-query-highlight">{p}</span>
) : rule === 'tag' ? (
<a
href={p}
>
{p}
</a>
) : (
p
)}