Native Shell
Native Shell은 모든 플랫폼의 앱 안에서 만들어지는 AI UI입니다
마크다운을 Zenn 형식의 HTML로 변환
Convert markdown to html in Zenn format
개발 도구TypeScript · SCSSGitHub @zenn-dev직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗このリポジトリは、主に Zenn の Markdown に関するパッケージをまとめて管理しています。 これらのパッケージを利用することで、Zenn CLI や Zenn の VSCode 拡張 のような周辺システムを作ることができます。
[!WARNING] このプロジェクトは厳密なセマンティックバージョニングに従っていません。現状、破壊的な変更を含むバージョンアップはマイナーバージョンアップで対応しています。変更内容はリリースページをご覧ください。
| パッケージ名 | 説明 |
|---|---|
| zenn-cli | ローカルの記事・本を表示するための CLI |
| zenn-content-css | Markdown のプレビュー時のスタイル |
| zenn-embed-elements | ブラウザ上で動作してほしい埋め込み要素( Web Components で実装) |
| zenn-markdown-html | Markdown を HTML に変換する |
| zenn-model | 記事や本のデータを扱う |
Zenn と同じ Markdown を使用するには複数のパッケージを組み合わせる必要があります。
zenn-markdown-html により Markdown を HTML に変換するimport markdownHtml from 'zenn-markdown-html';
以下のように Markdown を HTML に変換します。この処理は、Node.js でのみ実行できます。ブラウザで実行するとエラーになることにご注意ください。
const html = markdownHtml(markdown);
取得した HTML を埋め込み親要素のクラス名にはzncという文字列を指定する必要があります。これは後述の CSS を適用するために必要です。
// Reactの場合
<div
// "znc"というクラス名を指定する
className="znc"
// htmlを渡す
dangerouslySetInnerHTML={{
__html: html,
}}
/>
import 'zenn-content-css';
以下のスクリプトを読み込むことで、Tweet や Mermaid などの埋め込み記法が使用できるようになります。
<script src="https://embed.zenn.studio/js/listen-embed-event.js"></script>
このスクリプトは<head>タグ内で読み込みます。また、defer 属性や async 属性を指定すると SPA 等でのページ遷移時に正しく埋め込みが行われない可能性があることにご注意ください。
zenn-embed-elementsを読み込むzenn-embed-elementsは SSR に対応していないため、クライアント側で読み込む必要があります。
// React で使う場合の例
import 'zenn-content-css';
export default function App(props) {
useEffect(() => {
import('zenn-embed-elements');
}, []);
return (
<div
className="znc"
dangerouslySetInnerHTML={{
__html: props.html, // markdownから変換されたHTMLを渡す
}}
/>
);
}
zenn-cli スキルには、Zenn CLI による Scrap 操作、セットアップ、環境変数、安全確認の手順をまとめています。利用するプロジェクトのディレクトリで、次のいずれかの方法で取り込めます。Zenn CLI 本体のセットアップはスキル内の案内に従ってください。
npx skills add zenn-dev/zenn-editor --skill zenn-cli
対話形式で取り込み先の AI エージェントを選択します。詳細は Skills のドキュメントを参照してください。
npx rulesync fetch zenn-dev/zenn-editor --skills zenn-cli
npx rulesync generate --targets claudecode --features skills
スキルを .rulesync/skills/zenn-cli/ に取得し、AI エージェント向けの配置を生成します。上記は Claude Code 向けの例です。--targets は利用するツールに合わせて指定してください。既存の rulesync.jsonc に対象ツールを設定済みの場合は、npx rulesync generate --features skills でその設定を使えます。詳細は Rulesync のドキュメントを参照してください。
https://zenn-dev.github.io/zenn-docs-for-developers/