Editing, drafts and publishing
编辑、草稿与发布
A page carries a draft pointer and a published pointer. Every change writes a new revision, the public route reads the published one, and pending drafts are surfaced rather than forgotten.
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.