3

我在 react markdown sich 中以表格、列表和 h 标签的形式传递各种数据。我想知道如何分别设置每个元素的样式。我到处搜索,但除了粗体或强调等之外,没有提到如何设置元素的样式。我想我可以在 ReactMarkdown 组件中传递一个类名来设置它的样式,但这不仅仅是为组件提供样式。我如何设计其中的各种元素?

const ReadMePreviewer = ({ readMeCode }) => {
  return (
    <ReactMarkdown
      plugins={[[gfm, { singleTilde: false }]]}
      className={style.reactMarkDown}
      // className={style.reactMarkDownRemovingExtraGlobal}
      renderers={renderers}
      source={readMeCode}
    />
  );
};

4

2 回答 2

5

这就是我如何让它为我工作。我用 CSS 明确地做到这一点,而不是,例如,SCSS 或 CSS-in-JS,以免用额外的库或 webpack/babel 微调来打扰你:

markdown-styles.module.css使用您的样式创建一个单独的CSS 模块文件,例如,

.reactMarkDown {
  // some root styles here
}

.reactMarkDown ul {
  margin-top: 1em;
  margin-bottom: 1em;
  list-style: disc outside none;
}

.reactMarkDown ul li {
  margin-left: 2em;
  display: list-item;
  text-align: -webkit-match-parent;
}

// your other styles but all under .reactMarkDown blocks

然后你可以将它导入你的组件并像你一样使用:

import style from './markdown-styles.module.css';
...

const ReadMePreviewer = ({ readMeCode }) => {
  return (
    <ReactMarkdown
      plugins={[[gfm, { singleTilde: false }]]}
      className={style.reactMarkDown}
      renderers={renderers}
      children={readMeCode}
    />
  );
};
于 2021-02-27T09:02:09.950 回答
1

这似乎可以包装 into new line

App.css

.markdown code {
  display: block;
  white-space: pre-wrap;
}

Component:

<ReactMarkdown className="markdown">{page.Content}</ReactMarkdown>
于 2022-01-26T23:08:53.020 回答