=== KOTOTSUGI ===
Contributors: atshift
Tags: markdown, gutenberg, ai, editor, blocks
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

AIが作成したMarkdownを、編集可能なWordPressブロックへ変換します。

== Description ==

KOTOTSUGIは単独で動作するWordPressプラグインです。atshift Fieldsやatshift User Profile Fieldsの追加機能ではなく、どちらも必要としません。

KOTOTSUGI（言継ぎ）は、「言葉」を想起させる *koto* と、続ける・受け継ぐ・次へ渡すという意味を持つ *tsugi* を組み合わせた名前です。AIが作ったMarkdown原稿をWordPressへ受け渡し、人が編集を続けられる形にする役割を表しています。

KOTOTSUGIは、ブロックエディターにMarkdown取込専用の作業画面を追加します。ChatGPT、Claude、Geminiなどが作成した原稿を貼り付けるか、ローカルのMarkdownファイルを読み込み、広いプレビューで確認できます。変換後は、カーソル位置への追加、現在の本文の置換、新規下書き作成から反映方法を選べます。

見出し、段落、強調、リンク、画像、リスト、表、引用、コードブロック、水平線、`[!NOTE]` や `[!WARNING]` などのGitHub形式コールアウトに対応します。

かんたん投稿は、WordPress管理画面を覚えなくても使える、合言葉で保護された投稿専用ページを追加します。管理者が表示言語、投稿先、投稿者、既定カテゴリー、下書き保存または即時公開をあらかじめ固定します。

== Installation ==

1. `kototsugi` ディレクトリを `/wp-content/plugins/` へアップロードします。
2. WordPressのプラグイン画面でKOTOTSUGIを有効化します。
3. ブロックエディターで投稿または固定ページを開きます。
4. エディターのオプションメニューからKOTOTSUGIを選択します。
5. かんたん投稿を使う場合は、「設定」>「KOTOTSUGI」で投稿ページを設定します。

== 使い方 ==

エディターサイドバーからKOTOTSUGIを開き、`.md`、`.markdown`、`.txt` ファイルを選択するか、作業画面へMarkdownを貼り付けます。デスクトップでは原稿とプレビューを並べて表示し、狭い画面ではタブで切り替えます。「投稿設定」でFront Matterの値を確認し、「反映前の確認」で警告、反映方法、変換オプションを確認します。

初回確認では「テスト用mdファイルをセット」を選択すると、同梱サンプルを読み込んで作業画面を自動で開きます。

事前チェックでは、未対応記法、不正または相対指定の画像URL、見出し階層の飛び、複数のH1、タイトル競合を反映前に確認できます。各結果から該当するMarkdown行へ戻れます。情報表示は挿入を妨げず、エラーがある場合だけ反映を停止します。

「カーソル位置へ追加」は現在位置へブロックを追加し、「本文を置き換え」は確認後に既存ブロックを置換します。「新規下書きを作成」は別のWordPress下書きとして保存します。追加と置換では現在の投稿を自動保存しません。

ファイルはブラウザ内で読み込み、KOTOTSUGIからサーバーへアップロードしません。ファイルサイズ上限は2MBです。

外部画像の保存を有効にすると、Markdown内のHTTP・HTTPS画像をWordPressへダウンロードし、メディア添付ファイルとして保存します。画像上限はサイトのアップロード上限または10MBのうち小さい方です。プライベートネットワークURL、未対応形式、SVGは拒否します。画像を保存できない場合は元の外部URLを維持し、記事の挿入を続行します。

== AIにKOTOTSUGI向けの書き方を伝える ==

