From ecd6f1661333e66f39f2b4e1ada1ba46d993172a Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Fri, 19 Jun 2026 00:22:53 +0900 Subject: Initial commit --- .gitignore | 9 +- .zed/AGENTS.md | 223 --------------------- .zed/settings.json | 5 - README.md | 3 +- deploy.ps1 | 40 ---- docker-compose.yml | 36 ---- documents.git/HEAD | 1 - documents.git/config | 9 - documents.git/description | 1 - documents.git/hooks/applypatch-msg.sample | 15 -- documents.git/hooks/commit-msg.sample | 24 --- documents.git/hooks/fsmonitor-watchman.sample | 174 ---------------- documents.git/hooks/post-update.sample | 8 - documents.git/hooks/pre-applypatch.sample | 14 -- documents.git/hooks/pre-commit.sample | 49 ----- documents.git/hooks/pre-merge-commit.sample | 13 -- documents.git/hooks/pre-push.sample | 53 ----- documents.git/hooks/pre-rebase.sample | 169 ---------------- documents.git/hooks/pre-receive.sample | 24 --- documents.git/hooks/prepare-commit-msg.sample | 42 ---- documents.git/hooks/push-to-checkout.sample | 78 ------- documents.git/hooks/sendemail-validate.sample | 77 ------- documents.git/hooks/update.sample | 128 ------------ documents.git/info/exclude | 6 - public/img/docusaurus-social-card.jpg | Bin 133957 -> 0 bytes public/img/docusaurus.png | Bin 5142 -> 0 bytes public/img/logo.svg | 1 - public/img/undraw_docusaurus_mountain.svg | 171 ---------------- public/img/undraw_docusaurus_react.svg | 170 ---------------- public/img/undraw_docusaurus_tree.svg | 40 ---- public/pdf/_temp_20250606.doc | Bin 122880 -> 0 bytes public/test.pdf | Bin 188395 -> 0 bytes ...34\222_\343\201\276\343\201\250\343\202\201.md" | 199 ------------------ 33 files changed, 6 insertions(+), 1776 deletions(-) delete mode 100644 .zed/AGENTS.md delete mode 100644 .zed/settings.json delete mode 100644 deploy.ps1 delete mode 100644 docker-compose.yml delete mode 100644 documents.git/HEAD delete mode 100644 documents.git/config delete mode 100644 documents.git/description delete mode 100644 documents.git/hooks/applypatch-msg.sample delete mode 100644 documents.git/hooks/commit-msg.sample delete mode 100644 documents.git/hooks/fsmonitor-watchman.sample delete mode 100644 documents.git/hooks/post-update.sample delete mode 100644 documents.git/hooks/pre-applypatch.sample delete mode 100644 documents.git/hooks/pre-commit.sample delete mode 100644 documents.git/hooks/pre-merge-commit.sample delete mode 100644 documents.git/hooks/pre-push.sample delete mode 100644 documents.git/hooks/pre-rebase.sample delete mode 100644 documents.git/hooks/pre-receive.sample delete mode 100644 documents.git/hooks/prepare-commit-msg.sample delete mode 100644 documents.git/hooks/push-to-checkout.sample delete mode 100644 documents.git/hooks/sendemail-validate.sample delete mode 100644 documents.git/hooks/update.sample delete mode 100644 documents.git/info/exclude delete mode 100644 public/img/docusaurus-social-card.jpg delete mode 100644 public/img/docusaurus.png delete mode 100644 public/img/logo.svg delete mode 100644 public/img/undraw_docusaurus_mountain.svg delete mode 100644 public/img/undraw_docusaurus_react.svg delete mode 100644 public/img/undraw_docusaurus_tree.svg delete mode 100644 public/pdf/_temp_20250606.doc delete mode 100644 public/test.pdf delete mode 100644 "reference/\346\227\247\344\275\220\345\267\235\351\202\270\345\205\254\345\234\222_\343\201\276\343\201\250\343\202\201.md" diff --git a/.gitignore b/.gitignore index 477d098..a7328c9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,11 +10,6 @@ # Astro generated types /.astro -# Old Docusaurus build (keep for reference during migration) -/build -/.docusaurus -.cache-loader - # Misc .DS_Store .env.local @@ -29,3 +24,7 @@ test-results/ npm-debug.log* yarn-debug.log* yarn-error.log* +/documents.git +/.zed +/deploy.ps1 +/docker-compose.yml diff --git a/.zed/AGENTS.md b/.zed/AGENTS.md deleted file mode 100644 index e46299b..0000000 --- a/.zed/AGENTS.md +++ /dev/null @@ -1,223 +0,0 @@ -# 安竹洋平 公式サイト 編集ルール - -## 文体・表現 -- ベースの文体は「です・ます」調(敬語) -- 「残念ながら」「非常に遅い」「拒否している」など嫌味・批判的な表現は避け、客観的事実として書く -- 人物には「氏」をつける -- 見出しに「」は使わない - -## ディスレクシアについてのコンテンツについて -- /about-dyslexia/以下の、「ディスレクシアについて」の項目中のコンテンツ(ページ)については次を適用する。 - - 旧mdbook(C:\Users\yohei\Desktop\ZedPlayground\reference-materials\dyslexiaのmdbookソース)の内容を**必ず参照**し、そこにある文章・リンク・引用を優先して使う - - 旧mdbookにない内容を勝手に追加しない。省かれている記述があれば追加する - - 引用は `>` ブロッククォートまたは `
` 吹き出しで明示し、出典リンクを必ず併記する -  - 吹き出しは `
` を使用 - - 色はアンバー系(CSS変数 `--bubble-dyslexia-bg` 等で定義済み) - - 吹き出しには必ず `` を入れる - - 出典は吹き出しの後に `— 出典名` 形式で書く - - 楽天アフィリエイトのURL形式: `https://hb.afl.rakuten.co.jp/ichiba/54fb1f56.abf524ab.54fb1f57.aed11c5d/_RTLink136060?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2FNUMBER%2F&link_type=text&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJ0ZXh0Iiwic2l6ZSI6IjI0MHgyNDAiLCJuYW0iOjEsIm5hbXAiOiJyaWdodCIsImNvbSI6MSwiY29tcCI6ImRvd24iLCJwcmljZSI6MSwiYm9yIjoxLCJjb2wiOjEsImJidG4iOjEsInByb2QiOjAsImFtcCI6ZmFsc2V9` - - アフィリエイト注記: 「リンクからの収益は、ディスレクシアの周知活動およびサイト運営費に充てられます」 - -## アフィリエイト -- 楽天アフィリエイトID: `54fb1f56.abf524ab.54fb1f57.aed11c5d` -- 書籍リンクには `target="_blank" rel="nofollow sponsored noopener"` を付与 -- アフィリエイト注記: 「リンクからの収益は、安竹洋平の政治活動及び本サイトの運営費に充てられます」 - -## ノート(:::note) -- `:::note[タイトル]` ではなく、以下形式でTOCに表示させる: - ``` - :::note - ##### タイトル - 本文 - ::: - ``` - -## 実績ページ(○○の軌跡) -- フロントマター: `title`, `description`, `tableOfContents: true` -- 冒頭にアイキャッチ画像(`` + 画像クレジットの `

