
Blog New Post
- 1 installs
- 1 repo stars
- Updated May 14, 2026
- ahxt/academic-homepage-ai-native
blog-new-post is a Claude Code skill that scaffolds a new dated blog-post directory and starter source file in Typst, Markdown, MDX, or LaTeX.
About
blog-new-post scaffolds a new dated blog-post directory under content/ with a starter source file in the chosen format. It supports Typst, Markdown, MDX, and LaTeX, each pre-filled with the matching metadata block and sample headings. It derives the slug from the title, defaults the date to today, and confirms directory uniqueness. It deliberately leaves author and tags blank rather than inventing them.
- Scaffolds a dated blog-post directory with a starter source file
- Supports Typst, Markdown, MDX, and LaTeX formats
- Pre-fills format-specific metadata frontmatter
Blog New Post by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,365 of 1,879 Documentation skills by installs in the Skillselion catalog
- Data as of Jul 7, 2026 (Skillselion catalog sync)
blog-new-post capabilities & compatibility
- Capabilities
- blog scaffolding · content scaffolding · frontmatter generation
- Use cases
- documentation · copywriting
- Pricing
- Free
What blog-new-post says it does
Scaffold a new dated blog-post directory under `content/` (e.g. `content/2026-05-10-my-post/`) with a starter source file in the user's chosen format (Typst, Markdown, MDX, or LaTeX)
Create a new post directory plus a starter source file in the chosen format, pre-filled with the metadata block matching that format.
Don't fill in author, affiliation, or tags. Leave those blank.
npx skills add https://github.com/ahxt/academic-homepage-ai-native --skill blog-new-postAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 1 |
| Last updated | May 14, 2026 |
| Repository | ahxt/academic-homepage-ai-native ↗ |
What it does
Scaffold a dated blog-post directory and starter file in Typst, Markdown, MDX, or LaTeX with metadata frontmatter.
Who is it for?
Academic or personal sites whose posts live in dated content/ directories across multiple source formats.
Skip if: Filling in author, affiliation, or tags, which the anti-goals say to leave blank.
When should I use this skill?
You want to start a new blog post or note and need the dated directory plus a format-appropriate starter file created.
What you get
A dated post directory with an index file pre-filled with the correct metadata block and sample headings.
- a dated post directory with a starter index file in the chosen format
By the numbers
- 4 supported formats (Typst, Markdown, MDX, LaTeX)
Files
blog-new-post
Create a new post directory plus a starter source file in the chosen format, pre-filled with the metadata block matching that format.
Inputs
Ask only for what's missing:
<title>— required. Free-text post title.<slug>— derived from title if not given (lowercase, hyphenated,
punctuation stripped).
<date>— defaults to today's date (YYYY-MM-DD). Pull from the
currentDate context if available.
<format>— one oftypst,markdown,mdx,latex. Default
typst to match the surrounding project.
<parent-dir>— defaults tocontent/at the project root.<author>— optional. Don't invent — leave blank if unknown.
Output
Create:
<parent-dir>/<date>-<slug>/
├── index.<ext> # starter file in the chosen format
└── (no images yet)Where <ext> is typ / md / mdx / tex.
Starter templates
Typst (index.typ)
#metadata((
title: "<TITLE>",
description: "<one-line summary>",
date: "<YYYY-MM-DD>",
lang: "en",
)) <post>
= Background
Write here.
= Method
== Subsection
$ y = f(x) $
= Discussion
The post sources do not import /config.typ or use #show: template.with(...). The renderer (Claude Code) reads the #metadata((...)) <post> dict directly. Use a plain ISO date string "YYYY-MM-DD", not a Typst datetime(...) call.
Markdown (index.md)
---
title: "<TITLE>"
description: "<one-line summary>"
date: <YYYY-MM-DD>
lang: en
tags: []
---
## Background
Write here.
## Method
### Subsection
$$ y = f(x) $$
## DiscussionMDX (index.mdx)
export const meta = {
title: "<TITLE>",
description: "<one-line summary>",
date: "<YYYY-MM-DD>",
lang: "en",
};
## Background
Write here.
## Method
$$ y = f(x) $$LaTeX (index.tex)
\documentclass[11pt]{article}
\usepackage{amsmath, amssymb, amsthm}
\usepackage{hyperref}
\title{<TITLE>}
\author{}
\date{<YYYY-MM-DD>}
\begin{document}
\maketitle
\begin{abstract}
<one-line summary>
\end{abstract>
\section{Background}
Write here.
\section{Method}
\subsection{Subsection}
\[ y = f(x) \]
\section{Discussion}
\end{document}Steps
1. Resolve inputs. Ask only for what's missing. Default date = today, default format = typst, default parent = content/ at the project root. 2. Compute slug. Lowercase, words joined by -, drop punctuation. Confirm uniqueness — if the directory already exists, append -2. 3. Write the directory and starter file with the format-specific template above. Substitute <TITLE>, date components, etc. 4. Report the new path and the next step: "Edit `<path>/index.<ext>`, then ask me to render it (`blog-build`)."
Anti-goals
- Don't create
images/orassets/subfolders preemptively — let the
user add files when needed.
- Don't fill in author, affiliation, or tags. Leave those blank.
- Don't write a
refs.bibunless the user asks.
Related skills
FAQ
Which formats are supported?
Typst, Markdown, MDX, and LaTeX, each with its own metadata block; Typst is the default to match the surrounding project.
Does it fill in author and tags?
No. It leaves author, affiliation, and tags blank rather than inventing them.