@@ -7,10 +7,47 @@ GitHub blob URL を、シンタックスハイライト付きコードビュー
77` <script> ` タグで読み込むと、ページ内の GitHub blob URL を持つ ` <a> ` タグを自動的に変換します。
88
99``` html
10- <script src =" dist/git-code-embed.min.js" ></script >
10+ <script src =" https://cdn.jsdelivr.net/gh/hirano00o/git-code-embed@v0/ dist/git-code-embed.min.js" ></script >
1111<a href =" https://github.com/owner/repo/blob/main/src/index.ts#L1-L10" ></a >
1212```
1313
14+ 行範囲(` #L1-L10 ` )を省略するとファイル全体を表示します。
15+
16+ ## 変換対象の条件
17+
18+ ** 前後に他のコンテンツがない「単独」の ` <a> ` タグのみ** を変換します。
19+ 文中に埋め込まれたリンクや、同じ行に複数並んだリンクは変換されません。
20+
21+ 隣接ノードの判定ルール:
22+
23+ | 隣接ノード | 扱い |
24+ | ---| ---|
25+ | なし(親要素の端) | 単独とみなす ✅ |
26+ | 空白・改行のみのテキスト | 単独とみなす ✅ |
27+ | ` <br> ` | 単独とみなす ✅ |
28+ | ` <p> ` , ` <h1> ` 〜` <h6> ` , ` <div> ` 等のブロック要素 | 単独とみなす ✅ |
29+ | 文字を含むテキスト | 文中リンクとみなし変換しない ❌ |
30+ | 別の ` <a> ` 等のインライン要素 | 複数リンクとみなし変換しない ❌ |
31+
32+ ``` html
33+ <!-- 変換される -->
34+ <p ><a href =" https://github.com/owner/repo/blob/main/src/index.ts" ></a ></p >
35+
36+ <!-- 変換される(ブロック要素に挟まれた単独リンク) -->
37+ <h2 >実装例</h2 >
38+ <a href =" https://github.com/owner/repo/blob/main/src/index.ts" ></a >
39+ <h2 >次のセクション</h2 >
40+
41+ <!-- 変換されない(文中リンク) -->
42+ <p >詳細は<a href =" https://github.com/owner/repo/blob/main/src/index.ts" >こちら</a >を参照。</p >
43+
44+ <!-- 変換されない(複数リンクが並んでいる) -->
45+ <p >
46+ <a href =" https://github.com/owner/repo/blob/main/a.ts" ></a >
47+ <a href =" https://github.com/owner/repo/blob/main/b.ts" ></a >
48+ </p >
49+ ```
50+
1451## はてなブログでの使い方
1552
1653### 1. はてなブログにスクリプトを読み込む
@@ -19,21 +56,44 @@ GitHub blob URL を、シンタックスハイライト付きコードビュー
1956以下を貼り付けて保存します。これによりブログ全ページに適用されます。
2057
2158``` html
22- <script src =" https://cdn.jsdelivr.net/gh/hirano00o/git-code-embed@v0/dist/git-code-embed.min.js" defer / >
59+ <script src =" https://cdn.jsdelivr.net/gh/hirano00o/git-code-embed@v0/dist/git-code-embed.min.js" defer ></ script >
2360```
2461
2562### 2. 記事に GitHub blob URL を貼る
2663
27- 記事の編集画面(見たままモードやMarkdownモード)でリンクを挿入するだけで動作します。
28- スクリプトがページ読み込み時に全リンクを自動スキャンして変換します。
64+ ** 単独の行に URL を貼ることが必要です。** 前後に文字が続く形で挿入すると変換されません。
2965
30- Pro プランの場合は HTML 編集モードで直接 ` < a > ` タグを記述することもできます。
66+ #### 見たままモード・Markdownモード
3167
32- ` ` ` html
33- < a href= " https://github.com/owner/repo/blob/main/src/index.ts#L1-L10" >< / a>
68+ リンクを単独の段落として挿入します。Markdown の場合は前後に空行を入れます。
69+
70+ ``` markdown
71+ コードを確認してください。
72+
73+ https://github.com/owner/repo/blob/main/src/index.ts#L1-L10
74+
75+ 上記がエントリーポイントです。
3476```
3577
36- 行範囲(` #L1 - L10 ` )を省略するとファイル全体を表示します。
78+ > ** 注意:** はてなブログの見たままモードでは、URL を貼り付けると自動的にリンクカードに変換される場合があります。変換された場合は ` <a> ` タグが単独行に配置されるため、git-code-embed も正しく動作します。
79+
80+ #### HTML編集モード(Pro プランまたは HTML モード)
81+
82+ ` <a> ` タグを ` <p> ` タグで囲み、単独で配置します。
83+
84+ ``` html
85+ <!-- 正しい書き方: <p> で囲んで単独行に置く -->
86+ <p ><a href =" https://github.com/owner/repo/blob/main/src/index.ts#L1-L10" ></a ></p >
87+
88+ <!-- 動作しない: 文中に埋め込む -->
89+ <p >詳細は<a href =" https://github.com/owner/repo/blob/main/src/index.ts" >こちら</a >を参照。</p >
90+
91+ <!-- 動作しない: 複数リンクを並べる -->
92+ <p >
93+ <a href =" https://github.com/owner/repo/blob/main/a.ts" ></a >
94+ <a href =" https://github.com/owner/repo/blob/main/b.ts" ></a >
95+ </p >
96+ ```
3797
3898## 既知の制限
3999
0 commit comments