`) -- 構成: 冒頭説明 → タイムライン(表) → 詳細セクション → 「成果」表 → 「今後の課題」 → 「関連リンク」 → `[← 実績ページに戻る](/jisseki/)` -- アイキャッチ画像は `public/img/` に配置、参照は `/img/filename.png` -- 画像のダウンロード元(イラストAC等)を必ずクレジット表記 - -## SEO -- `@astrojs/sitemap` によるサイトマップ自動生成(`astro.config.mjs` に追加済み) -- `public/robots.txt` に sitemap URL を記載 -- OGP 画像・JSON-LD 構造化データは `astro.config.mjs` の `head` で設定 -- Google Search Console への登録・サイトマップ送信は手動で行う - ---- - -# 画像の取り扱い(技術編) - -## ファイル名 -- **短くすること**。長いファイル名(例: `kajo-seigen-kanwa-eyecatch.png`)は Astro dev server が 404 を返す -- 推奨: `{topic}-eyecatch.png`(例: `dislexia-eyecatch.png`) -- 極力日本語読みでファイル名を作成する(例: 'asita-yaru.mdx') - -## 表示サイズと用途 -| 用途 | クラス/CSS | 表示サイズ | 推奨元画像サイズ | -|------|-----------|-----------|----------------| -| 実績カード | `.achievement-img` | 160×110px(SP: 140px高) | 横長 480×330px 以上 | -| 詳細ページアイキャッチ | `max-height:360px; width:100%` | コンテンツ幅(〜720px) | 横長 1440×720px(2:1) | -| ホーム活動グリッド | `.activity-card`(`aspect-ratio:4/3`) | 最小150px幅 | 4:3、600×450px 以上 | - -- 全画像 `object-fit: cover` のため枠より大きければ自動トリミング -- 共通の推奨サイズ: **横長 1500×750px** - -## 画像コピー方法 -```bash -cp "C:/Users/yohei/Desktop/ZedPlayground/reference-materials/{フォルダ}/{ファイル名}" "C:/Users/yohei/Desktop/ZedPlayground/yasutakeyohei.com/public/img/{出力ファイル名}" -``` -- `copy_path` ツールは上書きに失敗しやすいため、`cp` が確実 -- 上書き時は先に `rm` で削除してから `cp` - -## ライセンス表記テンプレート - -### 実績カード内 -```html -

画像提供:サイト名

-``` - -### 詳細ページアイキャッチ直後 -```html -

画像提供:サイト名

-``` - -### よく使う素材サイトURL -- イラストAC: `https://www.ac-illust.com/main/detail.php?id=XXXXXX` -- photoAC: `https://www.photo-ac.com/main/detail/XXXXXX` -- いらすとや: `https://www.irasutoya.com/YYYY/MM/blog-post_XX.html` -- PIXTA: `https://pixta.jp/illustration/XXXXXX` -- かいごイラスト: `https://kaigoirasuto.info/` - ---- - -# ファイル編集の注意点 - -## edit_file の制限 -- **長い行やURLを含むテキストには `edit_file` がマッチしない**ことが多い -- その場合は `write_file` でファイル全体を書き換える - -## write_file 使用時の注意 -- **ファイル全体の内容を必ず含めること**。一部だけだと内容が消失する -- 事前に `read_file` で全内容を取得してから編集する -- 消失した場合は `git checkout -- {filepath}` で復元可能 - -## 複数箇所にマッチする場合 -- `old_text` が複数行にマッチすると編集に失敗する -- 十分にユニークなコンテキストを含めること - ---- - -# よく使うファイル -- 設定: `astro.config.mjs` -- CSS: `src/styles/custom.css` -- 参照資料: `reference-materials/実績まとめ用資料/` -- 参照資料(小平市議会での安竹の記録): `reference-materials/実績まとめ用資料/議会` -- 旧サイト参照: `reference-materials/移行元documents(docusaurus)/` -- 旧サイト(ディスレクシア)参照: `reference-materials/dyslexiaのmdbookソース/' -- .htaccess: `public/.htaccess` - ---- - -# 一般質問ページの作成ルール - -## 年度の区切り -- **3月定例会は前年度に属する**(例: 令和7年3月 → 令和6年度 r6d、令和8年3月 → 令和7年度 r7d) -- 4月以降は新年表記の年度(例: 令和7年6月 → 令和7年度 r7d) - -## 新規セッション追加時のインフラ設定 -1. `astro.config.mjs` の `year()` に該当月を追加(なければ関数の MONTHS にも追加) -2. `src/content/docs/ippan-situmon/rXd/index.mdx` に該当月へのリンクを追加 -3. **`src/components/starlight/Breadcrumbs.astro` の `labelMap` に新年表記を追加**(例: `'r7d': '令和7年度'`) -4. 各ディレクトリに `images/` フォルダを作成 - -## ページのフォーマット - -### 見出し(TOC表示のため Markdown 必須) -- **必ず `###` を使う。HTML の `

` は右側目次に表示されない** -- `### 質問する理由` → 背景説明 -- `### ① [質問タイトル]` → 各質問(丸数字付き) -- `#### [サブタイトル]` → 再質問セクション。**「○の再質問:」プレフィックス禁止** -- 丸数字(①②③)は自動生成ID上で `-` に変換される → まとめ表のリンクは `(#-自動生成ID)` 形式 - -### 吹き出し(MessageBubble) -- 安竹: `speaker="安竹(初回質問)"` または `speaker="安竹(再質問)"` -- **相手側は必ず `align="left"` を使用**。フルネームで(例: `speaker="市長(小林 洋子)" align="left"`) - -### スタイル -- まとめ文は です・ます調。2〜3文で簡潔 -- 「令和X年X月X日に行ったN件の一般質問のうちのX件目です。」は重複禁止 -- 吹き出し内の番号付きリストは Markdown 記法(1. 2. 3.) -- データの多い答弁は表形式に整形 - -### 部分テンプレート(必須) -主な質疑の先頭に必ず以下を入れる: -``` -import Partial from './../../_partial.mdx'; - - -``` - -### 一問一答形式の構造 -``` -### 質問する理由 -#### [背景サブタイトル] - ... - -### ① [質問タイトル] - 質問文 - 答弁 - -#### [再質問サブタイトル] - ... - ... -``` - -## 通告書PDFの扱い -1. `reference-materials/実績まとめ用資料/議会/[YYYY年M月定例会]/` から該当PDFを探す -2. `public/pdf/` にコピー(命名: `YYYYMMDD-ippan-situmon-yasutake-N.pdf`) -3. **PyPDF2 で1ページずつ分割**(`YYYYMMDD-ippan-situmon-yasutake-Np.pdf`)し、元の全ページPDFは削除 -4. 各質問ページに `` - -## FAQ -- **見出しが目次に出ない**: `

