Agent skill

Bangunai Blog Manager

by LeoYeAI in LeoYeAI/openclaw-master-skills

A skill your agent uses when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions.

MITAuto-check passedDocuments & Office

Install Bangunai Blog Manager

skills CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill bangunai-blog-manager -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LeoYeAI/openclaw-master-skills bangunai-blog-manager --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tulisai .claude/skills/bangunai-blog-manager && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bangunai-blog-manager
GitHub stars
2.2k
Token cost
~5.7k tokens
SKILL.md length
1,114 words
Files
5
Skills in repo
1,235
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions.

  • Works in 12 steps: Callouts (14 Types) → Mermaid Diagrams → LaTeX Math (KaTeX) → …
  • Managing BangunAI Blog content
  • SKILL.md covers 🌿 BangunAI Blog Fundamentals, 📝 Frontmatter Formats, 🧩 MDX Components Available and 🎨 Design System, plus 2 more sections
  • Calls git, bun and bash; reaches link-ke-artikel.com and youtube.com

What it does

Bangunai Blog Manager is an agent skill from LeoYeAI/openclaw-master-skills. Use when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions. Supports Obsidian-like features (callouts, mermaid, LaTeX, wikilinks, backlinks, graph view).

Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `EXAMPLES.md`, `INTEGRATION.md` and `README.md`).

It sits in Documents & Office, covering Markdown, LaTeX and Diagrams. It works with LaTeX, Obsidian and Mermaid. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.

When your agent uses it

  • Managing BangunAI Blog content
  • Automating blog workflows
  • Writing MDX articles with BangunAI conventions

Example prompts

  • “/bangunai-blog-manager”

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Callouts (14 Types)
  2. Mermaid Diagrams
  3. LaTeX Math (KaTeX)
  4. WikiLinks (Internal Links)
  5. Highlight
  6. YouTube Embed
  7. Code Blocks (Shiki Syntax Highlighting)
  8. GFM (GitHub Flavored Markdown)
  9. Backlinks
  10. Graph View
  11. Table of Contents (TOC)
  12. daily (Smart Daily Note)

What it can do on your machine

Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • bun
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • link-ke-artikel.com
    • youtube.com
    • nownownow.com

    Also links to:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bangunai Blog Manager loads about 5.7k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 1,114 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~5.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,114 words, ~5,713 tokens.

Download SKILL.mdSave it as .claude/skills/bangunai-blog-manager/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
bangunai-blog-manager
description
Use when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions. Supports Obsidian-like features (callouts, mermaid, LaTeX, wikilinks, backlinks, graph view).

BangunAI Blog Manager (Digital Garden + Content Workflow)

Homepage: React 18 + Vite + MDX + shadcn/ui
Blog Root: /home/hades/BangunAI-Blog
Content Root: /home/hades/BangunAI-Blog/src/content
Tech Stack: TypeScript, Tailwind CSS, Mermaid 11, KaTeX, Shiki

Skill ini menggabungkan:

  • workflow custom untuk blog content (daily, fetch style, universal writer, logging, smart read)
  • MDX authoring untuk React-based digital garden
  • Obsidian-like features (callouts, mermaid diagrams, LaTeX math, wikilinks, backlinks)
  • Auto-import system via import.meta.glob

🌿 BangunAI Blog Fundamentals

Blog ini adalah Digital Garden & Knowledge Base dengan fitur terinspirasi dari Obsidian.

