mdast
contentlayer
Our great sponsors
mdast | contentlayer | |
---|---|---|
5 | 29 | |
993 | 3,067 | |
2.6% | 4.7% | |
5.2 | 6.5 | |
10 months ago | 27 days ago | |
TypeScript | ||
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mdast
-
Remark plug-in, wrapping a span around a string
The actual splitting of the node into those 3 new nodes will depend on the type of AST node (see docs). If you look at other remark plugins, you might find examples or utils for doing that more easily.
-
Contentlayer with next/image
contentlayer uses remark to parse the markdown in an mdast. We can now use remark plugins to modify the mdast. Then rehype comes into play and converts the mdast into a hast. rehype plugins can now modify the hast. Finally the hast is converted into react components.
-
Converting and customizing Markdown files to HTML with Unified, remark & rehype
remark parses and process the Markdown text, and converts it into an abstract syntax tree (AST). This tree is composed of unist nodes, which follow the Markdown Abstract Syntax Tree (mdast) structure.
- Mdast: Markdown Abstract Syntax Tree
-
How to create a custom lint rule for Markdown and MDX using remark and ESLint
Because we will be inspecting a mdast, which is a markdown abstract syntax tree built upon unist, we can take advantage of the many existing unist utilities to inspect our tree's nodes.
contentlayer
-
Show HN: Pages CMS β A CMS for GitHub
This looks and sounds great...
I'm currently using [contentlayer.dev](https://github.com/contentlayerdev/contentlayer) to manage docs and blog content, mostly .mdx files on urlbox.com.
It works well with next.js but unfortunately is abandonware now.
I also have a few custom remark/rehype plugins.
You're right it is a pain to update articles buried in your repo especially with less technical team members. I already tried out TinaCMS to try and solve the editing issues, but their editor wasn't so nice, and it seemed to implicitly make a commit on every tiny change to any content, so I'm really hoping I could use something like this to edit my already existing content...
- How to handle the marketing/landingpage/articles area of your app?
-
Upgrade my blog to Next.js 13.4 with MDX, Prisma, Tailwindcss, Planetscale, Giscus and Contentlayer
Content Management: Contentlayer
-
What is your tech stack for blog websites? (not wordpress)
For my personal website, I use Next and Contentlayer since I prefer to write my content as markdown files. I then host it using vercel's free tier.
-
Show HN: File Based Documentation Site β Next.js
I've seen https://www.contentlayer.dev/ used for similar stuff on open source codebases like taxonomy from shadcn
-
Rebuilding my Portfolio with Next, MDX, and Contentlayer
Contentlayer makes it super easy to grab our mdx blog posts in a type-safe way.
- How to manage copies in Next/React
-
Jumpstart a content-driven NextJS site with Flowershow
Flowershow uses Contentlayer to turn your Markdown content into data stored in JSON files. By defining document schemas, Contentlayer can generate data that is validated (making it type-safe) and can be imported from anywhere in your Next.js app.
-
Contentlayer with next/image
My first reaction was to use MDX and use next/image just as in the example. But that means that we can't use normal markdown images and it turns out that this won't work with contentlayer. This wont work, because Next.js does some magic on the import of the static image. The object which gets returned by the import, contains not only a path to the image, it contains also the width and height, plus a very small version of the image for the blurred placeholder. This magic does not work if the MDX file is loaded with contentlayer, because contentlayer uses its own bundler, which does not know about the import magic for images.
-
MDX autolink headings
After the installation we have to tell MDX that it should use the plugin. The example below shows a contentlayer config, but it should work with every MDX setup.
What are some alternatives?
remark - markdown processor powered by plugins part of the @unifiedjs collective
content - The file-based CMS for your Nuxt application, powered by Markdown and Vue components.
unist-util-visit - utility to visit nodes
Strapi - π Strapi is the leading open-source headless CMS. Itβs 100% JavaScript/TypeScript, fully customizable and developer-first.
vfile - Virtual file format for text processing used in @unifiedjs
mdx - Markdown for the component era
ntast - Notion Abstract Syntax Tree specification.
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
unist - Universal Syntax Tree used by @unifiedjs
nextjs-contentlayer-guide - Demo application for my guide https://imadatyat.me/guides/how-to-setup-contentlayer-in-nextjs
Gridsome - β‘οΈ The Jamstack framework for Vue.js
effect - A fully-fledged functional effect system for TypeScript with a rich standard library