Awesome-openclaw-skills bearblog

Create and manage blog posts on Bear Blog (bearblog.dev). Supports extended Markdown, custom attributes, and browser-based publishing.

install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bearblog" ~/.claude/skills/sundial-org-awesome-openclaw-skills-bearblog && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/bearblog" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-bearblog && rm -rf "$T"
manifest: skills/bearblog/SKILL.md
source content

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

AttributeDescriptionExample
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