Problem
Editors sometimes need to save work in the wiki repository before a page is ready for readers. LeafWiki currently has no unpublished page state, so partially written or embargoed content must be kept outside the normal editing workflow.
I would like to agree on the smallest acceptable draft-page contract before proposing an implementation.
Proposed minimum scope
- Draft state applies to leaf pages only and is persisted in frontmatter as
draft: true.
- Only authenticated editors and administrators can read or edit drafts.
- Anonymous and non-editor readers cannot access a draft directly or discover it through the page tree, search, tags, properties, favorites, or link-derived views.
- Publishing and returning a page to draft are explicit state transitions, separate from ordinary content edits.
- Structural operations that could accidentally expose a draft, such as moving or converting it, remain unavailable while it is a draft.
- The editor UI shows the current state and provides explicit publish/draft actions using the existing localization system.
Non-goals for the first version
- Draft sections or inherited draft state for subtrees
- Approval workflows or review assignments
- Scheduled publishing
- Per-user private drafts
- Multiple workflow states beyond draft and published
- General index or concurrency redesign
Visibility contract
The initial implementation should be end-to-end for the agreed minimum scope. It should not merge in a state where draft content is hidden from the main tree but still exposed through another public discovery endpoint.
Questions
- Is a leaf-page-only draft state acceptable for a first version?
- Should drafts be limited to editors/admins, or should any authenticated user be able to read them?
- Is
draft: true in frontmatter the preferred persistence format?
- Which structural operations should remain available while a page is a draft?
- Are there additional public discovery surfaces that should be part of the initial privacy contract?
If this direction is acceptable, I can prepare a focused implementation against the current main branch.
Problem
Editors sometimes need to save work in the wiki repository before a page is ready for readers. LeafWiki currently has no unpublished page state, so partially written or embargoed content must be kept outside the normal editing workflow.
I would like to agree on the smallest acceptable draft-page contract before proposing an implementation.
Proposed minimum scope
draft: true.Non-goals for the first version
Visibility contract
The initial implementation should be end-to-end for the agreed minimum scope. It should not merge in a state where draft content is hidden from the main tree but still exposed through another public discovery endpoint.
Questions
draft: truein frontmatter the preferred persistence format?If this direction is acceptable, I can prepare a focused implementation against the current
mainbranch.