文档

md-web

试用

把 Markdown 文件上传到你自己的 S3 兼容存储桶,立即获得一个可分享的网页链接。

它能做什么

通过 Node.js 把 .md 文件上传后,自带的 Docsify 服务会把它渲染成公开网页并返回访问链接。文件存放在用户自己的 S3 兼容存储桶的 md-web/ 路径下,可选的过期策略(默认 30 天)只清理本技能上传的内容。Docsify 的资源全部随技能本地打包,运行时不需要任何外部 CDN。返回的链接是公开可访问的,因此只能在用户明确要求时使用,不要用来上传密钥、凭证或个人隐私信息。

什么时候用它

  • 把长篇 Markdown 报告预览为网页
  • 通过公开链接把文档分享给别人
  • 把项目说明或接口文档发布到存储桶
  • 把笔记整理成可浏览页面,避免在对话里贴大段文本

技能文档

MD Web - Markdown to Web Page

Upload raw .md files to an S3-compatible storage bucket, where a pre-deployed Docsify server automatically renders them as web pages. This avoids sending long text in the conversation.

When to use this skill

Uploaded content is publicly accessible. Only use this skill when the user explicitly requests it:

  • User wants to show or preview content as a web page in a browser
  • User wants to generate, export, or publish content as a web page
  • User wants a shareable link to content
  • User wants output delivered as a web page rather than as long text in chat
  • User wants to compile or organize content and present it as a web page
  • User invokes this skill by name (e.g., /md-web)

How to use this skill

Step 1: Check configuration

