Skip to content

Commit f2d8bfe

Browse files
authored
Merge pull request #61 from pxgrid/fix/code-renderer-marked-v17-token-api
fix: marked v17 でコードレンダラーがトークンオブジェクトを受け取るよう修正
2 parents 73f0d5c + 8a65488 commit f2d8bfe

2 files changed

Lines changed: 15 additions & 9 deletions

File tree

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ build/Release
2525
# Dependency directory
2626
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
2727
node_modules
28+
29+
# npm pack
30+
*.tgz
31+
32+
# Claude Code
33+
.claude/

lib/renderer/md/code.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,30 +31,30 @@ const renderLivecodeSection = (title, codeHtml) => `
3131
* ```html#たいとる 言語指定とタイトル指定 ```
3232
* みたいにすると、拡張したやつでレンダリングして返す
3333
*
34-
* @param {string} code
35-
* コード文字列
36-
* @param {string} lang
37-
* 言語指定文字列(`lang#タイトル` の形式を取る場合もある)
38-
* @param {boolean} escaped
34+
* @param {object} token
35+
* marked v17 のトークンオブジェクト({type, raw, lang, text})
36+
* lang は `lang#タイトル` の形式を取る場合もある
3937
* @return {string}
4038
* HTML文字列
4139
*
4240
*/
43-
export default function(code, lang, escaped) {
41+
export default function(token) {
42+
const { lang } = token;
43+
4444
// そもそも言語指定ないやつ
4545
if (!lang) {
46-
return origCodeRender.call(this, code, lang, escaped);
46+
return origCodeRender.call(this, token);
4747
}
4848

4949
const langArr = lang.split('#').map((t) => t.trim());
5050
// 言語の指定はあったが、タイトルがない = 今まで通り
5151
if (langArr.length === 1 || langArr[1].length === 0) {
52-
return origCodeRender.call(this, code, langArr[0], escaped);
52+
return origCodeRender.call(this, { ...token, lang: langArr[0] });
5353
}
5454

5555
// 言語の指定もタイトル指定もちゃんとあるやつ
5656
return renderLivecodeSection(
5757
langArr[1], // タイトル
58-
origCodeRender.call(this, code, langArr[0], escaped) // コード本体
58+
origCodeRender.call(this, { ...token, lang: langArr[0] }) // コード本体
5959
);
6060
}

0 commit comments

Comments
 (0)