コンテンツの作成と公開
このページで分かること
- 管理画面でエントリーを作成し、保存(下書き)と公開を別々の操作として進める流れ
- 自動保存、公開済みエントリーの変更、他の編集者との編集ロック、予約公開、リビジョンの復元、翻訳の作成
- ゴミ箱への移動と復元、完全削除の注意点、REST APIとCLIによる自動化
このページの目次
EmDashの管理画面を使って、エントリーを最初の下書きから公開ページまで進めます。エディターは下書きの変更を訪問者に見える版とは分けて保持するため、保存と公開は別々の操作です。
コレクションを開く
サイトの /_emdash/admin を開いてサインインします。サイドバーで、「Posts」や「Pages」などのコレクションを選択します。
コレクションのページには、そのエントリーが一覧表示されます。ここでは次の操作ができます。
- 「新規追加」を選択して、エントリーを作成する。
- エントリーのタイトル、スラッグ、検索対象に設定されたフィールドで検索する。
- 公開の状態、作成者、バイライン、日付、ロケールで絞り込む。
- エントリーを選択して、まとめて公開する、下書きに戻す、ゴミ箱に移動する。
- 「ゴミ箱」を開いて、エントリーを復元する、または完全に削除する。
エディターで使えるフィールドと公開の機能は、コレクションのコンテンツモデルによって決まります。たとえば、リビジョン、プレビュー、タクソノミー、検索に対応しているかどうかは、コレクションごとに異なります。
エントリーの作成と公開
-
コレクションのページで「新規追加」を選択します。
-
必須のフィールドを入力します。コレクションにタイトルのフィールドがある場合、EmDashはそれを使ってスラッグを提案します。スラッグは公開する前に編集できます。
-
本文と、抜粋、アイキャッチ画像、バイライン、カテゴリー、タグなどの補足のフィールドを追加します。
-
「保存」を選択します。最初の保存でエントリーが下書きとして作成され、そのエントリーの固定のエディターのURLが開きます。
-
下書きを確認します。コレクションがプレビューに対応している場合は、「プレビュー」を選択して、公開する前に描画されたページを確認します。
-
「公開」を選択します。保存した下書きが、公開用のコンテンツのクエリが返す公開中の版になります。
エントリーは、変わらないコンテンツのIDと、それとは別のスラッグを持ちます。スラッグを変えても、IDは引き続き同じエントリーを指します。テンプレートでは通常、getEmDashCollection() が返すURL用の識別子を使います。コンテンツの取得ガイドで、両方の値を説明しています。
やさしい解説
WordPressと同じく、「保存」と「公開」は別の操作です。「保存」した内容は下書きで、訪問者にはまだ見えません。「公開」を選択すると、その下書きがサイトに表示される版になります。エントリーには、あとから変わらないIDと、URLに使うスラッグの2つの識別子があり、スラッグを変えても同じエントリーであることはIDで判別されます。
リッチテキストの作成
Portable Textのフィールドには、見出し、段落、引用、リスト、リンク、画像、ギャラリー、コードブロック、表、HTMLブロック、再利用できるセクションを扱うブロックエディターがあります。インストールしたプラグインが、ブロックを追加することもあります。
選択したテキストの書式は、ツールバーで設定します。ブロックを挿入するには、段落の横にあるブロック追加の操作部品を選択するか、/ を入力してブロックを名前で検索します。画像とギャラリーのブロックは、画像フィールドと同じメディアピッカーを開きます。
画像ブロックを選択すると、その設定で、その場所での画像の使用を差し替えたり削除したりでき、表示サイズ、配置、代替テキスト、キャプション、任意のツールチップを設定できます。「Edit asset」を選択すると、元になっているメディアライブラリの項目が開きます。そこでアセットを変更したり差し替えたりすると、そのアセットを使っているほかのエントリーにも影響することがあります。この違いについては、メディアライブラリを参照します。
下書きの変更の保存
最初の保存のあとは、入力を止めてから2秒後に、エディターが変更を自動保存します。「保存」ボタンの表示は「保存中…」を経て「保存済み」に変わるため、サーバーが下書きを受け付けたことを確認できます。自動保存は、現在の自動保存のリビジョンを置き換えます。入力を止めるたびに変更履歴へ記録が増えることはありません。
編集の途中のある時点を変更履歴に残したいときは、「保存」を選択します。保存に失敗した場合、エディターは保存されていないフィールドをそのまま残し、エラーを表示します。ボタンが「保存済み」に戻るか、保存されていない内容を別の場所にコピーするまでは、ページを離れないでください。
公開済みのエントリーでは、変更を保存しても更新されるのは下書きだけです。訪問者には、引き続き以前の公開中のリビジョンが表示されます。保留中の版の確認には「下書きをプレビュー」を、公開中の版の確認には「ライブビュー」を使い、下書きで置き換える準備ができたら「Publish changes」を選択します。
公開済みのエントリーのスラッグの変更も、同じ下書きの流れに従います。公開URLが変わるのは、自動保存が実行されたときではなく、下書きを公開したときです。
やさしい解説
WordPressの自動保存と同じく、EmDashも入力を止めると自動で下書きを保存します。公開済みの記事を直した場合、直した内容は下書きとして保存されるだけで、サイトには公開中の版が表示され続けます。サイトに反映するには「Publish changes」を選択します。スラッグ(URL)の変更も同じで、公開するまで公開URLは変わりません。
ほかの編集者との作業
エントリーを開くと、そのエントリーとロケールの編集ロックを取得します。ほかの人がすでに開いている場合、EmDashはロックを持っている人を示し、2つの選択肢を表示します。
- 「Open read-only」は、編集を受け付けない状態でエントリーを表示します。そのため、破棄されてしまう内容を入力することがありません。
- 「Take over」は、ロックを自分に移します。相手が入力した内容は相手の手元に残りますが、2分以内に相手のエディターに、自分がエントリーを持っていることが表示されます。相手の次の保存は拒否されます。
ロックは、エントリーを開いている間は更新され続け、エディターを離れるかタブを閉じると解放されます。ブラウザーやパソコンがロックを解放せずに閉じた場合、ロックは最後の更新から7分後に期限切れになります。
ロックはロケールごとに独立しているため、2人が同じエントリーの別の翻訳を編集できます。スクリプトやAPIクライアントも、ほかの編集者がロックを持っている間は、ドキュメントに記載された上書きの方法を使わない限り拒否されます。APIの動作の全体については、エントリーの編集ロックを参照します。
管理者は、「コンテンツタイプ」で対象のコレクションを開き、「Edit locking」で、そのコレクションのロックを無効にできます。
変更の公開と予約公開
公開の操作部品の表示は、保存した下書きがどうなるかを示します。
- 「公開」は、新しい下書きを公開します。
- 「Publish changes now」は、公開済みのエントリーの保留中の変更を、すぐに公開します。
- 「Schedule publication」は、新しいエントリーを公開する日時を設定します。
- 「Schedule changes」は、保留中の変更が現在の公開中のリビジョンを置き換える日時を設定します。
- 「Change schedule」または「Remove schedule」は、設定済みの予約を更新します。
- 「Unpublish」は、公開中のリビジョンを公開用のクエリの結果から外し、編集できる下書きを残します。
エントリーの公開を予約するには、先にエントリーを保存し、公開のメニューを開いて、該当する予約の操作を選び、未来の日付と時刻を選択します。エディターには、予約に使うタイムゾーンが表示されます。その日時になるまでは、現在の公開中のリビジョンが公開されたままです。新しいエントリーの場合は、まだ何も公開されていません。
Node.jsでのデプロイでは、予約公開の定期処理が自動で実行されます。Cloudflare Workersでは、Cron Triggerが必要です。Cloudflareのスターターテンプレートにはこれが含まれています。既存のデプロイでは、予約公開に従ってトリガーを確認できます。
やさしい解説
WordPressの予約投稿と同じく、公開する日時を指定できます。新しい記事は指定した日時に公開され、公開済みの記事の修正は指定した日時に差し替わります。それまでは、今の版が表示され続けます。Cloudflare Workersで動かす場合は、決まった時刻に処理を実行するCron Triggerが必要です。公式のCloudflare用スターターテンプレートには、最初から含まれています。
リビジョンの復元
リビジョンに対応しているコレクションでは、設定パネルに「変更履歴」が表示されます。展開すると、保存された版と、版と版の間で変わったフィールドを確認できます。リビジョンを選択して内容を確認し、その版をもう一度使いたい場合は「復元」を選択します。
復元すると、選択した内容を持つ新しいリビジョンが作られます。それより前のリビジョンは消えないため、復元したあとも一連の履歴をすべて確認できます。
エントリーの翻訳
国際化を有効にしている場合、「翻訳」パネルに、現在のエントリーについて設定済みのロケールが表示されます。
-
翻訳元のエントリーを開き、設定パネルで「翻訳」を探します。
-
まだエントリーがないロケールで「翻訳」を選択します。
-
コピーされたタイトル、スラッグ、本文、そのほかの翻訳できるフィールドを編集します。
-
「保存」を選択し、翻訳の準備ができたら公開するか、公開を予約します。
それぞれの翻訳は、独自のスラッグ、公開の状態、予約、変更履歴を持ちます。コレクションのページのロケール選択を使うと、1つの言語だけを表示できます。
コンテンツをゴミ箱に移動する
エントリーの操作メニューを開くか、コレクションのページで1行以上を選択して、「ゴミ箱に移動」を選びます。ゴミ箱に移動したエントリーは、通常のコンテンツのクエリには表示されなくなりますが、コレクションの「ゴミ箱」タブに残ります。
「ゴミ箱」で「復元」を選択すると、エントリーをコレクションに戻せます。
コンテンツの作業の自動化
REST APIとEmDashのCLIも、同じ下書きと公開のワークフローに対応しています。コレクションのフィールドは、リクエストの data オブジェクトの中に入れます。更新すると下書きのリビジョンが保存され、公開は別の操作です。更新や公開のときは最新の _rev の値を渡します。そうすると、サーバーは、古い内容で新しい作業を上書きせずに、その書き込みを拒否します。
リクエストの本文、権限、ロックの上書き、公開、予約公開、復元、完全な削除については、REST APIリファレンスを使います。同じ操作をするターミナルのコマンドについては、CLIリファレンスを使います。
公開済みのエントリーをAstroのサイトで描画するにはコンテンツの取得に、再利用できるファイルを追加して管理するにはメディアライブラリに進みます。