ChatGPT、Claude、Geminiなどへ記事作成を頼む前に、KOTOTSUGIの「AI用ルールをコピー」を選び、その内容を会話へ貼り付けるか、同梱する [**`KOTOTSUGI-RULES.md`**](https://github.com/at-shift/atshift-kototsugi/blob/main/rules/KOTOTSUGI-RULES.md) をAIへ渡します。このルールには、対応する構成、Front Matter、見出し順序、画像の代替テキストが記載されており、確認して取り込みやすい原稿をAIが作成できるようにします。ファイル自体は英語ですが、記事本文、読者に見える投稿設定、代替テキストを、母語を含む指定言語で書くようAIへ指示します。

== かんたん投稿 ==

かんたん投稿は、店舗スタッフ、高齢者、障がいのある方、WordPress管理画面の操作を難しく感じる方、たくさんの操作を覚えずに記事を更新したい方を対象にしています。記事を書く、確認する、送信するために必要な操作だけに絞り、Markdownやブロックエディターの知識を必要としません。

かんたん投稿では、タイトルと本文を入力し、プレビューと注意点を確認してから送信します。通常の文章と貼り付けたMarkdownの両方を受け付けます。空行は段落、一般的な箇条書き記号はリスト、前後に空行がある短い1行は見出しになります。

「便利な書き方をもっと見る」には、選択した表示言語に合う入力例を表示します。場所、重要事項、補足、料金、電話番号は、表示言語にかかわらず同梱15言語の記号や「場所：」「Phone:」などの自然なラベルを認識します。料金は `$10`、`10 €`、`Rp10.000`、`1,000円` のような前置・後置表記に対応し、入力された通貨表記を維持します。任意の短縮記法として `$ ` の後ろに金額を書くと、入力した数字を変えずに選択ロケールの既定通貨を適用します。空白のない `$10` は米ドル表記のままです。括弧、引用符など用途が重なる記号は短縮記法にせず、通常の文章として扱います。JPEG、PNG、GIF、WebP画像を5枚まで添付でき、代替テキストを編集してメディアライブラリへ保存できます。

投稿ページは共通の合言葉で保護し、ログイン失敗回数を安全に制限します。ブラウザーセッションは30日間有効で、ログアウト時にはそのセッションをサーバー側で失効します。投稿先、投稿者、カテゴリー、下書きまたは即時公開の動作は管理者が固定するため、投稿者が誤って変更することはありません。

本文入力欄ではOS標準の音声入力を利用できます。KOTOTSUGI自身はマイクへのアクセス、録音、音声サービスへの接続を行いません。

== 対応Markdown ==

* ATX形式の見出し（`# 見出し`）
* 段落、太字、斜体、インラインコード、リンク
* 画像（`![代替テキスト](https://example.com/image.jpg)`）
* 番号付き・番号なしリスト
* シンプルなGitHub Flavored Markdown形式の表
* 引用とフェンス付きコードブロック
* 水平線
* コールアウト: `NOTE`、`TIP`、`IMPORTANT`、`WARNING`、`CAUTION`
* YAML Front Matterの投稿設定

== 対応Front Matter ==

KOTOTSUGIは、AIが作成するMarkdown向けの限定的なYAML互換形式に対応します。検出した値は反映前に編集または無効化できます。

* `title`: 投稿タイトル
* `excerpt` または `description`: 投稿の抜粋
* `slug`: 投稿スラッグ
* `tags`: インラインまたは複数行のタグ一覧
* `categories`: インラインまたは複数行のカテゴリー一覧
* `featured_image`、`cover`、`image`: 外部アイキャッチ画像URL
* `featured_image_alt` または `image_alt`: アイキャッチ画像の代替テキスト

未対応のFront Matter項目は作業画面へ表示し、投稿には反映しません。KOTOTSUGIはFront Matterから投稿者、公開状態、公開日時を変更しません。

== Changelog ==

= 1.2.1 =
* URLに入れ子の括弧やエスケープした括弧を含むMarkdownのリンク・画像を正しく処理し、事前チェックと外部画像の取り込みにも反映。
* JavaScriptや伏せ字用スタイルが使えない場合も、かんたん投稿の合言葉を伏せて表示。拡張表示時の日本語入力にも引き続き対応。

= 1.2 =
* かんたん投稿で添付した画像のブロックが、ブロックエディタで無効と表示される不具合を修正。
* リンクURLとインラインコード内の `_` や `*` が強調に変換される不具合を修正。
* かんたん投稿で言語を指定したコードブロックが、ブロックエディタで無効と表示される不具合を修正。
* Markdownワークスペースを投稿編集画面だけで読み込むよう変更し、ウィジェット編集画面、カスタマイザー、サイトエディターで出るスクリプトの警告を解消。
* かんたん投稿の合言葉は3回まで誤っても待ち時間なしとし、同じ接続元からそれ以上誤ると1分、5分、15分、60分と待ち時間を延ばすよう変更。
* 次に合言葉を誤ると待ち時間が始まる場合は事前に知らせ、待ち時間が始まったときは待つ時間を表示するよう変更。
* 一度合言葉を入力できたブラウザは接続元とは別に誤入力を数え、共有回線の巻き添えを防ぎつつ、無制限の試行も防止。
* かんたん投稿で合言葉の誤りが多数発生したとき、1時間に1回までサイト管理者へメールで通知。

= 1.1 =
* 同梱する15言語それぞれに合う、かんたん投稿の書き方ヒントを表示。
* 表示言語にかかわらず、場所、重要事項、補足、料金、電話番号の多言語ラベルを認識。
* 一般的なUnicode箇条書き記号をシンプルなリストとして認識。
* 金額の前後に置かれた通貨記号・通貨コードを認識し、入力時の料金表記を維持。
* `$ `をロケール対応の任意料金ショートカットとして追加し、`$10`は米ドル表記として維持。

= 1.0 =
* 13ロケールの翻訳ファイルを追加。
* かんたん投稿の表示言語設定で、同梱する15言語を選択可能に変更。
* 対応する15言語すべてにローカライズしたサンプルMarkdownを追加。
* KOTOTSUGIが単独動作するプラグインであることを明記し、作者URLを更新。

= 0.5.1 =
* かんたん投稿でカスタム投稿タイプの作成権限と画像アップロード権限を確認。
* ブラウザごとに管理するセッションを追加し、ログアウト時にそのセッションを失効。
* ログイン試行と重複投稿防止を同時アクセス時にも安全な処理へ変更。
* 投稿完了画面と一時保存原稿を現在のセッションへ紐付け。
* ブロックの深さと件数に上限を設け、画像処理完了後に公開するよう改善。
* 外部画像の再利用前に添付ファイルの編集権限を確認。

= 0.5.0 =
* WordPress管理画面を使わない投稿者向けに、独立したかんたん投稿画面を追加。
* 合言葉保護、ログイン回数制限、署名付きセッション、CSRF対策、重複投稿防止を追加。
* 通常の文章とMarkdownの貼り付け、プレビュー、注意点の確認に対応。
* 投稿先、投稿者、カテゴリー、下書きまたは即時公開を管理者が固定できる設定を追加。
* ローカル画像のプレビュー、代替テキスト、メディアライブラリ保存、画像ブロック化に対応。
* かんたん投稿ではFront Matterの`status`と`author`を表示せず、安全に無視。
* OS標準の音声入力に対応し、プラグイン独自の録音機能は追加しない設計を採用。
* 場所、重要事項、補足、料金、電話番号を簡単な記号から構造化する書き方を追加。
* サイト言語とは別に、日本語または英語を選べる表示言語設定を追加。

= 0.4.1 =
* WordPressのユーザー言語に従う表示に変更し、英語原文と日本語翻訳を同梱。
* 投稿設定の件数、各タブの用途、3つの反映方法の動作説明を明確化。
* 上下に重複していた「確認と調整」を、上部の「反映前の確認」タブに統合。

= 0.4.0 =
* Front Matter投稿設定、変換前チェック、3つの反映方法、外部画像取込、サンプル原稿、AI向け執筆ルールを追加。
