\n- Block: `$\\int_0^\\infty e^{-x^2} dx$`\n\n### Abbreviations\n```markdown\n*[HTML]: Hypertext Markup Language\nThe HTML specification is maintained by the W3C.\n```\n\n### Admonitions\n```markdown\n.. note::\n This is a note admonition.\n\n.. warning::\n This is a warning.\n```\n\n### Table of Contents\n```markdown\n.. toc::\n```\n\n## Dynamic Variables\n\nUse `{{ variable }}` in your content:\n\n### Blog Variables\n- `{{ blog_title }}` — Blog title\n- `{{ blog_description }}` — Blog meta description\n- `{{ blog_created_date }}` — Blog creation date\n- `{{ blog_last_modified }}` — Time since last modification\n- `{{ blog_last_posted }}` — Time since last post\n- `{{ blog_link }}` — Full blog URL\n- `{{ tags }}` — Rendered tag list with links\n\n### Post Variables (in post templates)\n- `{{ post_title }}` — Current post title\n- `{{ post_description }}` — Post meta description\n- `{{ post_published_date }}` — Publication date\n- `{{ post_last_modified }}` — Time since modification\n- `{{ post_link }}` — Full post URL\n- `{{ next_post }}` — Link to next post\n- `{{ previous_post }}` — Link to previous post\n\n### Post Listing\n```markdown\n{{ posts }}\n{{ posts limit:5 }}\n{{ posts tag:\"tech\" }}\n{{ posts tag:\"tech,ai\" limit:10 order:asc }}\n{{ posts description:True image:True content:True }}\n```\n\nParameters:\n- `tag:` — filter by tag(s), comma-separated\n- `limit:` — max number of posts\n- `order:` — `asc` or `desc` (default: desc)\n- `description:True` — show meta descriptions\n- `image:True` — show meta images\n- `content:True` — show full content (only on pages)\n\n### Email Signup (upgraded blogs only)\n```markdown\n{{ email-signup }}\n{{ email_signup }}\n```\n\n## Links\n\n### Standard Links\n```markdown\n[Link text](https://example.com)\n[Link with title](https://example.com \"Title text\")\n```\n\n### Open in New Tab\nPrefix URL with `tab:`:\n```markdown\n[External link](tab:https://example.com)\n```\n\n### Heading Anchors\nHeadings automatically get slugified IDs:\n```markdown\n## My Section Title\n```\nLinks to: `#my-section-title`\n\n## Typography\n\nAutomatic replacements:\n- `(c)` → ©\n- `(C)` → ©\n- `(r)` → ®\n- `(R)` → ®\n- `(tm)` → ™\n- `(TM)` → ™\n- `(p)` → ℗\n- `(P)` → ℗\n- `+-` → ±\n\n## Raw HTML\n\nHTML is supported directly in Markdown:\n\n```html\n\u003cdiv class=\"custom-class\" style=\"text-align: center;\">\n \u003cp>Centered content with custom styling\u003c/p>\n\u003c/div>\n```\n\n**Note:** `\u003cscript>`, `\u003cobject>`, `\u003cembed>`, `\u003cform>` are stripped for free accounts. Iframes are whitelisted (YouTube, Vimeo, Spotify, etc.).\n\n## Whitelisted Iframe Sources\n\n- youtube.com, youtube-nocookie.com\n- vimeo.com\n- soundcloud.com\n- spotify.com\n- codepen.io\n- google.com (docs, drive, maps)\n- bandcamp.com\n- apple.com (music embeds)\n- archive.org\n- And more...\n\n## Dashboard URLs\n\nReplace `\u003csubdomain>` with your blog subdomain:\n\n- **Blog list:** `https://bearblog.dev/dashboard/`\n- **Dashboard:** `https://bearblog.dev/\u003csubdomain>/dashboard/`\n- **Posts list:** `https://bearblog.dev/\u003csubdomain>/dashboard/posts/`\n- **New post:** `https://bearblog.dev/\u003csubdomain>/dashboard/posts/new/`\n- **Edit post:** `https://bearblog.dev/\u003csubdomain>/dashboard/posts/\u003cuid>/`\n- **Styles:** `https://bearblog.dev/\u003csubdomain>/dashboard/styles/`\n- **Navigation:** `https://bearblog.dev/\u003csubdomain>/dashboard/nav/`\n- **Analytics:** `https://bearblog.dev/\u003csubdomain>/dashboard/analytics/`\n- **Settings:** `https://bearblog.dev/\u003csubdomain>/dashboard/settings/`\n\n## Example: Complete Post\n\n**Header content:**\n```\ntitle: Getting Started with AI Assistants\nlink: ai-assistants-intro\npublished_date: 2026-01-05 15:00\nmeta_description: A beginner's guide to working with AI assistants\ntags: ai, tutorial, tech\nis_page: false\nlang: en\n```\n\n**Body content:**\n```markdown\nAI assistants are changing how we work. Here's what you need to know.\n\n## Why AI Assistants?\n\nThey help with:\n- [x] Writing and editing\n- [x] Research and analysis\n- [ ] Making coffee (not yet!)\n\n> \"The best tool is the one you actually use.\" — Someone wise\n\n## Getting Started\n\nCheck out [OpenAI](tab:https://openai.com) or [Anthropic](tab:https://anthropic.com) for popular options.\n\n---\n\n*What's your experience with AI? Let me know!*\n\n{{ previous_post }} {{ next_post }}\n```\n\n## Tips\n\n1. **Preview before publishing** — Use the preview button to check formatting\n2. **Use templates** — Set up a post template in dashboard settings for consistent headers\n3. **Schedule posts** — Set `published_date` in the future\n4. **Draft mode** — Don't click publish to keep as draft\n5. **Custom CSS** — Add `class_name` and style in your blog's CSS\n6. **SEO** — Always set `meta_description` and `meta_image`\n\n## Troubleshooting\n\n- **Post not showing?** Check `publish` status and `published_date`\n- **Tags not working?** Use comma separation, no quotes\n- **Styling issues?** Check `class_name` is slugified (lowercase, hyphens)\n- **Date format error?** Use `YYYY-MM-DD HH:MM`\n","licenseDocuments":[]}}
界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