Struktur Proyek
/home/hades/BangunAI-Blog/
├── src/
│   ├── content/
│   │   ├── writing/       # Blog posts (notes, essays)
│   │   ├── articles/      # Technical articles, tutorials
│   │   ├── read/          # Reading notes, link curation
│   │   ├── daily/         # Daily notes (tasks, logs)
│   │   ├── about.mdx      # About page (single file)
│   │   ├── now.mdx        # Now page (current activities)
│   │   └── index.ts       # Auto-import loader
│   ├── components/        # React components (40+ shadcn/ui)
│   │   ├── Callout.tsx    # 14 tipe callouts
│   │   ├── MermaidDiagram.tsx  # Mermaid renderer
│   │   ├── WikiLink.tsx   # Internal linking
│   │   ├── Backlinks.tsx  # Auto backlinks
│   │   ├── GraphView.tsx  # Knowledge graph
│   │   └── ui/            # shadcn/ui components
│   ├── pages/             # Route pages
│   ├── lib/               # Utilities
│   │   ├── date.ts        # Date formatting
│   │   └── utils.ts       # Class utilities
│   └── data/
│       ├── posts.ts       # Helper functions
│       └── types.ts       # TypeScript types
├── public/                # Static assets
├── skill/                 # Agent skills (this!)
└── package.json           # Dependencies
Content Types
TypeDescriptionLocationFeatures
WritingPersonal notes, essayssrc/content/writing/Filter by type (note/essay), category, tags
ArticlesTechnical tutorials, guidessrc/content/articles/Grouped by year
ReadCurated readings with notessrc/content/read/Source URL, snippet, tags
DailyDaily notes, tasks, logssrc/content/daily/Rollover tasks, timestamps
AboutAbout page (MDX)src/content/about.mdxSingle static page
NowCurrent activitiessrc/content/now.mdxUpdated regularly
Auto-Import System

File src/content/index.ts auto-detect semua .mdx files via import.meta.glob:

typescript
// NO MANUAL REGISTRATION NEEDED!
const writingModules = import.meta.glob("./writing/*.mdx", { eager: true });
const articleModules = import.meta.glob("./articles/*.mdx", { eager: true });
const readModules = import.meta.glob("./read/*.mdx", { eager: true });

Benefits: Create file → Auto-detected → Available immediately


📝 Frontmatter Formats

Format A: Standard Posts (writing, articles, daily)
yaml
---
title: "Judul Artikel Yang Menarik"
slug: judul-artikel-yang-menarik
summary: "Ringkasan singkat 1-2 kalimat yang compelling."
type: note                # note | essay | article
category: Tech            # Tech | Refleksi | Produktivitas | Linux | Coding | Life
tags: [react, typescript, tutorial]
date: "2026-02-11T14:30:00"
readingTime: 5
featured: false           # (optional) untuk featured posts
---

Required Fields:

  • title — Judul artikel (string)
  • slug — URL-friendly slug (kebab-case)
  • summary — Deskripsi singkat, compelling (1-2 kalimat)
  • type — Jenis konten:
    • note — Catatan pendek, quick takes
    • essay — Tulisan mendalam, eksploratif
    • article — Tutorial, panduan terstruktur
  • category — Kategori utama (pilih salah satu):
    • Tech — Teknologi, programming, tools
    • Refleksi — Personal reflection, thoughts
    • Produktivitas — Productivity, workflow
    • Linux — Linux, terminal, sysadmin
    • Coding — Coding practices, patterns
    • Life — Lifestyle, experiences
  • tags — Array tags (lowercase, kebab-case)
  • date — ISO timestamp dengan jam (YYYY-MM-DDTHH:mm:ss)
  • readingTime — Estimasi menit baca (~200 kata/menit)

Optional Fields:

  • featured — Boolean, untuk featured posts di homepage
Format B: Read Items (read/)
yaml
---
title: "Judul Artikel/Bacaan"
slug: judul-artikel-bacaan
snippet: "Quote atau snippet menarik dari artikel (1-2 kalimat)."
source: "nama-situs.com"
url: "https://link-ke-artikel.com"
tags: [programming, career]
date: "2026-02-11T18:00:00"
---

## Catatan Personal (Optional)

Komentar atau catatan tentang bacaan ini...

Required Fields:

  • title — Judul artikel (string)
  • slug — URL-friendly slug (kebab-case)
  • snippet — Quote/excerpt menarik dari artikel
  • source — Domain sumber (e.g., github.com, dev.to)
  • url — Link lengkap ke artikel asli
  • tags — Array tags (lowercase)
  • date — ISO timestamp

Body Content: Optional, untuk catatan personal

Format C: Special Pages (about, now)
yaml
---
title: "About"  # atau "Now"
---

Content langsung di sini...
Mendukung semua fitur MDX (callouts, highlight, mermaid, dll).

Minimal frontmatter: Hanya title


🧩 MDX Components Available

1. Callouts (14 Types)
mdx
<Callout type="info" title="Judul Callout">
Isi callout di sini.
</Callout>

