fix(hub): sick trade rows use red text only, widen AI history
Remove red background on 犯病 archive rows; fix AI markdown ordered lists; widen chat history sidebar.
This commit is contained in:
@@ -4321,11 +4321,19 @@ body.hub-page-ai #page-ai {
|
|||||||
.ai-result-md ul,
|
.ai-result-md ul,
|
||||||
.ai-result-md ol {
|
.ai-result-md ol {
|
||||||
margin: 6px 0 8px 1.25em;
|
margin: 6px 0 8px 1.25em;
|
||||||
padding: 0;
|
padding: 0 0 0 0.25em;
|
||||||
|
list-style-position: outside;
|
||||||
|
}
|
||||||
|
.ai-result-md ul {
|
||||||
|
list-style-type: disc;
|
||||||
|
}
|
||||||
|
.ai-result-md ol {
|
||||||
|
list-style-type: decimal;
|
||||||
}
|
}
|
||||||
.ai-result-md li {
|
.ai-result-md li {
|
||||||
margin: 5px 0;
|
margin: 5px 0;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
display: list-item;
|
||||||
}
|
}
|
||||||
.ai-result-md strong {
|
.ai-result-md strong {
|
||||||
color: var(--text);
|
color: var(--text);
|
||||||
@@ -4413,6 +4421,17 @@ body.hub-page-ai #page-ai {
|
|||||||
.ai-bubble-assistant.ai-result-md ul,
|
.ai-bubble-assistant.ai-result-md ul,
|
||||||
.ai-bubble-assistant.ai-result-md ol {
|
.ai-bubble-assistant.ai-result-md ol {
|
||||||
margin: 4px 0 6px 1.15em;
|
margin: 4px 0 6px 1.15em;
|
||||||
|
padding-left: 0.25em;
|
||||||
|
list-style-position: outside;
|
||||||
|
}
|
||||||
|
.ai-bubble-assistant.ai-result-md ul {
|
||||||
|
list-style-type: disc;
|
||||||
|
}
|
||||||
|
.ai-bubble-assistant.ai-result-md ol {
|
||||||
|
list-style-type: decimal;
|
||||||
|
}
|
||||||
|
.ai-bubble-assistant.ai-result-md li {
|
||||||
|
display: list-item;
|
||||||
}
|
}
|
||||||
.ai-ac-table-wrap {
|
.ai-ac-table-wrap {
|
||||||
margin: 8px 0 12px;
|
margin: 8px 0 12px;
|
||||||
@@ -4541,7 +4560,7 @@ body.hub-page-ai #page-ai {
|
|||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
|
grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
|
||||||
gap: 0;
|
gap: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border: 1px solid var(--border-soft);
|
border: 1px solid var(--border-soft);
|
||||||
@@ -5700,25 +5719,20 @@ body.funds-fullscreen-open {
|
|||||||
.archive-trade-row.is-active {
|
.archive-trade-row.is-active {
|
||||||
background: var(--inset-surface);
|
background: var(--inset-surface);
|
||||||
}
|
}
|
||||||
.archive-trade-row.archive-trade-sick {
|
.archive-trade-row.archive-trade-sick td {
|
||||||
background: rgba(220, 38, 38, 0.3);
|
color: var(--red);
|
||||||
}
|
}
|
||||||
.archive-trade-row.archive-trade-sick.is-active {
|
.archive-trade-row.archive-trade-sick.is-active {
|
||||||
background: rgba(220, 38, 38, 0.38);
|
background: var(--inset-surface);
|
||||||
}
|
|
||||||
.archive-trade-row.archive-trade-sick td {
|
|
||||||
color: var(--accent);
|
|
||||||
border-bottom-color: rgba(220, 38, 38, 0.4);
|
|
||||||
}
|
}
|
||||||
.archive-trade-row.archive-trade-sick .archive-tag-select,
|
.archive-trade-row.archive-trade-sick .archive-tag-select,
|
||||||
.archive-trade-row.archive-trade-sick .archive-note-input {
|
.archive-trade-row.archive-trade-sick .archive-note-input {
|
||||||
color: var(--accent);
|
color: var(--red);
|
||||||
background: rgba(0, 0, 0, 0.2);
|
border-color: color-mix(in srgb, var(--red) 40%, var(--border-soft));
|
||||||
border-color: color-mix(in srgb, var(--accent) 50%, var(--border-soft));
|
|
||||||
}
|
}
|
||||||
.archive-trade-row.archive-trade-sick td.pos,
|
.archive-trade-row.archive-trade-sick td.pos,
|
||||||
.archive-trade-row.archive-trade-sick td.neg {
|
.archive-trade-row.archive-trade-sick td.neg {
|
||||||
color: var(--accent);
|
color: var(--red);
|
||||||
}
|
}
|
||||||
.archive-actions-cell {
|
.archive-actions-cell {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" media="print" onload="this.media='all'" />
|
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" media="print" onload="this.media='all'" />
|
||||||
<noscript><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" /></noscript>
|
<noscript><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" /></noscript>
|
||||||
<link rel="stylesheet" href="/assets/app.css?v=20260612-inner-light-fix" />
|
<link rel="stylesheet" href="/assets/app.css?v=20260612-sick-row-red-text" />
|
||||||
<link rel="stylesheet" href="/assets/dashboard.css?v=20260612-dash-monitor-count" />
|
<link rel="stylesheet" href="/assets/dashboard.css?v=20260612-dash-monitor-count" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -576,7 +576,7 @@
|
|||||||
<script src="/assets/archive.js?v=20260612-inner-light-fix"></script>
|
<script src="/assets/archive.js?v=20260612-inner-light-fix"></script>
|
||||||
<script src="/assets/funds.js?v=20260609-hub-funds-fold"></script>
|
<script src="/assets/funds.js?v=20260609-hub-funds-fold"></script>
|
||||||
<script src="/assets/dashboard.js?v=20260612-dash-monitor-count"></script>
|
<script src="/assets/dashboard.js?v=20260612-dash-monitor-count"></script>
|
||||||
<script src="/assets/ai_review_render.js?v=2"></script>
|
<script src="/assets/ai_review_render.js?v=3"></script>
|
||||||
<script src="/assets/app.js?v=20260612-monitor-desktop-layout"></script>
|
<script src="/assets/app.js?v=20260612-monitor-desktop-layout"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -46,8 +46,40 @@
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isNumberedListLine(trimmed) {
|
||||||
|
if (!trimmed) return false;
|
||||||
|
if (/^\d+\.\s+/.test(trimmed)) return true;
|
||||||
|
if (/^\*\*\d+\.\s*.+\*\*$/.test(trimmed)) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 编号列表项之间的空行不拆段,避免每条都从 1 重新开始 */
|
||||||
|
function preprocessListBlanks(text) {
|
||||||
|
var lines = String(text || "").replace(/\r\n/g, "\n").split("\n");
|
||||||
|
var out = [];
|
||||||
|
for (var i = 0; i < lines.length; i++) {
|
||||||
|
var trimmed = lines[i].trim();
|
||||||
|
if (!trimmed) {
|
||||||
|
var prevTrim = out.length ? String(out[out.length - 1]).trim() : "";
|
||||||
|
var nextTrim = "";
|
||||||
|
for (var j = i + 1; j < lines.length; j++) {
|
||||||
|
var t = lines[j].trim();
|
||||||
|
if (t) {
|
||||||
|
nextTrim = t;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isNumberedListLine(prevTrim) && isNumberedListLine(nextTrim)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
out.push(lines[i]);
|
||||||
|
}
|
||||||
|
return out.join("\n");
|
||||||
|
}
|
||||||
|
|
||||||
function renderMarkdown(text) {
|
function renderMarkdown(text) {
|
||||||
var src = enhanceReviewHeadings(text);
|
var src = enhanceReviewHeadings(preprocessListBlanks(text));
|
||||||
var lines = src.replace(/\r\n/g, "\n").split("\n");
|
var lines = src.replace(/\r\n/g, "\n").split("\n");
|
||||||
var html = [];
|
var html = [];
|
||||||
var inUl = false;
|
var inUl = false;
|
||||||
@@ -88,8 +120,18 @@
|
|||||||
html.push("<li>" + parseInline(ulm[1]) + "</li>");
|
html.push("<li>" + parseInline(ulm[1]) + "</li>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
var boldOl = trimmed.match(/^\*\*(\d+)\.\s*(.+)\*\*$/);
|
||||||
|
if (boldOl) {
|
||||||
|
if (!inOl) {
|
||||||
|
closeLists();
|
||||||
|
html.push("<ol>");
|
||||||
|
inOl = true;
|
||||||
|
}
|
||||||
|
html.push("<li>" + parseInline(trimmed) + "</li>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
var olm = trimmed.match(/^\d+\.\s+(.+)$/);
|
var olm = trimmed.match(/^\d+\.\s+(.+)$/);
|
||||||
if (olm && !/^\*\*/.test(trimmed)) {
|
if (olm) {
|
||||||
if (!inOl) {
|
if (!inOl) {
|
||||||
closeLists();
|
closeLists();
|
||||||
html.push("<ol>");
|
html.push("<ol>");
|
||||||
|
|||||||
Reference in New Issue
Block a user