Automated blog post publishing system for the fusabi-lang organization.
This repository provides tooling to publish blog posts to the fusabi-lang/docs blog, which is hosted on GitHub Pages.
Blog URL: https://fusabi-lang.github.io/docs/blog/ (once set up)
-
Nushell - Required for running the publish script
# Install via your package manager or: cargo install nu -
GitHub CLI - Required for cloning the docs repo
# Install and authenticate just install-gh gh auth login -
Just - Command runner (optional but recommended)
cargo install just
# Create output directory structure
just setup
# Or manually:
mkdir -p output/{daily,weekly,monthly}Create blog posts in the output/ directory:
# Create a new daily post
just new-daily
# Create a new weekly post
just new-weekly
# Create a new monthly post
just new-monthlyThis creates markdown files in:
output/daily/YYYY-MM-DD.mdoutput/weekly/YYYY-Www.mdoutput/monthly/YYYY-MM.md
Edit these files with your content (frontmatter will be added automatically during publishing).
# Publish daily update
just publish-daily
# Publish weekly report
just publish-weekly
# Publish monthly review
just publish-monthly
# Publish all unpublished posts
just publish-all
# Dry run (see what would be published)
just publish-dry-run daily
just publish-dry-run weekly
just publish-dry-run monthly# See how many unpublished posts you have
just statusThe publish script creates this structure:
fusabi-lang/docs/
└── content/
└── blog/
├── index.md # Blog landing page
└── 2025/
├── 11/
│ ├── week-2025-47.md # Weekly reports
│ ├── 2025-11-23.md # Daily updates
│ └── november-2025.md # Monthly reviews
└── 12/
└── ...
The publish script automatically adds Quartz-compatible frontmatter:
---
title: "This Week in Fusabi - 2025-W47"
description: "Weekly development report for Fusabi"
date: 2025-11-23
tags: [fusabi, weekly-report, development]
author: Fusabi Team
---- Write Content: Create markdown files in
output/directories - Publish: Run
just publish-*commands - Automation: Script clones fusabi-lang/docs, adds frontmatter, commits, and pushes
- GitHub Pages: Automatically builds and deploys
- Live: Blog post appears at fusabi-lang.github.io/docs/blog/
| Command | Description |
|---|---|
just publish-daily |
Publish today's daily update |
just publish-weekly |
Publish this week's report |
just publish-monthly |
Publish this month's review |
just publish-all |
Publish all unpublished posts |
just publish-dry-run MODE |
Preview what would be published |
just new-daily |
Create a new daily post template |
just new-weekly |
Create a new weekly post template |
just new-monthly |
Create a new monthly post template |
just status |
Show unpublished post counts |
just clean |
Remove temporary docs directory |
just setup |
Create output directory structure |
fusabi-lang/blog/
├── scripts/
│ └── publish.nu # Publishing script
├── output/
│ ├── daily/ # Daily blog posts
│ ├── weekly/ # Weekly reports
│ └── monthly/ # Monthly reviews
├── justfile # Command definitions
├── README.md # This file
└── .gitignore # Ignore temp directories
Once published to fusabi-lang/docs, your blog posts integrate with Quartz's features:
- Full-text search
- Graph view relationships
- Bidirectional links
- RSS feed generation
- Tag-based navigation
$0 - GitHub Pages is completely free!
Install GitHub CLI:
just install-ghEnsure you're authenticated with GitHub:
gh auth loginCreate a post first:
just new-daily
# Edit output/daily/YYYY-MM-DD.md
just publish-daily# 1. Create a weekly post
just new-weekly
# 2. Edit the file
$EDITOR output/weekly/$(date +%Y-W%V).md
# 3. Preview what will be published
just publish-dry-run weekly
# 4. Publish to blog
just publish-weekly
# 5. Wait 2-3 minutes for GitHub Pages to deploy
# 6. Visit https://fusabi-lang.github.io/docs/blog/Same as the Fusabi project.