Available types:

  • info — Informasi umum (biru)
  • tip — Tips & tricks (hijau)
  • warning — Peringatan (kuning)
  • danger — Danger/error (merah)
  • success — Success message (hijau cerah)
  • note — Catatan (abu-abu)
  • example — Contoh (ungu)
  • bug — Bug report (merah)
  • question — Pertanyaan (biru muda)
  • abstract — Abstract/summary (indigo)
  • important — Penting (orange)
  • caution — Hati-hati (kuning gelap)
  • quote — Kutipan (krem)
  • cite — Sitasi (krem gelap)

Obsidian Blockquote Syntax:

mdx
> [!info] Judul Callout
> Isi callout menggunakan sintaks Obsidian.
2. Mermaid Diagrams
mdx
```mermaid
graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Action]
    B -->|No| D[End]
```

Supported diagrams (Mermaid v11):

  • graph / flowchart — Flowchart
  • sequenceDiagram — Sequence diagram
  • pie — Pie chart
  • classDiagram — UML class diagram
  • stateDiagram-v2 — UML state diagram
  • erDiagram — Entity relationship diagram
  • gantt — Gantt chart
  • mindmap — Mind map
  • timeline — Timeline

Features:

  • Auto-render dengan tema terang/gelap
  • Unique ID per diagram (no conflicts)
  • Responsive container
3. LaTeX Math (KaTeX)
mdx
Inline: $E = mc^2$

Block:
$$
\int_0^\infty e^{-x} dx = 1
$$

Powered by KaTeX 0.16 — Fast math rendering

mdx
<WikiLink to="slug-artikel" label="Teks yang Ditampilkan" />

Features:

  • Link mati (slug not found) → strikethrough otomatis
  • Auto-deteksi dari semua posts
5. Highlight
mdx
<Highlight>teks yang di-highlight</Highlight>

Atau gunakan HTML tag:
<mark>teks yang di-highlight</mark>
6. YouTube Embed
mdx
<YouTube url="https://youtube.com/watch?v=VIDEO_ID" title="Judul Video" />

Features:

  • Responsive iframe
  • Auto-aspect ratio 16:9
7. Code Blocks (Shiki Syntax Highlighting)
mdx
```typescript
function hello(name: string): string {
  return `Hello, ${name}!`;
}
```

Features:

  • Powered by Shiki with github-dark-dimmed theme
  • Copy button included
  • Multi-language support (TypeScript, Python, Bash, dll)
8. GFM (GitHub Flavored Markdown)

Tables:

mdx
| Column 1 | Column 2 |
|----------|----------|
| Value A  | Value B  |

Task Lists:

mdx
- [x] Completed task
- [ ] Uncompleted task

Strikethrough:

mdx
~~deleted text~~

Auto-generated di setiap artikel detail. Menampilkan artikel lain yang me-link ke artikel ini.

10. Graph View

Interactive force-directed graph menampilkan koneksi antar konten.

11. Table of Contents (TOC)
  • Sticky di desktop (right sidebar)
  • Collapsible bottom bar di mobile
  • Active heading tracking
  • Progress bar

🎨 Design System

Color Tokens (HSL-based)

Dark Mode (Default):

  • --background — Navy gelap (#1A1A2E)
  • --foreground — Cream (#F5E6D3)
  • --primary — Gold/amber (aksen utama)
  • --accent — Warm gold (hover states)
  • --card — Navy lebih terang

Light Mode:

  • --background — Cream hangat
  • --foreground — Navy gelap
  • --primary — Amber gelap
  • --card — Cream lebih gelap

Usage:

tsx
// ✅ Gunakan semantic tokens
<div className="bg-background text-foreground">
  <button className="bg-primary text-primary-foreground">
    Klik
  </button>
</div>

// ❌ Jangan hardcode warna
<div className="bg-[#1A1A2E] text-[#F5E6D3]">
Font Stack
FontUsage
Space GroteskHeadings & navigation
Source Serif 4Body text artikel (serif)
InterUI elements & labels
JetBrains MonoCode blocks & inline code
Glass Morphism
tsx
<div className="glass glass-hover rounded-xl p-6">
  Konten dengan efek kaca transparan
</div>

🔧 Workflows

1) daily (Smart Daily Note)

Create daily note dengan auto-rollover unchecked tasks dari kemarin.

bash
BLOG_ROOT="/home/hades/BangunAI-Blog"
DAILY_DIR="$BLOG_ROOT/src/content/daily"
mkdir -p "$DAILY_DIR"

TODAY=$(date +%Y-%m-%d)
FILE="$DAILY_DIR/$TODAY.mdx"
LAST_FILE=$(find "$DAILY_DIR" -name "????-??-??.mdx" ! -name "$TODAY.mdx" 2>/dev/null | sort | tail -n 1)

if [ ! -f "$FILE" ]; then
  cat > "$FILE" <<EOF
---
title: "Daily Note: $TODAY"
date: "$TODAY"
type: daily
tags: [daily]
---

# Daily Note: $TODAY

EOF

  if [ -n "$LAST_FILE" ]; then
    PENDING=$(grep "\- \[ \]" "$LAST_FILE" || true)
    if [ -n "$PENDING" ]; then
      echo "## Rollover Tasks" >> "$FILE"
      echo "" >> "$FILE"
      echo "$PENDING" >> "$FILE"
      echo "" >> "$FILE"
    fi
  fi
  
  cat >> "$FILE" <<EOF
## Tasks Today

- [ ] 

## Log

EOF
  echo "✅ Created: $FILE"
else
  echo "📂 Exists: $FILE"
fi
2) fetch_last (Style Reference)

