공개 Markdown 인라인 렌더러 fragment 주석 반복을 줄이도록 정리
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -37,29 +37,45 @@ const getInlineColorClass = (color) => `content-markdown-inline-segments__color-
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<template v-for="(lineSegments, lineIndex) in segmentLines" :key="`inline-line-${lineIndex}`">
|
||||
<br v-if="lineIndex > 0">
|
||||
<template v-for="(segment, segmentIndex) in lineSegments" :key="`inline-segment-${lineIndex}-${segmentIndex}`">
|
||||
<strong v-if="segment.type === 'strong'">{{ segment.text }}</strong>
|
||||
<em v-else-if="segment.type === 'em'">{{ segment.text }}</em>
|
||||
<sub v-else-if="segment.type === 'subscript'">{{ segment.text }}</sub>
|
||||
<sup v-else-if="segment.type === 'superscript'">{{ segment.text }}</sup>
|
||||
<code v-else-if="segment.type === 'code'" class="content-markdown-inline-segments__inline-code rounded bg-[#252525] px-1.5 py-0.5 text-[0.9em] text-white">{{ segment.text }}</code>
|
||||
<a v-else-if="segment.type === 'link'" :class="linkClass" :href="segment.href" target="_blank" rel="noreferrer">{{ segment.text }}</a>
|
||||
<span class="content-markdown-inline-segments">
|
||||
<span
|
||||
v-for="(lineSegments, lineIndex) in segmentLines"
|
||||
:key="`inline-line-${lineIndex}`"
|
||||
class="content-markdown-inline-segments__line"
|
||||
>
|
||||
<br v-if="lineIndex > 0">
|
||||
<span
|
||||
v-else-if="segment.type === 'color'"
|
||||
class="content-markdown-inline-segments__color"
|
||||
:class="getInlineColorClass(segment.color)"
|
||||
:data-inline-color="segment.color"
|
||||
v-for="(segment, segmentIndex) in lineSegments"
|
||||
:key="`inline-segment-${lineIndex}-${segmentIndex}`"
|
||||
class="content-markdown-inline-segments__segment"
|
||||
>
|
||||
<ContentMarkdownInlineSegments :text="segment.text" :link-class="linkClass" />
|
||||
<strong v-if="segment.type === 'strong'">{{ segment.text }}</strong>
|
||||
<em v-else-if="segment.type === 'em'">{{ segment.text }}</em>
|
||||
<sub v-else-if="segment.type === 'subscript'">{{ segment.text }}</sub>
|
||||
<sup v-else-if="segment.type === 'superscript'">{{ segment.text }}</sup>
|
||||
<code v-else-if="segment.type === 'code'" class="content-markdown-inline-segments__inline-code rounded bg-[#252525] px-1.5 py-0.5 text-[0.9em] text-white">{{ segment.text }}</code>
|
||||
<a v-else-if="segment.type === 'link'" :class="linkClass" :href="segment.href" target="_blank" rel="noreferrer">{{ segment.text }}</a>
|
||||
<span
|
||||
v-else-if="segment.type === 'color'"
|
||||
class="content-markdown-inline-segments__color"
|
||||
:class="getInlineColorClass(segment.color)"
|
||||
:data-inline-color="segment.color"
|
||||
>
|
||||
<ContentMarkdownInlineSegments :text="segment.text" :link-class="linkClass" />
|
||||
</span>
|
||||
<span v-else>{{ segment.text }}</span>
|
||||
</span>
|
||||
<template v-else>{{ segment.text }}</template>
|
||||
</template>
|
||||
</template>
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.content-markdown-inline-segments,
|
||||
.content-markdown-inline-segments__line,
|
||||
.content-markdown-inline-segments__segment {
|
||||
display: contents;
|
||||
}
|
||||
|
||||
.content-markdown-inline-segments__color--gray {
|
||||
color: var(--site-muted);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user