Classification belongs next to everything else the author decides before
publishing, and the drawer should only configure paid resources.
- PublishSettings now renders categories, tags and custom taxonomy
dimensions first, then cover, paid content and scheduling. Chips use a
stacked row layout so long category lists wrap naturally.
- PublishDrawer keeps only PayPanel: taxonomy, save/publish buttons and the
now-unused props are gone, leaving a single 完成 button.
- New PublishDialog takes over the publish action from the bottom bar, and
with it the captcha mount point, so the gate still renders somewhere the
author can see it.
- Promotes .jio-creator-primary / .jio-creator-ghost out of the dialog-only
rules (drawer and pay panel buttons had no styling), and drops the dead
.jio-creator-field / .jio-creator-cover blocks.
Contracts updated; 886 widget-system tests pass.
The card below the writing surface only offered cover and scheduling, so
paid content could only be reached through the bottom bar's 发布 button.
- The card gains a 付费内容 row (rendered only with canPay): a toggle bound
to draft.pay.enabled, a status line that reflects whether resources were
added, and a 配置价格与付费资源 link.
- Turning the toggle on opens the publish drawer and scrolls it to the pay
section, so pricing is the next thing the author sees. Entering from the
bottom bar keeps the drawer at the top.
Toolbar
- New ToolMenu renders menus through a portal on body, so they are no longer
clipped by the horizontally scrolling toolbar and no longer fall back to a
native <select>. Triggers reuse .jio-creator__tool-btn geometry, fixing the
heading button's mismatched height/size/position.
- Heading / list / align / quote / hidden-content are all dropdowns.
- Lists: unordered + ordered via InsertOrderedList/InsertUnorderedList.
The TOC button is removed (it also used the wrong icon).
- Adds left / center / right alignment.
- Adds hidden content: comment / login / VIP / paid, wired to the existing
[reply], [jio_hide mode="login"], [vip] and [payshow] shortcodes.
Editor content
- Quote blocks now match the live article: full .quote_q structure, four
colour variables, and an SVG-mask quote mark that does not depend on the
Font Awesome font being present inside the iframe.
- Block math is centred on a transparent background instead of a full-width
grey bar.
- Code blocks are plain <pre><code>, identical to the article page; language
and theme selection is gone and EnlighterJS handles highlighting globally.
The classic submit editor's code modal follows the same shape.
- Hidden content reuses the .tinymce-hide structure and shows a readable label
while keeping the shortcode text in the DOM for saving.
Block deletion
- Two-step delete, WPS style: the first click only selects and highlights the
block, the second click removes it. Clicking elsewhere or Esc cancels.
Contracts updated and extended; 884 widget-system tests pass.