feat: add hub strategy docs page with MD and checklists

Central /strategy page shows per-exchange strategy markdown and read-only entry checklists; nav toggle in settings, print and HTML export per tab.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-06 03:12:09 +08:00
parent 8b069294b7
commit 7223b54ec4
12 changed files with 865 additions and 1 deletions
+180
View File
@@ -7479,3 +7479,183 @@ body.funds-fullscreen-open {
}
}
/* --- 策略说明 --- */
.strategy-page-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
.strategy-page-actions {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.strategy-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
margin-bottom: 12px;
}
.strategy-tabs {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.strategy-tab {
padding: 6px 14px;
border-radius: 999px;
border: 1px solid var(--border-soft);
background: var(--surface-2);
color: var(--text-soft);
cursor: pointer;
font-size: 0.88rem;
}
.strategy-tab.is-active {
background: var(--accent-soft);
border-color: var(--accent);
color: var(--text);
}
.strategy-layout {
display: grid;
grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
gap: 14px;
align-items: start;
}
.strategy-col-title {
margin: 0 0 12px;
font-size: 0.95rem;
color: var(--text-soft);
}
.strategy-doc-body {
font-size: 0.88rem;
line-height: 1.55;
color: var(--text);
max-height: min(72vh, 900px);
overflow: auto;
padding-right: 4px;
}
.strategy-doc-body h2 {
font-size: 1rem;
margin: 1.2em 0 0.5em;
color: var(--text);
}
.strategy-doc-body h3 {
font-size: 0.92rem;
margin: 1em 0 0.4em;
}
.strategy-doc-body table {
width: 100%;
border-collapse: collapse;
font-size: 0.82rem;
margin: 8px 0;
}
.strategy-doc-body th,
.strategy-doc-body td {
border: 1px solid var(--border-soft);
padding: 6px 8px;
text-align: left;
}
.strategy-doc-body blockquote {
margin: 8px 0;
padding: 8px 12px;
border-left: 3px solid var(--accent);
color: var(--text-soft);
background: var(--surface-2);
}
.strategy-doc-body pre,
.strategy-doc-body code {
font-size: 0.8rem;
}
.strategy-doc-source {
margin: 12px 0 0;
font-size: 0.75rem;
color: var(--muted);
}
.strategy-checklist-body ul {
list-style: none;
margin: 0;
padding: 0;
}
.strategy-check-group {
margin-bottom: 14px;
}
.strategy-check-group h4 {
margin: 0 0 8px;
font-size: 0.88rem;
color: var(--accent);
}
.strategy-check-group li {
margin: 6px 0;
font-size: 0.86rem;
line-height: 1.45;
display: flex;
gap: 8px;
align-items: flex-start;
}
.strategy-check-box {
flex: 0 0 auto;
font-size: 1rem;
line-height: 1.2;
}
.strategy-checklist-footnotes {
margin: 12px 0 0;
padding-left: 18px;
font-size: 0.78rem;
color: var(--muted);
}
.strategy-checklist-footnotes.hidden {
display: none;
}
.strategy-empty {
color: var(--muted);
font-size: 0.85rem;
}
.strategy-print-header {
margin-bottom: 12px;
}
.strategy-print-header.hidden {
display: none;
}
.strategy-print-meta {
margin: 4px 0 0;
font-size: 0.85rem;
color: var(--muted);
}
@media (max-width: 960px) {
.strategy-layout {
grid-template-columns: 1fr;
}
.strategy-doc-body {
max-height: none;
}
}
@media print {
body.hub-strategy-printing .app-bg,
body.hub-strategy-printing .app-header,
body.hub-strategy-printing .no-print,
body.hub-strategy-printing .page:not(#page-strategy) {
display: none !important;
}
body.hub-strategy-printing #page-strategy {
display: block !important;
}
body.hub-strategy-printing .strategy-print-header {
display: block !important;
}
body.hub-strategy-printing .strategy-doc-body {
max-height: none;
overflow: visible;
}
body.hub-strategy-printing .card {
break-inside: avoid;
box-shadow: none;
border: 1px solid #ccc;
}
}