feat: separate tags with and without spaces

with spaces are non-clickable
This commit is contained in:
eggy 2023-05-24 12:46:44 -04:00
parent 4502c819c3
commit 74f7bc1002
6 changed files with 26 additions and 23 deletions

View File

@ -33,10 +33,9 @@ const descText =
:dest="`/tags/${type}/${tag}`" :dest="`/tags/${type}/${tag}`"
v-for="(tag, index) in post.tags" v-for="(tag, index) in post.tags"
:key="index" :key="index"
:name="tag"
:highlight="highlighttags?.includes(tag)" :highlight="highlighttags?.includes(tag)"
> />
{{ tag }}
</Tag>
</div> </div>
<ContentRenderer :value="post" :excerpt="true" tag="section"> <ContentRenderer :value="post" :excerpt="true" tag="section">
<template #empty>No excerpt available.</template> <template #empty>No excerpt available.</template>

View File

@ -27,9 +27,8 @@ const latest = docs.at(-1) as StoryParsedContent;
v-for="(tag, index) in latest.tags" v-for="(tag, index) in latest.tags"
:key="index" :key="index"
:dest="`/tags/stories/${tag}`" :dest="`/tags/stories/${tag}`"
> :name="tag"
{{ tag }} />
</Tag>
</div> </div>
<ContentRenderer <ContentRenderer
tag="article" tag="article"

View File

@ -1,19 +1,27 @@
<script setup lang="ts"> <script setup lang="ts">
const props = defineProps<{ const props = defineProps<{
name: string;
dest: string; dest: string;
highlight?: boolean; highlight?: boolean;
}>(); }>();
const isLinkableTag = !props.name.includes(" ");
const tagClass = [
"inline-block text-xs rounded-lg py-1 px-2 mt-1 mr-1 transition border border-pink-200 dark:border-pink-900 border-2 font-medium",
{ "bg-pink-200 dark:bg-pink-900": props.highlight },
{ "shadow-md": isLinkableTag },
];
</script> </script>
<template> <template>
<a :href="dest"> <a :href="dest" v-if="isLinkableTag">
<div <div :class="tagClass">
:class="[ {{ name }}
'inline-block text-xs rounded-lg py-1 px-2 mt-1 mr-1 transition border border-pink-200 dark:border-pink-900 border-2 shadow-md font-medium',
{ 'bg-pink-200 dark:bg-pink-900': highlight },
]"
>
<slot />
</div> </div>
</a> </a>
<div v-else>
<div :class="tagClass">
{{ name }}
</div>
</div>
</template> </template>

View File

@ -37,9 +37,8 @@ const captionText =
v-for="(tag, index) in doc.tags" v-for="(tag, index) in doc.tags"
:dest="`/tags/${type}/${tag}`" :dest="`/tags/${type}/${tag}`"
:key="index" :key="index"
> :name="tag"
{{ tag }} />
</Tag>
</div> </div>
<ContentRenderer :value="doc" tag="article" class="pt-0 w-full"> <ContentRenderer :value="doc" tag="article" class="pt-0 w-full">
<template #empty> <template #empty>

View File

@ -30,9 +30,8 @@ const tags = new Set(
:dest="`/tags/blog/${tag}`" :dest="`/tags/blog/${tag}`"
v-for="(tag, index) in tags" v-for="(tag, index) in tags"
:key="index" :key="index"
> :name="tag"
{{ tag }} />
</Tag>
</div> </div>
<PostPreviewCard <PostPreviewCard
v-for="(post, index) in docs" v-for="(post, index) in docs"

View File

@ -30,9 +30,8 @@ const tags = new Set(
:dest="`/tags/stories/${tag}`" :dest="`/tags/stories/${tag}`"
v-for="(tag, index) in tags" v-for="(tag, index) in tags"
:key="index" :key="index"
> :name="tag"
{{ tag }} />
</Tag>
</div> </div>
<PostPreviewCard <PostPreviewCard
v-for="(story, index) in docs" v-for="(story, index) in docs"