tuzi-format-markdown

Original🇺🇸 English
Translated
3 scriptsChecked / no sensitive code detected

格式化纯文本或 Markdown 文件,添加 frontmatter、标题、摘要、小标题、加粗、列表和代码块。当用户要求"格式化markdown"、"美化文章"、"添加格式"或改善文章排版时使用。输出到 {filename}-formatted.md。

6installs
Added on

NPX Install

npx skill4agent add tuziapi/tuzi-skills tuzi-format-markdown

Markdown Formatter

Transforms plain text or markdown files into well-structured markdown with proper frontmatter, formatting, and typography.

Script Directory

Scripts in
scripts/
subdirectory. Replace
${SKILL_DIR}
with this SKILL.md's directory path.
ScriptPurpose
scripts/main.ts
Main entry point with CLI options (uses remark-cjk-friendly for CJK emphasis)
scripts/quotes.ts
Replace ASCII quotes with fullwidth quotes
scripts/autocorrect.ts
Add CJK/English spacing via autocorrect

Preferences (EXTEND.md)

Use Bash to check EXTEND.md existence (priority order):
bash
# Check project-level first
test -f .tuzi-skills/tuzi-format-markdown/EXTEND.md && echo "project"

# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.tuzi-skills/tuzi-format-markdown/EXTEND.md" && echo "user"
┌──────────────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ .tuzi-skills/tuzi-format-markdown/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.tuzi-skills/tuzi-format-markdown/EXTEND.md │ User home │ └──────────────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Use defaults │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md Supports: Default formatting options | Summary length preferences

Usage

Claude performs content analysis and formatting (Steps 1-6), then runs the script for typography fixes (Step 7).

Workflow

Step 1: Read Source File

Read the user-specified markdown or plain text file.

Step 1.5: Detect Content Type & Confirm

