fix(admin-web): preserve paragraph breaks when sanitizing answer body
Keep blank lines while filtering non-answer noise instead of collapsing every line, so multi-paragraph answers render with their structure intact. Also reformat long box-shadow declarations and inline template attributes for readability. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -781,14 +781,9 @@ function sanitizeAnswerBody(answerText: string | null | undefined): string | nul
|
||||
return normalized
|
||||
}
|
||||
|
||||
const lines = normalized
|
||||
.split(/\r?\n+/)
|
||||
.map((line) => line.trim())
|
||||
.filter(Boolean)
|
||||
const keptLines = lines.filter((line) => !looksLikeNonAnswerNoise(line))
|
||||
const sanitized = (keptLines.length ? keptLines.join('\n') : normalized)
|
||||
.replace(/[ \t]+([,.;:!?,。!?;:])/g, '$1')
|
||||
.replace(/[ \t]{2,}/g, ' ')
|
||||
const lines = normalized.split(/\r?\n/)
|
||||
const keptLines = lines.filter((line) => !line.trim() || !looksLikeNonAnswerNoise(line.trim()))
|
||||
const sanitized = (keptLines.some((line) => line.trim()) ? keptLines.join('\n') : normalized)
|
||||
.replace(/\n{3,}/g, '\n\n')
|
||||
.trim()
|
||||
|
||||
@@ -1518,7 +1513,9 @@ const contentCitationColumns = computed(() => [
|
||||
{{ index + 1 }}
|
||||
</span>
|
||||
</div>
|
||||
<strong class="tracking-question-source-card__site-name">{{ citation.site_name }}</strong>
|
||||
<strong class="tracking-question-source-card__site-name">
|
||||
{{ citation.site_name }}
|
||||
</strong>
|
||||
<a-tag
|
||||
v-if="isMediaSupplySubmissionCitation(citation)"
|
||||
color="cyan"
|
||||
@@ -1619,10 +1616,7 @@ const contentCitationColumns = computed(() => [
|
||||
<strong class="table-text" :title="record.site_name">
|
||||
{{ record.site_name }}
|
||||
</strong>
|
||||
<small
|
||||
v-if="record.content_citation_count > 0"
|
||||
class="meta-subtext"
|
||||
>
|
||||
<small v-if="record.content_citation_count > 0" class="meta-subtext">
|
||||
{{
|
||||
t('tracking.contentCitationMeta', {
|
||||
count: record.content_citation_count,
|
||||
@@ -1898,7 +1892,10 @@ const contentCitationColumns = computed(() => [
|
||||
border: 1px solid rgba(226, 232, 240, 0.8);
|
||||
border-radius: 16px;
|
||||
background: #ffffff;
|
||||
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 10px 15px -3px rgba(0, 0, 0, 0.03), 0 0 0 1px rgba(0, 0, 0, 0.01);
|
||||
box-shadow:
|
||||
0 4px 6px -1px rgba(0, 0, 0, 0.02),
|
||||
0 10px 15px -3px rgba(0, 0, 0, 0.03),
|
||||
0 0 0 1px rgba(0, 0, 0, 0.01);
|
||||
}
|
||||
|
||||
.tracking-question-card--answer {
|
||||
@@ -2123,7 +2120,9 @@ const contentCitationColumns = computed(() => [
|
||||
border-color: #3b82f6;
|
||||
background: #f8fafc;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 12px 20px -8px rgba(59, 130, 246, 0.08), 0 4px 6px -2px rgba(59, 130, 246, 0.02);
|
||||
box-shadow:
|
||||
0 12px 20px -8px rgba(59, 130, 246, 0.08),
|
||||
0 4px 6px -2px rgba(59, 130, 246, 0.02);
|
||||
}
|
||||
|
||||
.tracking-question-source-card.is-linked {
|
||||
|
||||
Reference in New Issue
Block a user