bearblog

bearblog

【效率与协作】Create and manage blog posts on Bear Blog (bearblog.dev). Supports extended Markdown, custom attributes, and browser-based publishing.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: bearblog description: Create and manage blog posts on Bear Blog (bearblog.dev). Supports extended Markdown, custom attributes, and browser-based publishing. metadata: {"clawdbot":{"emoji":"🐻","homepage":"https://bearblog.dev","requires":{"config":["browser.enabled"]}}}

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/<subdomain>/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

AttributeDescriptionExample
titlePost title (required)title: My Post
linkCustom URL sluglink: my-custom-url
published_datePublication date/timepublished_date: 2026-01-05 14:30
tagsComma-separated tagstags: tech, ai, coding
make_discoverableShow in discovery feedmake_discoverable: true
is_pageStatic page vs blog postis_page: false
class_nameCustom CSS class (slugified)class_name: featured
meta_descriptionSEO meta descriptionmeta_description: A post about...
meta_imageOpen Graph image URLmeta_image: https://...
langLanguage codelang: fr
canonical_urlCanonical URL for SEOcanonical_url: https://...
aliasAlternative URL pathalias: 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://bearblog.dev/<subdomain>/dashboard/
  • Posts list: https://bearblog.dev/<subdomain>/dashboard/posts/
  • New post: https://bearblog.dev/<subdomain>/dashboard/posts/new/
  • Edit post: https://bearblog.dev/<subdomain>/dashboard/posts/<uid>/
  • Styles: https://bearblog.dev/<subdomain>/dashboard/styles/
  • Navigation: https://bearblog.dev/<subdomain>/dashboard/nav/
  • Analytics: https://bearblog.dev/<subdomain>/dashboard/analytics/
  • Settings: https://bearblog.dev/<subdomain>/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
我的收藏