编辑、草稿与发布
Editing, drafts and publishing
每个页面带有草稿指针和已发布指针。任何修改都会生成新的版本记录,公开路由只读取已发布版本,未发布的草稿会被明确提示,而不会被遗忘。
发布
Every change to a page creates a revision. Nothing is ever edited in place, and nothing is ever lost.
Two pointers
A page carries two pointers: the draft revision and the published revision. The public route reads the published one only. Editors see the draft. When the two are the same, there is nothing pending.
Save and publish
On a published page, the editor's primary action is Save and publish. One click, one revision, live immediately. Save as draft is the secondary action. In the composer, a finished proposal likewise offers Publish as the default. This is deliberate: client experience outranks editorial ceremony, and a forgotten republish is the kind of confusion that turns into a support call.
Pending drafts are never orphaned
When a draft is ahead of the published revision, the admin list marks the page, and the next time anyone opens it in edit mode the draft loads with a banner offering publish or discard. The client never has to remember that a draft exists.
What the editor can change
- the wording of any block, through a plain-text form that matches the block's kind: one line per list item, a blank line between numbered points, a last line starting with a dash for a quote's attribution
- any apparatus field, in every locale side by side
- photos: replace a cover or a figure, add, remove and reorder a sheet or the closing gallery, edit a caption
What the editor cannot change
The type of a block and the structure of the page. Those go back to the composer as a sentence: split the third paragraph, move the photos after the second heading, add a fact strip with the date and place.
Conflicts
Every save carries the version it started from. If the page changed in the meantime, the save is refused rather than overwriting newer work, and the editor is asked to reload. A composer proposal is bound to the draft revision it was made against in the same way.
Restore
Any revision can be restored. Restoring creates a new draft revision from the old one; it never deletes history.