下書き / 非公開 / 予約公開#
publishState を有効にすると、本番ビルドは frontmatter の公開フィールドを守ります。省略または false は今までの挙動のままです。すべての Markdown ページが公開されます。
import { oxContent } from "@ox-content/vite-plugin";
export default {
plugins: [
oxContent({
publishState: true,
}),
],
};
false または省略はフィルタをオフのままにします。true は既定でオンです。オブジェクトを渡すと機能はオンになり、ビルド時の時計を注入できます。
oxContent({
publishState: {
now: "2026-08-24T00:00:00Z",
},
});
| オプション | 型 | 既定 |
|---|---|---|
publishState |
boolean / PublishStateOptions |
false |
now |
string(ISO-8601) |
システムの時計 |
開発サーバは下書きと、まだ公開時刻になっていないページを見せ続けます。プレビューできるようにするためです。本番 HTML、検索、sitemap からはそれらのページが外れます。
Frontmatter#
---
title: Work in progress
draft: true
---
| フィールド | 本番での結果 |
|---|---|
draft: true |
HTML、ナビ、検索、sitemap のいずれも出さない |
unlisted: true |
HTML は書き出す。ナビ、検索、sitemap からは外す |
scheduled |
その瞬間まで未公開 |
date |
値が有効なタイムスタンプなら scheduled と同じ |
expiry |
その瞬間以降は未公開 |
両方あるときは scheduled が date より優先です。draft と unlisted は JSON の true だけが真です。
タイムゾーンと不正な日付#
ナイーブなタイムスタンプ(2026-08-24 と 2026-08-24T12:00:00)は UTC です。+09:00 や Z のようなオフセットは尊重します。
不正な scheduled や expiry はページを未公開にします。不正な date は無視します。date は表示用メタデータとしても使うからです。不正な now オプションはシステムの時計に戻します。