Check if ~/.md-web/config.json exists (cross-platform: use the user's home directory). If it does NOT exist or has empty fields, follow the Configuration section below first.

Step 2: Prepare the markdown file

Either use an existing .md file, or write the content to a temporary file. Choose the temp path based on the current platform (e.g., /tmp/ on Linux/macOS, system temp dir on Windows). Use whichever path works in the current shell environment.

Step 3: Upload via upload.js

node {SKILL_DIR}/upload.js  
  • {SKILL_DIR}: the base directory of this skill (shown at the top when skill is loaded)
  • ``: a descriptive lowercase name with hyphens (e.g., api-docs.md, project-guide.md). A timestamp is prepended automatically to avoid filename collisions.
  • On first run, the script auto-detects and deploys Docsify server files. No manual setup needed.

Step 4: Return the result

  • On success: the script prints the URL. Reply with only the filename and clickable link. Do NOT paste the markdown content into the chat.
  • On failure (non-zero exit code): report the error to the user, then fall back to sending the markdown content as text directly in the chat.

Example success output:

api-docs - https://example.r2.dev/index.html#/md-web/20260305-091500-api-docs

Configuration

This only needs to happen once. On subsequent runs, config.json already exists.

  1. Tell the user this skill needs an S3-compatible storage bucket with public access. Point them to {SKILL_DIR}/README.md for detailed setup instructions (Cloudflare R2 / AWS S3 / other S3-compatible services).
  2. Ask the user to provide these 5 required fields:
    • access_key: API access key ID
    • secret_key: API secret access key
    • endpoint: S3 endpoint hostname, without https:// (e.g., ACCOUNT_ID.r2.cloudflarestorage.com)
    • bucket: bucket name
    • public_url: public access URL. If the user has a custom domain bound to the bucket, use that (e.g., https://docs.example.com); otherwise use the default R2.dev URL (e.g., https://pub-XXXX.r2.dev). Recommend custom domain for production use — R2.dev URLs have rate limits.
  3. Ask about optional settings:
    • region: S3 region. Use auto for Cloudflare R2, or the actual region for AWS S3 (e.g., us-east-1). Default is auto.
    • expire_days: how many days before uploaded markdown files are automatically deleted from the bucket. Default is 30. Set to 0 to keep files forever. The script sets an S3 lifecycle rule scoped to the md-web/ key prefix, so only this skill's own uploads are affected — Docsify server files and any other objects in the bucket are never touched. Note: this requires the API token to have Admin Read & Write permission (not just Object Read & Write). If the token lacks permission, the script will warn but still upload normally — the user can set the lifecycle rule manually in the Cloudflare Dashboard instead.
  4. Write the config to ~/.md-web/config.json (create the ~/.md-web/ directory if it doesn't exist). Use the user's home directory ($HOME on Unix, %USERPROFILE% on Windows):
{
  "access_key": "...",
  "secret_key": "...",
  "endpoint": "...",
  "bucket": "...",
  "region": "auto",
  "public_url": "...",
  "expire_days": 30
}
  1. Then proceed with the upload.

Important notes

  • Do NOT generate HTML. Just upload the raw .md file — Docsify handles rendering.
  • Do NOT send markdown content to the chat unless upload fails.
  • upload.js uses only Node.js built-in modules (zero dependencies).
  • All Docsify assets (JS/CSS) are bundled locally — no external CDN dependency at runtime.

External endpoints

This skill connects only to the S3 endpoint configured by the user in config.json. No data is sent to the skill author or any third-party service.

EndpointPurposeData sent
User's S3 endpoint (config.json → endpoint)Upload .md files and Docsify server assetsFile content, S3 auth headers

Security & privacy

  • Anything you upload becomes publicly accessible at the returned URL — never upload secrets, credentials, PII, or other sensitive content.
  • Credentials (access_key, secret_key) are stored in plaintext in ~/.md-web/config.json (outside the skill directory, safe from upgrades) and only sent to the user's own S3 endpoint for authentication. Protect this file — don't commit it or share it.
  • Use a dedicated bucket. Uploads live under the md-web/ key prefix and the auto-expiry rule is scoped to it, but expire_days: 0 clears the bucket's lifecycle config entirely — a dedicated bucket guarantees the skill never affects unrelated objects or lifecycle rules you set yourself.
  • No telemetry, analytics, or data collection by the skill itself.
  • upload.js uses only Node.js built-in modules — no third-party dependencies.

By using this skill, markdown content is uploaded to your own S3-compatible storage bucket and made publicly accessible. No data is sent to the skill author or any third-party service. Only install if you trust the storage provider you configure.

常见问题

上传的内容存放在哪里?
文件会保存到 ~/.md-web/config.json 中配置的 S3 兼容存储桶的 md-web/ 路径下,只访问该端点,不会把数据发送给技能作者或任何第三方。
渲染出来的网页是私有的吗?
不是。返回的链接是公开可访问的,因此不应上传凭证、密钥或个人隐私信息,文档建议为它单独准备一个存储桶。
运行时依赖哪些组件?
upload.js 只使用 Node.js 内置模块,Docsify 的 JS 和 CSS 也全部随技能本地打包,运行时不需要任何外部 CDN。

相关技能

Publishes Markdown to a public URL and returns the link. Use when the user asks to share, publish, host, or get a link for a page — or when you have produced a long page that is better delivered as a link than pasted inline. No authentication required. Pages are public and cannot be edited after publishing, so do not publish secrets or private data.

通过 md2wechat CLI 把 Markdown 转为微信公众号 HTML、封面、信息图和图文帖。

65 次安装4 星标

把 Markdown 转换为带样式的 HTML、PDF、DOCX、图片和可分享的网页。

27 次安装

Convert Markdown articles into WeChat Official Account friendly inline-style HTML with 12 visual themes, rich-copy preview, macOS rich clipboard support, con...

Convert a Markdown file into a mobile-friendly, local HTML page that opens in any phone browser — markdown to html, chat export reader, WeChat/Telegram/Slack-friendly view. Runs 100% locally with no API key, no account, no upload. A public web URL is produced only when the user explicitly asks for it AND confirms, using a trusted deploy tool. This skill does not generate images or screenshots. Respond in the user's current language.