Skip to content

Commit b42a31c

Browse files
authored
Merge pull request #1797 from coderdojo-japan/fix-meta-descriptions
ドキュメントの meta description を修正(TDD実践)
2 parents 25272ff + 3050ff6 commit b42a31c

5 files changed

Lines changed: 52 additions & 11 deletions

File tree

public/docs/post-backend-update-history.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
<p class="text-center"><small>本記事は2016年12月12日に公開した記事を一部改訂したアーカイブ版です。</small></p>
44

5+
2016年の CoderDojo Advent Calendar で公開した、coderdojo.jp のバックエンド刷新に関する技術記事です。
6+
57
-----
68

79
[CoderDojo Advent Calendar](http://www.adventar.org/calendars/1619) 12日目、coderdojo.jp の裏側をリニューアルした話です。 (執筆: [@yasulab](https://twitter.com/yasulab))

public/docs/regional-license.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
# 🌐 地域ライセンス契約書
2-
<center><small>(本契約書は、契約当時の写しとなります。<a href="regional-license_en">英語の原文を読む</a>)</small></center>
32

4-
<div style="padding: 30px 0px;">
5-
<img class='lazyload' loading='lazy' alt="Photo of License Agreement between Foundation and Japan."
6-
src='/spinner.svg' data-src='/coderdojo-japan-2016_rect.png' />
7-
</div>
3+
<img class='lazyload' loading='lazy' alt="Photo of License Agreement between Foundation and Japan." src='/spinner.svg' data-src='/coderdojo-japan-2016_rect.png' style='padding: 30px 0px;' />
4+
5+
CoderDojo Foundation (当時の名称: `HELLO WORLD Foundation`) と一般社団法人 CoderDojo Japan (英名: `CoderDojo Japan Association`) の間で締結された地域ライセンス契約書です。2016年の契約当時の写しとなります。
86

97
<blockquote>
108
<p style="font-size: 80%">
@@ -13,8 +11,12 @@
1311
</p>
1412
</blockquote>
1513

14+
<center><small><a href="regional-license_en">&raquo; 英語の原文を読む (View in English)</a></small></center>
15+
1616
<br>
1717

18+
-----
19+
1820
以下のライセンス契約は、地域または国の全ての登録済 CoderDojo 慈善団体と締結されるものです。本ライセンス契約は、ある地域を代表する組織または非公認のグループと締結する基本的な MOU(覚書)として行使されることになります。
1921

2022
**本ライセンスの対象区域:日本**

public/docs/regional-license_en.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
# 🌐 CoderDojo Regional License
2-
<center><small>(本契約書は、契約当時の写しとなります。<a href="regional-license">日本語の訳文を読む</a>)</small></center>
32

4-
<div style="padding: 30px 0px;">
5-
<img class='lazyload' loading='lazy' alt="Photo of License Agreement between Foundation and Japan."
6-
src='/spinner.svg' data-src='/coderdojo-japan-2016_rect.png' />
7-
</div>
3+
<img class='lazyload' loading='lazy' alt="Photo of License Agreement between Foundation and Japan." src='/spinner.svg' data-src='/coderdojo-japan-2016_rect.png' style='padding: 30px 0px;' />
4+
5+
Regional license agreement between CoderDojo Foundation and CoderDojo Japan Association, dated August 27th, 2016.
86

97
<blockquote>
108
<p style="font-size: 80%">
@@ -13,8 +11,12 @@
1311
</p>
1412
</blockquote>
1513

14+
<center><small><a href="regional-license">&raquo; 日本語で読む (View in Japanese)</a></small></center>
15+
1616
<br>
1717

18+
-----
19+
1820
## Regional License for Japan
1921

2022
**Dated on the August 27th, 2016**

public/docs/teikan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<img class='lazyload' loading='lazy' alt='Photo of announcement to found the CoderDojo Japan Association.' src='/spinner.svg' data-src='/coderdojo-japan-2016_rect.png' style='padding: 30px 0px;' />
44

5-
[一般社団法人 CoderDojo Japan](/about) の定款です。2016年の設立当時のもので、現在は改訂されている可能性がある点にご注意ください
5+
[一般社団法人 CoderDojo Japan](/about) の定款です。2016年の設立当時の写しとなります
66

77
<center>
88
( <a href="https://github.com/coderdojo-japan/coderdojo.jp/commits/main/db/docs/teikan.md">&raquo; 定款の変更履歴を見る</a>

spec/models/document_spec.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,39 @@
5252
expect(doc.exist?).to be true
5353
end
5454
end
55+
56+
describe 'meta descriptions' do
57+
it 'すべての公開ドキュメントの meta description に HTML タグが含まれていないこと' do
58+
# 全ドキュメントファイルを取得(記録用ページ "_" で始まるものを除く)
59+
doc_files = Dir.glob('public/docs/*.md').map { |f| File.basename(f, '.*') }
60+
public_docs = doc_files.reject { |f| f.start_with?('_') }
61+
62+
# 各ドキュメントの meta description をチェック
63+
problematic_docs = []
64+
public_docs.each do |filename|
65+
doc = Document.new(filename)
66+
description = doc.description
67+
68+
# HTML タグまたは HTML エンティティが含まれている場合は問題あり
69+
if description.match?(/<|&lt;|&gt;|&amp;/)
70+
problematic_docs << {
71+
filename: filename,
72+
description: description[0..100] # 最初の100文字
73+
}
74+
end
75+
end
76+
77+
# エラーメッセージを詳細に表示
78+
if problematic_docs.any?
79+
error_message = "\n以下のドキュメントの meta description に HTML タグが含まれています:\n"
80+
problematic_docs.each do |doc|
81+
error_message += "\n#{doc[:filename]}\n"
82+
error_message += " Description: #{doc[:description]}...\n"
83+
end
84+
fail error_message
85+
end
86+
87+
expect(problematic_docs).to be_empty
88+
end
89+
end
5590
end

0 commit comments

Comments
 (0)