This commit is contained in:
guanghechen 2024-07-10 16:32:24 +08:00
parent e775b6ea5e
commit cfa6efc6ed
6 changed files with 8 additions and 34 deletions

View file

@ -12,7 +12,7 @@ import { CodeRendererInner } from "./inner/CodeRendererInner";
*/
export const CodeRenderer: INodeRenderer<Code> = props => {
const { lang } = props;
const value: string = props.value.replace(/[\r\n]+$/, ""); // Remove trailing line endings.
const value: string = props.value.replace(/[\n\r]+$/, ""); // Remove trailing line endings.
const { viewmodel } = useNodeRendererContext();
const preferCodeWrap: boolean = useStateValue(viewmodel.preferCodeWrap$);

View file

@ -11,14 +11,7 @@ import { ImageRendererInner } from "./inner/ImageRendererInner";
* @see https://www.npmjs.com/package/@yozora/tokenizer-image
*/
export const ImageRenderer: INodeRenderer<Image> = props => {
const {
url: src,
alt,
title,
srcSet,
sizes,
loading,
} = props as Image & React.ImgHTMLAttributes<HTMLElement>;
const { url: src, alt, title, srcSet, sizes, loading } = props as Image & React.ImgHTMLAttributes<HTMLElement>;
return (
<ImageRendererInner

View file

@ -12,11 +12,8 @@ import { ImageRendererInner } from "./inner/ImageRendererInner";
*/
export const ImageReferenceRenderer: INodeRenderer<ImageReference> = props => {
const { viewmodel } = useNodeRendererContext();
const definitionMap: Readonly<Record<string, Definition>> = useStateValue(
viewmodel.definitionMap$,
);
const { alt, srcSet, sizes, loading } = props as ImageReference &
React.ImgHTMLAttributes<HTMLElement>;
const definitionMap: Readonly<Record<string, Definition>> = useStateValue(viewmodel.definitionMap$);
const { alt, srcSet, sizes, loading } = props as ImageReference & React.ImgHTMLAttributes<HTMLElement>;
const definition = definitionMap[props.identifier];
const src: string = definition?.url ?? "";

View file

@ -28,7 +28,7 @@ export const CopyButton: React.FC<ICopyButtonProps> = props => {
const contentForCopy: string = calcContentForCopy();
copy(contentForCopy);
setStatus(CopyStatus.COPIED);
} catch (_error) {
} catch () {
setStatus(CopyStatus.FAILED);
}
}

View file

@ -12,12 +12,5 @@ import { LinkRendererInner } from "./inner/LinkRendererInner";
*/
export const LinkRenderer: INodeRenderer<Link> = props => {
const { url, title, children: childNodes } = props;
return (
<LinkRendererInner
url={url}
title={title}
childNodes={childNodes}
className={astClasses.link}
/>
);
return <LinkRendererInner url={url} title={title} childNodes={childNodes} className={astClasses.link} />;
};

View file

@ -11,18 +11,9 @@ import { LinkRendererInner } from "./inner/LinkRendererInner";
*/
export const LinkReferenceRenderer: INodeRenderer<LinkReference> = props => {
const { viewmodel } = useNodeRendererContext();
const definitionMap: Readonly<Record<string, Definition>> = useStateValue(
viewmodel.definitionMap$,
);
const definitionMap: Readonly<Record<string, Definition>> = useStateValue(viewmodel.definitionMap$);
const definition = definitionMap[props.identifier];
const url: string = definition?.url ?? "";
const title: string | undefined = definition?.title;
return (
<LinkRendererInner
url={url}
title={title}
childNodes={props.children}
className={astClasses.linkReference}
/>
);
return <LinkRendererInner url={url} title={title} childNodes={props.children} className={astClasses.linkReference} />;
};