` elements aren't given a child `` tag unless there are multiple paragraphs in the list item. That means I have to worry about styling that annoying situation too.
-
-- **For example, here's another nested list.**
-
- But this time with a second paragraph.
-
- - These list items won't have `
` tags
- - Because they are only one line each
-
-- **But in this second top-level list item, they will.**
-
- This is especially annoying because of the spacing on this paragraph.
-
- - As you can see here, because I've added a second line, this list item now has a `
` tag.
-
- This is the second line I'm talking about by the way.
-
- - Finally here's another list item so it's more like a list.
-
-- A closing list item, but with no nested list, because why not?
-
-And finally a sentence to close off this section.
-
-## There are other elements we need to style
-
-I almost forgot to mention links, like [this link to the Tailwind CSS website](https://tailwindcss.com). We almost made them blue but that's so yesterday, so we went with dark gray, feels edgier.
-
-We even included table styles, check it out:
-
-| Wrestler | Origin | Finisher |
-| ----------------------- | ------------ | ------------------ |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-We also need to make sure inline code looks good, like if I wanted to talk about `` elements or tell you the good news about `@tailwindcss/typography`.
-
-### Sometimes I even use `code` in headings
-
-Even though it's probably a bad idea, and historically I've had a hard time making it look good. This _"wrap the code blocks in backticks"_ trick works pretty well though really.
-
-Another thing I've done in the past is put a `code` tag inside of a link, like if I wanted to tell you about the [`tailwindcss/docs`](https://github.com/tailwindcss/docs) repository. I don't love that there is an underline below the backticks but it is absolutely not worth the madness it would require to avoid it.
-
-#### We haven't used an `h4` yet
-
-But now we have. Please don't use `h5` or `h6` in your content, Medium only supports two heading levels for a reason, you animals. I honestly considered using a `before` pseudo-element to scream at you if you use an `h5` or `h6`.
-
-We don't style them at all out of the box because `h4` elements are already so small that they are the same size as the body copy. What are we supposed to do with an `h5`, make it _smaller_ than the body copy? No thanks.
-
-### We still need to think about stacked headings though.
-
-#### Let's make sure we don't screw that up with `h4` elements, either.
-
-Phew, with any luck we have styled the headings above this text and they look pretty good.
-
-Let's add a closing paragraph here so things end with a decently sized block of text. I can't explain why I want things to end that way but I have to assume it's because I think things will look weird or unbalanced if there is a heading too close to the end of the document.
-
-What I've written here is probably long enough, but adding this final sentence can't hurt.
-
-## GitHub Flavored Markdown
-
-I've also added support for GitHub Flavored Mardown using `remark-gfm`.
-
-With `remark-gfm`, we get a few extra features in our markdown. Example: autolink literals.
-
-A link like www.example.com or https://example.com would automatically be converted into an `a` tag.
-
-This works for email links too: contact@example.com.
diff --git a/content/blog/what-is-boilerplatehunt.zh.mdx b/content/blog/what-is-boilerplatehunt.zh.mdx
deleted file mode 100644
index f75ed2b..0000000
--- a/content/blog/what-is-boilerplatehunt.zh.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: Boilerplate Hunt 是什么?
-description: 发现最好的代码模板,更快地构建你的应用。
-image: /images/blog/boilerplatehunt-og.png
-date: 2024-11-24T12:00:00.000Z
-published: true
-categories: [company, product]
-author: boilerplatehunt
-locale: zh
----
-
-到目前为止,尝试使用 Tailwind 来设计文章、文档或博客文章的样式一直是一项繁琐的任务,需要对排版有敏锐的眼光,并且需要大量复杂的自定义 CSS。
-
-默认情况下,Tailwind 会删除段落、标题、列表等所有默认的浏览器样式。这对于构建应用程序 UI 非常有用,因为您花更少的时间撤销用户代理样式,但是当您真的只是尝试设置来自 CMS 中富文本编辑器或 markdown 文件的内容的样式时,这可能会令人惊讶和不直观。
-
-我们实际上收到了很多关于它的投诉,人们经常问我们这样的问题:
-
-> 为什么 Tailwind 删除了我的 `h1` 元素上的默认样式?我如何禁用这个?你说我也会失去所有其他基本样式是什么意思?
-> 我们听到了您的声音,但我们并不确信简单地禁用我们的基本样式就是您真正想要的。您不希望每次在仪表板 UI 的一部分中使用 `p` 元素时都必须删除烦人的边距。而且我怀疑您真的希望您的博客文章使用用户代理样式——您希望它们看起来很棒,而不是糟糕。
-
-`@tailwindcss/typography` 插件是我们尝试给您真正想要的东西,而不会有做一些愚蠢的事情(比如禁用我们的基本样式)的任何缺点。
-
-它添加了一个新的 `prose` 类,您可以将其应用于任何普通 HTML 内容块,并将其转变为一个美丽、格式良好的文档:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-有关如何使用该插件及其包含的功能的更多信息,[阅读文档](https://github.com/tailwindcss/typography/blob/master/README.md)。
-
----
-
-## 从现在开始期待什么
-
-从这里开始的是我写的一堆绝对无意义的内容,用来测试插件本身。它包括我能想到的每一个合理的排版元素,如**粗体文本**、无序列表、有序列表、代码块、块引用,_甚至斜体_。
-
-涵盖所有这些用例很重要,原因如下:
-
-1. 我们希望一切开箱即用看起来都很好。
-2. 实际上只是第一个原因,这是插件的全部意义。
-3. 这里有第三个假装的原因,尽管一个有三个项目的列表看起来比一个有两个项目的列表更真实。
-
-现在我们将尝试另一种标题样式。
-
-### 排版应该很简单
-
-所以这是给你的一个标题——如果我们做得正确,那应该看起来相当合理。
-
-一位智者曾经告诉我关于排版的一件事是:
-
-> 如果你不希望你的东西看起来像垃圾,排版是非常重要的。做好它,那么它就不会糟糕。
-
-默认情况下,图片在这里看起来也应该不错:
-
-
-
-与普遍的看法相反,Lorem Ipsum 并不是简单的随机文本。它起源于公元前 45 年的一段古典拉丁文学,使其有超过 2000 年的历史。
-
-现在我将向您展示一个无序列表的例子,以确保它看起来也不错:
-
-- 所以这是这个列表中的第一项。
-- 在这个例子中,我们保持项目简短。
-- 稍后,我们将使用更长、更复杂的列表项。
-
-这就是本节的结尾。
-
-## 如果我们堆叠标题怎么办?
-
-### 我们也应该确保这看起来不错。
-
-有时候你有直接堆叠在一起的标题。在这些情况下,你通常必须取消第二个标题上的顶部边距,因为标题彼此靠得更近通常看起来比段落后面跟着标题要好。
-
-### 当标题在段落之后出现时……
-
-当标题在段落之后出现时,我们需要更多的空间,就像我上面已经提到的那样。现在让我们看看一个更复杂的列表会是什么样子。
-
-- **我经常做这种事,列表项有标题。**
-
- 由于某种原因,我认为这看起来很酷,这很不幸,因为要让样式正确是相当烦人的。
-
- 我在这些列表项中通常也有两到三个段落,所以困难的部分是让段落之间的间距、列表项标题和单独的列表项都有意义。老实说,这很困难,你可以提出一个强有力的论点,认为你根本不应该这样写。
-
-- **由于这是一个列表,我至少需要两个项目。**
-
- 我已经在前面的列表项中解释了我在做什么,但是如果一个列表只有一个项目,那就不是一个列表,我们真的希望这看起来真实。这就是为什么我添加了这第二个列表项,所以我在写样式时实际上有东西可以看。
-
-- **添加第三项也不是一个坏主意。**
-
- 我认为只使用两个项目可能已经足够了,但三个肯定不会更糟,而且由于我似乎在编造任意的东西时没有遇到麻烦,我不妨包括它。
-
-在这种列表之后,我通常会有一个结束语或段落,因为直接跳到标题看起来有点奇怪。
-
-## 代码默认应该看起来不错。
-
-我认为大多数人如果想要设置他们的代码块的样式,会使用 [highlight.js](https://highlightjs.org/) 或 [Prism](https://prismjs.com/) 或其他东西,但是让它们开箱即用看起来_还不错_,即使没有语法高亮,也不会有害。
-
-以下是撰写本文时默认的 `tailwind.config.js` 文件的样子:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-希望这对你来说看起来足够好。
-
-### 嵌套列表怎么办?
-
-嵌套列表基本上总是看起来很糟糕,这就是为什么像 Medium 这样的编辑器甚至不让你这样做,但我猜既然你们中的一些傻瓜要这样做,我们至少要承担让它工作的负担。
-
-1. **嵌套列表很少是一个好主意。**
- - 你可能觉得你真的很"有组织"或者什么的,但你只是在屏幕上创建一个难以阅读的粗糙形状。
- - UI 中的嵌套导航也是一个坏主意,尽可能保持扁平。
- - 在源代码中嵌套大量文件夹也没有帮助。
-2. **既然我们需要有更多的项目,这里有另一个。**
- - 我不确定我们是否会费心设置超过两级深度的样式。
- - 两级已经太多了,三级肯定是一个坏主意。
- - 如果你嵌套四级深度,你应该进监狱。
-3. **两个项目并不是真正的列表,三个项目就好了。**
- - 再次请不要嵌套列表,如果你希望人们真正阅读你的内容。
- - 没有人想看这个。
- - 我很不高兴我们甚至必须费心设置这个样式。
-
-Markdown 中列表最烦人的事情是,除非列表项中有多个段落,否则 `` 元素不会被赋予子 `` 标签。这意味着我也必须担心设置那种烦人情况的样式。
-
-- **例如,这里是另一个嵌套列表。**
-
- 但这次有第二段。
-
- - 这些列表项不会有 `
` 标签
- - 因为它们每个只有一行
-
-- **但在这第二个顶级列表项中,它们会有。**
-
- 这特别烦人,因为这段话的间距。
-
- - 正如你在这里看到的,因为我添加了第二行,这个列表项现在有一个 `
` 标签。
-
- 顺便说一下,这是我说的第二行。
-
- - 最后这里有另一个列表项,所以它更像一个列表。
-
-- 一个结束列表项,但没有嵌套列表,为什么不呢?
-
-最后一句话结束这一节。
-
-## 还有其他我们需要设置样式的元素
-
-我几乎忘了提到链接,比如[这个链接到 Tailwind CSS 网站](https://tailwindcss.com)。我们几乎把它们变成蓝色,但那是昨天的事了,所以我们选择了深灰色,感觉更前卫。
-
-我们甚至包括了表格样式,看看:
-
-| 摔跤手 | 出生地 | 终结技 |
-| ----------------------- | ------------- | ------------------- |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-我们还需要确保内联代码看起来不错,比如如果我想谈论 `` 元素或者告诉你关于 `@tailwindcss/typography` 的好消息。
-
-### 有时我甚至在标题中使用 `code`
-
-尽管这可能是一个坏主意,而且历史上我一直很难让它看起来不错。不过这个_"将代码块包裹在反引号中"_的技巧效果相当不错。
-
-我过去做过的另一件事是在链接中放置一个 `code` 标签,比如如果我想告诉你关于 [`tailwindcss/docs`](https://github.com/tailwindcss/docs) 仓库的事情。我不喜欢反引号下面有下划线,但为了避免它而导致的疯狂绝对不值得。
-
-#### 我们还没有使用 `h4`
-
-但现在我们有了。请不要在你的内容中使用 `h5` 或 `h6`,Medium 只支持两个标题级别是有原因的,你们这些动物。我老实说考虑过使用 `before` 伪元素,如果你使用 `h5` 或 `h6` 就对你大喊大叫。
-
-我们根本不会为它们设置样式,因为 `h4` 元素已经很小,与正文大小相同。我们应该怎么处理 `h5`,让它比正文更_小_?不,谢谢。
-
-### 不过我们仍然需要考虑堆叠的标题。
-
-#### 让我们确保我们也不会用 `h4` 元素搞砸这个。
-
-呼,运气好的话,我们已经设置了上面这段文字的标题样式,它们看起来相当不错。
-
-让我们在这里添加一个结束段落,这样事情就会以一个相当大小的文本块结束。我无法解释为什么我希望事情以这种方式结束,但我必须假设这是因为我认为如果文档末尾太靠近标题,事情会看起来奇怪或不平衡。
-
-我在这里写的可能已经足够长了,但添加这最后一句话不会有害。
-
-## GitHub 风格的 Markdown
-
-我还添加了对使用 `remark-gfm` 的 GitHub 风格 Markdown 的支持。
-
-使用 `remark-gfm`,我们在 markdown 中获得了一些额外的功能。例如:自动链接文字。
-
-像 www.example.com 或 https://example.com 这样的链接会自动转换为 `a` 标签。
-
-这对电子邮件链接也有效:contact@example.com。
\ No newline at end of file
diff --git a/content/blog/what-is-coupon.mdx b/content/blog/what-is-coupon.mdx
deleted file mode 100644
index d7f969e..0000000
--- a/content/blog/what-is-coupon.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: What is Coupon?
-description: Find the best coupons for your favorite products and save money.
-image: /images/blog/coupon-og.png
-date: 2024-11-16T12:00:00.000Z
-published: true
-categories: [news, product]
-author: coupon
-locale: en
----
-
-Until now, trying to style an article, document, or blog post with Tailwind has been a tedious task that required a keen eye for typography and a lot of complex custom CSS.
-
-By default, Tailwind removes all of the default browser styling from paragraphs, headings, lists and more. This ends up being really useful for building application UIs because you spend less time undoing user-agent styles, but when you _really are_ just trying to style some content that came from a rich-text editor in a CMS or a markdown file, it can be surprising and unintuitive.
-
-We get lots of complaints about it actually, with people regularly asking us things like:
-
-> Why is Tailwind removing the default styles on my `h1` elements? How do I disable this? What do you mean I lose all the other base styles too?
-> We hear you, but we're not convinced that simply disabling our base styles is what you really want. You don't want to have to remove annoying margins every time you use a `p` element in a piece of your dashboard UI. And I doubt you really want your blog posts to use the user-agent styles either — you want them to look _awesome_, not awful.
-
-The `@tailwindcss/typography` plugin is our attempt to give you what you _actually_ want, without any of the downsides of doing something stupid like disabling our base styles.
-
-It adds a new `prose` class that you can slap on any block of vanilla HTML content and turn it into a beautiful, well-formatted document:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-For more information about how to use the plugin and the features it includes, [read the documentation](https://github.com/tailwindcss/typography/blob/master/README.md).
-
----
-
-## What to expect from here on out
-
-What follows from here is just a bunch of absolute nonsense I've written to dogfood the plugin itself. It includes every sensible typographic element I could think of, like **bold text**, unordered lists, ordered lists, code blocks, block quotes, _and even italics_.
-
-It's important to cover all of these use cases for a few reasons:
-
-1. We want everything to look good out of the box.
-2. Really just the first reason, that's the whole point of the plugin.
-3. Here's a third pretend reason though a list with three items looks more realistic than a list with two items.
-
-Now we're going to try out another header style.
-
-### Typography should be easy
-
-So that's a header for you — with any luck if we've done our job correctly that will look pretty reasonable.
-
-Something a wise person once told me about typography is:
-
-> Typography is pretty important if you don't want your stuff to look like trash. Make it good then it won't be bad.
-
-It's probably important that images look okay here by default as well:
-
-
-
-Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
-
-Now I'm going to show you an example of an unordered list to make sure that looks good, too:
-
-- So here is the first item in this list.
-- In this example we're keeping the items short.
-- Later, we'll use longer, more complex list items.
-
-And that's the end of this section.
-
-## What if we stack headings?
-
-### We should make sure that looks good, too.
-
-Sometimes you have headings directly underneath each other. In those cases you often have to undo the top margin on the second heading because it usually looks better for the headings to be closer together than a paragraph followed by a heading should be.
-
-### When a heading comes after a paragraph …
-
-When a heading comes after a paragraph, we need a bit more space, like I already mentioned above. Now let's see what a more complex list would look like.
-
-- **I often do this thing where list items have headings.**
-
- For some reason I think this looks cool which is unfortunate because it's pretty annoying to get the styles right.
-
- I often have two or three paragraphs in these list items, too, so the hard part is getting the spacing between the paragraphs, list item heading, and separate list items to all make sense. Pretty tough honestly, you could make a strong argument that you just shouldn't write this way.
-
-- **Since this is a list, I need at least two items.**
-
- I explained what I'm doing already in the previous list item, but a list wouldn't be a list if it only had one item, and we really want this to look realistic. That's why I've added this second list item so I actually have something to look at when writing the styles.
-
-- **It's not a bad idea to add a third item either.**
-
- I think it probably would've been fine to just use two items but three is definitely not worse, and since I seem to be having no trouble making up arbitrary things to type, I might as well include it.
-
-After this sort of list I usually have a closing statement or paragraph, because it kinda looks weird jumping right to a heading.
-
-## Code should look okay by default.
-
-I think most people are going to use [highlight.js](https://highlightjs.org/) or [Prism](https://prismjs.com/) or something if they want to style their code blocks but it wouldn't hurt to make them look _okay_ out of the box, even with no syntax highlighting.
-
-Here's what a default `tailwind.config.js` file looks like at the time of writing:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-Hopefully that looks good enough to you.
-
-### What about nested lists?
-
-Nested lists basically always look bad which is why editors like Medium don't even let you do it, but I guess since some of you goofballs are going to do it we have to carry the burden of at least making it work.
-
-1. **Nested lists are rarely a good idea.**
- - You might feel like you are being really "organized" or something but you are just creating a gross shape on the screen that is hard to read.
- - Nested navigation in UIs is a bad idea too, keep things as flat as possible.
- - Nesting tons of folders in your source code is also not helpful.
-2. **Since we need to have more items, here's another one.**
- - I'm not sure if we'll bother styling more than two levels deep.
- - Two is already too much, three is guaranteed to be a bad idea.
- - If you nest four levels deep you belong in prison.
-3. **Two items isn't really a list, three is good though.**
- - Again please don't nest lists if you want people to actually read your content.
- - Nobody wants to look at this.
- - I'm upset that we even have to bother styling this.
-
-The most annoying thing about lists in Markdown is that `` elements aren't given a child `` tag unless there are multiple paragraphs in the list item. That means I have to worry about styling that annoying situation too.
-
-- **For example, here's another nested list.**
-
- But this time with a second paragraph.
-
- - These list items won't have `
` tags
- - Because they are only one line each
-
-- **But in this second top-level list item, they will.**
-
- This is especially annoying because of the spacing on this paragraph.
-
- - As you can see here, because I've added a second line, this list item now has a `
` tag.
-
- This is the second line I'm talking about by the way.
-
- - Finally here's another list item so it's more like a list.
-
-- A closing list item, but with no nested list, because why not?
-
-And finally a sentence to close off this section.
-
-## There are other elements we need to style
-
-I almost forgot to mention links, like [this link to the Tailwind CSS website](https://tailwindcss.com). We almost made them blue but that's so yesterday, so we went with dark gray, feels edgier.
-
-We even included table styles, check it out:
-
-| Wrestler | Origin | Finisher |
-| ----------------------- | ------------ | ------------------ |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-We also need to make sure inline code looks good, like if I wanted to talk about `` elements or tell you the good news about `@tailwindcss/typography`.
-
-### Sometimes I even use `code` in headings
-
-Even though it's probably a bad idea, and historically I've had a hard time making it look good. This _"wrap the code blocks in backticks"_ trick works pretty well though really.
-
-Another thing I've done in the past is put a `code` tag inside of a link, like if I wanted to tell you about the [`tailwindcss/docs`](https://github.com/tailwindcss/docs) repository. I don't love that there is an underline below the backticks but it is absolutely not worth the madness it would require to avoid it.
-
-#### We haven't used an `h4` yet
-
-But now we have. Please don't use `h5` or `h6` in your content, Medium only supports two heading levels for a reason, you animals. I honestly considered using a `before` pseudo-element to scream at you if you use an `h5` or `h6`.
-
-We don't style them at all out of the box because `h4` elements are already so small that they are the same size as the body copy. What are we supposed to do with an `h5`, make it _smaller_ than the body copy? No thanks.
-
-### We still need to think about stacked headings though.
-
-#### Let's make sure we don't screw that up with `h4` elements, either.
-
-Phew, with any luck we have styled the headings above this text and they look pretty good.
-
-Let's add a closing paragraph here so things end with a decently sized block of text. I can't explain why I want things to end that way but I have to assume it's because I think things will look weird or unbalanced if there is a heading too close to the end of the document.
-
-What I've written here is probably long enough, but adding this final sentence can't hurt.
-
-## GitHub Flavored Markdown
-
-I've also added support for GitHub Flavored Mardown using `remark-gfm`.
-
-With `remark-gfm`, we get a few extra features in our markdown. Example: autolink literals.
-
-A link like www.example.com or https://example.com would automatically be converted into an `a` tag.
-
-This works for email links too: contact@example.com.
diff --git a/content/blog/what-is-coupon.zh.mdx b/content/blog/what-is-coupon.zh.mdx
deleted file mode 100644
index 8e69393..0000000
--- a/content/blog/what-is-coupon.zh.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: Coupon 是什么?
-description: 发现最好的优惠券,节省你的钱。
-image: /images/blog/coupon-og.png
-date: 2024-11-16T12:00:00.000Z
-published: true
-categories: [news, product]
-author: coupon
-locale: zh
----
-
-到目前为止,尝试使用 Tailwind 来设计文章、文档或博客文章的样式一直是一项繁琐的任务,需要对排版有敏锐的眼光,并且需要大量复杂的自定义 CSS。
-
-默认情况下,Tailwind 会删除段落、标题、列表等所有默认的浏览器样式。这对于构建应用程序 UI 非常有用,因为您花更少的时间撤销用户代理样式,但是当您真的只是尝试设置来自 CMS 中富文本编辑器或 markdown 文件的内容的样式时,这可能会令人惊讶和不直观。
-
-我们实际上收到了很多关于它的投诉,人们经常问我们这样的问题:
-
-> 为什么 Tailwind 删除了我的 `h1` 元素上的默认样式?我如何禁用这个?你说我也会失去所有其他基本样式是什么意思?
-> 我们听到了您的声音,但我们并不确信简单地禁用我们的基本样式就是您真正想要的。您不希望每次在仪表板 UI 的一部分中使用 `p` 元素时都必须删除烦人的边距。而且我怀疑您真的希望您的博客文章使用用户代理样式——您希望它们看起来很棒,而不是糟糕。
-
-`@tailwindcss/typography` 插件是我们尝试给您真正想要的东西,而不会有做一些愚蠢的事情(比如禁用我们的基本样式)的任何缺点。
-
-它添加了一个新的 `prose` 类,您可以将其应用于任何普通 HTML 内容块,并将其转变为一个美丽、格式良好的文档:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-有关如何使用该插件及其包含的功能的更多信息,[阅读文档](https://github.com/tailwindcss/typography/blob/master/README.md)。
-
----
-
-## 从现在开始期待什么
-
-从这里开始的是我写的一堆绝对无意义的内容,用来测试插件本身。它包括我能想到的每一个合理的排版元素,如**粗体文本**、无序列表、有序列表、代码块、块引用,_甚至斜体_。
-
-涵盖所有这些用例很重要,原因如下:
-
-1. 我们希望一切开箱即用看起来都很好。
-2. 实际上只是第一个原因,这是插件的全部意义。
-3. 这里有第三个假装的原因,尽管一个有三个项目的列表看起来比一个有两个项目的列表更真实。
-
-现在我们将尝试另一种标题样式。
-
-### 排版应该很简单
-
-所以这是给你的一个标题——如果我们做得正确,那应该看起来相当合理。
-
-一位智者曾经告诉我关于排版的一件事是:
-
-> 如果你不希望你的东西看起来像垃圾,排版是非常重要的。做好它,那么它就不会糟糕。
-
-默认情况下,图片在这里看起来也应该不错:
-
-
-
-与普遍的看法相反,Lorem Ipsum 并不是简单的随机文本。它起源于公元前 45 年的一段古典拉丁文学,使其有超过 2000 年的历史。
-
-现在我将向您展示一个无序列表的例子,以确保它看起来也不错:
-
-- 所以这是这个列表中的第一项。
-- 在这个例子中,我们保持项目简短。
-- 稍后,我们将使用更长、更复杂的列表项。
-
-这就是本节的结尾。
-
-## 如果我们堆叠标题怎么办?
-
-### 我们也应该确保这看起来不错。
-
-有时候你有直接堆叠在一起的标题。在这些情况下,你通常必须取消第二个标题上的顶部边距,因为标题彼此靠得更近通常看起来比段落后面跟着标题要好。
-
-### 当标题在段落之后出现时……
-
-当标题在段落之后出现时,我们需要更多的空间,就像我上面已经提到的那样。现在让我们看看一个更复杂的列表会是什么样子。
-
-- **我经常做这种事,列表项有标题。**
-
- 由于某种原因,我认为这看起来很酷,这很不幸,因为要让样式正确是相当烦人的。
-
- 我在这些列表项中通常也有两到三个段落,所以困难的部分是让段落之间的间距、列表项标题和单独的列表项都有意义。老实说,这很困难,你可以提出一个强有力的论点,认为你根本不应该这样写。
-
-- **由于这是一个列表,我至少需要两个项目。**
-
- 我已经在前面的列表项中解释了我在做什么,但是如果一个列表只有一个项目,那就不是一个列表,我们真的希望这看起来真实。这就是为什么我添加了这第二个列表项,所以我在写样式时实际上有东西可以看。
-
-- **添加第三项也不是一个坏主意。**
-
- 我认为只使用两个项目可能已经足够了,但三个肯定不会更糟,而且由于我似乎在编造任意的东西时没有遇到麻烦,我不妨包括它。
-
-在这种列表之后,我通常会有一个结束语或段落,因为直接跳到标题看起来有点奇怪。
-
-## 代码默认应该看起来不错。
-
-我认为大多数人如果想要设置他们的代码块的样式,会使用 [highlight.js](https://highlightjs.org/) 或 [Prism](https://prismjs.com/) 或其他东西,但是让它们开箱即用看起来_还不错_,即使没有语法高亮,也不会有害。
-
-以下是撰写本文时默认的 `tailwind.config.js` 文件的样子:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-希望这对你来说看起来足够好。
-
-### 嵌套列表怎么办?
-
-嵌套列表基本上总是看起来很糟糕,这就是为什么像 Medium 这样的编辑器甚至不让你这样做,但我猜既然你们中的一些傻瓜要这样做,我们至少要承担让它工作的负担。
-
-1. **嵌套列表很少是一个好主意。**
- - 你可能觉得你真的很"有组织"或者什么的,但你只是在屏幕上创建一个难以阅读的粗糙形状。
- - UI 中的嵌套导航也是一个坏主意,尽可能保持扁平。
- - 在源代码中嵌套大量文件夹也没有帮助。
-2. **既然我们需要有更多的项目,这里有另一个。**
- - 我不确定我们是否会费心设置超过两级深度的样式。
- - 两级已经太多了,三级肯定是一个坏主意。
- - 如果你嵌套四级深度,你应该进监狱。
-3. **两个项目并不是真正的列表,三个项目就好了。**
- - 再次请不要嵌套列表,如果你希望人们真正阅读你的内容。
- - 没有人想看这个。
- - 我很不高兴我们甚至必须费心设置这个样式。
-
-Markdown 中列表最烦人的事情是,除非列表项中有多个段落,否则 `` 元素不会被赋予子 `` 标签。这意味着我也必须担心设置那种烦人情况的样式。
-
-- **例如,这里是另一个嵌套列表。**
-
- 但这次有第二段。
-
- - 这些列表项不会有 `
` 标签
- - 因为它们每个只有一行
-
-- **但在这第二个顶级列表项中,它们会有。**
-
- 这特别烦人,因为这段话的间距。
-
- - 正如你在这里看到的,因为我添加了第二行,这个列表项现在有一个 `
` 标签。
-
- 顺便说一下,这是我说的第二行。
-
- - 最后这里有另一个列表项,所以它更像一个列表。
-
-- 一个结束列表项,但没有嵌套列表,为什么不呢?
-
-最后一句话结束这一节。
-
-## 还有其他我们需要设置样式的元素
-
-我几乎忘了提到链接,比如[这个链接到 Tailwind CSS 网站](https://tailwindcss.com)。我们几乎把它们变成蓝色,但那是昨天的事了,所以我们选择了深灰色,感觉更前卫。
-
-我们甚至包括了表格样式,看看:
-
-| 摔跤手 | 出生地 | 终结技 |
-| ----------------------- | ------------- | ------------------- |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-我们还需要确保内联代码看起来不错,比如如果我想谈论 `` 元素或者告诉你关于 `@tailwindcss/typography` 的好消息。
-
-### 有时我甚至在标题中使用 `code`
-
-尽管这可能是一个坏主意,而且历史上我一直很难让它看起来不错。不过这个_"将代码块包裹在反引号中"_的技巧效果相当不错。
-
-我过去做过的另一件事是在链接中放置一个 `code` 标签,比如如果我想告诉你关于 [`tailwindcss/docs`](https://github.com/tailwindcss/docs) 仓库的事情。我不喜欢反引号下面有下划线,但为了避免它而导致的疯狂绝对不值得。
-
-#### 我们还没有使用 `h4`
-
-但现在我们有了。请不要在你的内容中使用 `h5` 或 `h6`,Medium 只支持两个标题级别是有原因的,你们这些动物。我老实说考虑过使用 `before` 伪元素,如果你使用 `h5` 或 `h6` 就对你大喊大叫。
-
-我们根本不会为它们设置样式,因为 `h4` 元素已经很小,与正文大小相同。我们应该怎么处理 `h5`,让它比正文更_小_?不,谢谢。
-
-### 不过我们仍然需要考虑堆叠的标题。
-
-#### 让我们确保我们也不会用 `h4` 元素搞砸这个。
-
-呼,运气好的话,我们已经设置了上面这段文字的标题样式,它们看起来相当不错。
-
-让我们在这里添加一个结束段落,这样事情就会以一个相当大小的文本块结束。我无法解释为什么我希望事情以这种方式结束,但我必须假设这是因为我认为如果文档末尾太靠近标题,事情会看起来奇怪或不平衡。
-
-我在这里写的可能已经足够长了,但添加这最后一句话不会有害。
-
-## GitHub 风格的 Markdown
-
-我还添加了对使用 `remark-gfm` 的 GitHub 风格 Markdown 的支持。
-
-使用 `remark-gfm`,我们在 markdown 中获得了一些额外的功能。例如:自动链接文字。
-
-像 www.example.com 或 https://example.com 这样的链接会自动转换为 `a` 标签。
-
-这对电子邮件链接也有效:contact@example.com。
\ No newline at end of file
diff --git a/content/blog/what-is-fumadocs.mdx b/content/blog/what-is-fumadocs.mdx
new file mode 100644
index 0000000..8fc51e1
--- /dev/null
+++ b/content/blog/what-is-fumadocs.mdx
@@ -0,0 +1,62 @@
+---
+title: What is Fumadocs
+description: Introducing Fumadocs, a docs framework that you can break.
+image: /images/blog/boilerplatehunt-og.png
+date: 2024-11-24T12:00:00.000Z
+published: true
+categories: [company, product]
+author: mksaas
+---
+
+Fumadocs was created because I wanted a more customisable experience for building docs, to be a docs framework that is not opinionated, **a "framework" that you can break**.
+
+## Philosophy
+
+**Less Abstraction:** Fumadocs expects you to write code and cooperate with the rest of your software.
+While most frameworks are configured with a configuration file, they usually lack flexibility when you hope to tune its details.
+You can’t control how they render the page nor the internal logic. Fumadocs shows you how the app works, instead of a single configuration file.
+
+**Next.js Fundamentals:** It gives you the utilities and a good-looking UI.
+You are still using features of Next.js App Router, like **Static Site Generation**. There is nothing new for Next.js developers, so you can use it with confidence.
+
+**Opinionated on UI:** The only thing Fumadocs UI (the default theme) offers is **User Interface**. The UI is opinionated for bringing better mobile responsiveness and user experience.
+Instead, we use a much more flexible approach inspired by Shadcn UI — [Fumadocs CLI](/docs/cli), so we can iterate our design quick, and welcome for more feedback about the UI.
+
+## Why Fumadocs
+
+Fumadocs is designed with flexibility in mind.
+
+You can use `fumadocs-core` as a headless UI library and bring your own styles.
+Fumadocs MDX is also a useful library to handle MDX content in Next.js. It also includes:
+
+- Many built-in components.
+- Typescript Twoslash, OpenAPI, and Math (KaTeX) integrations.
+- Fast and optimized by default, natively built on App Router.
+- Tight integration with Next.js, you can add it to an existing Next.js project easily.
+
+You can read [Comparisons](/docs/comparisons) if you're interested.
+
+### Documentation
+
+Fumadocs focuses on **authoring experience**, it provides a beautiful theme and many docs automation tools.
+
+It helps you to iterate your codebase faster while never leaving your docs behind.
+You can take this site as an example of docs site built with Fumadocs.
+
+### Blog sites
+
+Since Next.js is already a powerful framework, most features can be implemented with **just Next.js**.
+
+Fumadocs provides additional tooling for Next.js, including syntax highlighting, document search, and a default theme (Fumadocs UI).
+It helps you to avoid reinventing the wheels.
+
+## When to use Fumadocs
+
+For most of the web applications, vanilla React.js is no longer enough.
+Nowadays, we also wish to have a blog, a showcase page, a FAQ page, etc. With a
+fancy UI that's breathtaking, in these cases, Fumadocs can help you build the
+docs easier, with less boilerplate.
+
+Fumadocs is maintained by Fuma and many contributors, with care on the maintainability of codebase.
+While we don't aim to offer every functionality people wanted, we're more focused on making basic features perfect and well-maintained.
+You can also help Fumadocs to be more useful by contributing!
diff --git a/content/blog/what-is-fumadocs.zh.mdx b/content/blog/what-is-fumadocs.zh.mdx
new file mode 100644
index 0000000..b8020cb
--- /dev/null
+++ b/content/blog/what-is-fumadocs.zh.mdx
@@ -0,0 +1,60 @@
+---
+title: 什么是 Fumadocs
+description: 介绍 Fumadocs,一个可以打破常规的文档框架
+image: /images/blog/boilerplatehunt-og.png
+date: 2024-11-24T12:00:00.000Z
+published: true
+categories: [company, product]
+author: mksaas
+---
+
+Fumadocs 的创建是因为我想要一种更加可定制化的文档构建体验,一个不固执己见的文档框架,**一个你可以"打破"的"框架"**。
+
+## 理念
+
+**更少的抽象:** Fumadocs 期望您编写代码并与您的其余软件协作。
+虽然大多数框架都是通过配置文件进行配置,但当您希望调整其细节时,它们通常缺乏灵活性。
+您无法控制它们如何渲染页面或内部逻辑。Fumadocs 向您展示应用程序如何工作,而不是仅提供单一的配置文件。
+
+**Next.js 基础:** 它为您提供实用工具和美观的 UI。
+您仍然使用 Next.js App Router 的功能,如**静态站点生成**。对于 Next.js 开发者来说没有新的东西,所以您可以放心使用。
+
+**对 UI 有自己的看法:** Fumadocs UI(默认主题)提供的唯一东西是**用户界面**。UI 的设计理念是提供更好的移动响应性和用户体验。
+相反,我们使用受 Shadcn UI 启发的更灵活的方法 — [Fumadocs CLI](/docs/cli),这样我们可以快速迭代设计,并欢迎更多关于 UI 的反馈。
+
+## 为什么选择 Fumadocs
+
+Fumadocs 的设计考虑了灵活性。
+
+您可以将 `fumadocs-core` 用作无头 UI 库并带来您自己的样式。
+Fumadocs MDX 也是处理 Next.js 中 MDX 内容的有用库。它还包括:
+
+- 许多内置组件。
+- Typescript Twoslash、OpenAPI 和 Math (KaTeX) 集成。
+- 默认情况下快速且优化,原生构建在 App Router 上。
+- 与 Next.js 紧密集成,您可以轻松将其添加到现有的 Next.js 项目中。
+
+如果您感兴趣,可以阅读 [比较](/docs/comparisons)。
+
+### 文档
+
+Fumadocs 专注于**创作体验**,它提供了一个漂亮的主题和许多文档自动化工具。
+
+它帮助您更快地迭代代码库,同时不会落下您的文档。
+您可以将此站点作为使用 Fumadocs 构建的文档站点的示例。
+
+### 博客站点
+
+由于 Next.js 已经是一个强大的框架,大多数功能可以**仅使用 Next.js** 实现。
+
+Fumadocs 为 Next.js 提供了额外的工具,包括语法高亮、文档搜索和默认主题(Fumadocs UI)。
+它帮助您避免重新发明轮子。
+
+## 何时使用 Fumadocs
+
+对于大多数 Web 应用程序,原生 React.js 已经不够用了。
+如今,我们还希望有一个博客、展示页面、FAQ 页面等。带有令人惊叹的精美 UI,在这些情况下,Fumadocs 可以帮助您更轻松地构建文档,减少样板代码。
+
+Fumadocs 由 Fuma 和许多贡献者维护,关注代码库的可维护性。
+虽然我们不打算提供人们想要的每一项功能,但我们更专注于使基本功能完美且维护良好。
+您也可以通过贡献来帮助 Fumadocs 变得更加有用!
\ No newline at end of file
diff --git a/content/blog/what-is-haitang.mdx b/content/blog/what-is-haitang.mdx
deleted file mode 100644
index 67d3cc8..0000000
--- a/content/blog/what-is-haitang.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: What is HaiTang?
-description: Learn Chinese ancient poetry and literature online.
-image: /images/blog/haitang-og.png
-date: 2024-10-26T12:00:00.000Z
-published: true
-categories: [company, news]
-author: haitang
-locale: en
----
-
-Until now, trying to style an article, document, or blog post with Tailwind has been a tedious task that required a keen eye for typography and a lot of complex custom CSS.
-
-By default, Tailwind removes all of the default browser styling from paragraphs, headings, lists and more. This ends up being really useful for building application UIs because you spend less time undoing user-agent styles, but when you _really are_ just trying to style some content that came from a rich-text editor in a CMS or a markdown file, it can be surprising and unintuitive.
-
-We get lots of complaints about it actually, with people regularly asking us things like:
-
-> Why is Tailwind removing the default styles on my `h1` elements? How do I disable this? What do you mean I lose all the other base styles too?
-> We hear you, but we're not convinced that simply disabling our base styles is what you really want. You don't want to have to remove annoying margins every time you use a `p` element in a piece of your dashboard UI. And I doubt you really want your blog posts to use the user-agent styles either — you want them to look _awesome_, not awful.
-
-The `@tailwindcss/typography` plugin is our attempt to give you what you _actually_ want, without any of the downsides of doing something stupid like disabling our base styles.
-
-It adds a new `prose` class that you can slap on any block of vanilla HTML content and turn it into a beautiful, well-formatted document:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-For more information about how to use the plugin and the features it includes, [read the documentation](https://github.com/tailwindcss/typography/blob/master/README.md).
-
----
-
-## What to expect from here on out
-
-What follows from here is just a bunch of absolute nonsense I've written to dogfood the plugin itself. It includes every sensible typographic element I could think of, like **bold text**, unordered lists, ordered lists, code blocks, block quotes, _and even italics_.
-
-It's important to cover all of these use cases for a few reasons:
-
-1. We want everything to look good out of the box.
-2. Really just the first reason, that's the whole point of the plugin.
-3. Here's a third pretend reason though a list with three items looks more realistic than a list with two items.
-
-Now we're going to try out another header style.
-
-### Typography should be easy
-
-So that's a header for you — with any luck if we've done our job correctly that will look pretty reasonable.
-
-Something a wise person once told me about typography is:
-
-> Typography is pretty important if you don't want your stuff to look like trash. Make it good then it won't be bad.
-
-It's probably important that images look okay here by default as well:
-
-
-
-Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
-
-Now I'm going to show you an example of an unordered list to make sure that looks good, too:
-
-- So here is the first item in this list.
-- In this example we're keeping the items short.
-- Later, we'll use longer, more complex list items.
-
-And that's the end of this section.
-
-## What if we stack headings?
-
-### We should make sure that looks good, too.
-
-Sometimes you have headings directly underneath each other. In those cases you often have to undo the top margin on the second heading because it usually looks better for the headings to be closer together than a paragraph followed by a heading should be.
-
-### When a heading comes after a paragraph …
-
-When a heading comes after a paragraph, we need a bit more space, like I already mentioned above. Now let's see what a more complex list would look like.
-
-- **I often do this thing where list items have headings.**
-
- For some reason I think this looks cool which is unfortunate because it's pretty annoying to get the styles right.
-
- I often have two or three paragraphs in these list items, too, so the hard part is getting the spacing between the paragraphs, list item heading, and separate list items to all make sense. Pretty tough honestly, you could make a strong argument that you just shouldn't write this way.
-
-- **Since this is a list, I need at least two items.**
-
- I explained what I'm doing already in the previous list item, but a list wouldn't be a list if it only had one item, and we really want this to look realistic. That's why I've added this second list item so I actually have something to look at when writing the styles.
-
-- **It's not a bad idea to add a third item either.**
-
- I think it probably would've been fine to just use two items but three is definitely not worse, and since I seem to be having no trouble making up arbitrary things to type, I might as well include it.
-
-After this sort of list I usually have a closing statement or paragraph, because it kinda looks weird jumping right to a heading.
-
-## Code should look okay by default.
-
-I think most people are going to use [highlight.js](https://highlightjs.org/) or [Prism](https://prismjs.com/) or something if they want to style their code blocks but it wouldn't hurt to make them look _okay_ out of the box, even with no syntax highlighting.
-
-Here's what a default `tailwind.config.js` file looks like at the time of writing:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-Hopefully that looks good enough to you.
-
-### What about nested lists?
-
-Nested lists basically always look bad which is why editors like Medium don't even let you do it, but I guess since some of you goofballs are going to do it we have to carry the burden of at least making it work.
-
-1. **Nested lists are rarely a good idea.**
- - You might feel like you are being really "organized" or something but you are just creating a gross shape on the screen that is hard to read.
- - Nested navigation in UIs is a bad idea too, keep things as flat as possible.
- - Nesting tons of folders in your source code is also not helpful.
-2. **Since we need to have more items, here's another one.**
- - I'm not sure if we'll bother styling more than two levels deep.
- - Two is already too much, three is guaranteed to be a bad idea.
- - If you nest four levels deep you belong in prison.
-3. **Two items isn't really a list, three is good though.**
- - Again please don't nest lists if you want people to actually read your content.
- - Nobody wants to look at this.
- - I'm upset that we even have to bother styling this.
-
-The most annoying thing about lists in Markdown is that `` elements aren't given a child `` tag unless there are multiple paragraphs in the list item. That means I have to worry about styling that annoying situation too.
-
-- **For example, here's another nested list.**
-
- But this time with a second paragraph.
-
- - These list items won't have `
` tags
- - Because they are only one line each
-
-- **But in this second top-level list item, they will.**
-
- This is especially annoying because of the spacing on this paragraph.
-
- - As you can see here, because I've added a second line, this list item now has a `
` tag.
-
- This is the second line I'm talking about by the way.
-
- - Finally here's another list item so it's more like a list.
-
-- A closing list item, but with no nested list, because why not?
-
-And finally a sentence to close off this section.
-
-## There are other elements we need to style
-
-I almost forgot to mention links, like [this link to the Tailwind CSS website](https://tailwindcss.com). We almost made them blue but that's so yesterday, so we went with dark gray, feels edgier.
-
-We even included table styles, check it out:
-
-| Wrestler | Origin | Finisher |
-| ----------------------- | ------------ | ------------------ |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-We also need to make sure inline code looks good, like if I wanted to talk about `` elements or tell you the good news about `@tailwindcss/typography`.
-
-### Sometimes I even use `code` in headings
-
-Even though it's probably a bad idea, and historically I've had a hard time making it look good. This _"wrap the code blocks in backticks"_ trick works pretty well though really.
-
-Another thing I've done in the past is put a `code` tag inside of a link, like if I wanted to tell you about the [`tailwindcss/docs`](https://github.com/tailwindcss/docs) repository. I don't love that there is an underline below the backticks but it is absolutely not worth the madness it would require to avoid it.
-
-#### We haven't used an `h4` yet
-
-But now we have. Please don't use `h5` or `h6` in your content, Medium only supports two heading levels for a reason, you animals. I honestly considered using a `before` pseudo-element to scream at you if you use an `h5` or `h6`.
-
-We don't style them at all out of the box because `h4` elements are already so small that they are the same size as the body copy. What are we supposed to do with an `h5`, make it _smaller_ than the body copy? No thanks.
-
-### We still need to think about stacked headings though.
-
-#### Let's make sure we don't screw that up with `h4` elements, either.
-
-Phew, with any luck we have styled the headings above this text and they look pretty good.
-
-Let's add a closing paragraph here so things end with a decently sized block of text. I can't explain why I want things to end that way but I have to assume it's because I think things will look weird or unbalanced if there is a heading too close to the end of the document.
-
-What I've written here is probably long enough, but adding this final sentence can't hurt.
-
-## GitHub Flavored Markdown
-
-I've also added support for GitHub Flavored Mardown using `remark-gfm`.
-
-With `remark-gfm`, we get a few extra features in our markdown. Example: autolink literals.
-
-A link like www.example.com or https://example.com would automatically be converted into an `a` tag.
-
-This works for email links too: contact@example.com.
diff --git a/content/blog/what-is-haitang.zh.mdx b/content/blog/what-is-haitang.zh.mdx
deleted file mode 100644
index d6f768a..0000000
--- a/content/blog/what-is-haitang.zh.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: HaiTang 是什么?
-description: 海棠诗社,中华古诗词的数字桃源。
-image: /images/blog/haitang-og.png
-date: 2024-10-26T12:00:00.000Z
-published: true
-categories: [company, news]
-author: haitang
-locale: zh
----
-
-到目前为止,尝试使用 Tailwind 来设计文章、文档或博客文章的样式一直是一项繁琐的任务,需要对排版有敏锐的眼光,并且需要大量复杂的自定义 CSS。
-
-默认情况下,Tailwind 会删除段落、标题、列表等所有默认的浏览器样式。这对于构建应用程序 UI 非常有用,因为您花更少的时间撤销用户代理样式,但是当您真的只是尝试设置来自 CMS 中富文本编辑器或 markdown 文件的内容的样式时,这可能会令人惊讶和不直观。
-
-我们实际上收到了很多关于它的投诉,人们经常问我们这样的问题:
-
-> 为什么 Tailwind 删除了我的 `h1` 元素上的默认样式?我如何禁用这个?你说我也会失去所有其他基本样式是什么意思?
-> 我们听到了您的声音,但我们并不确信简单地禁用我们的基本样式就是您真正想要的。您不希望每次在仪表板 UI 的一部分中使用 `p` 元素时都必须删除烦人的边距。而且我怀疑您真的希望您的博客文章使用用户代理样式——您希望它们看起来很棒,而不是糟糕。
-
-`@tailwindcss/typography` 插件是我们尝试给您真正想要的东西,而不会有做一些愚蠢的事情(比如禁用我们的基本样式)的任何缺点。
-
-它添加了一个新的 `prose` 类,您可以将其应用于任何普通 HTML 内容块,并将其转变为一个美丽、格式良好的文档:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-有关如何使用该插件及其包含的功能的更多信息,[阅读文档](https://github.com/tailwindcss/typography/blob/master/README.md)。
-
----
-
-## 从现在开始期待什么
-
-从这里开始的是我写的一堆绝对无意义的内容,用来测试插件本身。它包括我能想到的每一个合理的排版元素,如**粗体文本**、无序列表、有序列表、代码块、块引用,_甚至斜体_。
-
-涵盖所有这些用例很重要,原因如下:
-
-1. 我们希望一切开箱即用看起来都很好。
-2. 实际上只是第一个原因,这是插件的全部意义。
-3. 这里有第三个假装的原因,尽管一个有三个项目的列表看起来比一个有两个项目的列表更真实。
-
-现在我们将尝试另一种标题样式。
-
-### 排版应该很简单
-
-所以这是给你的一个标题——如果我们做得正确,那应该看起来相当合理。
-
-一位智者曾经告诉我关于排版的一件事是:
-
-> 如果你不希望你的东西看起来像垃圾,排版是非常重要的。做好它,那么它就不会糟糕。
-
-默认情况下,图片在这里看起来也应该不错:
-
-
-
-与普遍的看法相反,Lorem Ipsum 并不是简单的随机文本。它起源于公元前 45 年的一段古典拉丁文学,使其有超过 2000 年的历史。
-
-现在我将向您展示一个无序列表的例子,以确保它看起来也不错:
-
-- 所以这是这个列表中的第一项。
-- 在这个例子中,我们保持项目简短。
-- 稍后,我们将使用更长、更复杂的列表项。
-
-这就是本节的结尾。
-
-## 如果我们堆叠标题怎么办?
-
-### 我们也应该确保这看起来不错。
-
-有时候你有直接堆叠在一起的标题。在这些情况下,你通常必须取消第二个标题上的顶部边距,因为标题彼此靠得更近通常看起来比段落后面跟着标题要好。
-
-### 当标题在段落之后出现时……
-
-当标题在段落之后出现时,我们需要更多的空间,就像我上面已经提到的那样。现在让我们看看一个更复杂的列表会是什么样子。
-
-- **我经常做这种事,列表项有标题。**
-
- 由于某种原因,我认为这看起来很酷,这很不幸,因为要让样式正确是相当烦人的。
-
- 我在这些列表项中通常也有两到三个段落,所以困难的部分是让段落之间的间距、列表项标题和单独的列表项都有意义。老实说,这很困难,你可以提出一个强有力的论点,认为你根本不应该这样写。
-
-- **由于这是一个列表,我至少需要两个项目。**
-
- 我已经在前面的列表项中解释了我在做什么,但是如果一个列表只有一个项目,那就不是一个列表,我们真的希望这看起来真实。这就是为什么我添加了这第二个列表项,所以我在写样式时实际上有东西可以看。
-
-- **添加第三项也不是一个坏主意。**
-
- 我认为只使用两个项目可能已经足够了,但三个肯定不会更糟,而且由于我似乎在编造任意的东西时没有遇到麻烦,我不妨包括它。
-
-在这种列表之后,我通常会有一个结束语或段落,因为直接跳到标题看起来有点奇怪。
-
-## 代码默认应该看起来不错。
-
-我认为大多数人如果想要设置他们的代码块的样式,会使用 [highlight.js](https://highlightjs.org/) 或 [Prism](https://prismjs.com/) 或其他东西,但是让它们开箱即用看起来_还不错_,即使没有语法高亮,也不会有害。
-
-以下是撰写本文时默认的 `tailwind.config.js` 文件的样子:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-希望这对你来说看起来足够好。
-
-### 嵌套列表怎么办?
-
-嵌套列表基本上总是看起来很糟糕,这就是为什么像 Medium 这样的编辑器甚至不让你这样做,但我猜既然你们中的一些傻瓜要这样做,我们至少要承担让它工作的负担。
-
-1. **嵌套列表很少是一个好主意。**
- - 你可能觉得你真的很"有组织"或者什么的,但你只是在屏幕上创建一个难以阅读的粗糙形状。
- - UI 中的嵌套导航也是一个坏主意,尽可能保持扁平。
- - 在源代码中嵌套大量文件夹也没有帮助。
-2. **既然我们需要有更多的项目,这里有另一个。**
- - 我不确定我们是否会费心设置超过两级深度的样式。
- - 两级已经太多了,三级肯定是一个坏主意。
- - 如果你嵌套四级深度,你应该进监狱。
-3. **两个项目并不是真正的列表,三个项目就好了。**
- - 再次请不要嵌套列表,如果你希望人们真正阅读你的内容。
- - 没有人想看这个。
- - 我很不高兴我们甚至必须费心设置这个样式。
-
-Markdown 中列表最烦人的事情是,除非列表项中有多个段落,否则 `` 元素不会被赋予子 `` 标签。这意味着我也必须担心设置那种烦人情况的样式。
-
-- **例如,这里是另一个嵌套列表。**
-
- 但这次有第二段。
-
- - 这些列表项不会有 `
` 标签
- - 因为它们每个只有一行
-
-- **但在这第二个顶级列表项中,它们会有。**
-
- 这特别烦人,因为这段话的间距。
-
- - 正如你在这里看到的,因为我添加了第二行,这个列表项现在有一个 `
` 标签。
-
- 顺便说一下,这是我说的第二行。
-
- - 最后这里有另一个列表项,所以它更像一个列表。
-
-- 一个结束列表项,但没有嵌套列表,为什么不呢?
-
-最后一句话结束这一节。
-
-## 还有其他我们需要设置样式的元素
-
-我几乎忘了提到链接,比如[这个链接到 Tailwind CSS 网站](https://tailwindcss.com)。我们几乎把它们变成蓝色,但那是昨天的事了,所以我们选择了深灰色,感觉更前卫。
-
-我们甚至包括了表格样式,看看:
-
-| 摔跤手 | 出生地 | 终结技 |
-| ----------------------- | ------------- | ------------------- |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-我们还需要确保内联代码看起来不错,比如如果我想谈论 `` 元素或者告诉你关于 `@tailwindcss/typography` 的好消息。
-
-### 有时我甚至在标题中使用 `code`
-
-尽管这可能是一个坏主意,而且历史上我一直很难让它看起来不错。不过这个_"将代码块包裹在反引号中"_的技巧效果相当不错。
-
-我过去做过的另一件事是在链接中放置一个 `code` 标签,比如如果我想告诉你关于 [`tailwindcss/docs`](https://github.com/tailwindcss/docs) 仓库的事情。我不喜欢反引号下面有下划线,但为了避免它而导致的疯狂绝对不值得。
-
-#### 我们还没有使用 `h4`
-
-但现在我们有了。请不要在你的内容中使用 `h5` 或 `h6`,Medium 只支持两个标题级别是有原因的,你们这些动物。我老实说考虑过使用 `before` 伪元素,如果你使用 `h5` 或 `h6` 就对你大喊大叫。
-
-我们根本不会为它们设置样式,因为 `h4` 元素已经很小,与正文大小相同。我们应该怎么处理 `h5`,让它比正文更_小_?不,谢谢。
-
-### 不过我们仍然需要考虑堆叠的标题。
-
-#### 让我们确保我们也不会用 `h4` 元素搞砸这个。
-
-呼,运气好的话,我们已经设置了上面这段文字的标题样式,它们看起来相当不错。
-
-让我们在这里添加一个结束段落,这样事情就会以一个相当大小的文本块结束。我无法解释为什么我希望事情以这种方式结束,但我必须假设这是因为我认为如果文档末尾太靠近标题,事情会看起来奇怪或不平衡。
-
-我在这里写的可能已经足够长了,但添加这最后一句话不会有害。
-
-## GitHub 风格的 Markdown
-
-我还添加了对使用 `remark-gfm` 的 GitHub 风格 Markdown 的支持。
-
-使用 `remark-gfm`,我们在 markdown 中获得了一些额外的功能。例如:自动链接文字。
-
-像 www.example.com 或 https://example.com 这样的链接会自动转换为 `a` 标签。
-
-这对电子邮件链接也有效:contact@example.com。
\ No newline at end of file
diff --git a/content/blog/what-is-indiehub.mdx b/content/blog/what-is-indiehub.mdx
deleted file mode 100644
index e4f5adf..0000000
--- a/content/blog/what-is-indiehub.mdx
+++ /dev/null
@@ -1,214 +0,0 @@
----
-title: What is IndieHub?
-description: IndieHub is the best all-in-one directory for indie hackers.
-image: /images/blog/indiehub-og.png
-date: 2024-11-24T12:00:00.000Z
-published: true
-categories: [news, product]
-author: indiehub
----
-
-Until now, trying to style an article, document, or blog post with Tailwind has been a tedious task that required a keen eye for typography and a lot of complex custom CSS.
-
-By default, Tailwind removes all of the default browser styling from paragraphs, headings, lists and more. This ends up being really useful for building application UIs because you spend less time undoing user-agent styles, but when you _really are_ just trying to style some content that came from a rich-text editor in a CMS or a markdown file, it can be surprising and unintuitive.
-
-We get lots of complaints about it actually, with people regularly asking us things like:
-
-> Why is Tailwind removing the default styles on my `h1` elements? How do I disable this? What do you mean I lose all the other base styles too?
-> We hear you, but we're not convinced that simply disabling our base styles is what you really want. You don't want to have to remove annoying margins every time you use a `p` element in a piece of your dashboard UI. And I doubt you really want your blog posts to use the user-agent styles either — you want them to look _awesome_, not awful.
-
-The `@tailwindcss/typography` plugin is our attempt to give you what you _actually_ want, without any of the downsides of doing something stupid like disabling our base styles.
-
-It adds a new `prose` class that you can slap on any block of vanilla HTML content and turn it into a beautiful, well-formatted document:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-For more information about how to use the plugin and the features it includes, [read the documentation](https://github.com/tailwindcss/typography/blob/master/README.md).
-
----
-
-## What to expect from here on out
-
-What follows from here is just a bunch of absolute nonsense I've written to dogfood the plugin itself. It includes every sensible typographic element I could think of, like **bold text**, unordered lists, ordered lists, code blocks, block quotes, _and even italics_.
-
-It's important to cover all of these use cases for a few reasons:
-
-1. We want everything to look good out of the box.
-2. Really just the first reason, that's the whole point of the plugin.
-3. Here's a third pretend reason though a list with three items looks more realistic than a list with two items.
-
-Now we're going to try out another header style.
-
-### Typography should be easy
-
-So that's a header for you — with any luck if we've done our job correctly that will look pretty reasonable.
-
-Something a wise person once told me about typography is:
-
-> Typography is pretty important if you don't want your stuff to look like trash. Make it good then it won't be bad.
-
-It's probably important that images look okay here by default as well:
-
-
-
-Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
-
-Now I'm going to show you an example of an unordered list to make sure that looks good, too:
-
-- So here is the first item in this list.
-- In this example we're keeping the items short.
-- Later, we'll use longer, more complex list items.
-
-And that's the end of this section.
-
-## What if we stack headings?
-
-### We should make sure that looks good, too.
-
-Sometimes you have headings directly underneath each other. In those cases you often have to undo the top margin on the second heading because it usually looks better for the headings to be closer together than a paragraph followed by a heading should be.
-
-### When a heading comes after a paragraph …
-
-When a heading comes after a paragraph, we need a bit more space, like I already mentioned above. Now let's see what a more complex list would look like.
-
-- **I often do this thing where list items have headings.**
-
- For some reason I think this looks cool which is unfortunate because it's pretty annoying to get the styles right.
-
- I often have two or three paragraphs in these list items, too, so the hard part is getting the spacing between the paragraphs, list item heading, and separate list items to all make sense. Pretty tough honestly, you could make a strong argument that you just shouldn't write this way.
-
-- **Since this is a list, I need at least two items.**
-
- I explained what I'm doing already in the previous list item, but a list wouldn't be a list if it only had one item, and we really want this to look realistic. That's why I've added this second list item so I actually have something to look at when writing the styles.
-
-- **It's not a bad idea to add a third item either.**
-
- I think it probably would've been fine to just use two items but three is definitely not worse, and since I seem to be having no trouble making up arbitrary things to type, I might as well include it.
-
-After this sort of list I usually have a closing statement or paragraph, because it kinda looks weird jumping right to a heading.
-
-## Code should look okay by default.
-
-I think most people are going to use [highlight.js](https://highlightjs.org/) or [Prism](https://prismjs.com/) or something if they want to style their code blocks but it wouldn't hurt to make them look _okay_ out of the box, even with no syntax highlighting.
-
-Here's what a default `tailwind.config.js` file looks like at the time of writing:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-Hopefully that looks good enough to you.
-
-### What about nested lists?
-
-Nested lists basically always look bad which is why editors like Medium don't even let you do it, but I guess since some of you goofballs are going to do it we have to carry the burden of at least making it work.
-
-1. **Nested lists are rarely a good idea.**
- - You might feel like you are being really "organized" or something but you are just creating a gross shape on the screen that is hard to read.
- - Nested navigation in UIs is a bad idea too, keep things as flat as possible.
- - Nesting tons of folders in your source code is also not helpful.
-2. **Since we need to have more items, here's another one.**
- - I'm not sure if we'll bother styling more than two levels deep.
- - Two is already too much, three is guaranteed to be a bad idea.
- - If you nest four levels deep you belong in prison.
-3. **Two items isn't really a list, three is good though.**
- - Again please don't nest lists if you want people to actually read your content.
- - Nobody wants to look at this.
- - I'm upset that we even have to bother styling this.
-
-The most annoying thing about lists in Markdown is that `` elements aren't given a child `` tag unless there are multiple paragraphs in the list item. That means I have to worry about styling that annoying situation too.
-
-- **For example, here's another nested list.**
-
- But this time with a second paragraph.
-
- - These list items won't have `
` tags
- - Because they are only one line each
-
-- **But in this second top-level list item, they will.**
-
- This is especially annoying because of the spacing on this paragraph.
-
- - As you can see here, because I've added a second line, this list item now has a `
` tag.
-
- This is the second line I'm talking about by the way.
-
- - Finally here's another list item so it's more like a list.
-
-- A closing list item, but with no nested list, because why not?
-
-And finally a sentence to close off this section.
-
-## There are other elements we need to style
-
-I almost forgot to mention links, like [this link to the Tailwind CSS website](https://tailwindcss.com). We almost made them blue but that's so yesterday, so we went with dark gray, feels edgier.
-
-We even included table styles, check it out:
-
-| Wrestler | Origin | Finisher |
-| ----------------------- | ------------ | ------------------ |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-We also need to make sure inline code looks good, like if I wanted to talk about `` elements or tell you the good news about `@tailwindcss/typography`.
-
-### Sometimes I even use `code` in headings
-
-Even though it's probably a bad idea, and historically I've had a hard time making it look good. This _"wrap the code blocks in backticks"_ trick works pretty well though really.
-
-Another thing I've done in the past is put a `code` tag inside of a link, like if I wanted to tell you about the [`tailwindcss/docs`](https://github.com/tailwindcss/docs) repository. I don't love that there is an underline below the backticks but it is absolutely not worth the madness it would require to avoid it.
-
-#### We haven't used an `h4` yet
-
-But now we have. Please don't use `h5` or `h6` in your content, Medium only supports two heading levels for a reason, you animals. I honestly considered using a `before` pseudo-element to scream at you if you use an `h5` or `h6`.
-
-We don't style them at all out of the box because `h4` elements are already so small that they are the same size as the body copy. What are we supposed to do with an `h5`, make it _smaller_ than the body copy? No thanks.
-
-### We still need to think about stacked headings though.
-
-#### Let's make sure we don't screw that up with `h4` elements, either.
-
-Phew, with any luck we have styled the headings above this text and they look pretty good.
-
-Let's add a closing paragraph here so things end with a decently sized block of text. I can't explain why I want things to end that way but I have to assume it's because I think things will look weird or unbalanced if there is a heading too close to the end of the document.
-
-What I've written here is probably long enough, but adding this final sentence can't hurt.
-
-## GitHub Flavored Markdown
-
-I've also added support for GitHub Flavored Mardown using `remark-gfm`.
-
-With `remark-gfm`, we get a few extra features in our markdown. Example: autolink literals.
-
-A link like www.example.com or https://example.com would automatically be converted into an `a` tag.
-
-This works for email links too: contact@example.com.
diff --git a/content/blog/what-is-indiehub.zh.mdx b/content/blog/what-is-indiehub.zh.mdx
deleted file mode 100644
index 8781054..0000000
--- a/content/blog/what-is-indiehub.zh.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: IndieHub 是什么?
-description: IndieHub是一站式的独立开发者导航站。
-image: /images/blog/indiehub-og.png
-date: 2024-11-24T12:00:00.000Z
-published: true
-categories: [news, product]
-author: indiehub
-locale: zh
----
-
-到目前为止,尝试使用 Tailwind 来设计文章、文档或博客文章的样式一直是一项繁琐的任务,需要对排版有敏锐的眼光,并且需要大量复杂的自定义 CSS。
-
-默认情况下,Tailwind 会删除段落、标题、列表等所有默认的浏览器样式。这对于构建应用程序 UI 非常有用,因为您花更少的时间撤销用户代理样式,但是当您真的只是尝试设置来自 CMS 中富文本编辑器或 markdown 文件的内容的样式时,这可能会令人惊讶和不直观。
-
-我们实际上收到了很多关于它的投诉,人们经常问我们这样的问题:
-
-> 为什么 Tailwind 删除了我的 `h1` 元素上的默认样式?我如何禁用这个?你说我也会失去所有其他基本样式是什么意思?
-> 我们听到了您的声音,但我们并不确信简单地禁用我们的基本样式就是您真正想要的。您不希望每次在仪表板 UI 的一部分中使用 `p` 元素时都必须删除烦人的边距。而且我怀疑您真的希望您的博客文章使用用户代理样式——您希望它们看起来很棒,而不是糟糕。
-
-`@tailwindcss/typography` 插件是我们尝试给您真正想要的东西,而不会有做一些愚蠢的事情(比如禁用我们的基本样式)的任何缺点。
-
-它添加了一个新的 `prose` 类,您可以将其应用于任何普通 HTML 内容块,并将其转变为一个美丽、格式良好的文档:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-有关如何使用该插件及其包含的功能的更多信息,[阅读文档](https://github.com/tailwindcss/typography/blob/master/README.md)。
-
----
-
-## 从现在开始期待什么
-
-从这里开始的是我写的一堆绝对无意义的内容,用来测试插件本身。它包括我能想到的每一个合理的排版元素,如**粗体文本**、无序列表、有序列表、代码块、块引用,_甚至斜体_。
-
-涵盖所有这些用例很重要,原因如下:
-
-1. 我们希望一切开箱即用看起来都很好。
-2. 实际上只是第一个原因,这是插件的全部意义。
-3. 这里有第三个假装的原因,尽管一个有三个项目的列表看起来比一个有两个项目的列表更真实。
-
-现在我们将尝试另一种标题样式。
-
-### 排版应该很简单
-
-所以这是给你的一个标题——如果我们做得正确,那应该看起来相当合理。
-
-一位智者曾经告诉我关于排版的一件事是:
-
-> 如果你不希望你的东西看起来像垃圾,排版是非常重要的。做好它,那么它就不会糟糕。
-
-默认情况下,图片在这里看起来也应该不错:
-
-
-
-与普遍的看法相反,Lorem Ipsum 并不是简单的随机文本。它起源于公元前 45 年的一段古典拉丁文学,使其有超过 2000 年的历史。
-
-现在我将向您展示一个无序列表的例子,以确保它看起来也不错:
-
-- 所以这是这个列表中的第一项。
-- 在这个例子中,我们保持项目简短。
-- 稍后,我们将使用更长、更复杂的列表项。
-
-这就是本节的结尾。
-
-## 如果我们堆叠标题怎么办?
-
-### 我们也应该确保这看起来不错。
-
-有时候你有直接堆叠在一起的标题。在这些情况下,你通常必须取消第二个标题上的顶部边距,因为标题彼此靠得更近通常看起来比段落后面跟着标题要好。
-
-### 当标题在段落之后出现时……
-
-当标题在段落之后出现时,我们需要更多的空间,就像我上面已经提到的那样。现在让我们看看一个更复杂的列表会是什么样子。
-
-- **我经常做这种事,列表项有标题。**
-
- 由于某种原因,我认为这看起来很酷,这很不幸,因为要让样式正确是相当烦人的。
-
- 我在这些列表项中通常也有两到三个段落,所以困难的部分是让段落之间的间距、列表项标题和单独的列表项都有意义。老实说,这很困难,你可以提出一个强有力的论点,认为你根本不应该这样写。
-
-- **由于这是一个列表,我至少需要两个项目。**
-
- 我已经在前面的列表项中解释了我在做什么,但是如果一个列表只有一个项目,那就不是一个列表,我们真的希望这看起来真实。这就是为什么我添加了这第二个列表项,所以我在写样式时实际上有东西可以看。
-
-- **添加第三项也不是一个坏主意。**
-
- 我认为只使用两个项目可能已经足够了,但三个肯定不会更糟,而且由于我似乎在编造任意的东西时没有遇到麻烦,我不妨包括它。
-
-在这种列表之后,我通常会有一个结束语或段落,因为直接跳到标题看起来有点奇怪。
-
-## 代码默认应该看起来不错。
-
-我认为大多数人如果想要设置他们的代码块的样式,会使用 [highlight.js](https://highlightjs.org/) 或 [Prism](https://prismjs.com/) 或其他东西,但是让它们开箱即用看起来_还不错_,即使没有语法高亮,也不会有害。
-
-以下是撰写本文时默认的 `tailwind.config.js` 文件的样子:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-希望这对你来说看起来足够好。
-
-### 嵌套列表怎么办?
-
-嵌套列表基本上总是看起来很糟糕,这就是为什么像 Medium 这样的编辑器甚至不让你这样做,但我猜既然你们中的一些傻瓜要这样做,我们至少要承担让它工作的负担。
-
-1. **嵌套列表很少是一个好主意。**
- - 你可能觉得你真的很"有组织"或者什么的,但你只是在屏幕上创建一个难以阅读的粗糙形状。
- - UI 中的嵌套导航也是一个坏主意,尽可能保持扁平。
- - 在源代码中嵌套大量文件夹也没有帮助。
-2. **既然我们需要有更多的项目,这里有另一个。**
- - 我不确定我们是否会费心设置超过两级深度的样式。
- - 两级已经太多了,三级肯定是一个坏主意。
- - 如果你嵌套四级深度,你应该进监狱。
-3. **两个项目并不是真正的列表,三个项目就好了。**
- - 再次请不要嵌套列表,如果你希望人们真正阅读你的内容。
- - 没有人想看这个。
- - 我很不高兴我们甚至必须费心设置这个样式。
-
-Markdown 中列表最烦人的事情是,除非列表项中有多个段落,否则 `` 元素不会被赋予子 `` 标签。这意味着我也必须担心设置那种烦人情况的样式。
-
-- **例如,这里是另一个嵌套列表。**
-
- 但这次有第二段。
-
- - 这些列表项不会有 `
` 标签
- - 因为它们每个只有一行
-
-- **但在这第二个顶级列表项中,它们会有。**
-
- 这特别烦人,因为这段话的间距。
-
- - 正如你在这里看到的,因为我添加了第二行,这个列表项现在有一个 `
` 标签。
-
- 顺便说一下,这是我说的第二行。
-
- - 最后这里有另一个列表项,所以它更像一个列表。
-
-- 一个结束列表项,但没有嵌套列表,为什么不呢?
-
-最后一句话结束这一节。
-
-## 还有其他我们需要设置样式的元素
-
-我几乎忘了提到链接,比如[这个链接到 Tailwind CSS 网站](https://tailwindcss.com)。我们几乎把它们变成蓝色,但那是昨天的事了,所以我们选择了深灰色,感觉更前卫。
-
-我们甚至包括了表格样式,看看:
-
-| 摔跤手 | 出生地 | 终结技 |
-| ----------------------- | ------------- | ------------------- |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-我们还需要确保内联代码看起来不错,比如如果我想谈论 `` 元素或者告诉你关于 `@tailwindcss/typography` 的好消息。
-
-### 有时我甚至在标题中使用 `code`
-
-尽管这可能是一个坏主意,而且历史上我一直很难让它看起来不错。不过这个_"将代码块包裹在反引号中"_的技巧效果相当不错。
-
-我过去做过的另一件事是在链接中放置一个 `code` 标签,比如如果我想告诉你关于 [`tailwindcss/docs`](https://github.com/tailwindcss/docs) 仓库的事情。我不喜欢反引号下面有下划线,但为了避免它而导致的疯狂绝对不值得。
-
-#### 我们还没有使用 `h4`
-
-但现在我们有了。请不要在你的内容中使用 `h5` 或 `h6`,Medium 只支持两个标题级别是有原因的,你们这些动物。我老实说考虑过使用 `before` 伪元素,如果你使用 `h5` 或 `h6` 就对你大喊大叫。
-
-我们根本不会为它们设置样式,因为 `h4` 元素已经很小,与正文大小相同。我们应该怎么处理 `h5`,让它比正文更_小_?不,谢谢。
-
-### 不过我们仍然需要考虑堆叠的标题。
-
-#### 让我们确保我们也不会用 `h4` 元素搞砸这个。
-
-呼,运气好的话,我们已经设置了上面这段文字的标题样式,它们看起来相当不错。
-
-让我们在这里添加一个结束段落,这样事情就会以一个相当大小的文本块结束。我无法解释为什么我希望事情以这种方式结束,但我必须假设这是因为我认为如果文档末尾太靠近标题,事情会看起来奇怪或不平衡。
-
-我在这里写的可能已经足够长了,但添加这最后一句话不会有害。
-
-## GitHub 风格的 Markdown
-
-我还添加了对使用 `remark-gfm` 的 GitHub 风格 Markdown 的支持。
-
-使用 `remark-gfm`,我们在 markdown 中获得了一些额外的功能。例如:自动链接文字。
-
-像 www.example.com 或 https://example.com 这样的链接会自动转换为 `a` 标签。
-
-这对电子邮件链接也有效:contact@example.com。
\ No newline at end of file
diff --git a/content/blog/what-is-mkdirs.mdx b/content/blog/what-is-mkdirs.mdx
deleted file mode 100644
index 4ea8fc3..0000000
--- a/content/blog/what-is-mkdirs.mdx
+++ /dev/null
@@ -1,214 +0,0 @@
----
-title: What is Mkdirs?
-description: Mkdirs is the best boilerplate for building directory websites.
-image: /images/blog/mkdirs-og.png
-date: 2024-11-25T12:00:00.000Z
-published: true
-categories: [news, company]
-author: mkdirs
----
-
-Until now, trying to style an article, document, or blog post with Tailwind has been a tedious task that required a keen eye for typography and a lot of complex custom CSS.
-
-By default, Tailwind removes all of the default browser styling from paragraphs, headings, lists and more. This ends up being really useful for building application UIs because you spend less time undoing user-agent styles, but when you _really are_ just trying to style some content that came from a rich-text editor in a CMS or a markdown file, it can be surprising and unintuitive.
-
-We get lots of complaints about it actually, with people regularly asking us things like:
-
-> Why is Tailwind removing the default styles on my `h1` elements? How do I disable this? What do you mean I lose all the other base styles too?
-> We hear you, but we're not convinced that simply disabling our base styles is what you really want. You don't want to have to remove annoying margins every time you use a `p` element in a piece of your dashboard UI. And I doubt you really want your blog posts to use the user-agent styles either — you want them to look _awesome_, not awful.
-
-The `@tailwindcss/typography` plugin is our attempt to give you what you _actually_ want, without any of the downsides of doing something stupid like disabling our base styles.
-
-It adds a new `prose` class that you can slap on any block of vanilla HTML content and turn it into a beautiful, well-formatted document:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-For more information about how to use the plugin and the features it includes, [read the documentation](https://github.com/tailwindcss/typography/blob/master/README.md).
-
----
-
-## What to expect from here on out
-
-What follows from here is just a bunch of absolute nonsense I've written to dogfood the plugin itself. It includes every sensible typographic element I could think of, like **bold text**, unordered lists, ordered lists, code blocks, block quotes, _and even italics_.
-
-It's important to cover all of these use cases for a few reasons:
-
-1. We want everything to look good out of the box.
-2. Really just the first reason, that's the whole point of the plugin.
-3. Here's a third pretend reason though a list with three items looks more realistic than a list with two items.
-
-Now we're going to try out another header style.
-
-### Typography should be easy
-
-So that's a header for you — with any luck if we've done our job correctly that will look pretty reasonable.
-
-Something a wise person once told me about typography is:
-
-> Typography is pretty important if you don't want your stuff to look like trash. Make it good then it won't be bad.
-
-It's probably important that images look okay here by default as well:
-
-
-
-Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
-
-Now I'm going to show you an example of an unordered list to make sure that looks good, too:
-
-- So here is the first item in this list.
-- In this example we're keeping the items short.
-- Later, we'll use longer, more complex list items.
-
-And that's the end of this section.
-
-## What if we stack headings?
-
-### We should make sure that looks good, too.
-
-Sometimes you have headings directly underneath each other. In those cases you often have to undo the top margin on the second heading because it usually looks better for the headings to be closer together than a paragraph followed by a heading should be.
-
-### When a heading comes after a paragraph …
-
-When a heading comes after a paragraph, we need a bit more space, like I already mentioned above. Now let's see what a more complex list would look like.
-
-- **I often do this thing where list items have headings.**
-
- For some reason I think this looks cool which is unfortunate because it's pretty annoying to get the styles right.
-
- I often have two or three paragraphs in these list items, too, so the hard part is getting the spacing between the paragraphs, list item heading, and separate list items to all make sense. Pretty tough honestly, you could make a strong argument that you just shouldn't write this way.
-
-- **Since this is a list, I need at least two items.**
-
- I explained what I'm doing already in the previous list item, but a list wouldn't be a list if it only had one item, and we really want this to look realistic. That's why I've added this second list item so I actually have something to look at when writing the styles.
-
-- **It's not a bad idea to add a third item either.**
-
- I think it probably would've been fine to just use two items but three is definitely not worse, and since I seem to be having no trouble making up arbitrary things to type, I might as well include it.
-
-After this sort of list I usually have a closing statement or paragraph, because it kinda looks weird jumping right to a heading.
-
-## Code should look okay by default.
-
-I think most people are going to use [highlight.js](https://highlightjs.org/) or [Prism](https://prismjs.com/) or something if they want to style their code blocks but it wouldn't hurt to make them look _okay_ out of the box, even with no syntax highlighting.
-
-Here's what a default `tailwind.config.js` file looks like at the time of writing:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-Hopefully that looks good enough to you.
-
-### What about nested lists?
-
-Nested lists basically always look bad which is why editors like Medium don't even let you do it, but I guess since some of you goofballs are going to do it we have to carry the burden of at least making it work.
-
-1. **Nested lists are rarely a good idea.**
- - You might feel like you are being really "organized" or something but you are just creating a gross shape on the screen that is hard to read.
- - Nested navigation in UIs is a bad idea too, keep things as flat as possible.
- - Nesting tons of folders in your source code is also not helpful.
-2. **Since we need to have more items, here's another one.**
- - I'm not sure if we'll bother styling more than two levels deep.
- - Two is already too much, three is guaranteed to be a bad idea.
- - If you nest four levels deep you belong in prison.
-3. **Two items isn't really a list, three is good though.**
- - Again please don't nest lists if you want people to actually read your content.
- - Nobody wants to look at this.
- - I'm upset that we even have to bother styling this.
-
-The most annoying thing about lists in Markdown is that `` elements aren't given a child `` tag unless there are multiple paragraphs in the list item. That means I have to worry about styling that annoying situation too.
-
-- **For example, here's another nested list.**
-
- But this time with a second paragraph.
-
- - These list items won't have `
` tags
- - Because they are only one line each
-
-- **But in this second top-level list item, they will.**
-
- This is especially annoying because of the spacing on this paragraph.
-
- - As you can see here, because I've added a second line, this list item now has a `
` tag.
-
- This is the second line I'm talking about by the way.
-
- - Finally here's another list item so it's more like a list.
-
-- A closing list item, but with no nested list, because why not?
-
-And finally a sentence to close off this section.
-
-## There are other elements we need to style
-
-I almost forgot to mention links, like [this link to the Tailwind CSS website](https://tailwindcss.com). We almost made them blue but that's so yesterday, so we went with dark gray, feels edgier.
-
-We even included table styles, check it out:
-
-| Wrestler | Origin | Finisher |
-| ----------------------- | ------------ | ------------------ |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-We also need to make sure inline code looks good, like if I wanted to talk about `` elements or tell you the good news about `@tailwindcss/typography`.
-
-### Sometimes I even use `code` in headings
-
-Even though it's probably a bad idea, and historically I've had a hard time making it look good. This _"wrap the code blocks in backticks"_ trick works pretty well though really.
-
-Another thing I've done in the past is put a `code` tag inside of a link, like if I wanted to tell you about the [`tailwindcss/docs`](https://github.com/tailwindcss/docs) repository. I don't love that there is an underline below the backticks but it is absolutely not worth the madness it would require to avoid it.
-
-#### We haven't used an `h4` yet
-
-But now we have. Please don't use `h5` or `h6` in your content, Medium only supports two heading levels for a reason, you animals. I honestly considered using a `before` pseudo-element to scream at you if you use an `h5` or `h6`.
-
-We don't style them at all out of the box because `h4` elements are already so small that they are the same size as the body copy. What are we supposed to do with an `h5`, make it _smaller_ than the body copy? No thanks.
-
-### We still need to think about stacked headings though.
-
-#### Let's make sure we don't screw that up with `h4` elements, either.
-
-Phew, with any luck we have styled the headings above this text and they look pretty good.
-
-Let's add a closing paragraph here so things end with a decently sized block of text. I can't explain why I want things to end that way but I have to assume it's because I think things will look weird or unbalanced if there is a heading too close to the end of the document.
-
-What I've written here is probably long enough, but adding this final sentence can't hurt.
-
-## GitHub Flavored Markdown
-
-I've also added support for GitHub Flavored Mardown using `remark-gfm`.
-
-With `remark-gfm`, we get a few extra features in our markdown. Example: autolink literals.
-
-A link like www.example.com or https://example.com would automatically be converted into an `a` tag.
-
-This works for email links too: contact@example.com.
diff --git a/content/blog/what-is-mkdirs.zh.mdx b/content/blog/what-is-mkdirs.zh.mdx
deleted file mode 100644
index bb82abf..0000000
--- a/content/blog/what-is-mkdirs.zh.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: Mkdirs 是什么?
-description: Mkdirs 是构建导航站的最佳代码模板。
-image: /images/blog/mkdirs-og.png
-date: 2024-11-25T12:00:00.000Z
-published: true
-categories: [news, company]
-author: mkdirs
-locale: zh
----
-
-到目前为止,尝试使用 Tailwind 来设计文章、文档或博客文章的样式一直是一项繁琐的任务,需要对排版有敏锐的眼光,并且需要大量复杂的自定义 CSS。
-
-默认情况下,Tailwind 会删除段落、标题、列表等所有默认的浏览器样式。这对于构建应用程序 UI 非常有用,因为您花更少的时间撤销用户代理样式,但是当您真的只是尝试设置来自 CMS 中富文本编辑器或 markdown 文件的内容的样式时,这可能会令人惊讶和不直观。
-
-我们实际上收到了很多关于它的投诉,人们经常问我们这样的问题:
-
-> 为什么 Tailwind 删除了我的 `h1` 元素上的默认样式?我如何禁用这个?你说我也会失去所有其他基本样式是什么意思?
-> 我们听到了您的声音,但我们并不确信简单地禁用我们的基本样式就是您真正想要的。您不希望每次在仪表板 UI 的一部分中使用 `p` 元素时都必须删除烦人的边距。而且我怀疑您真的希望您的博客文章使用用户代理样式——您希望它们看起来很棒,而不是糟糕。
-
-`@tailwindcss/typography` 插件是我们尝试给您真正想要的东西,而不会有做一些愚蠢的事情(比如禁用我们的基本样式)的任何缺点。
-
-它添加了一个新的 `prose` 类,您可以将其应用于任何普通 HTML 内容块,并将其转变为一个美丽、格式良好的文档:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-有关如何使用该插件及其包含的功能的更多信息,[阅读文档](https://github.com/tailwindcss/typography/blob/master/README.md)。
-
----
-
-## 从现在开始期待什么
-
-从这里开始的是我写的一堆绝对无意义的内容,用来测试插件本身。它包括我能想到的每一个合理的排版元素,如**粗体文本**、无序列表、有序列表、代码块、块引用,_甚至斜体_。
-
-涵盖所有这些用例很重要,原因如下:
-
-1. 我们希望一切开箱即用看起来都很好。
-2. 实际上只是第一个原因,这是插件的全部意义。
-3. 这里有第三个假装的原因,尽管一个有三个项目的列表看起来比一个有两个项目的列表更真实。
-
-现在我们将尝试另一种标题样式。
-
-### 排版应该很简单
-
-所以这是给你的一个标题——如果我们做得正确,那应该看起来相当合理。
-
-一位智者曾经告诉我关于排版的一件事是:
-
-> 如果你不希望你的东西看起来像垃圾,排版是非常重要的。做好它,那么它就不会糟糕。
-
-默认情况下,图片在这里看起来也应该不错:
-
-
-
-与普遍的看法相反,Lorem Ipsum 并不是简单的随机文本。它起源于公元前 45 年的一段古典拉丁文学,使其有超过 2000 年的历史。
-
-现在我将向您展示一个无序列表的例子,以确保它看起来也不错:
-
-- 所以这是这个列表中的第一项。
-- 在这个例子中,我们保持项目简短。
-- 稍后,我们将使用更长、更复杂的列表项。
-
-这就是本节的结尾。
-
-## 如果我们堆叠标题怎么办?
-
-### 我们也应该确保这看起来不错。
-
-有时候你有直接堆叠在一起的标题。在这些情况下,你通常必须取消第二个标题上的顶部边距,因为标题彼此靠得更近通常看起来比段落后面跟着标题要好。
-
-### 当标题在段落之后出现时……
-
-当标题在段落之后出现时,我们需要更多的空间,就像我上面已经提到的那样。现在让我们看看一个更复杂的列表会是什么样子。
-
-- **我经常做这种事,列表项有标题。**
-
- 由于某种原因,我认为这看起来很酷,这很不幸,因为要让样式正确是相当烦人的。
-
- 我在这些列表项中通常也有两到三个段落,所以困难的部分是让段落之间的间距、列表项标题和单独的列表项都有意义。老实说,这很困难,你可以提出一个强有力的论点,认为你根本不应该这样写。
-
-- **由于这是一个列表,我至少需要两个项目。**
-
- 我已经在前面的列表项中解释了我在做什么,但是如果一个列表只有一个项目,那就不是一个列表,我们真的希望这看起来真实。这就是为什么我添加了这第二个列表项,所以我在写样式时实际上有东西可以看。
-
-- **添加第三项也不是一个坏主意。**
-
- 我认为只使用两个项目可能已经足够了,但三个肯定不会更糟,而且由于我似乎在编造任意的东西时没有遇到麻烦,我不妨包括它。
-
-在这种列表之后,我通常会有一个结束语或段落,因为直接跳到标题看起来有点奇怪。
-
-## 代码默认应该看起来不错。
-
-我认为大多数人如果想要设置他们的代码块的样式,会使用 [highlight.js](https://highlightjs.org/) 或 [Prism](https://prismjs.com/) 或其他东西,但是让它们开箱即用看起来_还不错_,即使没有语法高亮,也不会有害。
-
-以下是撰写本文时默认的 `tailwind.config.js` 文件的样子:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-希望这对你来说看起来足够好。
-
-### 嵌套列表怎么办?
-
-嵌套列表基本上总是看起来很糟糕,这就是为什么像 Medium 这样的编辑器甚至不让你这样做,但我猜既然你们中的一些傻瓜要这样做,我们至少要承担让它工作的负担。
-
-1. **嵌套列表很少是一个好主意。**
- - 你可能觉得你真的很"有组织"或者什么的,但你只是在屏幕上创建一个难以阅读的粗糙形状。
- - UI 中的嵌套导航也是一个坏主意,尽可能保持扁平。
- - 在源代码中嵌套大量文件夹也没有帮助。
-2. **既然我们需要有更多的项目,这里有另一个。**
- - 我不确定我们是否会费心设置超过两级深度的样式。
- - 两级已经太多了,三级肯定是一个坏主意。
- - 如果你嵌套四级深度,你应该进监狱。
-3. **两个项目并不是真正的列表,三个项目就好了。**
- - 再次请不要嵌套列表,如果你希望人们真正阅读你的内容。
- - 没有人想看这个。
- - 我很不高兴我们甚至必须费心设置这个样式。
-
-Markdown 中列表最烦人的事情是,除非列表项中有多个段落,否则 `` 元素不会被赋予子 `` 标签。这意味着我也必须担心设置那种烦人情况的样式。
-
-- **例如,这里是另一个嵌套列表。**
-
- 但这次有第二段。
-
- - 这些列表项不会有 `
` 标签
- - 因为它们每个只有一行
-
-- **但在这第二个顶级列表项中,它们会有。**
-
- 这特别烦人,因为这段话的间距。
-
- - 正如你在这里看到的,因为我添加了第二行,这个列表项现在有一个 `
` 标签。
-
- 顺便说一下,这是我说的第二行。
-
- - 最后这里有另一个列表项,所以它更像一个列表。
-
-- 一个结束列表项,但没有嵌套列表,为什么不呢?
-
-最后一句话结束这一节。
-
-## 还有其他我们需要设置样式的元素
-
-我几乎忘了提到链接,比如[这个链接到 Tailwind CSS 网站](https://tailwindcss.com)。我们几乎把它们变成蓝色,但那是昨天的事了,所以我们选择了深灰色,感觉更前卫。
-
-我们甚至包括了表格样式,看看:
-
-| 摔跤手 | 出生地 | 终结技 |
-| ----------------------- | ------------- | ------------------- |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-我们还需要确保内联代码看起来不错,比如如果我想谈论 `` 元素或者告诉你关于 `@tailwindcss/typography` 的好消息。
-
-### 有时我甚至在标题中使用 `code`
-
-尽管这可能是一个坏主意,而且历史上我一直很难让它看起来不错。不过这个_"将代码块包裹在反引号中"_的技巧效果相当不错。
-
-我过去做过的另一件事是在链接中放置一个 `code` 标签,比如如果我想告诉你关于 [`tailwindcss/docs`](https://github.com/tailwindcss/docs) 仓库的事情。我不喜欢反引号下面有下划线,但为了避免它而导致的疯狂绝对不值得。
-
-#### 我们还没有使用 `h4`
-
-但现在我们有了。请不要在你的内容中使用 `h5` 或 `h6`,Medium 只支持两个标题级别是有原因的,你们这些动物。我老实说考虑过使用 `before` 伪元素,如果你使用 `h5` 或 `h6` 就对你大喊大叫。
-
-我们根本不会为它们设置样式,因为 `h4` 元素已经很小,与正文大小相同。我们应该怎么处理 `h5`,让它比正文更_小_?不,谢谢。
-
-### 不过我们仍然需要考虑堆叠的标题。
-
-#### 让我们确保我们也不会用 `h4` 元素搞砸这个。
-
-呼,运气好的话,我们已经设置了上面这段文字的标题样式,它们看起来相当不错。
-
-让我们在这里添加一个结束段落,这样事情就会以一个相当大小的文本块结束。我无法解释为什么我希望事情以这种方式结束,但我必须假设这是因为我认为如果文档末尾太靠近标题,事情会看起来奇怪或不平衡。
-
-我在这里写的可能已经足够长了,但添加这最后一句话不会有害。
-
-## GitHub 风格的 Markdown
-
-我还添加了对使用 `remark-gfm` 的 GitHub 风格 Markdown 的支持。
-
-使用 `remark-gfm`,我们在 markdown 中获得了一些额外的功能。例如:自动链接文字。
-
-像 www.example.com 或 https://example.com 这样的链接会自动转换为 `a` 标签。
-
-这对电子邮件链接也有效:contact@example.com。
\ No newline at end of file
diff --git a/content/blog/what-is-mksaas.mdx b/content/blog/what-is-mksaas.mdx
deleted file mode 100644
index 57c1283..0000000
--- a/content/blog/what-is-mksaas.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: What is MkSaaS?
-description: MkSaaS is the best boilerplate for building AI SaaS websites.
-image: /images/blog/mksaas-og.png
-date: 2024-11-26T12:00:00.000Z
-published: true
-categories: [company, product]
-author: mksaas
-locale: en
----
-
-Until now, trying to style an article, document, or blog post with Tailwind has been a tedious task that required a keen eye for typography and a lot of complex custom CSS.
-
-By default, Tailwind removes all of the default browser styling from paragraphs, headings, lists and more. This ends up being really useful for building application UIs because you spend less time undoing user-agent styles, but when you _really are_ just trying to style some content that came from a rich-text editor in a CMS or a markdown file, it can be surprising and unintuitive.
-
-We get lots of complaints about it actually, with people regularly asking us things like:
-
-> Why is Tailwind removing the default styles on my `h1` elements? How do I disable this? What do you mean I lose all the other base styles too?
-> We hear you, but we're not convinced that simply disabling our base styles is what you really want. You don't want to have to remove annoying margins every time you use a `p` element in a piece of your dashboard UI. And I doubt you really want your blog posts to use the user-agent styles either — you want them to look _awesome_, not awful.
-
-The `@tailwindcss/typography` plugin is our attempt to give you what you _actually_ want, without any of the downsides of doing something stupid like disabling our base styles.
-
-It adds a new `prose` class that you can slap on any block of vanilla HTML content and turn it into a beautiful, well-formatted document:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-For more information about how to use the plugin and the features it includes, [read the documentation](https://github.com/tailwindcss/typography/blob/master/README.md).
-
----
-
-## What to expect from here on out
-
-What follows from here is just a bunch of absolute nonsense I've written to dogfood the plugin itself. It includes every sensible typographic element I could think of, like **bold text**, unordered lists, ordered lists, code blocks, block quotes, _and even italics_.
-
-It's important to cover all of these use cases for a few reasons:
-
-1. We want everything to look good out of the box.
-2. Really just the first reason, that's the whole point of the plugin.
-3. Here's a third pretend reason though a list with three items looks more realistic than a list with two items.
-
-Now we're going to try out another header style.
-
-### Typography should be easy
-
-So that's a header for you — with any luck if we've done our job correctly that will look pretty reasonable.
-
-Something a wise person once told me about typography is:
-
-> Typography is pretty important if you don't want your stuff to look like trash. Make it good then it won't be bad.
-
-It's probably important that images look okay here by default as well:
-
-
-
-Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
-
-Now I'm going to show you an example of an unordered list to make sure that looks good, too:
-
-- So here is the first item in this list.
-- In this example we're keeping the items short.
-- Later, we'll use longer, more complex list items.
-
-And that's the end of this section.
-
-## What if we stack headings?
-
-### We should make sure that looks good, too.
-
-Sometimes you have headings directly underneath each other. In those cases you often have to undo the top margin on the second heading because it usually looks better for the headings to be closer together than a paragraph followed by a heading should be.
-
-### When a heading comes after a paragraph …
-
-When a heading comes after a paragraph, we need a bit more space, like I already mentioned above. Now let's see what a more complex list would look like.
-
-- **I often do this thing where list items have headings.**
-
- For some reason I think this looks cool which is unfortunate because it's pretty annoying to get the styles right.
-
- I often have two or three paragraphs in these list items, too, so the hard part is getting the spacing between the paragraphs, list item heading, and separate list items to all make sense. Pretty tough honestly, you could make a strong argument that you just shouldn't write this way.
-
-- **Since this is a list, I need at least two items.**
-
- I explained what I'm doing already in the previous list item, but a list wouldn't be a list if it only had one item, and we really want this to look realistic. That's why I've added this second list item so I actually have something to look at when writing the styles.
-
-- **It's not a bad idea to add a third item either.**
-
- I think it probably would've been fine to just use two items but three is definitely not worse, and since I seem to be having no trouble making up arbitrary things to type, I might as well include it.
-
-After this sort of list I usually have a closing statement or paragraph, because it kinda looks weird jumping right to a heading.
-
-## Code should look okay by default.
-
-I think most people are going to use [highlight.js](https://highlightjs.org/) or [Prism](https://prismjs.com/) or something if they want to style their code blocks but it wouldn't hurt to make them look _okay_ out of the box, even with no syntax highlighting.
-
-Here's what a default `tailwind.config.js` file looks like at the time of writing:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-Hopefully that looks good enough to you.
-
-### What about nested lists?
-
-Nested lists basically always look bad which is why editors like Medium don't even let you do it, but I guess since some of you goofballs are going to do it we have to carry the burden of at least making it work.
-
-1. **Nested lists are rarely a good idea.**
- - You might feel like you are being really "organized" or something but you are just creating a gross shape on the screen that is hard to read.
- - Nested navigation in UIs is a bad idea too, keep things as flat as possible.
- - Nesting tons of folders in your source code is also not helpful.
-2. **Since we need to have more items, here's another one.**
- - I'm not sure if we'll bother styling more than two levels deep.
- - Two is already too much, three is guaranteed to be a bad idea.
- - If you nest four levels deep you belong in prison.
-3. **Two items isn't really a list, three is good though.**
- - Again please don't nest lists if you want people to actually read your content.
- - Nobody wants to look at this.
- - I'm upset that we even have to bother styling this.
-
-The most annoying thing about lists in Markdown is that `` elements aren't given a child `` tag unless there are multiple paragraphs in the list item. That means I have to worry about styling that annoying situation too.
-
-- **For example, here's another nested list.**
-
- But this time with a second paragraph.
-
- - These list items won't have `
` tags
- - Because they are only one line each
-
-- **But in this second top-level list item, they will.**
-
- This is especially annoying because of the spacing on this paragraph.
-
- - As you can see here, because I've added a second line, this list item now has a `
` tag.
-
- This is the second line I'm talking about by the way.
-
- - Finally here's another list item so it's more like a list.
-
-- A closing list item, but with no nested list, because why not?
-
-And finally a sentence to close off this section.
-
-## There are other elements we need to style
-
-I almost forgot to mention links, like [this link to the Tailwind CSS website](https://tailwindcss.com). We almost made them blue but that's so yesterday, so we went with dark gray, feels edgier.
-
-We even included table styles, check it out:
-
-| Wrestler | Origin | Finisher |
-| ----------------------- | ------------ | ------------------ |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-We also need to make sure inline code looks good, like if I wanted to talk about `` elements or tell you the good news about `@tailwindcss/typography`.
-
-### Sometimes I even use `code` in headings
-
-Even though it's probably a bad idea, and historically I've had a hard time making it look good. This _"wrap the code blocks in backticks"_ trick works pretty well though really.
-
-Another thing I've done in the past is put a `code` tag inside of a link, like if I wanted to tell you about the [`tailwindcss/docs`](https://github.com/tailwindcss/docs) repository. I don't love that there is an underline below the backticks but it is absolutely not worth the madness it would require to avoid it.
-
-#### We haven't used an `h4` yet
-
-But now we have. Please don't use `h5` or `h6` in your content, Medium only supports two heading levels for a reason, you animals. I honestly considered using a `before` pseudo-element to scream at you if you use an `h5` or `h6`.
-
-We don't style them at all out of the box because `h4` elements are already so small that they are the same size as the body copy. What are we supposed to do with an `h5`, make it _smaller_ than the body copy? No thanks.
-
-### We still need to think about stacked headings though.
-
-#### Let's make sure we don't screw that up with `h4` elements, either.
-
-Phew, with any luck we have styled the headings above this text and they look pretty good.
-
-Let's add a closing paragraph here so things end with a decently sized block of text. I can't explain why I want things to end that way but I have to assume it's because I think things will look weird or unbalanced if there is a heading too close to the end of the document.
-
-What I've written here is probably long enough, but adding this final sentence can't hurt.
-
-## GitHub Flavored Markdown
-
-I've also added support for GitHub Flavored Mardown using `remark-gfm`.
-
-With `remark-gfm`, we get a few extra features in our markdown. Example: autolink literals.
-
-A link like www.example.com or https://example.com would automatically be converted into an `a` tag.
-
-This works for email links too: contact@example.com.
diff --git a/content/blog/what-is-mksaas.zh.mdx b/content/blog/what-is-mksaas.zh.mdx
deleted file mode 100644
index a31f368..0000000
--- a/content/blog/what-is-mksaas.zh.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: MkSaaS 是什么?
-description: MkSaaS 是构建 AI SaaS 网站的最佳代码模板。
-image: /images/blog/mksaas-og.png
-date: 2024-11-26T12:00:00.000Z
-published: true
-categories: [company, product]
-author: mksaas
-locale: zh
----
-
-到目前为止,尝试使用 Tailwind 来设计文章、文档或博客文章的样式一直是一项繁琐的任务,需要对排版有敏锐的眼光,并且需要大量复杂的自定义 CSS。
-
-默认情况下,Tailwind 会删除段落、标题、列表等所有默认的浏览器样式。这对于构建应用程序 UI 非常有用,因为您花更少的时间撤销用户代理样式,但是当您真的只是尝试设置来自 CMS 中富文本编辑器或 markdown 文件的内容的样式时,这可能会令人惊讶和不直观。
-
-我们实际上收到了很多关于它的投诉,人们经常问我们这样的问题:
-
-> 为什么 Tailwind 删除了我的 `h1` 元素上的默认样式?我如何禁用这个?你说我也会失去所有其他基本样式是什么意思?
-> 我们听到了您的声音,但我们并不确信简单地禁用我们的基本样式就是您真正想要的。您不希望每次在仪表板 UI 的一部分中使用 `p` 元素时都必须删除烦人的边距。而且我怀疑您真的希望您的博客文章使用用户代理样式——您希望它们看起来很棒,而不是糟糕。
-
-`@tailwindcss/typography` 插件是我们尝试给您真正想要的东西,而不会有做一些愚蠢的事情(比如禁用我们的基本样式)的任何缺点。
-
-它添加了一个新的 `prose` 类,您可以将其应用于任何普通 HTML 内容块,并将其转变为一个美丽、格式良好的文档:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-有关如何使用该插件及其包含的功能的更多信息,[阅读文档](https://github.com/tailwindcss/typography/blob/master/README.md)。
-
----
-
-## 从现在开始期待什么
-
-从这里开始的是我写的一堆绝对无意义的内容,用来测试插件本身。它包括我能想到的每一个合理的排版元素,如**粗体文本**、无序列表、有序列表、代码块、块引用,_甚至斜体_。
-
-涵盖所有这些用例很重要,原因如下:
-
-1. 我们希望一切开箱即用看起来都很好。
-2. 实际上只是第一个原因,这是插件的全部意义。
-3. 这里有第三个假装的原因,尽管一个有三个项目的列表看起来比一个有两个项目的列表更真实。
-
-现在我们将尝试另一种标题样式。
-
-### 排版应该很简单
-
-所以这是给你的一个标题——如果我们做得正确,那应该看起来相当合理。
-
-一位智者曾经告诉我关于排版的一件事是:
-
-> 如果你不希望你的东西看起来像垃圾,排版是非常重要的。做好它,那么它就不会糟糕。
-
-默认情况下,图片在这里看起来也应该不错:
-
-
-
-与普遍的看法相反,Lorem Ipsum 并不是简单的随机文本。它起源于公元前 45 年的一段古典拉丁文学,使其有超过 2000 年的历史。
-
-现在我将向您展示一个无序列表的例子,以确保它看起来也不错:
-
-- 所以这是这个列表中的第一项。
-- 在这个例子中,我们保持项目简短。
-- 稍后,我们将使用更长、更复杂的列表项。
-
-这就是本节的结尾。
-
-## 如果我们堆叠标题怎么办?
-
-### 我们也应该确保这看起来不错。
-
-有时候你有直接堆叠在一起的标题。在这些情况下,你通常必须取消第二个标题上的顶部边距,因为标题彼此靠得更近通常看起来比段落后面跟着标题要好。
-
-### 当标题在段落之后出现时……
-
-当标题在段落之后出现时,我们需要更多的空间,就像我上面已经提到的那样。现在让我们看看一个更复杂的列表会是什么样子。
-
-- **我经常做这种事,列表项有标题。**
-
- 由于某种原因,我认为这看起来很酷,这很不幸,因为要让样式正确是相当烦人的。
-
- 我在这些列表项中通常也有两到三个段落,所以困难的部分是让段落之间的间距、列表项标题和单独的列表项都有意义。老实说,这很困难,你可以提出一个强有力的论点,认为你根本不应该这样写。
-
-- **由于这是一个列表,我至少需要两个项目。**
-
- 我已经在前面的列表项中解释了我在做什么,但是如果一个列表只有一个项目,那就不是一个列表,我们真的希望这看起来真实。这就是为什么我添加了这第二个列表项,所以我在写样式时实际上有东西可以看。
-
-- **添加第三项也不是一个坏主意。**
-
- 我认为只使用两个项目可能已经足够了,但三个肯定不会更糟,而且由于我似乎在编造任意的东西时没有遇到麻烦,我不妨包括它。
-
-在这种列表之后,我通常会有一个结束语或段落,因为直接跳到标题看起来有点奇怪。
-
-## 代码默认应该看起来不错。
-
-我认为大多数人如果想要设置他们的代码块的样式,会使用 [highlight.js](https://highlightjs.org/) 或 [Prism](https://prismjs.com/) 或其他东西,但是让它们开箱即用看起来_还不错_,即使没有语法高亮,也不会有害。
-
-以下是撰写本文时默认的 `tailwind.config.js` 文件的样子:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-希望这对你来说看起来足够好。
-
-### 嵌套列表怎么办?
-
-嵌套列表基本上总是看起来很糟糕,这就是为什么像 Medium 这样的编辑器甚至不让你这样做,但我猜既然你们中的一些傻瓜要这样做,我们至少要承担让它工作的负担。
-
-1. **嵌套列表很少是一个好主意。**
- - 你可能觉得你真的很"有组织"或者什么的,但你只是在屏幕上创建一个难以阅读的粗糙形状。
- - UI 中的嵌套导航也是一个坏主意,尽可能保持扁平。
- - 在源代码中嵌套大量文件夹也没有帮助。
-2. **既然我们需要有更多的项目,这里有另一个。**
- - 我不确定我们是否会费心设置超过两级深度的样式。
- - 两级已经太多了,三级肯定是一个坏主意。
- - 如果你嵌套四级深度,你应该进监狱。
-3. **两个项目并不是真正的列表,三个项目就好了。**
- - 再次请不要嵌套列表,如果你希望人们真正阅读你的内容。
- - 没有人想看这个。
- - 我很不高兴我们甚至必须费心设置这个样式。
-
-Markdown 中列表最烦人的事情是,除非列表项中有多个段落,否则 `` 元素不会被赋予子 `` 标签。这意味着我也必须担心设置那种烦人情况的样式。
-
-- **例如,这里是另一个嵌套列表。**
-
- 但这次有第二段。
-
- - 这些列表项不会有 `
` 标签
- - 因为它们每个只有一行
-
-- **但在这第二个顶级列表项中,它们会有。**
-
- 这特别烦人,因为这段话的间距。
-
- - 正如你在这里看到的,因为我添加了第二行,这个列表项现在有一个 `
` 标签。
-
- 顺便说一下,这是我说的第二行。
-
- - 最后这里有另一个列表项,所以它更像一个列表。
-
-- 一个结束列表项,但没有嵌套列表,为什么不呢?
-
-最后一句话结束这一节。
-
-## 还有其他我们需要设置样式的元素
-
-我几乎忘了提到链接,比如[这个链接到 Tailwind CSS 网站](https://tailwindcss.com)。我们几乎把它们变成蓝色,但那是昨天的事了,所以我们选择了深灰色,感觉更前卫。
-
-我们甚至包括了表格样式,看看:
-
-| 摔跤手 | 出生地 | 终结技 |
-| ----------------------- | ------------- | ------------------- |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-我们还需要确保内联代码看起来不错,比如如果我想谈论 `` 元素或者告诉你关于 `@tailwindcss/typography` 的好消息。
-
-### 有时我甚至在标题中使用 `code`
-
-尽管这可能是一个坏主意,而且历史上我一直很难让它看起来不错。不过这个_"将代码块包裹在反引号中"_的技巧效果相当不错。
-
-我过去做过的另一件事是在链接中放置一个 `code` 标签,比如如果我想告诉你关于 [`tailwindcss/docs`](https://github.com/tailwindcss/docs) 仓库的事情。我不喜欢反引号下面有下划线,但为了避免它而导致的疯狂绝对不值得。
-
-#### 我们还没有使用 `h4`
-
-但现在我们有了。请不要在你的内容中使用 `h5` 或 `h6`,Medium 只支持两个标题级别是有原因的,你们这些动物。我老实说考虑过使用 `before` 伪元素,如果你使用 `h5` 或 `h6` 就对你大喊大叫。
-
-我们根本不会为它们设置样式,因为 `h4` 元素已经很小,与正文大小相同。我们应该怎么处理 `h5`,让它比正文更_小_?不,谢谢。
-
-### 不过我们仍然需要考虑堆叠的标题。
-
-#### 让我们确保我们也不会用 `h4` 元素搞砸这个。
-
-呼,运气好的话,我们已经设置了上面这段文字的标题样式,它们看起来相当不错。
-
-让我们在这里添加一个结束段落,这样事情就会以一个相当大小的文本块结束。我无法解释为什么我希望事情以这种方式结束,但我必须假设这是因为我认为如果文档末尾太靠近标题,事情会看起来奇怪或不平衡。
-
-我在这里写的可能已经足够长了,但添加这最后一句话不会有害。
-
-## GitHub 风格的 Markdown
-
-我还添加了对使用 `remark-gfm` 的 GitHub 风格 Markdown 的支持。
-
-使用 `remark-gfm`,我们在 markdown 中获得了一些额外的功能。例如:自动链接文字。
-
-像 www.example.com 或 https://example.com 这样的链接会自动转换为 `a` 标签。
-
-这对电子邮件链接也有效:contact@example.com。
\ No newline at end of file
diff --git a/content/blog/what-is-oggenrator.mdx b/content/blog/what-is-oggenrator.mdx
deleted file mode 100644
index 6191f80..0000000
--- a/content/blog/what-is-oggenrator.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: What is OG Generator?
-description: Generate beautiful Open Graph images with zero effort. Use our free online Open Graph Generator tool to generate open graph meta tags for website or blogs.
-image: /images/blog/oggenerator-og.png
-date: 2024-11-20T12:00:00.000Z
-published: true
-categories: [company, news]
-author: oggenerator
-locale: en
----
-
-Until now, trying to style an article, document, or blog post with Tailwind has been a tedious task that required a keen eye for typography and a lot of complex custom CSS.
-
-By default, Tailwind removes all of the default browser styling from paragraphs, headings, lists and more. This ends up being really useful for building application UIs because you spend less time undoing user-agent styles, but when you _really are_ just trying to style some content that came from a rich-text editor in a CMS or a markdown file, it can be surprising and unintuitive.
-
-We get lots of complaints about it actually, with people regularly asking us things like:
-
-> Why is Tailwind removing the default styles on my `h1` elements? How do I disable this? What do you mean I lose all the other base styles too?
-> We hear you, but we're not convinced that simply disabling our base styles is what you really want. You don't want to have to remove annoying margins every time you use a `p` element in a piece of your dashboard UI. And I doubt you really want your blog posts to use the user-agent styles either — you want them to look _awesome_, not awful.
-
-The `@tailwindcss/typography` plugin is our attempt to give you what you _actually_ want, without any of the downsides of doing something stupid like disabling our base styles.
-
-It adds a new `prose` class that you can slap on any block of vanilla HTML content and turn it into a beautiful, well-formatted document:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-For more information about how to use the plugin and the features it includes, [read the documentation](https://github.com/tailwindcss/typography/blob/master/README.md).
-
----
-
-## What to expect from here on out
-
-What follows from here is just a bunch of absolute nonsense I've written to dogfood the plugin itself. It includes every sensible typographic element I could think of, like **bold text**, unordered lists, ordered lists, code blocks, block quotes, _and even italics_.
-
-It's important to cover all of these use cases for a few reasons:
-
-1. We want everything to look good out of the box.
-2. Really just the first reason, that's the whole point of the plugin.
-3. Here's a third pretend reason though a list with three items looks more realistic than a list with two items.
-
-Now we're going to try out another header style.
-
-### Typography should be easy
-
-So that's a header for you — with any luck if we've done our job correctly that will look pretty reasonable.
-
-Something a wise person once told me about typography is:
-
-> Typography is pretty important if you don't want your stuff to look like trash. Make it good then it won't be bad.
-
-It's probably important that images look okay here by default as well:
-
-
-
-Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
-
-Now I'm going to show you an example of an unordered list to make sure that looks good, too:
-
-- So here is the first item in this list.
-- In this example we're keeping the items short.
-- Later, we'll use longer, more complex list items.
-
-And that's the end of this section.
-
-## What if we stack headings?
-
-### We should make sure that looks good, too.
-
-Sometimes you have headings directly underneath each other. In those cases you often have to undo the top margin on the second heading because it usually looks better for the headings to be closer together than a paragraph followed by a heading should be.
-
-### When a heading comes after a paragraph …
-
-When a heading comes after a paragraph, we need a bit more space, like I already mentioned above. Now let's see what a more complex list would look like.
-
-- **I often do this thing where list items have headings.**
-
- For some reason I think this looks cool which is unfortunate because it's pretty annoying to get the styles right.
-
- I often have two or three paragraphs in these list items, too, so the hard part is getting the spacing between the paragraphs, list item heading, and separate list items to all make sense. Pretty tough honestly, you could make a strong argument that you just shouldn't write this way.
-
-- **Since this is a list, I need at least two items.**
-
- I explained what I'm doing already in the previous list item, but a list wouldn't be a list if it only had one item, and we really want this to look realistic. That's why I've added this second list item so I actually have something to look at when writing the styles.
-
-- **It's not a bad idea to add a third item either.**
-
- I think it probably would've been fine to just use two items but three is definitely not worse, and since I seem to be having no trouble making up arbitrary things to type, I might as well include it.
-
-After this sort of list I usually have a closing statement or paragraph, because it kinda looks weird jumping right to a heading.
-
-## Code should look okay by default.
-
-I think most people are going to use [highlight.js](https://highlightjs.org/) or [Prism](https://prismjs.com/) or something if they want to style their code blocks but it wouldn't hurt to make them look _okay_ out of the box, even with no syntax highlighting.
-
-Here's what a default `tailwind.config.js` file looks like at the time of writing:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-Hopefully that looks good enough to you.
-
-### What about nested lists?
-
-Nested lists basically always look bad which is why editors like Medium don't even let you do it, but I guess since some of you goofballs are going to do it we have to carry the burden of at least making it work.
-
-1. **Nested lists are rarely a good idea.**
- - You might feel like you are being really "organized" or something but you are just creating a gross shape on the screen that is hard to read.
- - Nested navigation in UIs is a bad idea too, keep things as flat as possible.
- - Nesting tons of folders in your source code is also not helpful.
-2. **Since we need to have more items, here's another one.**
- - I'm not sure if we'll bother styling more than two levels deep.
- - Two is already too much, three is guaranteed to be a bad idea.
- - If you nest four levels deep you belong in prison.
-3. **Two items isn't really a list, three is good though.**
- - Again please don't nest lists if you want people to actually read your content.
- - Nobody wants to look at this.
- - I'm upset that we even have to bother styling this.
-
-The most annoying thing about lists in Markdown is that `` elements aren't given a child `` tag unless there are multiple paragraphs in the list item. That means I have to worry about styling that annoying situation too.
-
-- **For example, here's another nested list.**
-
- But this time with a second paragraph.
-
- - These list items won't have `
` tags
- - Because they are only one line each
-
-- **But in this second top-level list item, they will.**
-
- This is especially annoying because of the spacing on this paragraph.
-
- - As you can see here, because I've added a second line, this list item now has a `
` tag.
-
- This is the second line I'm talking about by the way.
-
- - Finally here's another list item so it's more like a list.
-
-- A closing list item, but with no nested list, because why not?
-
-And finally a sentence to close off this section.
-
-## There are other elements we need to style
-
-I almost forgot to mention links, like [this link to the Tailwind CSS website](https://tailwindcss.com). We almost made them blue but that's so yesterday, so we went with dark gray, feels edgier.
-
-We even included table styles, check it out:
-
-| Wrestler | Origin | Finisher |
-| ----------------------- | ------------ | ------------------ |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-We also need to make sure inline code looks good, like if I wanted to talk about `` elements or tell you the good news about `@tailwindcss/typography`.
-
-### Sometimes I even use `code` in headings
-
-Even though it's probably a bad idea, and historically I've had a hard time making it look good. This _"wrap the code blocks in backticks"_ trick works pretty well though really.
-
-Another thing I've done in the past is put a `code` tag inside of a link, like if I wanted to tell you about the [`tailwindcss/docs`](https://github.com/tailwindcss/docs) repository. I don't love that there is an underline below the backticks but it is absolutely not worth the madness it would require to avoid it.
-
-#### We haven't used an `h4` yet
-
-But now we have. Please don't use `h5` or `h6` in your content, Medium only supports two heading levels for a reason, you animals. I honestly considered using a `before` pseudo-element to scream at you if you use an `h5` or `h6`.
-
-We don't style them at all out of the box because `h4` elements are already so small that they are the same size as the body copy. What are we supposed to do with an `h5`, make it _smaller_ than the body copy? No thanks.
-
-### We still need to think about stacked headings though.
-
-#### Let's make sure we don't screw that up with `h4` elements, either.
-
-Phew, with any luck we have styled the headings above this text and they look pretty good.
-
-Let's add a closing paragraph here so things end with a decently sized block of text. I can't explain why I want things to end that way but I have to assume it's because I think things will look weird or unbalanced if there is a heading too close to the end of the document.
-
-What I've written here is probably long enough, but adding this final sentence can't hurt.
-
-## GitHub Flavored Markdown
-
-I've also added support for GitHub Flavored Mardown using `remark-gfm`.
-
-With `remark-gfm`, we get a few extra features in our markdown. Example: autolink literals.
-
-A link like www.example.com or https://example.com would automatically be converted into an `a` tag.
-
-This works for email links too: contact@example.com.
diff --git a/content/blog/what-is-oggenrator.zh.mdx b/content/blog/what-is-oggenrator.zh.mdx
deleted file mode 100644
index 6333a22..0000000
--- a/content/blog/what-is-oggenrator.zh.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: OG Generator 是什么?
-description: 免费的在线 Open Graph 图像生成器工具。
-image: /images/blog/oggenerator-og.png
-date: 2024-11-20T12:00:00.000Z
-published: true
-categories: [company, news]
-author: oggenerator
-locale: zh
----
-
-到目前为止,尝试使用 Tailwind 来设计文章、文档或博客文章的样式一直是一项繁琐的任务,需要对排版有敏锐的眼光,并且需要大量复杂的自定义 CSS。
-
-默认情况下,Tailwind 会删除段落、标题、列表等所有默认的浏览器样式。这对于构建应用程序 UI 非常有用,因为您花更少的时间撤销用户代理样式,但是当您真的只是尝试设置来自 CMS 中富文本编辑器或 markdown 文件的内容的样式时,这可能会令人惊讶和不直观。
-
-我们实际上收到了很多关于它的投诉,人们经常问我们这样的问题:
-
-> 为什么 Tailwind 删除了我的 `h1` 元素上的默认样式?我如何禁用这个?你说我也会失去所有其他基本样式是什么意思?
-> 我们听到了您的声音,但我们并不确信简单地禁用我们的基本样式就是您真正想要的。您不希望每次在仪表板 UI 的一部分中使用 `p` 元素时都必须删除烦人的边距。而且我怀疑您真的希望您的博客文章使用用户代理样式——您希望它们看起来很棒,而不是糟糕。
-
-`@tailwindcss/typography` 插件是我们尝试给您真正想要的东西,而不会有做一些愚蠢的事情(比如禁用我们的基本样式)的任何缺点。
-
-它添加了一个新的 `prose` 类,您可以将其应用于任何普通 HTML 内容块,并将其转变为一个美丽、格式良好的文档:
-
-```html
-
- Garlic bread with cheese: What the science tells us
-
- For years parents have espoused the health benefits of eating garlic bread
- with cheese to their children, with the food earning such an iconic status
- in our culture that kids will often dress up as warm, cheesy loaf for
- Halloween.
-
-
- But a recent study shows that the celebrated appetizer may be linked to a
- series of rabies cases springing up around the country.
-
-
-```
-
-有关如何使用该插件及其包含的功能的更多信息,[阅读文档](https://github.com/tailwindcss/typography/blob/master/README.md)。
-
----
-
-## 从现在开始期待什么
-
-从这里开始的是我写的一堆绝对无意义的内容,用来测试插件本身。它包括我能想到的每一个合理的排版元素,如**粗体文本**、无序列表、有序列表、代码块、块引用,_甚至斜体_。
-
-涵盖所有这些用例很重要,原因如下:
-
-1. 我们希望一切开箱即用看起来都很好。
-2. 实际上只是第一个原因,这是插件的全部意义。
-3. 这里有第三个假装的原因,尽管一个有三个项目的列表看起来比一个有两个项目的列表更真实。
-
-现在我们将尝试另一种标题样式。
-
-### 排版应该很简单
-
-所以这是给你的一个标题——如果我们做得正确,那应该看起来相当合理。
-
-一位智者曾经告诉我关于排版的一件事是:
-
-> 如果你不希望你的东西看起来像垃圾,排版是非常重要的。做好它,那么它就不会糟糕。
-
-默认情况下,图片在这里看起来也应该不错:
-
-
-
-与普遍的看法相反,Lorem Ipsum 并不是简单的随机文本。它起源于公元前 45 年的一段古典拉丁文学,使其有超过 2000 年的历史。
-
-现在我将向您展示一个无序列表的例子,以确保它看起来也不错:
-
-- 所以这是这个列表中的第一项。
-- 在这个例子中,我们保持项目简短。
-- 稍后,我们将使用更长、更复杂的列表项。
-
-这就是本节的结尾。
-
-## 如果我们堆叠标题怎么办?
-
-### 我们也应该确保这看起来不错。
-
-有时候你有直接堆叠在一起的标题。在这些情况下,你通常必须取消第二个标题上的顶部边距,因为标题彼此靠得更近通常看起来比段落后面跟着标题要好。
-
-### 当标题在段落之后出现时……
-
-当标题在段落之后出现时,我们需要更多的空间,就像我上面已经提到的那样。现在让我们看看一个更复杂的列表会是什么样子。
-
-- **我经常做这种事,列表项有标题。**
-
- 由于某种原因,我认为这看起来很酷,这很不幸,因为要让样式正确是相当烦人的。
-
- 我在这些列表项中通常也有两到三个段落,所以困难的部分是让段落之间的间距、列表项标题和单独的列表项都有意义。老实说,这很困难,你可以提出一个强有力的论点,认为你根本不应该这样写。
-
-- **由于这是一个列表,我至少需要两个项目。**
-
- 我已经在前面的列表项中解释了我在做什么,但是如果一个列表只有一个项目,那就不是一个列表,我们真的希望这看起来真实。这就是为什么我添加了这第二个列表项,所以我在写样式时实际上有东西可以看。
-
-- **添加第三项也不是一个坏主意。**
-
- 我认为只使用两个项目可能已经足够了,但三个肯定不会更糟,而且由于我似乎在编造任意的东西时没有遇到麻烦,我不妨包括它。
-
-在这种列表之后,我通常会有一个结束语或段落,因为直接跳到标题看起来有点奇怪。
-
-## 代码默认应该看起来不错。
-
-我认为大多数人如果想要设置他们的代码块的样式,会使用 [highlight.js](https://highlightjs.org/) 或 [Prism](https://prismjs.com/) 或其他东西,但是让它们开箱即用看起来_还不错_,即使没有语法高亮,也不会有害。
-
-以下是撰写本文时默认的 `tailwind.config.js` 文件的样子:
-
-```js
-module.exports = {
- purge: [],
- theme: {
- extend: {},
- },
- variants: {},
- plugins: [],
-};
-```
-
-希望这对你来说看起来足够好。
-
-### 嵌套列表怎么办?
-
-嵌套列表基本上总是看起来很糟糕,这就是为什么像 Medium 这样的编辑器甚至不让你这样做,但我猜既然你们中的一些傻瓜要这样做,我们至少要承担让它工作的负担。
-
-1. **嵌套列表很少是一个好主意。**
- - 你可能觉得你真的很"有组织"或者什么的,但你只是在屏幕上创建一个难以阅读的粗糙形状。
- - UI 中的嵌套导航也是一个坏主意,尽可能保持扁平。
- - 在源代码中嵌套大量文件夹也没有帮助。
-2. **既然我们需要有更多的项目,这里有另一个。**
- - 我不确定我们是否会费心设置超过两级深度的样式。
- - 两级已经太多了,三级肯定是一个坏主意。
- - 如果你嵌套四级深度,你应该进监狱。
-3. **两个项目并不是真正的列表,三个项目就好了。**
- - 再次请不要嵌套列表,如果你希望人们真正阅读你的内容。
- - 没有人想看这个。
- - 我很不高兴我们甚至必须费心设置这个样式。
-
-Markdown 中列表最烦人的事情是,除非列表项中有多个段落,否则 `` 元素不会被赋予子 `` 标签。这意味着我也必须担心设置那种烦人情况的样式。
-
-- **例如,这里是另一个嵌套列表。**
-
- 但这次有第二段。
-
- - 这些列表项不会有 `
` 标签
- - 因为它们每个只有一行
-
-- **但在这第二个顶级列表项中,它们会有。**
-
- 这特别烦人,因为这段话的间距。
-
- - 正如你在这里看到的,因为我添加了第二行,这个列表项现在有一个 `
` 标签。
-
- 顺便说一下,这是我说的第二行。
-
- - 最后这里有另一个列表项,所以它更像一个列表。
-
-- 一个结束列表项,但没有嵌套列表,为什么不呢?
-
-最后一句话结束这一节。
-
-## 还有其他我们需要设置样式的元素
-
-我几乎忘了提到链接,比如[这个链接到 Tailwind CSS 网站](https://tailwindcss.com)。我们几乎把它们变成蓝色,但那是昨天的事了,所以我们选择了深灰色,感觉更前卫。
-
-我们甚至包括了表格样式,看看:
-
-| 摔跤手 | 出生地 | 终结技 |
-| ----------------------- | ------------- | ------------------- |
-| Bret "The Hitman" Hart | Calgary, AB | Sharpshooter |
-| Stone Cold Steve Austin | Austin, TX | Stone Cold Stunner |
-| Randy Savage | Sarasota, FL | Elbow Drop |
-| Vader | Boulder, CO | Vader Bomb |
-| Razor Ramon | Chuluota, FL | Razor's Edge |
-
-我们还需要确保内联代码看起来不错,比如如果我想谈论 `` 元素或者告诉你关于 `@tailwindcss/typography` 的好消息。
-
-### 有时我甚至在标题中使用 `code`
-
-尽管这可能是一个坏主意,而且历史上我一直很难让它看起来不错。不过这个_"将代码块包裹在反引号中"_的技巧效果相当不错。
-
-我过去做过的另一件事是在链接中放置一个 `code` 标签,比如如果我想告诉你关于 [`tailwindcss/docs`](https://github.com/tailwindcss/docs) 仓库的事情。我不喜欢反引号下面有下划线,但为了避免它而导致的疯狂绝对不值得。
-
-#### 我们还没有使用 `h4`
-
-但现在我们有了。请不要在你的内容中使用 `h5` 或 `h6`,Medium 只支持两个标题级别是有原因的,你们这些动物。我老实说考虑过使用 `before` 伪元素,如果你使用 `h5` 或 `h6` 就对你大喊大叫。
-
-我们根本不会为它们设置样式,因为 `h4` 元素已经很小,与正文大小相同。我们应该怎么处理 `h5`,让它比正文更_小_?不,谢谢。
-
-### 不过我们仍然需要考虑堆叠的标题。
-
-#### 让我们确保我们也不会用 `h4` 元素搞砸这个。
-
-呼,运气好的话,我们已经设置了上面这段文字的标题样式,它们看起来相当不错。
-
-让我们在这里添加一个结束段落,这样事情就会以一个相当大小的文本块结束。我无法解释为什么我希望事情以这种方式结束,但我必须假设这是因为我认为如果文档末尾太靠近标题,事情会看起来奇怪或不平衡。
-
-我在这里写的可能已经足够长了,但添加这最后一句话不会有害。
-
-## GitHub 风格的 Markdown
-
-我还添加了对使用 `remark-gfm` 的 GitHub 风格 Markdown 的支持。
-
-使用 `remark-gfm`,我们在 markdown 中获得了一些额外的功能。例如:自动链接文字。
-
-像 www.example.com 或 https://example.com 这样的链接会自动转换为 `a` 标签。
-
-这对电子邮件链接也有效:contact@example.com。
\ No newline at end of file
diff --git a/content/docs/internationalization.mdx b/content/docs/internationalization.mdx
index 10c84f1..e783c3d 100644
--- a/content/docs/internationalization.mdx
+++ b/content/docs/internationalization.mdx
@@ -16,9 +16,9 @@ description: Support multiple languages in your documentation
Define the i18n configurations in a file, we will import it with `@/ilb/i18n` in this guide.
-
+{/*
../../examples/i18n/lib/i18n.ts
-
+ */}
Pass it to the source loader.
@@ -122,7 +122,7 @@ export default async function RootLayout({
Pass the locale to Fumadocs in your pages and layouts.
-```tsx title="/app/[lang]/(home)/layout.tsx" tab="Home Layout"
+{/* ```tsx title="/app/[lang]/(home)/layout.tsx" tab="Home Layout"
import type { ReactNode } from 'react';
import { HomeLayout } from 'fumadocs-ui/layouts/home';
import { baseOptions } from '@/app/layout.config';
@@ -180,7 +180,7 @@ export default async function Page({
source.getPages(); // [!code --]
source.getPages(lang); // [!code ++]
}
-```
+``` */}
### Search
@@ -196,7 +196,7 @@ Configure i18n on your search solution.
## Writing Documents
-../../shared/page-conventions.i18n.mdx
+{/* ../../shared/page-conventions.i18n.mdx */}
## Navigation
diff --git a/content/docs/internationalization.zh.mdx b/content/docs/internationalization.zh.mdx
index 8b921c5..7e4af26 100644
--- a/content/docs/internationalization.zh.mdx
+++ b/content/docs/internationalization.zh.mdx
@@ -16,9 +16,9 @@ description: 在您的文档中支持多种语言
在一个文件中定义 i18n 配置,我们将在本指南中使用 `@/ilb/i18n` 导入它。
-
+{/*
../../examples/i18n/lib/i18n.ts
-
+ */}
将其传递给源加载器。
@@ -122,7 +122,7 @@ export default async function RootLayout({
在您的页面和布局中将区域设置传递给 Fumadocs。
-```tsx title="/app/[lang]/(home)/layout.tsx" tab="Home Layout"
+{/* ```tsx title="/app/[lang]/(home)/layout.tsx" tab="Home Layout"
import type { ReactNode } from 'react';
import { HomeLayout } from 'fumadocs-ui/layouts/home';
import { baseOptions } from '@/app/layout.config';
@@ -180,7 +180,7 @@ export default async function Page({
source.getPages(); // [!code --]
source.getPages(lang); // [!code ++]
}
-```
+``` */}
### 搜索
@@ -196,7 +196,7 @@ export default async function Page({
## 编写文档
-../../shared/page-conventions.i18n.mdx
+{/* ../../shared/page-conventions.i18n.mdx */}
## 导航
diff --git a/content/docs/meta.json b/content/docs/meta.json
index aec301a..b285220 100644
--- a/content/docs/meta.json
+++ b/content/docs/meta.json
@@ -13,6 +13,7 @@
"static-export",
"---Writing---",
"markdown",
+ "internationalization",
"---UI---",
"customisation",
"theme",
diff --git a/content/docs/meta.zh.json b/content/docs/meta.zh.json
index 64c60a9..7172470 100644
--- a/content/docs/meta.zh.json
+++ b/content/docs/meta.zh.json
@@ -13,6 +13,7 @@
"static-export",
"---写作---",
"markdown",
+ "internationalization",
"---UI---",
"customisation",
"theme",
diff --git a/src/components/shared/custom-mdx-content.tsx b/src/components/shared/custom-mdx-content.tsx
index 70ff767..5aeb8bd 100644
--- a/src/components/shared/custom-mdx-content.tsx
+++ b/src/components/shared/custom-mdx-content.tsx
@@ -20,7 +20,7 @@ interface CustomMDXContentProps {
* Enhanced MDX Content component that includes commonly used MDX components
* It can be used for blog posts, documentation, and custom pages
*/
-export function CustomMDXContent({
+export async function CustomMDXContent({
code,
customComponents = {},
includeFumadocsComponents = true,
@@ -28,6 +28,7 @@ export function CustomMDXContent({
// Start with default components
const baseComponents: Record = {
...defaultMdxComponents,
+ ...((await import('lucide-react')) as unknown as MDXComponents),
...customComponents,
};