dsh-maoying 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +169 -0
- package/README.md +17 -2
- package/bin/maoying.mjs +95 -50
- package/docs/creator-panel.md +33 -7
- package/docs/design.md +10 -7
- package/docs/spec.md +7 -4
- package/index.mjs +242 -88
- package/lib/base.css +156 -25
- package/lib/client.js +688 -232
- package/lib/epub.mjs +37 -6
- package/lib/novel-parse.mjs +171 -46
- package/lib/panel-core.mjs +116 -10
- package/lib/version.mjs +122 -36
- package/lib/yaml-loader.mjs +10 -2
- package/package.json +7 -2
- package/presets/maoying/agent.cordis.v2.yml +6 -1
- package/presets/maoying/agent.cordis.yml +5 -2
- package/presets/maoying/restrict.mjs +5 -6
- package/skills/maoying-review-checklist/SKILL.md +1 -1
- package/templates/novel/README.md +3 -3
- package/templates/novel/foreshadows.yml +1 -0
- package/templates/novel/timeline.yml +1 -1
package/lib/base.css
CHANGED
|
@@ -376,8 +376,8 @@ html[data-dsh-maoying-active]:not([data-dsh-mnemon-active]):not([data-dsh-taskbo
|
|
|
376
376
|
.myt-tableWrap { border: 1px solid var(--dsw-alias-border-l2); border-radius: 14px; background: var(--dsw-alias-bg-layer-3); overflow-x: auto; }
|
|
377
377
|
.myt-table { width: 100%; border-collapse: collapse; font-size: 12px; }
|
|
378
378
|
.myt-table th {
|
|
379
|
-
position:
|
|
380
|
-
|
|
379
|
+
/* 注:曾加 position:sticky 想吸附表头,但滚动发生在 .myt-tableWrap 内,
|
|
380
|
+
sticky 相对的滚动容器里表头不在滚动流上,永不生效,死效果已删。 */
|
|
381
381
|
padding: 8px 12px;
|
|
382
382
|
text-align: left;
|
|
383
383
|
background: var(--dsw-alias-bg-layer-2);
|
|
@@ -392,29 +392,7 @@ html[data-dsh-maoying-active]:not([data-dsh-mnemon-active]):not([data-dsh-taskbo
|
|
|
392
392
|
.myt-table tbody tr:hover { background: var(--dsw-alias-interactive-bg-hover); }
|
|
393
393
|
.myt-summaryCell { max-width: 320px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
|
|
394
394
|
|
|
395
|
-
/*
|
|
396
|
-
.myt-drawerMask {
|
|
397
|
-
position: fixed;
|
|
398
|
-
inset: 0;
|
|
399
|
-
z-index: 70;
|
|
400
|
-
display: flex;
|
|
401
|
-
align-items: stretch;
|
|
402
|
-
justify-content: flex-end;
|
|
403
|
-
background: color-mix(in srgb, var(--dsw-alias-bg-base, #000) 55%, transparent);
|
|
404
|
-
}
|
|
405
|
-
.myt-drawer {
|
|
406
|
-
display: flex;
|
|
407
|
-
flex-direction: column;
|
|
408
|
-
width: min(560px, 92vw);
|
|
409
|
-
margin: 0;
|
|
410
|
-
background: var(--dsw-alias-bg-layer-2);
|
|
411
|
-
border-left: 1px solid var(--dsw-alias-border-l2);
|
|
412
|
-
box-shadow: -12px 0 32px color-mix(in srgb, #000 25%, transparent);
|
|
413
|
-
}
|
|
414
|
-
.myt-drawerHead { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--dsw-alias-border-l1); }
|
|
415
|
-
.myt-drawerTitle { margin: 0; min-width: 0; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--dsw-alias-label-primary); overflow-wrap: anywhere; }
|
|
416
|
-
.myt-drawerBody { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
|
|
417
|
-
.myt-drawerFoot { flex: none; display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--dsw-alias-border-l1); }
|
|
395
|
+
/* 章节正文(整页阅读器;原右侧抽屉组件已移除,.myt-drawer* 系死样式一并删)*/
|
|
418
396
|
.myt-chapterBody {
|
|
419
397
|
margin: 0;
|
|
420
398
|
padding: 12px;
|
|
@@ -496,6 +474,21 @@ html[data-dsh-maoying-active]:not([data-dsh-mnemon-active]):not([data-dsh-taskbo
|
|
|
496
474
|
white-space: nowrap;
|
|
497
475
|
}
|
|
498
476
|
|
|
477
|
+
/* 伏笔条目缺 status 行徽章(服务端要求恰一处 status,缺行时写入必 409,
|
|
478
|
+
客户端相应禁用流转按钮,卡片上挂此徽章提示)*/
|
|
479
|
+
.myt-fsNoStatus {
|
|
480
|
+
flex: none;
|
|
481
|
+
padding: 0 6px;
|
|
482
|
+
border: 1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 40%, transparent);
|
|
483
|
+
border-radius: 999px;
|
|
484
|
+
background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);
|
|
485
|
+
color: var(--dsw-alias-state-error-primary);
|
|
486
|
+
font-size: 10px;
|
|
487
|
+
line-height: 14px;
|
|
488
|
+
font-weight: 500;
|
|
489
|
+
white-space: nowrap;
|
|
490
|
+
}
|
|
491
|
+
|
|
499
492
|
/* ── 五期:按单写作区块(章节 tab 顶部,共创模式主工作清单)─────────────── */
|
|
500
493
|
.myt-writeOrder { gap: 4px; }
|
|
501
494
|
.myt-writeOrderList { display: flex; flex-direction: column; }
|
|
@@ -711,3 +704,141 @@ html[data-dsh-maoying-active]:not([data-dsh-mnemon-active]):not([data-dsh-taskbo
|
|
|
711
704
|
white-space: nowrap;
|
|
712
705
|
}
|
|
713
706
|
.myt-verBadge:hover { background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 22%, transparent); }
|
|
707
|
+
|
|
708
|
+
/* ── 版本号 + 系统设置(字号五档,面板整体 zoom)────────────────────────── */
|
|
709
|
+
.myt-verTag {
|
|
710
|
+
display: inline-block;
|
|
711
|
+
margin-left: 10px;
|
|
712
|
+
padding: 1px 8px;
|
|
713
|
+
border-radius: 6px;
|
|
714
|
+
background: var(--dsw-alias-bg-layer-3);
|
|
715
|
+
color: var(--dsw-alias-label-tertiary);
|
|
716
|
+
font-size: 11px;
|
|
717
|
+
line-height: 16px;
|
|
718
|
+
font-weight: 500;
|
|
719
|
+
vertical-align: middle;
|
|
720
|
+
}
|
|
721
|
+
.myt-view, .myt-modalMask, .myt-settingsMask { zoom: var(--myt-zoom, 1); }
|
|
722
|
+
.myt-settingsMask {
|
|
723
|
+
position: fixed;
|
|
724
|
+
inset: 0;
|
|
725
|
+
z-index: 80;
|
|
726
|
+
display: flex;
|
|
727
|
+
align-items: center;
|
|
728
|
+
justify-content: center;
|
|
729
|
+
background: color-mix(in srgb, var(--dsw-alias-bg-base, #000) 55%, transparent);
|
|
730
|
+
}
|
|
731
|
+
.myt-settings {
|
|
732
|
+
width: min(400px, 92vw);
|
|
733
|
+
background: var(--dsw-alias-bg-layer-2);
|
|
734
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
735
|
+
border-radius: 14px;
|
|
736
|
+
box-shadow: 0 18px 48px color-mix(in srgb, #000 30%, transparent);
|
|
737
|
+
}
|
|
738
|
+
.myt-settingsHead { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 0; }
|
|
739
|
+
.myt-settingsTitle { margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--dsw-alias-label-primary); }
|
|
740
|
+
.myt-settingsBody { padding: 12px 16px 16px; display: flex; flex-direction: column; gap: 8px; }
|
|
741
|
+
.myt-settingsLabel { font-size: 11px; line-height: 16px; color: var(--dsw-alias-label-tertiary); }
|
|
742
|
+
.myt-setRow { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
743
|
+
.myt-setOpt {
|
|
744
|
+
padding: 5px 12px;
|
|
745
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
746
|
+
border-radius: 999px;
|
|
747
|
+
background: var(--dsw-alias-bg-layer-1, transparent);
|
|
748
|
+
color: var(--dsw-alias-label-secondary);
|
|
749
|
+
font-size: 12px;
|
|
750
|
+
line-height: 18px;
|
|
751
|
+
cursor: pointer;
|
|
752
|
+
}
|
|
753
|
+
.myt-setOpt:hover { background: var(--dsw-alias-interactive-bg-hover); }
|
|
754
|
+
.myt-setOpt[data-active="true"] {
|
|
755
|
+
border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 55%, transparent);
|
|
756
|
+
background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);
|
|
757
|
+
color: var(--dsw-alias-state-business-primary);
|
|
758
|
+
font-weight: 600;
|
|
759
|
+
}
|
|
760
|
+
.myt-settingsHint { font-size: 11px; line-height: 16px; color: var(--dsw-alias-label-tertiary); }
|
|
761
|
+
|
|
762
|
+
/* ── 章节阅读页(整页视图,替代右侧抽屉)────────────────────────────────── */
|
|
763
|
+
.myt-reader { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }
|
|
764
|
+
.myt-readerBar {
|
|
765
|
+
display: flex;
|
|
766
|
+
align-items: center;
|
|
767
|
+
gap: 10px;
|
|
768
|
+
padding: 10px 0 12px;
|
|
769
|
+
border-bottom: 1px solid var(--dsw-alias-border-l1);
|
|
770
|
+
margin-bottom: 12px;
|
|
771
|
+
}
|
|
772
|
+
.myt-readerTitle { margin: 0; min-width: 0; flex: 1 1 auto; font-size: 16px; line-height: 24px; font-weight: 600; color: var(--dsw-alias-label-primary); overflow-wrap: anywhere; }
|
|
773
|
+
.myt-readerBarActions { display: flex; align-items: center; gap: 8px; }
|
|
774
|
+
.myt-readerBody { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding-right: 4px; }
|
|
775
|
+
.myt-readerFoot {
|
|
776
|
+
flex: none;
|
|
777
|
+
display: flex;
|
|
778
|
+
align-items: center;
|
|
779
|
+
gap: 8px;
|
|
780
|
+
padding: 12px 0 2px;
|
|
781
|
+
border-top: 1px solid var(--dsw-alias-border-l1);
|
|
782
|
+
margin-top: 12px;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
/* ── 轻量 Markdown 排版(章纲 / 世界观条目等阅读位)────────────────────── */
|
|
786
|
+
.myt-md { font-size: 12.5px; line-height: 1.75; color: var(--dsw-alias-label-secondary); overflow-wrap: anywhere; }
|
|
787
|
+
.myt-md .myt-mdH { margin: 14px 0 6px; font-weight: 600; color: var(--dsw-alias-label-primary); line-height: 1.4; }
|
|
788
|
+
.myt-md .myt-mdH:first-child { margin-top: 0; }
|
|
789
|
+
.myt-md h1.myt-mdH { font-size: 17px; }
|
|
790
|
+
.myt-md h2.myt-mdH { font-size: 15px; }
|
|
791
|
+
.myt-md h3.myt-mdH { font-size: 14px; }
|
|
792
|
+
.myt-md h4.myt-mdH, .myt-md h5.myt-mdH, .myt-md h6.myt-mdH { font-size: 13px; }
|
|
793
|
+
.myt-md .myt-mdP { margin: 0 0 8px; }
|
|
794
|
+
.myt-md .myt-mdP:last-child { margin-bottom: 0; }
|
|
795
|
+
.myt-md .myt-mdList { margin: 4px 0 8px; padding-left: 20px; }
|
|
796
|
+
.myt-md .myt-mdList li { margin: 2px 0; }
|
|
797
|
+
.myt-md .myt-mdQuote {
|
|
798
|
+
margin: 8px 0;
|
|
799
|
+
padding: 6px 12px;
|
|
800
|
+
border-left: 3px solid var(--dsw-alias-border-l2);
|
|
801
|
+
background: var(--dsw-alias-bg-layer-3);
|
|
802
|
+
border-radius: 0 8px 8px 0;
|
|
803
|
+
color: var(--dsw-alias-label-tertiary);
|
|
804
|
+
}
|
|
805
|
+
.myt-md .myt-mdCode {
|
|
806
|
+
margin: 8px 0;
|
|
807
|
+
padding: 10px 12px;
|
|
808
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
809
|
+
border-radius: 8px;
|
|
810
|
+
background: var(--dsw-alias-bg-layer-1, var(--dsw-alias-bg-layer-3));
|
|
811
|
+
font-size: 11.5px;
|
|
812
|
+
line-height: 1.6;
|
|
813
|
+
overflow-x: auto;
|
|
814
|
+
white-space: pre-wrap;
|
|
815
|
+
}
|
|
816
|
+
.myt-md code { padding: 1px 5px; border-radius: 5px; background: var(--dsw-alias-bg-layer-3); font-size: 0.92em; }
|
|
817
|
+
.myt-md .myt-mdCode code { padding: 0; background: none; }
|
|
818
|
+
.myt-md .myt-mdHr { margin: 12px 0; border: none; border-top: 1px solid var(--dsw-alias-border-l1); }
|
|
819
|
+
.myt-md a { color: var(--dsw-alias-state-business-primary); text-decoration: none; }
|
|
820
|
+
.myt-md a:hover { text-decoration: underline; }
|
|
821
|
+
.myt-md strong { color: var(--dsw-alias-label-primary); }
|
|
822
|
+
|
|
823
|
+
/* ── 小说设置 tab ──────────────────────────────────────────────────────── */
|
|
824
|
+
.myt-setGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
|
|
825
|
+
.myt-setField { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
|
|
826
|
+
.myt-setFieldLabel { font-size: 11px; line-height: 16px; color: var(--dsw-alias-label-tertiary); }
|
|
827
|
+
.myt-setInput {
|
|
828
|
+
padding: 6px 10px;
|
|
829
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
830
|
+
border-radius: 8px;
|
|
831
|
+
background: var(--dsw-alias-bg-layer-1, transparent);
|
|
832
|
+
color: var(--dsw-alias-label-primary);
|
|
833
|
+
font-size: 12.5px;
|
|
834
|
+
line-height: 18px;
|
|
835
|
+
font-family: inherit;
|
|
836
|
+
min-width: 0;
|
|
837
|
+
}
|
|
838
|
+
.myt-setInput:focus {
|
|
839
|
+
outline: none;
|
|
840
|
+
border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 55%, transparent);
|
|
841
|
+
}
|
|
842
|
+
.myt-setArea { resize: vertical; }
|
|
843
|
+
.myt-setSelect { cursor: pointer; }
|
|
844
|
+
.myt-setActions { display: flex; justify-content: flex-end; gap: 8px; }
|