如何从 strapi 文章中获取文本下划线到我的 gatsby 前端
how to get the text-underline from strapi articles to my gatsby frontend
我正在使用 strapi(后端)和 gatsbyjs/react(前端)开发支持站点。
我正在尝试从我的管理员 strapi 中检索我加下划线的文本并将其显示在我的前端,但它没有正确检索 标签,而是显示 标签而不是带下划线的文本。
是因为我的react-markdown吗?
这是我的网页视图:
当我查看元素检查器时,我在标签前看到引号,这就是它不起作用的原因
这是我的代码:
import React from "react";
import { graphql, PageProps } from "gatsby";
import ReactMarkdown from "react-markdown";
import { ArticleT } from "@faq/types";
import Layout from "@faq/components/Layout";
import * as s from "./Article.module.css";
import { toArticle, toCategory } from "@faq/utils/routes";
type ArticlePageProps = {
strapiArticle: ArticleT;
file: {
publicURL: string;
};
};
const Article: React.FC<PageProps<ArticlePageProps>> = ({
data: { strapiArticle },
}) => {
const { title, content, category, slug } = strapiArticle;
return (
<Layout
seo={{ pageTitle: title, pageUrl: toArticle(category.slug, slug) }}
breadcrumb={[
{ to: toCategory(category.slug), label: category.title },
{ label: title },
]}
>
<div className={s.wrapper}>
<h1 className={s.title}>{title}</h1>
<div className={s.author}>
<div className={s.texts}>
<div>
<span className={s.light}>Écrit par</span> Nicolas
</div>
</div>
</div>
<ReactMarkdown children={content}
className={s.content}
transformImageUri={uri => uri.startsWith("http") ? uri : `${process.env.GATSBY_IMAGE_BASE_URL}${uri}`} />
</div>
</Layout>
);
};
export default Article;
export const query = graphql`
query ArticleQuery($id: Int!) {
strapiArticle(strapiId: { eq: $id }) {
title
content
slug
category {
title
slug
}
}
}
`;
您是否尝试过使用自己的渲染组件 (components
)?
<ReactMarkdown
children={content}
components={{
u: ({node, ...props}) => <u style={{textDecoration: 'underline'}} {...props} />
}}
className={s.content}
transformImageUri={uri => uri.startsWith("http") ? uri : `${process.env.GATSBY_IMAGE_BASE_URL}${uri}`}
/>
有关组件的更多详细信息 属性:https://github.com/remarkjs/react-markdown#appendix-b-components
如果需要,您甚至可以使用 custom-styled <p>
而不是 <u>
。这个想法依赖于解析 <u>
标签来添加你自己的带下划线的组件。
显然,需要安装 rehype-raw
插件才能让 ReactMarkdown
理解和解释带下划线的标签 (<u>
)
我正在使用 strapi(后端)和 gatsbyjs/react(前端)开发支持站点。 我正在尝试从我的管理员 strapi 中检索我加下划线的文本并将其显示在我的前端,但它没有正确检索 标签,而是显示 标签而不是带下划线的文本。 是因为我的react-markdown吗?
这是我的网页视图:
当我查看元素检查器时,我在标签前看到引号,这就是它不起作用的原因
这是我的代码:
import React from "react";
import { graphql, PageProps } from "gatsby";
import ReactMarkdown from "react-markdown";
import { ArticleT } from "@faq/types";
import Layout from "@faq/components/Layout";
import * as s from "./Article.module.css";
import { toArticle, toCategory } from "@faq/utils/routes";
type ArticlePageProps = {
strapiArticle: ArticleT;
file: {
publicURL: string;
};
};
const Article: React.FC<PageProps<ArticlePageProps>> = ({
data: { strapiArticle },
}) => {
const { title, content, category, slug } = strapiArticle;
return (
<Layout
seo={{ pageTitle: title, pageUrl: toArticle(category.slug, slug) }}
breadcrumb={[
{ to: toCategory(category.slug), label: category.title },
{ label: title },
]}
>
<div className={s.wrapper}>
<h1 className={s.title}>{title}</h1>
<div className={s.author}>
<div className={s.texts}>
<div>
<span className={s.light}>Écrit par</span> Nicolas
</div>
</div>
</div>
<ReactMarkdown children={content}
className={s.content}
transformImageUri={uri => uri.startsWith("http") ? uri : `${process.env.GATSBY_IMAGE_BASE_URL}${uri}`} />
</div>
</Layout>
);
};
export default Article;
export const query = graphql`
query ArticleQuery($id: Int!) {
strapiArticle(strapiId: { eq: $id }) {
title
content
slug
category {
title
slug
}
}
}
`;
您是否尝试过使用自己的渲染组件 (components
)?
<ReactMarkdown
children={content}
components={{
u: ({node, ...props}) => <u style={{textDecoration: 'underline'}} {...props} />
}}
className={s.content}
transformImageUri={uri => uri.startsWith("http") ? uri : `${process.env.GATSBY_IMAGE_BASE_URL}${uri}`}
/>
有关组件的更多详细信息 属性:https://github.com/remarkjs/react-markdown#appendix-b-components
如果需要,您甚至可以使用 custom-styled <p>
而不是 <u>
。这个想法依赖于解析 <u>
标签来添加你自己的带下划线的组件。
显然,需要安装 rehype-raw
插件才能让 ReactMarkdown
理解和解释带下划线的标签 (<u>
)