Content Type Detection:
IndicatorClassification
Has
---
YAML frontmatter
Markdown
Has
#
,
##
,
###
headings
Markdown
Has
**bold**
,
*italic*
Markdown
Has
- 
or
1. 
lists
Markdown
Has ``` code blocksMarkdown
Has
> 
blockquotes
Markdown
None of abovePlain text
Decision Flow:
┌─────────────────┬────────────────────────────────────────────────┐ │ Content Type │ Action │ ├─────────────────┼────────────────────────────────────────────────┤ │ Plain text │ Proceed to Step 2 (format to markdown) │ ├─────────────────┼────────────────────────────────────────────────┤ │ Markdown │ Use AskUserQuestion to confirm optimization │ └─────────────────┴────────────────────────────────────────────────┘
If Markdown detected, ask user:
Detected existing markdown formatting. What would you like to do?

1. Optimize formatting (Recommended)
   - Add/improve frontmatter, headings, bold, lists
   - Run typography script (spacing, emphasis fixes)
   - Output: {filename}-formatted.md

2. Keep original formatting
   - Preserve existing markdown structure
   - Run typography script (spacing, emphasis fixes)
   - Output: {filename}-formatted.md

3. Typography fixes only
   - Run typography script on original file in-place
   - No copy created, modifies original file directly
Based on user choice:
  • Optimize: Continue to Step 2-8 (full workflow)
  • Keep original: Skip Steps 2-5, copy file → Step 6-8 (run script on copy)
  • Typography only: Skip Steps 2-6, run Step 7 on original file directly

Step 2: Analyze Content Structure

Identify:
  • Existing title (H1
    #
    )
  • Paragraph separations
  • Keywords suitable for bold
  • Parallel content convertible to lists
  • Code snippets
  • Quotations

Step 3: Check/Create Frontmatter

Check for YAML frontmatter (
---
block). Create if missing.
Meta field handling:
FieldProcessing
title
See Step 4
slug
Infer from file path (e.g.,
posts/2026/01/10/vibe-coding/
vibe-coding
) or generate from title
summary
Generate engaging summary (100-150 characters)
coverImage
Check if
imgs/cover.png
exists in same directory; if so, use relative path (also accepted:
featureImage
)

Step 4: Title Handling

Logic:
  1. If frontmatter already has
    title
    → use it, no H1 in body
  2. If first line is H1 → extract to frontmatter
    title
    , remove H1 from body
  3. If neither exists → generate candidate titles
Title generation flow:
  1. Generate 3 candidate titles based on content
  2. Use
    AskUserQuestion
    tool:
Select a title:

1. [Title A] (Recommended)
2. [Title B]
3. [Title C]
  1. If no selection within a few seconds, use recommended (option 1)
Title principles:
  • Concise, max 20 characters
  • Captures core message
  • Engaging, sparks reading interest
  • Accurate, avoids clickbait
Important: Once title is in frontmatter, body should NOT have H1 (avoid duplication)

Step 5: Format Processing

Formatting rules:
ElementFormat
TitlesUse
#
,
##
,
###
hierarchy
Key pointsUse
**bold**
Parallel itemsConvert to
-
unordered or
1.
ordered lists
Code/commandsUse
`inline`
or
```block```
Quotes/sayingsUse
>
blockquote
SeparatorsUse
---
where appropriate
Formatting principles:
  • Preserve original content and viewpoints
  • Add formatting only, do not modify text
  • Formatting serves readability
  • Avoid over-formatting

Step 6: Save Formatted File

Save as
{original-filename}-formatted.md
Examples:
  • final.md
    final-formatted.md
  • draft-v1.md
    draft-v1-formatted.md
If user chose "Keep original formatting" (from Step 1.5):
  • Copy original file to
    {filename}-formatted.md
    without modifications
  • Proceed to Step 7 for typography fixes only
Backup existing file:
If
{filename}-formatted.md
already exists, backup before overwriting:
bash
# Check if formatted file exists
if [ -f "{filename}-formatted.md" ]; then
  # Backup with timestamp
  mv "{filename}-formatted.md" "{filename}-formatted.backup-$(date +%Y%m%d-%H%M%S).md"
fi
Example:
  • final-formatted.md
    exists → backup to
    final-formatted.backup-20260128-143052.md

Step 7: Execute Text Formatting Script

After saving, must run the formatting script:
bash
npx -y bun ${SKILL_DIR}/scripts/main.ts {output-file-path} [options]
Script Options:
OptionShortDescriptionDefault
--quotes
-q
Replace ASCII quotes with fullwidth quotes
"..."
false
--no-quotes
Do not replace quotes
--spacing
-s
Add CJK/English spacing via autocorrecttrue
--no-spacing
Do not add CJK/English spacing
--emphasis
-e
Fix CJK emphasis punctuation issuestrue
--no-emphasis
Do not fix CJK emphasis issues
--help
-h
Show help message
Examples:
bash
# Default: spacing + emphasis enabled, quotes disabled
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md

# Enable all features including quote replacement
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --quotes

# Only fix emphasis issues, skip spacing
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacing

# Disable all processing except frontmatter formatting
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacing --no-emphasis
Script performs (based on options):
  1. Fix CJK emphasis/bold punctuation issues (default: enabled)
  2. Add CJK/English mixed text spacing via autocorrect (default: enabled)
  3. Replace ASCII quotes
    "..."
    with fullwidth quotes
    "..."
    (default: disabled)
  4. Format frontmatter YAML (always enabled)

Step 8: Display Results

**Formatting complete**

File: posts/2026/01/09/example/final-formatted.md

Changes:
- Added title: [title content]
- Added X bold markers
- Added X lists
- Added X code blocks

Formatting Example

Before:
This is plain text. First point is efficiency improvement. Second point is cost reduction. Third point is experience optimization. Use npm install to install dependencies.
After:
markdown
---
title: Three Core Advantages
slug: three-core-advantages
summary: Discover the three key benefits that drive success in modern projects.
---

This is plain text.

**Main advantages:**
- Efficiency improvement
- Cost reduction
- Experience optimization

Use `npm install` to install dependencies.

Notes

  • Preserve original writing style and tone
  • Specify correct language for code blocks (e.g.,
    python
    ,
    javascript
    )
  • Maintain CJK/English spacing standards
  • Do not add content not present in original

Extension Support

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.