This repository contains the source for the Apache Fluss (Incubating) blog, built with Docusaurus 3.
├── blog/ # Blog content
│ ├── YYYY-MM-DD-slug.md # Blog posts (Markdown/MDX)
│ ├── assets/ # Post-specific images and media
│ ├── releases/ # Release announcement posts
│ ├── static/ # Blog-related static files (avatars)
│ ├── authors.yml # Author profiles
│ └── tags.yml # Tag definitions
├── static/ # Global static assets (logo, favicon)
│ └── img/
├── src/css/ # Custom CSS
├── docusaurus.config.ts # Site configuration
└── package.json
# Install dependencies
npm install
# Start the dev server (with hot reload)
npm run startThe site will be available at http://localhost:3000.
Add a new file under blog/ with the naming convention:
blog/YYYY-MM-DD-my-post-slug.md
Every post must start with YAML frontmatter:
---
slug: my-post-slug
title: "My Blog Post Title"
date: YYYY-MM-DD
authors: [jark]
tags: [apache-fluss]
image: ./assets/my_post/banner.png
---- slug: URL path for the post (e.g.,
/blog/my-post-slug) - authors: List of author keys defined in
blog/authors.yml - tags: List of tag keys defined in
blog/tags.yml - image: (Optional) Cover image used for social sharing (Open Graph)
Place post-specific images in blog/assets/<post_name>/ and reference them with relative paths:
If you're a new author, add an entry to blog/authors.yml:
your_key:
name: Your Name
title: Your Title
url: https://github.com/your-github
image_url: /avatars/your-avatar.pngThen place your avatar image in blog/static/avatars/.
If your post uses a new tag, define it in blog/tags.yml:
my-new-tag:
label: 'My New Tag'# Production build
npm run build
# Preview the production build locally
npm run serveOnce a blog post is merged into the main branch, a CI pipeline is automatically triggered to build and publish the latest blog content to the Apache Fluss website.