← 返回 Skills 市场
azade-c

Bearblog

作者 Azade 🐐 · GitHub ↗ · v1.0.1
cross-platform ⚠ suspicious
2390
总下载
0
收藏
1
当前安装
2
版本数
在 OpenClaw 中安装
/install bearblog
功能描述
Create and manage blog posts on Bear Blog (bearblog.dev). Supports extended Markdown, custom attributes, and browser-based publishing.
使用说明 (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://bearblog.dev/\x3Csubdomain>/dashboard/posts/new/

Step 2: Fill the editor

Bear Blog uses a plain text header format.

The editor fields are:

  • div#header_content (contenteditable): attributes (one per line)
  • textarea#body_content: Markdown body

Verified: use fill/type on those two fields, then click Publish (or Save as draft). No evaluate needed.

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:

\x3Cdiv class="custom-class" style="text-align: center;">
  \x3Cp>Centered content with custom styling\x3C/p>
\x3C/div>

Note: \x3Cscript>, \x3Cobject>, \x3Cembed>, \x3Cform> 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 \x3Csubdomain> with your blog subdomain:

  • Blog list: https://bearblog.dev/dashboard/
  • Dashboard: https://bearblog.dev/\x3Csubdomain>/dashboard/
  • Posts list: https://bearblog.dev/\x3Csubdomain>/dashboard/posts/
  • New post: https://bearblog.dev/\x3Csubdomain>/dashboard/posts/new/
  • Edit post: https://bearblog.dev/\x3Csubdomain>/dashboard/posts/\x3Cuid>/
  • Styles: https://bearblog.dev/\x3Csubdomain>/dashboard/styles/
  • Navigation: https://bearblog.dev/\x3Csubdomain>/dashboard/nav/
  • Analytics: https://bearblog.dev/\x3Csubdomain>/dashboard/analytics/
  • Settings: https://bearblog.dev/\x3Csubdomain>/dashboard/settings/

Example: Complete Post

Header content:

title: Getting Started with AI Assistants
link: ai-assistants-intro
published_date: 2026-01-05 15:00
meta_description: A beginner's guide to working with AI assistants
tags: ai, tutorial, tech
is_page: false
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
安全使用建议
This skill automates actions using your browser session — it can read and act as whatever account is logged in. Before enabling it: (1) confirm you want the agent to use your logged-in Bear Blog session/cookies, (2) review and test on a disposable or draft blog account if possible, and (3) be mindful that 'evaluate' steps execute arbitrary JavaScript in the page context (required for some actions like delete), so only use the skill with sites/accounts you trust. No external credentials or installs are requested by the skill.
功能分析
Type: OpenClaw Skill Name: bearblog Version: 1.0.1 The skill is designed for browser automation to manage blog posts on bearblog.dev, which inherently involves high-risk capabilities like browser interaction. While the primary `SKILL.md` emphasizes safer `fill`/`type`/`click` actions, the `examples/browser-api-reference.md` demonstrates the use of `evaluate` for actions such as reading page content, listing posts, and deleting posts (by overriding `window.confirm`). Although these `evaluate` calls are plausibly needed for the stated purpose of managing a blog, they represent a powerful capability allowing arbitrary JavaScript execution within the browser context, which elevates the risk beyond benign, even without clear evidence of intentional malicious activity like data exfiltration or persistence in the provided content.
能力评估
Purpose & Capability
Name/description (Bear Blog post management) matches the declared requirement (browser.enabled) and the SKILL.md instructions. No unrelated environment variables, binaries, or installs are requested — the browser-driven automation is appropriate for this task.
Instruction Scope
Instructions are focused on navigating bearblog.dev, filling the header/content fields, and publishing. The examples sometimes use 'evaluate' to run JS in the page (e.g., reading header/body, overriding window.confirm, clicking buttons). Running JS in the authenticated browser session is necessary for certain actions (delete, read DOM), but it is sensitive because it runs arbitrary code in the context of the logged-in session and can read or act as that session. The instructions do not direct reading local files, environment variables, or transmitting unrelated data to external endpoints.
Install Mechanism
This is an instruction-only skill with no install spec and no code files — minimal risk from installation (nothing is written to disk).
Credentials
The skill requests only browser.enabled (a Clawdbot/browser tool config) and expects an authenticated browser session (cookies). It does not request API keys, tokens, or unrelated credentials; access to session cookies is inherent to operating the blog and is proportionate to the purpose.
Persistence & Privilege
always is false and the skill is user-invocable. It does not request permanent platform presence or modification of other skills or system settings.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install bearblog
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /bearblog 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
- Updated dashboard and post creation URLs to match the latest Bear Blog admin interface. - Clarified form field selectors for post creation (`div#header_content` and `textarea#body_content`). - Revised browser automation instructions: use `fill`/`type` for input, no longer rely on `evaluate`. - Adjusted example URLs and workflow details to reflect current Bear Blog layout. - Added/updated example headers and clarified differences in blog and post management navigation.
v1.0.0
Initial release - publish posts on Bear Blog via browser automation
元数据
Slug bearblog
版本 1.0.1
许可证
累计安装 1
当前安装数 1
历史版本数 2
常见问题

Bearblog 是什么?

Create and manage blog posts on Bear Blog (bearblog.dev). Supports extended Markdown, custom attributes, and browser-based publishing. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 2390 次。

如何安装 Bearblog?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install bearblog」即可一键安装,无需额外配置。

Bearblog 是免费的吗?

是的,Bearblog 完全免费(开源免费),可自由下载、安装和使用。

Bearblog 支持哪些平台?

Bearblog 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Bearblog?

由 Azade 🐐(@azade-c)开发并维护,当前版本 v1.0.1。

💬 留言讨论