はじまりは深夜2時の掲示板
2025年12月5日、深夜2時39分。
HSP掲示板にこんな書き込みがありました。
変な時間に目覚めて考えたんですが😅 Qiitaみたいなコンテンツはどうでしょうか😆 ─ Y_repeat さん
この一言がすべての始まりでした。
🤔 HSPコミュニティの課題
掲示板での議論から浮かび上がった問題点をまとめると:
- 情報の分散 - 公式Wiki、個人Wiki、ブログ、Qiita……あちこちに散らばっている
- Wikiの維持が大変 - 立ち上げた人にかなりの負担がかかる
- スパム対策の難しさ - MediaWikiを放置したらスパムだらけに
- 費用の問題 - サーバー代を誰が負担するのか
ABATBelieverさん(HSP Wiki運営者)のコメントが的を射ていました:
人手があれば、作ることはできます。問題は維持すること。
💡 「GitHub Pagesで頑張ってみる案」
私(Velgail)は12月7日の深夜に掲示板を見て、こう書き込みました:
GitHub Pagesで頑張ってみる案もありますね。サーバー代とかを考えなくて済むので。
そして、その日のうちに実験場を公開:
一応頑張ればGithub Pagesでできるっぽいので、実験場を作ってみました。
ここから怒涛の開発が始まります。
🛠️ 採用した技術スタック
なぜこの構成なのか
| 課題 | 解決策 | 選んだ技術 |
|---|---|---|
| 維持費0円にしたい | 静的サイトホスティング | GitHub Pages |
| メンテナンス極小 | ビルド済みHTML配信 | Jekyll |
| 誰でも投稿可能 | PRベースの投稿システム | GitHub Pull Request |
| スパム防止 | AI自動レビュー | Gemini Code Assist |
| シンタックスハイライト | カスタム実装 | HSP専用ハイライター |
GitHub Pagesを選んだ理由
✅ 完全無料(容量制限1GB、十分すぎる)
✅ セキュリティパッチ不要(GitHubが管理)
✅ CDN配信で高速
✅ 独自ドメイン対応可能
✅ HTTPS自動対応
📁 プロジェクト構成
最終的なディレクトリ構成はこうなりました:
HSP-Knowledge/
├── _config.yml # Jekyll設定
├── _layouts/
│ ├── default.html # ベースレイアウト
│ ├── post.html # 記事ページ
│ └── tag.html # タグページ
├── _posts/ # 記事置き場(Markdown)
│ ├── template.md # 記事テンプレート
│ └── 2025-12-07-*.md # 投稿記事
├── assets/
│ └── style.css # スタイルシート
├── scripts/
│ └── check_pr.py # 記事検証スクリプト
├── .github/
│ └── workflows/
│ └── pr-auto-review.yml # 自動レビューワークフロー
└── .gemini/
└── prompts.yaml # Gemini用プロンプト
🎨 実装した機能
1. Qiita風デザイン
- 左サイドバー:タグ一覧
- メインコンテンツ:記事カード
- 右サイドバー:関連リンク、新着記事
2. HSP専用シンタックスハイライト
Copilotの力を借りて、HSP専用のシンタックスハイライトを実装しました。
#include "hsp3dish.as"
*main
redraw 0
color 0, 0, 128
boxf
color 255, 255, 255
pos 100, 100
mes "Hello, HSP-Knowledge!"
redraw 1
await 16
goto *main
既存のJavaScript構文ハイライターにはHSPがないので、独自にキーワードを定義:
- 命令(
mes,boxf,awaitなど) - プリプロセッサ(
#include,#defineなど) - ラベル(
*mainなど) - コメント(
//や;)
3. スマートフォン対応
名無しさんからの指摘を受けて、レスポンシブデザインを実装:
@media (max-width: 768px) {
.sidebar-left, .sidebar-right {
display: none;
}
.main-content {
margin: 0;
padding: 1rem;
}
}
4. コードブロックのコピー機能
これも名無しさんからの要望で実装。ただし、行番号をコピーしないように工夫:
// 行番号はCSSのcounter-incrementで生成
// コピー時はtextContentのみ取得
🤖 自動レビューシステム
ここからが本サイトの真骨頂です。
課題:人手によるレビューは持続不可能
Y_repeatさんの懸念:
定期的に見にいかなきゃいけないですし
ABATBelieverさんの経験:
MediaWikiに沸くスパムについては、CloudflareとかのCDNを使えば緩和できますよ
解決策:Gemini + GitHub Actionsで完全自動化
# .github/workflows/pr-auto-review.yml
name: PR Auto Review
on:
pull_request:
types: [opened, synchronize]
issue_comment:
types: [created]
jobs:
validate-article:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run validation script
run: python scripts/check_pr.py
- name: Post review comment
# 検証結果をPRにコメント
検証項目
scripts/check_pr.py で以下をチェック:
- ファイル名検証 -
YYYY-MM-DD-title.md形式か - Front Matter検証 - 必須フィールド(title, author, tags)が存在するか
- テンプレート検証 - 「ここに本文を書きます」がそのまま残っていないか
- スパム判定 - HSP関連キーワードが含まれているか、外部リンクが多すぎないか
- 更新時の検証 - 他人の記事のauthorを書き換えていないか
/publish コマンド
検証に合格した記事は、PR作成者が /publish とコメントするだけで自動マージ!
ユーザー: /publish
↓
GitHub Actions: 検証OK? → Approve → Auto Merge
人間の手を介さずに記事が公開されるので、管理者が寝ていても大丈夫です。
🔥 72時間の開発タイムライン
実際の掲示板の投稿時刻から振り返ると:
| 日時 | 出来事 |
|---|---|
| 12/5 02:39 | Y_repeatさんが「Qiitaみたいなの」を提案 |
| 12/5 03:28 | nayaさんが賛同 |
| 12/6 22:14 | ABATBelieverさんが維持の難しさを指摘 |
| 12/7 00:42 | Velgailが「GitHub Pages案」を提案 |
| 12/7 15:24 | 実験サイト公開(爆速) |
| 12/7 16:12 | Gemini自動レビュー機能を発見・実装開始 |
| 12/7 19:50 | Y_repeatさんが初PR投稿を試みる |
| 12/7 19:55 | HSPシンタックスハイライト実装完了 |
| 12/7 21:47 | コードコピー機能のバグ修正 |
| 12/8 00:24 | 投稿フロー改善案(GitHub Discussions活用)を提示 |
| 12/8 02:17 | スパム判定の自動化実装 |
| 12/8 03:59 | 自動検証・自動マージシステム完成 |
最初の提案から約50時間で、自動化されたナレッジ共有サイトが完成しました。
🚀 あなたもクローンできます
このサイトの仕組みは、そのまま他のコミュニティでも使えます。
1. リポジトリをFork
# GitHubでForkボタンを押すか、CLIで
gh repo fork Velgail/HSP-Knowledge
2. 設定を書き換え
# _config.yml
title: あなたのナレッジサイト
description: あなたのコミュニティ向け説明
baseurl: "/your-repo-name"
url: "https://your-username.github.io"
3. GitHub Pagesを有効化
リポジトリ設定 → Pages → Source: GitHub Actions
4. 必要に応じてカスタマイズ
assets/style.css- デザイン変更_layouts/- レイアウト変更scripts/check_pr.py- 検証ルール変更
📝 今後の展望
掲示板でいただいたフィードバックを元に、以下の機能を検討中:
- GitHub Discussionsとの連携 - より気軽に投稿できる入口
- 記事の品質スコアリング - 良い記事を見つけやすく
- 自動タグ提案 - Geminiによるタグ推薦
- 類似記事の検出 - 重複を防ぐ
🙏 謝辞
このサイトは、掲示板で議論に参加してくださった皆さんのおかげで生まれました:
- Y_repeat さん - 最初の提案と積極的なテスト参加
- naya さん - 賛同の声
- ABATBeliever さん - Wiki運営経験からの現実的な指摘
- 名無し さん - 的確なUI/UXフィードバック
そして、72時間ほぼ寝ずにコードを書き続けたGitHub Copilotにも感謝します(本当に)。
「一気に作らなくても良い気がなきにしもあらず😅」 ─ Y_repeat さん (12/8 12:45)
確かにその通りです(笑)。でも、勢いって大事ですよね。
📚 関連リンク
おわりに
「維持が大変」という問題に対して、「維持しなくていい仕組み」で答えを出せたのは、GitHub PagesとGemini Code Assistのおかげです。
もちろんこれが唯一の正解ではありませんが、「叩き台としてまず動くものを作る」ことで、議論が具体的になることを実感しました。
HSPコミュニティの情報共有が、少しでも活発になれば嬉しいです。
Happy Hacking! 🚀
コメント