Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/willkirkmanm/blog
🛣 Full Text Searchable SSG NextJS 14 Blog (supporting DOCX and MDX content)
https://github.com/willkirkmanm/blog
blog docx full-text-search mdx nextjs14 shadcn-ui ssg
Last synced: 11 days ago
JSON representation
🛣 Full Text Searchable SSG NextJS 14 Blog (supporting DOCX and MDX content)
- Host: GitHub
- URL: https://github.com/willkirkmanm/blog
- Owner: WillKirkmanM
- Created: 2024-03-06T08:56:30.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-05-11T12:26:33.000Z (6 months ago)
- Last Synced: 2024-11-09T16:15:53.443Z (11 days ago)
- Topics: blog, docx, full-text-search, mdx, nextjs14, shadcn-ui, ssg
- Language: TypeScript
- Homepage: https://steady.parsonlabs.com
- Size: 1.35 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Steady
> Server Side Generated, MDX written articles created with NextJS 14![Google Lighthouse Report](https://github.com/WillKirkmanM/steady/assets/98240335/33bdd03e-2a9b-45af-92ae-083e53ae1ac3)
## Getting Started
Install Dependencies:
```bash
bun install
```Run in Development mode:
```bash
bun dev
```Build for Production:
```bash
bun build
```Start Production Build:
```bash
bun start
```## Writing Articles
Articles are written in the `content/articles` folder. The name of the file before the `.mdx` will be the url.In MDX you can set the title and description of the article enclosed by the `---` at the top of the file:
```mdx
---
title: "Hello, World!"
description: "What a day to be alive"
---
```## Custom Components
If you would like to use Custom Components in your articles, you need to include them in the `components/MDX/TheMDXRemote.tsx`:```
import { Button } from "@/components/ui/button"const components = {
Button
}```
You can also modify existing behaviour:
,
```ts
const components = {
h1: (props) =>
ol: (props: any) =>
}
```then in your article:
```mdx
Psychologically, the button has to be one of the most appealing elements on the page. Get that wrong and you fail. Take this button for example:Login
Entranced by the look, you find the feel... and click it. Simply perfect
```