` HTMLタグではなく `###` Markdownを使う -- **faviconが出ない**: `astro.config.mjs` の `head` に `` を追加 -- **Windowsでステージ時にエラー206**: パス長制限。`git config core.longpaths true` を実行 -- **パンくずリストで年度が rXd と表示される**: `Breadcrumbs.astro` の `labelMap` に追加 -- **PDFが全ページ表示される**: 1ページずつ分割して `-1p.pdf` 等を使う - ---- - -# デプロイ - -## ビルドコマンド -- `npm run build` は `astro build && py removeNullCharacters.py` を実行する -- `removeNullCharacters.py` はビルド後のNull文字除去スクリプト(プロジェクト直下) - -## エックスサーバーへのデプロイ -- エックスサーバーは全プランSSH対応だが、サーバー側 rsync は保証されない -- デプロイスクリプト: `deploy.sh`(プロジェクト直下) - - `RSYNC_DEST=user@sv12345.xsrv.jp:public_html/ npm run deploy` で実行 - - まず rsync(SSH経由)を試行 → 失敗時は lftp(FTPS)に自動フォールバック - - rsync は `--checksum` を使用(タイムスタンプではなく内容で差分判定) - - `--delete` なしのため、サーバー上のサブドメインディレクトリは**一切削除されない** -- lftp が必要な場合: Git Bash: `pacman -S lftp` / WSL: `sudo apt install lftp` -- SSH鍵を設定しておくとパスワード不要でデプロイ可能 - ---- - -# 画像素材の補足 - -## 海外フリー素材(人物なし用途) -- Unsplash: 欧米人被写体が大半のため、**人物が写っていない写真**(教室・文房具・黒板・自然など)に限定して使う -- Pixabay: Unsplash より多様だが同様の制約 - -## いらすとやの検索 -- 「特別支援学級」といったピンポイントなキーワードではヒットしない場合がある -- 代わりに「学校」「教室」「こども」など、より一般的なキーワードで検索する -- 商用利用は21点まで無料(要クレジット表記) - -## 画像選定の基本方針 -- 外国人は原則NG。日本のこども・学校・風景のイラスト・写真を優先 -- 人物ありの写真が必要な場合は、イラストAC・photoAC・いらすとや等の日本素材サイトを使う diff --git a/.zed/settings.json b/.zed/settings.json deleted file mode 100644 index 79eee0a..0000000 --- a/.zed/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "agent": { - "allowed_paths": ["."] - } -} diff --git a/README.md b/README.md index 82122bc..15ac7bf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -市議会議員安竹洋平のドキュメントです。 [Docusaurus 3](https://docusaurus.io/)を使用しています。 +# yasutakeyohei.com +安竹洋平のウェブサイトです。Astro + Starlight で構築しています。 diff --git a/deploy.ps1 b/deploy.ps1 deleted file mode 100644 index 030a2ce..0000000 --- a/deploy.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -# Deploy: build and push dist/ to XServer via git -# - Git delta compression: only changes are transferred (fast) -# - *.yasutakeyohei.com folders are protected by .gitignore -# Prerequisite: `ssh xserver` works (configured in ~/.ssh/config) -# Usage: .\deploy.ps1 - -param( - [string]$Remote = "xserver:/home/wais/yasutakeyohei.com/repo.git" -) - -$ErrorActionPreference = "Stop" - -Write-Host "=== Build ===" -ForegroundColor Cyan -npm run build -if ($LASTEXITCODE -ne 0) { throw "Build failed." } - -Write-Host "" -Write-Host "=== Deploy ===" -ForegroundColor Cyan -Write-Host "Target: $Remote" - -$deployDir = ".deploy" - -# 前回の .deploy を削除 -if (Test-Path $deployDir) { Remove-Item -Recurse -Force $deployDir } - -# dist/ をコピー -Copy-Item -Recurse dist $deployDir - -# git 操作 -Push-Location $deployDir -try { - git init - git add -A - git commit -m "deploy" --allow-empty --quiet - git push -f $Remote main -} finally { - Pop-Location -} - -Write-Host "Done." -ForegroundColor Green diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 6aeb2f4..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -services: - db: - image: mysql:8.0 - container_name: wp_db - restart: unless-stopped - environment: - MYSQL_ROOT_PASSWORD: rootpass - MYSQL_DATABASE: wordpress - MYSQL_USER: wp_user - MYSQL_PASSWORD: wp_pass - volumes: - - db_data:/var/lib/mysql - ports: - - "3306:3306" - - wordpress: - image: wordpress:latest - container_name: wp_app - restart: unless-stopped - depends_on: - - db - environment: - WORDPRESS_DB_HOST: db:3306 - WORDPRESS_DB_USER: wp_user - WORDPRESS_DB_PASSWORD: wp_pass - WORDPRESS_DB_NAME: wordpress - volumes: - - wp_data:/var/www/html - # UpdraftPlus のバックアップを配置する場所 - - ./backups:/backups - ports: - - "8080:80" - -volumes: - db_data: - wp_data: diff --git a/documents.git/HEAD b/documents.git/HEAD deleted file mode 100644 index cb089cd..0000000 --- a/documents.git/HEAD +++ /dev/null @@ -1 +0,0 @@ -ref: refs/heads/master diff --git a/documents.git/config b/documents.git/config deleted file mode 100644 index 2ebbaec..0000000 --- a/documents.git/config +++ /dev/null @@ -1,9 +0,0 @@ -[core] - repositoryformatversion = 0 - filemode = false - bare = true - symlinks = false - ignorecase = true - sharedrepository = 1 -[receive] - denyNonFastforwards = true diff --git a/documents.git/description b/documents.git/description deleted file mode 100644 index 498b267..0000000 --- a/documents.git/description +++ /dev/null @@ -1 +0,0 @@ -Unnamed repository; edit this file 'description' to name the repository. diff --git a/documents.git/hooks/applypatch-msg.sample b/documents.git/hooks/applypatch-msg.sample deleted file mode 100644 index a5d7b84..0000000 --- a/documents.git/hooks/applypatch-msg.sample +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -# -# An example hook script to check the commit log message taken by -# applypatch from an e-mail message. -# -# The hook should exit with non-zero status after issuing an -# appropriate message if it wants to stop the commit. The hook is -# allowed to edit the commit message file. -# -# To enable this hook, rename this file to "applypatch-msg". - -. git-sh-setup -commitmsg="$(git rev-parse --git-path hooks/commit-msg)" -test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} -: diff --git a/documents.git/hooks/commit-msg.sample b/documents.git/hooks/commit-msg.sample deleted file mode 100644 index b58d118..0000000 --- a/documents.git/hooks/commit-msg.sample +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# -# An example hook script to check the commit log message. -# Called by "git commit" with one argument, the name of the file -# that has the commit message. The hook should exit with non-zero -# status after issuing an appropriate message if it wants to stop the -# commit. The hook is allowed to edit the commit message file. -# -# To enable this hook, rename this file to "commit-msg". - -# Uncomment the below to add a Signed-off-by line to the message. -# Doing this in a hook is a bad idea in general, but the prepare-commit-msg -# hook is more suited to it. -# -# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') -# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" - -# This example catches duplicate Signed-off-by lines. - -test "" = "$(grep '^Signed-off-by: ' "$1" | - sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { - echo >&2 Duplicate Signed-off-by lines. - exit 1 -} diff --git a/documents.git/hooks/fsmonitor-watchman.sample b/documents.git/hooks/fsmonitor-watchman.sample deleted file mode 100644 index 23e856f..0000000 --- a/documents.git/hooks/fsmonitor-watchman.sample +++ /dev/null @@ -1,174 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use IPC::Open2; - -# An example hook script to integrate Watchman -# (https://facebook.github.io/watchman/) with git to speed up detecting -# new and modified files. -# -# The hook is passed a version (currently 2) and last update token -# formatted as a string and outputs to stdout a new update token and -# all files that have been modified since the update token. Paths must -# be relative to the root of the working tree and separated by a single NUL. -# -# To enable this hook, rename this file to "query-watchman" and set -# 'git config core.fsmonitor .git/hooks/query-watchman' -# -my ($version, $last_update_token) = @ARGV; - -# Uncomment for debugging -# print STDERR "$0 $version $last_update_token\n"; - -# Check the hook interface version -if ($version ne 2) { - die "Unsupported query-fsmonitor hook version '$version'.\n" . - "Falling back to scanning...\n"; -} - -my $git_work_tree = get_working_dir(); - -my $retry = 1; - -my $json_pkg; -eval { - require JSON::XS; - $json_pkg = "JSON::XS"; - 1; -} or do { - require JSON::PP; - $json_pkg = "JSON::PP"; -}; - -launch_watchman(); - -sub launch_watchman { - my $o = watchman_query(); - if (is_work_tree_watched($o)) { - output_result($o->{clock}, @{$o->{files}}); - } -} - -sub output_result { - my ($clockid, @files) = @_; - - # Uncomment for debugging watchman output - # open (my $fh, ">", ".git/watchman-output.out"); - # binmode $fh, ":utf8"; - # print $fh "$clockid\n@files\n"; - # close $fh; - - binmode STDOUT, ":utf8"; - print $clockid; - print "\0"; - local $, = "\0"; - print @files; -} - -sub watchman_clock { - my $response = qx/watchman clock "$git_work_tree"/; - die "Failed to get clock id on '$git_work_tree'.\n" . - "Falling back to scanning...\n" if $? != 0; - - return $json_pkg->new->utf8->decode($response); -} - -sub watchman_query { - my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') - or die "open2() failed: $!\n" . - "Falling back to scanning...\n"; - - # In the query expression below we're asking for names of files that - # changed since $last_update_token but not from the .git folder. - # - # To accomplish this, we're using the "since" generator to use the - # recency index to select candidate nodes and "fields" to limit the - # output to file names only. Then we're using the "expression" term to - # further constrain the results. - my $last_update_line = ""; - if (substr($last_update_token, 0, 1) eq "c") { - $last_update_token = "\"$last_update_token\""; - $last_update_line = qq[\n"since": $last_update_token,]; - } - my $query = <<" END"; - ["query", "$git_work_tree", {$last_update_line - "fields": ["name"], - "expression": ["not", ["dirname", ".git"]] - }] - END - - # Uncomment for debugging the watchman query - # open (my $fh, ">", ".git/watchman-query.json"); - # print $fh $query; - # close $fh; - - print CHLD_IN $query; - close CHLD_IN; - my $response = do {local $/; }; - - # Uncomment for debugging the watch response - # open ($fh, ">", ".git/watchman-response.json"); - # print $fh $response; - # close $fh; - - die "Watchman: command returned no output.\n" . - "Falling back to scanning...\n" if $response eq ""; - die "Watchman: command returned invalid output: $response\n" . - "Falling back to scanning...\n" unless $response =~ /^\{/; - - return $json_pkg->new->utf8->decode($response); -} - -sub is_work_tree_watched { - my ($output) = @_; - my $error = $output->{error}; - if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { - $retry--; - my $response = qx/watchman watch "$git_work_tree"/; - die "Failed to make watchman watch '$git_work_tree'.\n" . - "Falling back to scanning...\n" if $? != 0; - $output = $json_pkg->new->utf8->decode($response); - $error = $output->{error}; - die "Watchman: $error.\n" . - "Falling back to scanning...\n" if $error; - - # Uncomment for debugging watchman output - # open (my $fh, ">", ".git/watchman-output.out"); - # close $fh; - - # Watchman will always return all files on the first query so - # return the fast "everything is dirty" flag to git and do the - # Watchman query just to get it over with now so we won't pay - # the cost in git to look up each individual file. - my $o = watchman_clock(); - $error = $output->{error}; - - die "Watchman: $error.\n" . - "Falling back to scanning...\n" if $error; - - output_result($o->{clock}, ("/")); - $last_update_token = $o->{clock}; - - eval { launch_watchman() }; - return 0; - } - - die "Watchman: $error.\n" . - "Falling back to scanning...\n" if $error; - - return 1; -} - -sub get_working_dir { - my $working_dir; - if ($^O =~ 'msys' || $^O =~ 'cygwin') { - $working_dir = Win32::GetCwd(); - $working_dir =~ tr/\\/\//; - } else { - require Cwd; - $working_dir = Cwd::cwd(); - } - - return $working_dir; -} diff --git a/documents.git/hooks/post-update.sample b/documents.git/hooks/post-update.sample deleted file mode 100644 index ec17ec1..0000000 --- a/documents.git/hooks/post-update.sample +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare a packed repository for use over -# dumb transports. -# -# To enable this hook, rename this file to "post-update". - -exec git update-server-info diff --git a/documents.git/hooks/pre-applypatch.sample b/documents.git/hooks/pre-applypatch.sample deleted file mode 100644 index 4142082..0000000 --- a/documents.git/hooks/pre-applypatch.sample +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed -# by applypatch from an e-mail message. -# -# The hook should exit with non-zero status after issuing an -# appropriate message if it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-applypatch". - -. git-sh-setup -precommit="$(git rev-parse --git-path hooks/pre-commit)" -test -x "$precommit" && exec "$precommit" ${1+"$@"} -: diff --git a/documents.git/hooks/pre-commit.sample b/documents.git/hooks/pre-commit.sample deleted file mode 100644 index e144712..0000000 --- a/documents.git/hooks/pre-commit.sample +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed. -# Called by "git commit" with no arguments. The hook should -# exit with non-zero status after issuing an appropriate message if -# it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-commit". - -if git rev-parse --verify HEAD >/dev/null 2>&1 -then - against=HEAD -else - # Initial commit: diff against an empty tree object - against=$(git hash-object -t tree /dev/null) -fi - -# If you want to allow non-ASCII filenames set this variable to true. -allownonascii=$(git config --type=bool hooks.allownonascii) - -# Redirect output to stderr. -exec 1>&2 - -# Cross platform projects tend to avoid non-ASCII filenames; prevent -# them from being added to the repository. We exploit the fact that the -# printable range starts at the space character and ends with tilde. -if [ "$allownonascii" != "true" ] && - # Note that the use of brackets around a tr range is ok here, (it's - # even required, for portability to Solaris 10's /usr/bin/tr), since - # the square bracket bytes happen to fall in the designated range. - test $(git diff --cached --name-only --diff-filter=A -z $against | - LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 -then - cat <<\EOF -Error: Attempt to add a non-ASCII file name. - -This can cause problems if you want to work with people on other platforms. - -To be portable it is advisable to rename the file. - -If you know what you are doing you can disable this check using: - - git config hooks.allownonascii true -EOF - exit 1 -fi - -# If there are whitespace errors, print the offending file names and fail. -exec git diff-index --check --cached $against -- diff --git a/documents.git/hooks/pre-merge-commit.sample b/documents.git/hooks/pre-merge-commit.sample deleted file mode 100644 index 399eab1..0000000 --- a/documents.git/hooks/pre-merge-commit.sample +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed. -# Called by "git merge" with no arguments. The hook should -# exit with non-zero status after issuing an appropriate message to -# stderr if it wants to stop the merge commit. -# -# To enable this hook, rename this file to "pre-merge-commit". - -. git-sh-setup -test -x "$GIT_DIR/hooks/pre-commit" && - exec "$GIT_DIR/hooks/pre-commit" -: diff --git a/documents.git/hooks/pre-push.sample b/documents.git/hooks/pre-push.sample deleted file mode 100644 index 4ce688d..0000000 --- a/documents.git/hooks/pre-push.sample +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -# An example hook script to verify what is about to be pushed. Called by "git -# push" after it has checked the remote status, but before anything has been -# pushed. If this script exits with a non-zero status nothing will be pushed. -# -# This hook is called with the following parameters: -# -# $1 -- Name of the remote to which the push is being done -# $2 -- URL to which the push is being done -# -# If pushing without using a named remote those arguments will be equal. -# -# Information about the commits which are being pushed is supplied as lines to -# the standard input in the form: -# -# -# -# This sample shows how to prevent push of commits where the log message starts -# with "WIP" (work in progress). - -remote="$1" -url="$2" - -zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" - exit 1 - fi - fi -done - -exit 0 diff --git a/documents.git/hooks/pre-rebase.sample b/documents.git/hooks/pre-rebase.sample deleted file mode 100644 index 6cbef5c..0000000 --- a/documents.git/hooks/pre-rebase.sample +++ /dev/null @@ -1,169 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2006, 2008 Junio C Hamano -# -# The "pre-rebase" hook is run just before "git rebase" starts doing -# its job, and can prevent the command from running by exiting with -# non-zero status. -# -# The hook is called with the following parameters: -# -# $1 -- the upstream the series was forked from. -# $2 -- the branch being rebased (or empty when rebasing the current branch). -# -# This sample shows how to prevent topic branches that are already -# merged to 'next' branch from getting rebased, because allowing it -# would result in rebasing already published history. - -publish=next -basebranch="$1" -if test "$#" = 2 -then - topic="refs/heads/$2" -else - topic=`git symbolic-ref HEAD` || - exit 0 ;# we do not interrupt rebasing detached HEAD -fi - -case "$topic" in -refs/heads/??/*) - ;; -*) - exit 0 ;# we do not interrupt others. - ;; -esac - -# Now we are dealing with a topic branch being rebased -# on top of master. Is it OK to rebase it? - -# Does the topic really exist? -git show-ref -q "$topic" || { - echo >&2 "No such branch $topic" - exit 1 -} - -# Is topic fully merged to master? -not_in_master=`git rev-list --pretty=oneline ^master "$topic"` -if test -z "$not_in_master" -then - echo >&2 "$topic is fully merged to master; better remove it." - exit 1 ;# we could allow it, but there is no point. -fi - -# Is topic ever merged to next? If so you should not be rebasing it. -only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` -only_next_2=`git rev-list ^master ${publish} | sort` -if test "$only_next_1" = "$only_next_2" -then - not_in_topic=`git rev-list "^$topic" master` - if test -z "$not_in_topic" - then - echo >&2 "$topic is already up to date with master" - exit 1 ;# we could allow it, but there is no point. - else - exit 0 - fi -else - not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` - /usr/bin/perl -e ' - my $topic = $ARGV[0]; - my $msg = "* $topic has commits already merged to public branch:\n"; - my (%not_in_next) = map { - /^([0-9a-f]+) /; - ($1 => 1); - } split(/\n/, $ARGV[1]); - for my $elem (map { - /^([0-9a-f]+) (.*)$/; - [$1 => $2]; - } split(/\n/, $ARGV[2])) { - if (!exists $not_in_next{$elem->[0]}) { - if ($msg) { - print STDERR $msg; - undef $msg; - } - print STDERR " $elem->[1]\n"; - } - } - ' "$topic" "$not_in_next" "$not_in_master" - exit 1 -fi - -<<\DOC_END - -This sample hook safeguards topic branches that have been -published from being rewound. - -The workflow assumed here is: - - * Once a topic branch forks from "master", "master" is never - merged into it again (either directly or indirectly). - - * Once a topic branch is fully cooked and merged into "master", - it is deleted. If you need to build on top of it to correct - earlier mistakes, a new topic branch is created by forking at - the tip of the "master". This is not strictly necessary, but - it makes it easier to keep your history simple. - - * Whenever you need to test or publish your changes to topic - branches, merge them into "next" branch. - -The script, being an example, hardcodes the publish branch name -to be "next", but it is trivial to make it configurable via -$GIT_DIR/config mechanism. - -With this workflow, you would want to know: - -(1) ... if a topic branch has ever been merged to "next". Young - topic branches can have stupid mistakes you would rather - clean up before publishing, and things that have not been - merged into other branches can be easily rebased without - affecting other people. But once it is published, you would - not want to rewind it. - -(2) ... if a topic branch has been fully merged to "master". - Then you can delete it. More importantly, you should not - build on top of it -- other people may already want to - change things related to the topic as patches against your - "master", so if you need further changes, it is better to - fork the topic (perhaps with the same name) afresh from the - tip of "master". - -Let's look at this example: - - o---o---o---o---o---o---o---o---o---o "next" - / / / / - / a---a---b A / / - / / / / - / / c---c---c---c B / - / / / \ / - / / / b---b C \ / - / / / / \ / - ---o---o---o---o---o---o---o---o---o---o---o "master" - - -A, B and C are topic branches. - - * A has one fix since it was merged up to "next". - - * B has finished. It has been fully merged up to "master" and "next", - and is ready to be deleted. - - * C has not merged to "next" at all. - -We would want to allow C to be rebased, refuse A, and encourage -B to be deleted. - -To compute (1): - - git rev-list ^master ^topic next - git rev-list ^master next - - if these match, topic has not merged in next at all. - -To compute (2): - - git rev-list master..topic - - if this is empty, it is fully merged to "master". - -DOC_END diff --git a/documents.git/hooks/pre-receive.sample b/documents.git/hooks/pre-receive.sample deleted file mode 100644 index a1fd29e..0000000 --- a/documents.git/hooks/pre-receive.sample +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# -# An example hook script to make use of push options. -# The example simply echoes all push options that start with 'echoback=' -# and rejects all pushes when the "reject" push option is used. -# -# To enable this hook, rename this file to "pre-receive". - -if test -n "$GIT_PUSH_OPTION_COUNT" -then - i=0 - while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" - do - eval "value=\$GIT_PUSH_OPTION_$i" - case "$value" in - echoback=*) - echo "echo from the pre-receive-hook: ${value#*=}" >&2 - ;; - reject) - exit 1 - esac - i=$((i + 1)) - done -fi diff --git a/documents.git/hooks/prepare-commit-msg.sample b/documents.git/hooks/prepare-commit-msg.sample deleted file mode 100644 index 10fa14c..0000000 --- a/documents.git/hooks/prepare-commit-msg.sample +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare the commit log message. -# Called by "git commit" with the name of the file that has the -# commit message, followed by the description of the commit -# message's source. The hook's purpose is to edit the commit -# message file. If the hook fails with a non-zero status, -# the commit is aborted. -# -# To enable this hook, rename this file to "prepare-commit-msg". - -# This hook includes three examples. The first one removes the -# "# Please enter the commit message..." help message. -# -# The second includes the output of "git diff --name-status -r" -# into the message, just before the "git status" output. It is -# commented because it doesn't cope with --amend or with squashed -# commits. -# -# The third example adds a Signed-off-by line to the message, that can -# still be edited. This is rarely a good idea. - -COMMIT_MSG_FILE=$1 -COMMIT_SOURCE=$2 -SHA1=$3 - -/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" - -# case "$COMMIT_SOURCE,$SHA1" in -# ,|template,) -# /usr/bin/perl -i.bak -pe ' -# print "\n" . `git diff --cached --name-status -r` -# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; -# *) ;; -# esac - -# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') -# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" -# if test -z "$COMMIT_SOURCE" -# then -# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" -# fi diff --git a/documents.git/hooks/push-to-checkout.sample b/documents.git/hooks/push-to-checkout.sample deleted file mode 100644 index af5a0c0..0000000 --- a/documents.git/hooks/push-to-checkout.sample +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -# An example hook script to update a checked-out tree on a git push. -# -# This hook is invoked by git-receive-pack(1) when it reacts to git -# push and updates reference(s) in its repository, and when the push -# tries to update the branch that is currently checked out and the -# receive.denyCurrentBranch configuration variable is set to -# updateInstead. -# -# By default, such a push is refused if the working tree and the index -# of the remote repository has any difference from the currently -# checked out commit; when both the working tree and the index match -# the current commit, they are updated to match the newly pushed tip -# of the branch. This hook is to be used to override the default -# behaviour; however the code below reimplements the default behaviour -# as a starting point for convenient modification. -# -# The hook receives the commit with which the tip of the current -# branch is going to be updated: -commit=$1 - -# It can exit with a non-zero status to refuse the push (when it does -# so, it must not modify the index or the working tree). -die () { - echo >&2 "$*" - exit 1 -} - -# Or it can make any necessary changes to the working tree and to the -# index to bring them to the desired state when the tip of the current -# branch is updated to the new commit, and exit with a zero status. -# -# For example, the hook can simply run git read-tree -u -m HEAD "$1" -# in order to emulate git fetch that is run in the reverse direction -# with git push, as the two-tree form of git read-tree -u -m is -# essentially the same as git switch or git checkout that switches -# branches while keeping the local changes in the working tree that do -# not interfere with the difference between the branches. - -# The below is a more-or-less exact translation to shell of the C code -# for the default behaviour for git's push-to-checkout hook defined in -# the push_to_deploy() function in builtin/receive-pack.c. -# -# Note that the hook will be executed from the repository directory, -# not from the working tree, so if you want to perform operations on -# the working tree, you will have to adapt your code accordingly, e.g. -# by adding "cd .." or using relative paths. - -if ! git update-index -q --ignore-submodules --refresh -then - die "Up-to-date check failed" -fi - -if ! git diff-files --quiet --ignore-submodules -- -then - die "Working directory has unstaged changes" -fi - -# This is a rough translation of: -# -# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX -if git cat-file -e HEAD 2>/dev/null -then - head=HEAD -else - head=$(git hash-object -t tree --stdin &2 - exit 1 -} - -unset GIT_DIR GIT_WORK_TREE -cd "$worktree" && - -if grep -q "^diff --git " "$1" -then - validate_patch "$1" -else - validate_cover_letter "$1" -fi && - -if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL" -then - git config --unset-all sendemail.validateWorktree && - trap 'git worktree remove -ff "$worktree"' EXIT && - validate_series -fi diff --git a/documents.git/hooks/update.sample b/documents.git/hooks/update.sample deleted file mode 100644 index c4d426b..0000000 --- a/documents.git/hooks/update.sample +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/sh -# -# An example hook script to block unannotated tags from entering. -# Called by "git receive-pack" with arguments: refname sha1-old sha1-new -# -# To enable this hook, rename this file to "update". -# -# Config -# ------ -# hooks.allowunannotated -# This boolean sets whether unannotated tags will be allowed into the -# repository. By default they won't be. -# hooks.allowdeletetag -# This boolean sets whether deleting tags will be allowed in the -# repository. By default they won't be. -# hooks.allowmodifytag -# This boolean sets whether a tag may be modified after creation. By default -# it won't be. -# hooks.allowdeletebranch -# This boolean sets whether deleting branches will be allowed in the -# repository. By default they won't be. -# hooks.denycreatebranch -# This boolean sets whether remotely creating branches will be denied -# in the repository. By default this is allowed. -# - -# --- Command line -refname="$1" -oldrev="$2" -newrev="$3" - -# --- Safety check -if [ -z "$GIT_DIR" ]; then - echo "Don't run this script from the command line." >&2 - echo " (if you want, you could supply GIT_DIR then run" >&2 - echo " $0 )" >&2 - exit 1 -fi - -if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then - echo "usage: $0 " >&2 - exit 1 -fi - -# --- Config -allowunannotated=$(git config --type=bool hooks.allowunannotated) -allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) -denycreatebranch=$(git config --type=bool hooks.denycreatebranch) -allowdeletetag=$(git config --type=bool hooks.allowdeletetag) -allowmodifytag=$(git config --type=bool hooks.allowmodifytag) - -# check for no description -projectdesc=$(sed -e '1q' "$GIT_DIR/description") -case "$projectdesc" in -"Unnamed repository"* | "") - echo "*** Project description file hasn't been set" >&2 - exit 1 - ;; -esac - -# --- Check types -# if $newrev is 0000...0000, it's a commit to delete a ref. -zero=$(git hash-object --stdin &2 - echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 - exit 1 - fi - ;; - refs/tags/*,delete) - # delete tag - if [ "$allowdeletetag" != "true" ]; then - echo "*** Deleting a tag is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/tags/*,tag) - # annotated tag - if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 - then - echo "*** Tag '$refname' already exists." >&2 - echo "*** Modifying a tag is not allowed in this repository." >&2 - exit 1 - fi - ;; - refs/heads/*,commit) - # branch - if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then - echo "*** Creating a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/heads/*,delete) - # delete branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/remotes/*,commit) - # tracking branch - ;; - refs/remotes/*,delete) - # delete tracking branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a tracking branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - *) - # Anything else (is there anything else?) - echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 - exit 1 - ;; -esac - -# --- Finished -exit 0 diff --git a/documents.git/info/exclude b/documents.git/info/exclude deleted file mode 100644 index a5196d1..0000000 --- a/documents.git/info/exclude +++ /dev/null @@ -1,6 +0,0 @@ -# git ls-files --others --exclude-from=.git/info/exclude -# Lines that start with '#' are comments. -# For a project mostly in C, the following would be a good set of -# exclude patterns (uncomment them if you want to use them): -# *.[oa] -# *~ diff --git a/public/img/docusaurus-social-card.jpg b/public/img/docusaurus-social-card.jpg deleted file mode 100644 index a3c9ff1..0000000 Binary files a/public/img/docusaurus-social-card.jpg and /dev/null differ diff --git a/public/img/docusaurus.png b/public/img/docusaurus.png deleted file mode 100644 index f458149..0000000 Binary files a/public/img/docusaurus.png and /dev/null differ diff --git a/public/img/logo.svg b/public/img/logo.svg deleted file mode 100644 index c1f4a5d..0000000 --- a/public/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/img/undraw_docusaurus_mountain.svg b/public/img/undraw_docusaurus_mountain.svg deleted file mode 100644 index af961c4..0000000 --- a/public/img/undraw_docusaurus_mountain.svg +++ /dev/null @@ -1,171 +0,0 @@ - - Easy to Use - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/img/undraw_docusaurus_react.svg b/public/img/undraw_docusaurus_react.svg deleted file mode 100644 index 94b5cf0..0000000 --- a/public/img/undraw_docusaurus_react.svg +++ /dev/null @@ -1,170 +0,0 @@ - - Powered by React - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/img/undraw_docusaurus_tree.svg b/public/img/undraw_docusaurus_tree.svg deleted file mode 100644 index d9161d3..0000000 --- a/public/img/undraw_docusaurus_tree.svg +++ /dev/null @@ -1,40 +0,0 @@ - - Focus on What Matters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/pdf/_temp_20250606.doc b/public/pdf/_temp_20250606.doc deleted file mode 100644 index 2e7b94c..0000000 Binary files a/public/pdf/_temp_20250606.doc and /dev/null differ diff --git a/public/test.pdf b/public/test.pdf deleted file mode 100644 index f8f508f..0000000 Binary files a/public/test.pdf and /dev/null differ diff --git "a/reference/\346\227\247\344\275\220\345\267\235\351\202\270\345\205\254\345\234\222_\343\201\276\343\201\250\343\202\201.md" "b/reference/\346\227\247\344\275\220\345\267\235\351\202\270\345\205\254\345\234\222_\343\201\276\343\201\250\343\202\201.md" deleted file mode 100644 index bad9c2e..0000000 --- "a/reference/\346\227\247\344\275\220\345\267\235\351\202\270\345\205\254\345\234\222_\343\201\276\343\201\250\343\202\201.md" +++ /dev/null @@ -1,199 +0,0 @@ -# 旧佐川邸公園(合気公園)の軌跡 — 完全版 - -## 概要 - -大東流合気武術の第一人者・佐川幸義氏の御遺族より、平成28年(2016年)10月、小平市に土地(1,147.35㎡)と現金(2,947万1,353円)が寄贈された。市は当初、整備費用(約6,300万円)捻出のため土地の約3割(346㎡)を売却する計画を立てた。 - -これに対し、平成31年(令和元年)7月、安竹洋平が中心となり市民団体「旧佐川邸の公園化を考える会」を設立。毎月の会議、市の担当課・財政課との粘り強い折衝、4回の市民ワークショップ、請願の提出・採択、そして小平市初となるふるさと納税クラウドファンディングの実現を通じて、土地を売却せずに公園として残すことに成功した。令和6年度、「合気公園」として開園。 - -**安竹洋平の役割**: 全ミーティングの記録係・コーディネーター、請願の紹介議員(筆頭)、趣旨説明・賛成討論の担当、ふるさと納税活用スキームの構築主導、議員間の超党派調整。 - ---- - -## 特筆すべき点 — この事業の歴史的意義 - -1. **市の計画を市民の力で覆した**: 一度は道場関係者も了承した3割売却案を、データに基づく提案と粘り強い協議で撤回させた -2. **小平市初のふるさと納税クラウドファンディング**: 特定公園のための寄附募集という前例のない手法を、市の企画政策部長・財政課長・環境部長・公園課長との直接協議で実現 -3. **完全な透明性**: 全議事録をウェブ公開。市職員の実名・発言も記録 -4. **遺言の実現**: 「自宅の跡地を笑顔で過ごせる公園にし、合気公園の名称で将来合気の聖地として親しまれる場所に」という故人の願いが8年の歳月を経て結実 -5. **市民参加型公園づくりの先駆例**: ランドスケープデザイナーを交えた4回のワークショップ、近隣アンケート調査(非常に高い回答率)、アダプト制度による自主管理まで視野に入れた持続可能なモデル - ---- - -## 詳細タイムライン - -| 年月 | 出来事 | -|------|--------| -| H26.6.11 | 佐川幸義氏のご子息・敬行氏が亡くなる。遺言公正証書には「土地を公園として活用。願わくは父の顕彰碑を建ててほしい」と記される | -| H28.10.5 | 土地(1,147.35㎡)+現金(2,947万1,353円)を小平市へ寄贈 | -| H28.11〜H30.4 | 市から売却案が繰り返し提示(480㎡→470㎡→300㎡→346㎡等)。近隣住民にはほとんど情報が共有されず | -| H31.4.9 | 道場関係者、346㎡(約3割)売却を了承。しかし地域住民には周知されておらず | -| R1.7 | 市が「売却する」と正式表明。周辺住民に衝撃が走る | -| R1.7〜8 | 周辺住民の有志による「旧佐川邸の公園化を考える会」の立ち上げを橋本久雄元議員と安竹がサポート(毎回15〜20名参加) | -| R1.7.31 | 寄附金3,000万円は原則に使わなくてもよいことを確認 | -| R1.9.8 | 市「ふるさと納税は使わない」と回答 | -| R1.10.2 | 市へ質問書を提出 | -| R1.11.7 | 考える会ミーティング。コンセプト案作成開始 | -| R2.2.2 | 考える会ミーティング。ランドスケープデザイナー鈴木綾氏が参加 | -| R2.3.15 | 考える会で情報共有 + 市へのアプローチ戦略を協議 | -| R2.6.28〜R3.9.12 | 考える会の定期ミーティング(毎月1回)+水と緑と公園課との協議を並行 | -| R2.8.13 | 整備費用6,300万円の内訳を市の担当技師(山下氏)から直接聴取。安竹が詳細な議事録を作成。「ざっくりした手書き図面ベース、多めに計上」であることを確認 | -| R3.2.7 | 市長選挙立候補予定者2名と考える会の意見交換会。どちらも趣旨に賛同、ふるさと納税にも前向き | -| **R3.3** | **請願提出**: 安竹洋平が筆頭紹介議員となり、6名の市議(安竹、鈴木洋一、きせ恵美子、水口かずえ、小林洋子、山浦まゆみ)の紹介で「旧佐川邸の土地を売らないことも含め、市民の意見を聞きながら公園整備を行うことについて」を提出 | -| R3.3 | 安竹が総務委員会で趣旨説明(30分超の詳細プレゼン)。請願事項の背景、予算分析、アンケート結果、ふるさと納税の法的根拠を説明 | -| R3.3 | 安竹が本会議で賛成討論。ヘルパー証言に基づく遺言の真実性、ふるさと納税が遺志に反しない法的根拠を論証 | -| **R3.3** | **請願 可決** | -| R3.4.20 | 水と緑と公園課との拡大ミーティング(参加者14名)。鈴木綾氏が公園コンセプトを提示。市民参加型ワークショップ開催を提案 | -| R3.5.25 | 財政課・公園課との最終調整会議。財源確保策・工事費削減の具体的協議 | -| **R3.9.19〜R4.1.16** | **4回の市民ワークショップ**。鈴木綾氏が進行、安竹が全記録を作成 | -| **R3.10.4** | **ふるさと納税活用ミーティング**。市の企画政策部長・財政課長・環境部長・公園課長が参加。クラウドファンディングの詳細決定。安竹が全記録を作成 | -| R3.10下旬 | ふるさと納税募集開始(小平市初のクラウドファンディング型ふるさと納税) | -| R4.3末 | ふるさと納税終了 | -| R4.6 | 寄附額を踏まえ売却面積を決定、公園設計開始 | -| R5.2.28 | 安竹が代表質問で「佐川合気公園」について質問 | -| R5年度 | 公園整備工事開始 | -| **R6年度** | **合気公園 開園** | -| R6.6 | 合気公園アダプト制度(市民による自主管理)の検討 | - ---- - -## 請願の詳細 - -### 請願事項 - -1. 旧佐川邸の土地を売らないことも含めて、市民の意見を聞きながら公園整備を行ってください -2. ふるさと納税について、「制度本来の趣旨に沿った、一定額以上の寄附が見込める場合に限る」、「他市財源を奪わないよう、寄附上限額を意識する」等の条件を付した上で、活用を検討してください -3. (※提出前に削除)平櫛田中氏や齋藤素巖氏と同様に、佐川幸義氏も市の歴史的な人物の一人としてスポットを当てることを検討してください - -※請願事項3は公明党が「紹介議員を出せない」と判断したため、全会一致を得るために削除された - -### 紹介議員(6名) - -安竹洋平(筆頭)、鈴木洋一、きせ恵美子、水口かずえ、小林洋子、山浦まゆみ - -### 安竹の趣旨説明における主要論点 - -1. **「土地を売らない」という選択肢を検討テーブルに**: 市が客観的に検討してこなかった選択肢を正式な検討対象に -2. **ふるさと納税の適法性**: 返礼品競争ではない公園整備目的の寄附募集は、市も「他市の財源を奪う」と問題視してきた返礼品競争とは全く別物 -3. **市長選候補との意見交換**: 2名の候補者がどちらも趣旨に賛同し、ふるさと納税にも前向き -4. **予算の詳細分析**: 市の6,300万円概算は「多めに計上」されており、3,000万円近くまで圧縮可能 -5. **近隣アンケート**: 非常に高い回答率。休憩・散策・自然観察へのニーズが高い -6. **公園コンセプト案**: ランドスケープデザイナー監修の具体的なデザイン案を提示 - -### 安竹の賛成討論における反論 - -1. **遺言の信憑性**: 「自宅の跡地を笑顔で過ごせる公園に」という敬行氏の言葉は、長年介護を担当したヘルパーが直接聞いたものであり、議会後に電話確認済み。「いつでも証言する」とのこと -2. **ふるさと納税と遺志**: 「市が財政負担をすることは遺志に反する」という市側の主張は誤り。遺言公正証書には市の財政負担やふるさと納税について一切記載がない - ---- - -## 緊急質問通告書(R3.4臨時会) - -安竹が「佐川邸公園」について緊急質問を通告。市の対応を議会で追及。 - -## 代表質問(R5.2.28) - -安竹が代表質問で「佐川合気公園について」質問。整備進捗と市民参加の継続を確認。 - -## アダプト制度(R6.6) - -合気公園の持続可能な管理のため、市民によるアダプト制度(自主管理)の導入を検討。安竹が関与。 - ---- - -## ふるさと納税(クラウドファンディング)の詳細 - -### 目標額と売却回避の仕組み - -ふるさと納税の寄附額に応じて、売却する区画を段階的に減らす設計: - -| ふるさと納税寄附額 | 売却区画数 | -|-------------------|-----------| -| 1,400万円未満 | 3区画(当初計画通り) | -| 1,400万円以上 | 2区画 | -| 3,700万円以上 | 1区画 | -| 6,300万円以上 | 売却なし | - -### 財源の優先順位 - -``` -補助金 → ふるさと納税 → 土地売却益 → 遺贈寄附金 -(整備費用を超えた分は緑化基金に積立、維持管理費に充当) -``` - -### 特徴的な点 - -- **小平市初の試み**: 特定公園のためのクラウドファンディング型ふるさと納税 -- **返礼品なし**: 道場関係者は「名前を刻む必要なし」と固辞 -- **税額控除2か年**: 10〜12月はR4年度、1〜3月はR5年度の控除対象 -- **ふるさとチョイス利用**: 手数料200万円(8.5%) -- **道場関係者の寄附見込**: 約1,400万円(60名中、10万円超は6名程度) - ---- - -## 整備費用の内訳 - -### 工事費(令和3年10月時点) - -| 項目 | 金額 | -|------|------| -| 公園整備工事 | 5,700万円 | -| 道路整備工事 | 600万円 | -| 公園設計 | 630万円 | -| ふるさと納税経費 | 200万円 | -| **工事費合計** | **約7,300万円** | - -### 財源想定 - -| 項目 | 金額 | -|------|------| -| 遺贈寄附金 | 約2,990万円 | -| 東京都補助金(見込) | 約2,300万円 | -| ふるさと納税(目標) | 1,400万〜6,300万円 | -| 土地売却益(不足分) | 変動 | - -※安竹が市の技師から直接聴取した当初の6,300万円概算は「不明点が多いため多めに計上」「にこにこ公園の単価をベースに計算」「単価を変えた理由は特にない」との説明。安竹は工事費を3,000万円近くまで圧縮可能と試算。 - ---- - -## 市民参加プロセス - -### 4回のワークショップ(R3.9〜R4.1) - -- **第1回**(R3.9.19):現地視察、アンケート結果報告、計画案説明(参加者21名) -- **第2回**(R3.10.23):公園デザインの詳細検討 -- **第3回**(R3.12.11):具体的な配置・設備の検討 -- **第4回**(R4.1.16):報告会、最終提案の取りまとめ - -各回ともランドスケープデザイナー鈴木綾氏が進行。安竹は全4回の記録を作成。水と緑と公園課の佐藤課長も第1回を傍聴。 - -### 近隣アンケート調査 - -- 周辺自治会を通じて配布・回収(小平市が直接回収) -- **非常に高い回答率**(任意アンケートとして異例、国分寺市側でも22%) -- 主なニーズ:休憩・散策(最多)、花・木・生物観察、ほぼ毎日〜週1回の利用希望 -- 「水を入れる池」には反対多数 → 日本庭園の石組みを活かした枯山水風に -- 防災井戸・子供の遊び場・高齢者の散歩道を要望 - ---- - -## 安竹洋平の具体的関与 - -- **団体設立の主導**: R1.7に市の売却表明を受け、「旧佐川邸の公園化を考える会」を設立 -- **全ミーティングの記録係**: 考える会(月1回×約2年間)、公園課協議(複数回)、財政課協議(複数回)、ワークショップ(4回)、ふるさと納税ミーティング — 全議事録を安竹が作成 -- **請願の筆頭紹介議員**: 6名の市議の紹介を取り付け、趣旨説明と賛成討論を自ら担当 -- **予算の精査**: 市の概算6,300万円の内訳を枝葉レベルで検証し、圧縮可能な項目を具体的に指摘 -- **ふるさと納税スキームの構築**: 市幹部(企画政策部長・財政課長・環境部長・公園課長)との直接協議を主導し、小平市初のクラウドファンディングを実現 -- **遺言の真実性の立証**: ヘルパーへの直接電話確認により、遺言の信憑性を議会で証明 -- **超党派の調整**: 佐藤悦子、竹井、橋本(久)、水口、山浦の各市議と連携 -- **情報公開**: 全議事録をウェブサイトで公開し、プロセスの透明性を確保 -- **議会での継続的フォロー**: 緊急質問(R3.4)、代表質問(R5.2)、アダプト制度検討(R6.6) - ---- - -## 佐川幸義氏の言葉 - -> 「合気は争う事を致さず」 -> 「合気の妙用は、天地森羅万象一切に合一同化し融和するにあり」 - -すぐにできることではなく、長い間の努力・訓練・工夫・研究によって少しずつできるようになることの大切さを説いた武人。その精神は、8年をかけて市民と行政が協働で実現したこの公園そのものに体現されている。 -- cgit v1.2.3-54-g00ecf