Fetch latest file untuk style reference. Supports all categories including special pages.

bash
# Input: CATEGORY (writing, articles, read, daily, about, now)
BLOG_ROOT="/home/hades/BangunAI-Blog"
case "$CATEGORY" in
  "daily") DIR="$BLOG_ROOT/src/content/daily" ;;
  "writing") DIR="$BLOG_ROOT/src/content/writing" ;;
  "articles") DIR="$BLOG_ROOT/src/content/articles" ;;
  "read") DIR="$BLOG_ROOT/src/content/read" ;;
  "about") 
    cat "$BLOG_ROOT/src/content/about.mdx"
    exit 0
    ;;
  "now") 
    cat "$BLOG_ROOT/src/content/now.mdx"
    exit 0
    ;;
  *) echo "❌ Unknown category"; exit 1 ;;
esac
LAST_FILE=$(ls -t "$DIR"/*.mdx 2>/dev/null | head -n 1)
if [ -f "$LAST_FILE" ]; then
  echo "📄 REFERENSI GAYA ($LAST_FILE):"
  head -n 50 "$LAST_FILE"
else
  echo "❌ Belum ada file di $CATEGORY"
fi
3) write (Universal Writer + BangunAI Style)

Write new content dengan frontmatter lengkap.

For Writing/Articles:

bash
CATEGORY="writing"  # atau "articles"
FILENAME="judul-artikel.mdx"
BLOG_ROOT="/home/hades/BangunAI-Blog"

cat > "$BLOG_ROOT/src/content/$CATEGORY/$FILENAME" <<'EOF'
---
title: "Judul Artikel Baru"
slug: judul-artikel-baru
summary: "Ringkasan singkat tentang artikel ini yang menarik perhatian pembaca."
type: note
category: Tech
tags: [react, typescript, tutorial]
date: "2026-02-12T15:00:00"
readingTime: 5
---

## Introduction

Paragraf pembuka yang compelling dan menarik perhatian.

<Callout type="tip" title="Pro Tip">
Gunakan callouts untuk highlight informasi penting!
</Callout>

## Section 1

### Subsection A

Content here dengan **bold** dan *italic*.

```typescript
// Example code dengan syntax highlighting
function example(): string {
  return "Hello World";
}

Mermaid Example

mermaid
graph LR
    A[Input] --> B[Process]
    B --> C[Output]

Math Example

Inline math: $x^2 + y^2 = z^2$

Block math: $$ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} $$

Check out <WikiLink to="other-article" label="this related article" />.

Conclusion

Kesimpulan yang solid dan actionable. EOF

echo "✅ Created: $BLOG_ROOT/src/content/$CATEGORY/$FILENAME"


**For Read Items:**
```bash
CATEGORY="read"
FILENAME="interesting-article.mdx"
BLOG_ROOT="/home/hades/BangunAI-Blog"

cat > "$BLOG_ROOT/src/content/$CATEGORY/$FILENAME" <<'EOF'
---
title: "Interesting Article Title"
slug: interesting-article
snippet: "A compelling quote or snippet from the article that captures its essence."
source: "website.com"
url: "https://website.com/article"
tags: [tech, programming, career]
date: "2026-02-12T15:00:00"
---

## Key Takeaways

- Point 1: Important insight
- Point 2: Actionable advice
- Point 3: Thought-provoking idea

## Personal Notes

My thoughts and commentary about this article...

<Callout type="note">
This reminds me of a similar concept in...
</Callout>
EOF

echo "✅ Created: $BLOG_ROOT/src/content/$CATEGORY/$FILENAME"
4) log (Append Log)

Append timestamped log to today's daily note.

bash
# Input: CONTENT="..."
TODAY=$(date +%Y-%m-%d)
FILE="/home/hades/BangunAI-Blog/src/content/daily/$TODAY.mdx"
if [ ! -f "$FILE" ]; then 
  echo "❌ Run 'daily' workflow first!"
  exit 1
fi
echo "- $(date +%H:%M) $CONTENT" >> "$FILE"
echo "✅ Logged to: $FILE"
5) read (Smart Read)

Smart search content by keyword.

bash
# Input: FILE="..."
find "/home/hades/BangunAI-Blog/src/content" -name "*$FILE*.mdx" | head -n 1 | xargs -r cat
Show full SKILL.md (464 more words)Show less
6) update_about (Update About Page)

Update about.mdx with MDX content.

bash
# Input: CONTENT="..."
FILE="/home/hades/BangunAI-Blog/src/content/about.mdx"
cat > "$FILE" <<EOF
---
title: "About"
---

$CONTENT
EOF
echo "✅ Updated: $FILE"
7) update_now (Update Now Page)

Update now.mdx with current activities.

bash
# Input: CONTENT="..."
FILE="/home/hades/BangunAI-Blog/src/content/now.mdx"
CURRENT_DATE=$(date +"%B %Y")
cat > "$FILE" <<EOF
---
title: "Now"
---

## Apa yang Sedang Saya Kerjakan

*Terakhir diperbarui: $CURRENT_DATE*

Halaman ini terinspirasi dari [nownownow.com](https://nownownow.com) — tempat saya mencatat apa yang sedang saya fokuskan saat ini.

---

$CONTENT

---

> *Halaman ini adalah snapshot dari kehidupan saya saat ini. Bukan resume, bukan portofolio — hanya update jujur tentang apa yang sedang saya kerjakan.*
EOF
echo "✅ Updated: $FILE"
8) verify_index (Verify Content)

Verify content auto-import statistics.

bash
BLOG_ROOT="/home/hades/BangunAI-Blog"
echo "📊 Content Statistics:"
echo ""
echo "Writing posts: $(ls -1 "$BLOG_ROOT/src/content/writing"/*.mdx 2>/dev/null | wc -l)"
echo "Articles: $(ls -1 "$BLOG_ROOT/src/content/articles"/*.mdx 2>/dev/null | wc -l)"
echo "Read items: $(ls -1 "$BLOG_ROOT/src/content/read"/*.mdx 2>/dev/null | wc -l)"
echo "Daily notes: $(ls -1 "$BLOG_ROOT/src/content/daily"/*.mdx 2>/dev/null | wc -l)"
echo ""
echo "Special files:"
echo "- about.mdx: $(test -f "$BLOG_ROOT/src/content/about.mdx" && echo "✅" || echo "❌")"
echo "- now.mdx: $(test -f "$BLOG_ROOT/src/content/now.mdx" && echo "✅" || echo "❌")"
echo "- index.ts: $(test -f "$BLOG_ROOT/src/content/index.ts" && echo "✅" || echo "❌")"

📋 Content Category Guidelines

CategoryPathUse CaseType OptionsExamples
writingsrc/content/writing/Personal notes, essaysnote, essayReflections, quick takes, deep thoughts
articlessrc/content/articles/Technical tutorials, guidesarticleHow-to guides, technical deep dives
readsrc/content/read/Reading notes, link curationN/A (special format)Curated articles, bookmarks
dailysrc/content/daily/Daily notes, tasks, logsdailyTask tracking, daily logs
aboutsrc/content/about.mdxAbout page (static)N/APersonal bio, site info
nowsrc/content/now.mdxCurrent activitiesN/AWhat I'm doing now
Category Values

Choose wisely untuk category field:

  • Tech — Teknologi, programming, tools, frameworks
  • Refleksi — Personal reflection, thoughts, philosophy
  • Produktivitas — Productivity tips, workflow, GTD
  • Linux — Linux, terminal, system administration
  • Coding — Coding practices, patterns, best practices
  • Life — Lifestyle, personal experiences, stories

🎯 Best Practices

1. Frontmatter Consistency

DO:

yaml
title: "Belajar React Hooks di 2026"
slug: belajar-react-hooks-2026
type: note
category: Tech
tags: [react, hooks, javascript]
date: "2026-02-12T15:30:00"

DON'T:

yaml
title: belajar-react-hooks    # Missing quotes
slug: Belajar React Hooks     # Not kebab-case
type: blog                     # Invalid type
category: technology           # Typo/wrong value
tags: React, Hooks             # Not array format
date: "2026-02-12"            # Missing time
2. File Naming

DO:

belajar-react-hooks-2026.mdx
setup-neovim-lua.mdx
refleksi-tahun-2025.mdx

DON'T:

Blog Post 1.mdx              # Spaces, not descriptive
temp.mdx                     # Non-descriptive
NEW_POST.mdx                 # Uppercase, underscore
3. Content Structure

Recommended structure:

mdx
---
frontmatter here
---

## Introduction (H2)
Brief intro, hook the reader.

<Callout type="info">
Context or prerequisite info.
</Callout>

## Main Section 1 (H2)

### Subsection A (H3)
Content...

### Subsection B (H3)
Content...

## Main Section 2 (H2)

### Examples (H3)
Code or examples...

## Conclusion (H2)
Summary and takeaways.
4. Using MDX Components

DO:

mdx
<Callout type="tip" title="Pro Tip">
Use semantic components for better UX.
</Callout>

<WikiLink to="related-article" label="Read more about this" />

DON'T:

mdx
<div style="background: yellow; padding: 10px;">
Hardcoded styling instead of using Callout
</div>

<a href="/artikel/related-article">Read more</a>
<!-- Should use WikiLink instead -->
5. Date & Time Format

ISO timestamp with time:

yaml
date: "2026-02-12T15:30:00"  # YYYY-MM-DDTHH:mm:ss

Displayed as:

  • Detail page: 11 Februari 2026, 14:30
  • Card list: 11 Feb · 14:30
6. Reading Time Estimation
bash
# Count words (exclude frontmatter)
WORD_COUNT=$(tail -n +$(grep -n "^---$" file.mdx | tail -1 | cut -d: -f1) file.mdx | wc -w)

# Calculate reading time (200 words/minute)
READING_TIME=$(( (WORD_COUNT + 199) / 200 ))

# Add to frontmatter
readingTime: $READING_TIME
7. Tags Best Practices
  • Use lowercase
  • Use kebab-case for multi-word tags
  • Keep tags consistent across posts
  • Prefer specific over generic tags

Good tags:

yaml
tags: [react-hooks, typescript, state-management]

Bad tags:

yaml
tags: [React Hooks, programming, stuff]

🚀 Development Workflow

Local Development
bash
# Start dev server
cd /home/hades/BangunAI-Blog
bun run dev
# Open http://localhost:8080
Create New Content
  1. Fetch style reference:

    bash
    CATEGORY="writing" bash fetch_last.sh
  2. Create new file:

    bash
    cat > src/content/writing/new-post.mdx <<'EOF'
    ---
    title: "New Post"
    slug: new-post
    summary: "Brief summary"
    type: note
    category: Tech
    tags: [tag1, tag2]
    date: "$(date -Iseconds)"
    readingTime: 5
    ---
    
    Content here...
    EOF
  3. Verify auto-import:

    bash
    # File otomatis terdeteksi via import.meta.glob
    # Check di browser: http://localhost:8080/writing
  4. Build & deploy:

    bash
    bun run build
    bun run preview
Git Workflow
bash
# Add new content
git add src/content/writing/new-post.mdx
git commit -m "Add: new blog post about X"

# Rename (preserve history)
git mv src/content/writing/old.mdx src/content/writing/new.mdx
git commit -m "Rename: old post to new name"

# Delete (tracked)
git rm src/content/writing/unwanted.mdx
git commit -m "Remove: unwanted post"

# Push
git push origin main

🔍 Troubleshooting

Issue: Content not showing

Check:

  1. Valid frontmatter? (all required fields present)
  2. Valid MDX syntax? (no unclosed tags)
  3. File in correct directory?
  4. Dev server restarted?
Issue: Mermaid not rendering

Check:

  1. Valid Mermaid syntax?
  2. Diagram type supported?
  3. Check browser console for errors

Reason: Target slug not found

Fix:

  1. Verify target slug exists
  2. Check spelling
  3. Ensure target file has valid frontmatter
Issue: LaTeX not rendering

Check:

  1. Valid LaTeX syntax?
  2. Escaped special characters?
  3. Using $ or $$ delimiters correctly?

📚 Quick Reference

Frontmatter Cheatsheet

Writing/Articles:

yaml
---
title: "Title"
slug: slug
summary: "Summary"
type: note|essay|article
category: Tech|Refleksi|Produktivitas|Linux|Coding|Life
tags: [tag1, tag2]
date: "YYYY-MM-DDTHH:mm:ss"
readingTime: number
---

Read:

yaml
---
title: "Title"
slug: slug
snippet: "Snippet"
source: "domain.com"
url: "https://..."
tags: [tag1, tag2]
date: "YYYY-MM-DDTHH:mm:ss"
---

Special Pages:

yaml
---
title: "About|Now"
---
MDX Components Cheatsheet
ComponentUsage
Callout<Callout type="info" title="...">...</Callout>
Mermaid```mermaid ... ```
LaTeX$...$ or $$...$$
WikiLink<WikiLink to="slug" label="..." />
Highlight<Highlight>...</Highlight>
YouTube<YouTube url="..." title="..." />
File Locations Cheatsheet
TypeLocation
Writingsrc/content/writing/*.mdx
Articlessrc/content/articles/*.mdx
Readsrc/content/read/*.mdx
Dailysrc/content/daily/*.mdx
Aboutsrc/content/about.mdx
Nowsrc/content/now.mdx
Indexsrc/content/index.ts

🎉 Summary

Skill ini fully integrated dengan BangunAI Blog:

  • ✅ 8 workflows ready to use
  • ✅ 3 frontmatter formats supported
  • ✅ Complete MDX components reference
  • ✅ Obsidian-like features documented
  • ✅ Design system guidelines
  • ✅ Best practices & troubleshooting
  • ✅ Auto-import via import.meta.glob
  • ✅ Git-based operations
  • ✅ Production-ready

Homepage: https://github.com/dwirx/BangunAI-Blog

© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in skills/tulisai of LeoYeAI/openclaw-master-skills.

  • SKILL.md
  • EXAMPLES.md
  • INTEGRATION.md
  • README.md
  • _meta.json

Open the folder on GitHubat commit e5199b5

Compare with similar skills

Bangunai Blog Manager next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bangunai Blog Manager compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bangunai Blog Manager this skillLeoYeAI/openclaw-master-skills2.2k—~5.7kAutomated safety check: PassMIT
MineruNebutra/MinerU-Skill123—~504Automated safety check: PassMIT
Z Md To PDFtjxj/z-skills548—~711Automated safety check: PassMIT
Lov Any2pdflovstudio/any2pdf211—~2.4kAutomated safety check: NotesMIT
MineruNebutra/MinerU-Skill123—~1.4kAutomated safety check: PassMIT
Markdown Report WritingNeuroAIHub/BrainPilot1.1k—~2.6kAutomated safety check: WarnAGPL-3.0

Similar skills

  • Mineru

    Nebutra/MinerU-Skill

    An AI-Native skill for parsing PDF / Office / image files into Markdown with MinerU — a fast, zero-config document parser for AI agents.

    123 GitHub stars~504 tokensUpdated 17 days ago
    Documents & OfficeAuto-check passed
  • Z Md To PDF

    tjxj/z-skills

    将 Markdown、Obsidian 笔记、技术文章、白皮书或长文排成中文 PDF。用户说“转成 PDF”“Markdown 转 PDF”“md 转 pdf”“排版成电子书”“生成指定风格 PDF”“一次生成多种风格”“学术风/书籍风/报告风”,或要编译 my-girlfriend-jingtian-latex 项目时,都应使用本…

    548 GitHub stars~711 tokensUpdated 19 days ago
    Documents & OfficeAuto-check passed
  • Lov Any2pdf

    lovstudio/any2pdf

    Convert Markdown documents to professionally typeset PDF files with reportlab.

    211 GitHub stars~2.4k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check: notes
  • Mineru

    Nebutra/MinerU-Skill

    An AI-Native skill for parsing PDF / Office / image files into clean Markdown with MinerU — a fast, zero-config document parser for AI agents.

    123 GitHub stars~1.4k tokensUpdated 17 days ago
    Documents & OfficeAuto-check passed
  • Markdown Report Writing

    NeuroAIHub/BrainPilot

    Guide AI agents to write beautifully formatted, well-illustrated Markdown reports with proper structure, diagrams, and compatibility across GitHub and Obsidian.

    1.1k GitHub stars~2.6k tokensUpdated 9 days ago
    Documents & OfficeAuto-check: warnings
  • Lecture To Md

    ysyecust/lecture-to-notes

    把课堂视频(本地或 B 站/YouTube)、文字稿、课件三者(任意组合)整理成一份详细的中文 Markdown 课堂笔记,输出按课程标题命名的 {titlename}.md(首行为 文档标题)+ 相对路径图片。Markdown 工作流,与上游 lecture-to-notes 的 LaTeX/PDF 输出并行存在;上游 skill 完全不动。触发词:markdown 笔记、md 笔记、视频转…

    273 GitHub stars~3.9k tokensUpdated 8 days ago
    Documents & OfficeAuto-check passed

More from LeoYeAI/openclaw-master-skills

All 1,200 skills in this repo
  • DevOps Pipeline Management

    LeoYeAI/openclaw-master-skills

    Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • Feishu Document Collaboration

    LeoYeAI/openclaw-master-skills

    Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.

    2.2k GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Files Memory System

    LeoYeAI/openclaw-master-skills

    Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.

    2.2k GitHub stars~3.8k tokensUpdated 2 mo ago
    Auto-check passed
  • GEO-Claw AI Visibility Agent

    LeoYeAI/openclaw-master-skills

    Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.

    2.2k GitHub stars~4.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Google Workspace CLI

    LeoYeAI/openclaw-master-skills

    Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.

    2.2k GitHub stars~2.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • HealthFit Health Advisors

    LeoYeAI/openclaw-master-skills

    Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Bangunai Blog Manager

What does Bangunai Blog Manager do?

A skill your agent uses when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions. Bangunai Blog Manager is an agent skill from LeoYeAI/openclaw-master-skills. Use when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions.

When should I use Bangunai Blog Manager?

Bangunai Blog Manager fits situations like: managing BangunAI Blog content; automating blog workflows; writing MDX articles with BangunAI conventions.

How do I install Bangunai Blog Manager in Claude Code?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill bangunai-blog-manager -a claude-code`. Or copy the skill folder (skills/tulisai in LeoYeAI/openclaw-master-skills) into .claude/skills/bangunai-blog-manager in your project. Claude Code loads it when a task matches its description.

How do I install Bangunai Blog Manager in Codex?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill bangunai-blog-manager -a codex`. Or copy the skill folder (skills/tulisai in LeoYeAI/openclaw-master-skills) into .agents/skills/bangunai-blog-manager in your project. Codex loads it when a task matches its description.

Can I use Bangunai Blog Manager in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill bangunai-blog-manager -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bangunai-blog-manager, .gemini/skills/bangunai-blog-manager, .github/skills/bangunai-blog-manager and .opencode/skills/bangunai-blog-manager in your project.

What does Bangunai Blog Manager need to run?

Going by SKILL.md and its folder, Bangunai Blog Manager needs the command-line tools its instructions call (git, bun and bash).

Does Bangunai Blog Manager access the network?

SKILL.md names 4 domains. In commands or code: link-ke-artikel.com, youtube.com and nownownow.com; the agent is likely to contact these when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is Bangunai Blog Manager safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bangunai Blog Manager use?

Bangunai Blog Manager is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bangunai Blog Manager use?

About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bangunai Blog Manager?

Skills that share tags, products or a category with Bangunai Blog Manager: Mineru (Nebutra/MinerU-Skill, 123 stars), Z Md To PDF (tjxj/z-skills, 548 stars), Lov Any2pdf (lovstudio/any2pdf, 211 stars) and Mineru (Nebutra/MinerU-Skill, 123 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bangunai Blog Manager?

LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.

Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.