返回介绍

使用 Tailwind Typography 美化渲染后的 Markdown

发布于 2024-06-05 21:19:56 字数 2967 浏览 0 评论 0 收藏 0

你可以使用 Tailwind 的 Typography 插件来美化如 Astro 的 内容集合 等来源的渲染后的 Markdown。

本指南将教你如何使用 Tailwind 的实用类创建一个可复用的 Astro 组件,以便美化你的 Markdown 内容。

前提条件

一个 Astro 项目:

设置 @tailwindcss/typography

首先,使用你喜欢的包管理器安装 @tailwindcss/typography

  • npm
  • pnpm
  • Yarn
npm install -D @tailwindcss/typography
pnpm add -D @tailwindcss/typography
yarn add --dev @tailwindcss/typography

然后,在你的 Tailwind 配置文件中添加该包作为插件。

tailwind.config.js
/** @type {import('tailwindcss').Config} */
export default {
  theme: {
    // ...
  },
  plugins: [   require('@tailwindcss/typography'),
    // ...
  ],
}

操作步骤

  1. 创建一个 <Prose /> 组件,提供一个被 <div> 包裹并包含你的渲染 Markdown 的 <slot /> 。在父元素中添加样式类 prose,并在其中添加任何你想要的 Tailwind 元素修饰符

    src/components/Prose.astro
    ---
    ---
    <div
      class="prose dark:prose-invert
      prose-h1:font-bold prose-h1:text-xl
      prose-a:text-blue-600 prose-p:text-justify prose-img:rounded-xl
      prose-headings:underline">
      <slot />
    </div>
  2. 在你想要渲染 Markdown 的页面上查询你的集合条目。将 await entry.render()<Content /> 组件作为子组件传递给 <Prose />,以便用 Tailwind 样式包裹你的 Markdown 内容。

    src/pages/index.astro
    ---
    import Prose from '../components/Prose.astro';
    import Layout from '../layouts/Layout.astro';
    import { getEntry } from 'astro:content';
    
    
    const entry = await getEntry('collection', 'entry');
    const { Content } = await entry.render();
    ---
    <Layout>
      <Prose>
        <Content />
      </Prose>
    </Layout>

资源

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文