forked from ericallam/docrails
-
-
Notifications
You must be signed in to change notification settings - Fork 301
Open
Description
Originally discussed by @r-kojima & @hachi8833 in #1546 (comment)
Issue/PR での対応ありがとうございました! 一旦 Issue としてメモしておきますね 📝
🤔 背景
- Railsガイド内の Markdown ファイルでは置換リンク (
[...][]) が存在する - 置換リンクでは、事前に定義した用語と完全一致するテキストを、リンク付きテキストに置き換える
- 置換リンクで定義した用語と翻訳した用語が完全一致しないことがあり、その場合、置換が行われずに通常のテキストがそのまま表示される
- 現在の CI では内部リンクのリンク切れを HTML Proofer で自動検知できるが、上記のような置換リンクが適用されるかどうかはテストできていない(置換に失敗したかどうかを別途検知する必要がある)
- このため、Markdown ファイル内の置換リンク (
[...][]) を抽出し、 適用数が0となる置換リンク をテストで検知したい- ただし 想定している置換リンクの適用数が1つなのか、2つ以上なのかを検知することはできない。 このため、上記のテストも完全に網羅できるわけではなく、人手でチェックする必要がありそう 🤔💭
🛠 具体例
ありがとうございます。不正なリンク抽出用のシェルスクリプトを一応書いていたので、ご参考までに 🙇
※コードブロック内にある正常なパターンもヒットしちゃったので、結局目視で確認しております 😢 そのままじゃCI等では使え無さそう。。#!/bin/bash # _siteディレクトリのパス site_directory="_site" # _siteディレクトリ内のHTMLファイルに対して処理 find "$site_directory" -type f -name "*.html" | while read -r file; do # grepで][]が含まれている行を抽出 grep_result=$(grep '\]\[' "$file") # grepの結果があるかチェック if [ -n "$grep_result" ]; then # ファイル名を表示 echo "File: $file" # []][]が含まれている行を表示 echo "$grep_result" # ファイルごとに区切りを表示 echo "----------------------------------------" fi done echo "処理が完了しました。"
上記以外のシナリオ例 (この Issue が解決されたら未然に防げてたであろう関連 Issue):
💡 解決案
HTML-Proofer のプラグインとしてテストを追加する (Custom Check を書く) のが良さそう!
未踏ジュニアのWebサイトに実装例があるので、プラグインでテストを書くときは次のように検知・エラー通知をすると良さそう 👀💡✨
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels