bearblog

SKILL.md

Bear Blog Skill

Create, edit, and manage posts on Bear Blog — a minimal, fast blogging platform.

Authentication

Bear Blog requires browser-based authentication. Log in once via the browser tool, and cookies will persist.

browser action:navigate url:https://bearblog.dev/accounts/login/

Creating a Post

Step 1: Navigate to the post editor

browser action:navigate url:https://<subdomain>.bearblog.dev/dashboard/post/

Step 2: Fill the editor

Bear Blog uses a plain text header format — no JavaScript DOM manipulation needed!

The editor has two textareas:

  • header_content — metadata attributes (one per line)
  • body_content — the actual post content in Markdown

Header format:

title: Your Post Title
link: custom-slug
published_date: 2026-01-05 14:00
tags: tag1, tag2, tag3
make_discoverable: true
is_page: false
class_name: custom-css-class
meta_description: SEO description for the post
meta_image: https://example.com/image.jpg
lang: en
canonical_url: https://original-source.com/post
alias: alternative-url

Body format: Standard Markdown with extensions (see below).

The separator ___ (three underscores) is used in templates to separate header from body.

Step 3: Publish

Click the publish button or submit the form with publish: true.

Post Attributes Reference

Attribute Description Example
title Post title (required) title: My Post
link Custom URL slug link: my-custom-url
published_date Publication date/time published_date: 2026-01-05 14:30
tags Comma-separated tags tags: tech, ai, coding
make_discoverable Show in discovery feed make_discoverable: true
is_page Static page vs blog post is_page: false
class_name Custom CSS class (slugified) class_name: featured
meta_description SEO meta description meta_description: A post about...
meta_image Open Graph image URL meta_image: https://...
lang Language code lang: fr
canonical_url Canonical URL for SEO canonical_url: https://...
alias Alternative URL path alias: old-url

Extended Markdown

Bear Blog uses Mistune with plugins:

Text Formatting

  • ~~strikethrough~~strikethrough
  • ^superscript^ → superscript
  • ~subscript~ → subscript
  • ==highlighted== → highlighted (mark)
  • **bold** and *italic* — standard

Footnotes

Here's a sentence with a footnote.[^1]

[^1]: This is the footnote content.

Task Lists

- [x] Completed task
- [ ] Incomplete task

Tables

| Header 1 | Header 2 |
|----------|----------|
| Cell 1   | Cell 2   |

Code Blocks

```python
def hello():
    print("Hello, world!")
```

Syntax highlighting via Pygments (specify language after ```).

Math (LaTeX)

  • Inline: $E = mc^2$
  • Block: $$\int_0^\infty e^{-x^2} dx$$

Abbreviations

*[HTML]: Hypertext Markup Language
The HTML specification is maintained by the W3C.

Admonitions

.. note::
   This is a note admonition.

.. warning::
   This is a warning.

Table of Contents

.. toc::

Dynamic Variables

Use {{ variable }} in your content:

Blog Variables

  • {{ blog_title }} — Blog title
  • {{ blog_description }} — Blog meta description
  • {{ blog_created_date }} — Blog creation date
  • {{ blog_last_modified }} — Time since last modification
  • {{ blog_last_posted }} — Time since last post
  • {{ blog_link }} — Full blog URL
  • {{ tags }} — Rendered tag list with links

Post Variables (in post templates)

  • {{ post_title }} — Current post title
  • {{ post_description }} — Post meta description
  • {{ post_published_date }} — Publication date
  • {{ post_last_modified }} — Time since modification
  • {{ post_link }} — Full post URL
  • {{ next_post }} — Link to next post
  • {{ previous_post }} — Link to previous post

Post Listing

{{ posts }}
{{ posts limit:5 }}
{{ posts tag:"tech" }}
{{ posts tag:"tech,ai" limit:10 order:asc }}
{{ posts description:True image:True content:True }}

Parameters:

  • tag: — filter by tag(s), comma-separated
  • limit: — max number of posts
  • order:asc or desc (default: desc)
  • description:True — show meta descriptions
  • image:True — show meta images
  • content:True — show full content (only on pages)

Email Signup (upgraded blogs only)

{{ email-signup }}
{{ email_signup }}

Links

Standard Links

[Link text](https://example.com)
[Link with title](https://example.com "Title text")

Open in New Tab

Prefix URL with tab::

[External link](tab:https://example.com)

Heading Anchors

Headings automatically get slugified IDs:

## My Section Title

Links to: #my-section-title

Typography

Automatic replacements:

  • (c) → ©
  • (C) → ©
  • (r) → ®
  • (R) → ®
  • (tm) → ™
  • (TM) → ™
  • (p) → ℗
  • (P) → ℗
  • +- → ±

Raw HTML

HTML is supported directly in Markdown:

<div class="custom-class" style="text-align: center;">
  <p>Centered content with custom styling</p>
</div>

Note: <script>, <object>, <embed>, <form> are stripped for free accounts. Iframes are whitelisted (YouTube, Vimeo, Spotify, etc.).

Whitelisted Iframe Sources

  • youtube.com, youtube-nocookie.com
  • vimeo.com
  • soundcloud.com
  • spotify.com
  • codepen.io
  • google.com (docs, drive, maps)
  • bandcamp.com
  • apple.com (music embeds)
  • archive.org
  • And more...

Dashboard URLs

Replace <subdomain> with your blog subdomain:

  • Blog list: https://bearblog.dev/dashboard/
  • Dashboard: https://<subdomain>.bearblog.dev/dashboard/
  • New post: https://<subdomain>.bearblog.dev/dashboard/post/
  • Edit post: https://<subdomain>.bearblog.dev/dashboard/post/<uid>/
  • Styles: https://<subdomain>.bearblog.dev/dashboard/styles/
  • Navigation: https://<subdomain>.bearblog.dev/dashboard/nav/
  • Analytics: https://<subdomain>.bearblog.dev/dashboard/analytics/
  • Settings: https://<subdomain>.bearblog.dev/dashboard/settings/

Example: Complete Post

Header content:

title: Getting Started with AI Assistants
link: ai-assistants-intro
published_date: 2026-01-05 15:00
tags: ai, tutorial, tech
make_discoverable: true
is_page: false
meta_description: A beginner's guide to working with AI assistants
lang: en

Body content:

AI assistants are changing how we work. Here's what you need to know.

## Why AI Assistants?

They help with:
- [x] Writing and editing
- [x] Research and analysis
- [ ] Making coffee (not yet!)

> "The best tool is the one you actually use." — Someone wise

## Getting Started

Check out [OpenAI](tab:https://openai.com) or [Anthropic](tab:https://anthropic.com) for popular options.

---

*What's your experience with AI? Let me know!*

{{ previous_post }} {{ next_post }}

Tips

  1. Preview before publishing — Use the preview button to check formatting
  2. Use templates — Set up a post template in dashboard settings for consistent headers
  3. Schedule posts — Set published_date in the future
  4. Draft mode — Don't click publish to keep as draft
  5. Custom CSS — Add class_name and style in your blog's CSS
  6. SEO — Always set meta_description and meta_image

Troubleshooting

  • Post not showing? Check publish status and published_date
  • Tags not working? Use comma separation, no quotes
  • Styling issues? Check class_name is slugified (lowercase, hyphens)
  • Date format error? Use YYYY-MM-DD HH:MM
Weekly Installs
4
Repository
clawdbot/skills
Installed on
opencode3
windsurf2
clawdbot2
trae2
codex2
claude-code2