-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement: add / fix turndown rules, improve CLI #43
Conversation
- `-b, --handbook` <handbook> Specify handbook name. (Default "handbook") | ||
- `-s, --sub-domain` <sub-domain> Specify subdomain name. e.g. "developer" for developer.w.org, "w.org" for w.org (Default "make") | ||
- `-o, --output-dir` <output-dir> Specify the directory to save files (default `en/`) | ||
- `-r, --regenerate` <regenerate> If this option is supplied, the directory you specified as output directory will once deleted, and it will regenerate all the files in the directory | ||
|
||
### Example |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いくつかのハンドブックのエンドポイントが変わった?せいか、Exampleのコマンドでは取得出来ないものがあったため、修正に加え、コマンド例も追加しました。
cli.js
Outdated
.option( | ||
'-t, --team <team>', | ||
'Specify team name' | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
現状のテーマハンドブックやプラグインは、team
を未指定にしないと正しいURLが生成出来ないのですが、''
と空文字を指定してもCLIでエラーになったため、任意オプションに変更いたしました。
cli.js
Outdated
const turndown = require('turndown') | ||
const turndownService = new turndown({ | ||
const TurndownService = require('turndown') | ||
const {tables} = require('turndown-plugin-gfm') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
turndownコアにはtableタグをパースする機能はないため、こちらのコメントにある通り、別のライブラリを導入しました。
turndownService.use(tables); | ||
|
||
// Remove Glossary | ||
turndownService.addRule('glossary', { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
glossasy の除去を、文字列置換ではなく turndown の addRule
に置き換えた所、正しく除去できるようになりました。
}); | ||
|
||
// Remove code trigger anchor | ||
turndownService.addRule('code-trigger-anchor', { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コードブロックを開閉するための#リンク(Expand full source code / Collapse full source code)を除去します。
}); | ||
|
||
// Transform pre code block to code markdown | ||
turndownService.addRule('precode to code', { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このルールが一番ややこしいと思うのですが、以下のロジックで処理しています。
- filter でコードブロックを検出(preタグで、必ず
brush:
というクラス名が含まれている) - クラス名に含まれているコード言語を検出(```の後に付与するため)
_
や*
などの文字がエスケープされるので、アンエスケープする- 不要なpタグやbrタグが入ってくる事があるので、除去する
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR ありがとうございます!
内容に大枠問題なさそうですが細かいところのみコメントしたのでご対応いただけると嬉しいです
難しそうな場合こちらでやっちゃうのでお声がけください
cli.js
Outdated
turndownService.addRule('glossary', { | ||
filter: node => { | ||
const classList = node.getAttribute('class'); | ||
if ( classList ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yarn lint:fix
で Prettier をかけていただけるとありがたいです
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
f2fa42e にて対応いたしました。
Co-authored-by: Toshihiro Kanai <i@miruc.co>
Co-authored-by: Toshihiro Kanai <i@miruc.co>
ご確認いただきありがとううございます! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ご対応ありがとうございました!
こちらこそありがとうございました 😊 |
@t-hamano こちらの対応を取り込んだバージョン |
ありがとうございます! |
はじめまして。
現在コアコントリビューターハンドブックの日本語化を進めており、こちらのライブラリを使わせていいただいています。
主に、より正確にパース出来るようにするために、以下の変更を加えさせていただきました。
dt
タグをsrong
タグに変換(dtタグはマークダウンでは使えないため、strongタグで代用する)team
を 必須から任意に変更(ここが必須だと、正しいエンドポイントを指定出来ないハンドブックが存在したため)一度に多くの変更を加えてしまい申し訳ないのですが、ご確認いただけると幸いです。