feat: 将固定链接名称抽取到配置中

This commit is contained in:
Logan 2024-10-18 11:54:16 +08:00
parent 9f98d0017b
commit 04492c3813
6 changed files with 37 additions and 25 deletions

View file

@ -1,5 +1,11 @@
export default defineAppConfig({ export default defineAppConfig({
title: 'Sink', title: 'Sink',
twitter: 'https://x.com/0xKaiBi',
github: 'https://github.com/ccbikai/sink',
email: 'sink.cool@miantiao.me',
telegram: 'https://t.me/htmlzone',
mastodon: 'https://miantiao.me/@chi',
blog: 'https://mt.ci',
description: 'A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.', description: 'A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.',
image: 'https://sink.cool/banner.png', image: 'https://sink.cool/banner.png',
previewTTL: 24 * 3600, // 24h previewTTL: 24 * 3600, // 24h

View file

@ -7,6 +7,7 @@ defineProps({
required: true, required: true,
}, },
}) })
const { title } = useAppConfig()
</script> </script>
<template> <template>
@ -14,7 +15,7 @@ defineProps({
<BreadcrumbList> <BreadcrumbList>
<BreadcrumbItem> <BreadcrumbItem>
<BreadcrumbLink href="/"> <BreadcrumbLink href="/">
Sink {{ title }}
</BreadcrumbLink> </BreadcrumbLink>
</BreadcrumbItem> </BreadcrumbItem>
<BreadcrumbSeparator /> <BreadcrumbSeparator />

View file

@ -3,7 +3,7 @@ import { AreaChart } from 'lucide-vue-next'
import { GitHubIcon } from 'vue3-simple-icons' import { GitHubIcon } from 'vue3-simple-icons'
import heroImg from '@/assets/images/hero.svg?raw' import heroImg from '@/assets/images/hero.svg?raw'
const { title, description } = useAppConfig() const { title, description, github } = useAppConfig()
</script> </script>
<template> <template>
@ -36,7 +36,7 @@ const { title, description } = useAppConfig()
size="lg" size="lg"
type="outline" type="outline"
rel="noopener" rel="noopener"
href="https://github.com/ccbikai/sink" :href="github"
title="Github" title="Github"
class="flex items-center justify-center gap-1" class="flex items-center justify-center gap-1"
target="_blank" target="_blank"

View file

@ -1,11 +1,13 @@
<script setup> <script setup>
import { XIcon } from 'vue3-simple-icons' import { XIcon } from 'vue3-simple-icons'
import { ArrowRight } from 'lucide-vue-next' import { ArrowRight } from 'lucide-vue-next'
const { twitter } = useAppConfig()
</script> </script>
<template> <template>
<a <a
href="https://x.com/0xKaiBi" :href="twitter"
target="_blank" target="_blank"
title="X(Twitter)" title="X(Twitter)"
class="inline-flex items-center px-3 py-1 mx-auto my-4 space-x-1 text-sm font-medium rounded-lg bg-muted" class="inline-flex items-center px-3 py-1 mx-auto my-4 space-x-1 text-sm font-medium rounded-lg bg-muted"

View file

@ -1,10 +1,7 @@
<script setup> <script setup>
import { BloggerIcon, GitHubIcon, GmailIcon, MastodonIcon, TelegramIcon, XIcon } from 'vue3-simple-icons' import { BloggerIcon, GitHubIcon, GmailIcon, MastodonIcon, TelegramIcon, XIcon } from 'vue3-simple-icons'
const email = ref(null) const { title, email, telegram, blog, twitter, mastodon, github } = useAppConfig()
onMounted(() => {
email.value.href = email.value.href.replace('$', '@')
})
</script> </script>
<template> <template>
@ -13,8 +10,8 @@ onMounted(() => {
<a <a
href="/" href="/"
class="text-xl font-black leading-none text-gray-900 select-none dark:text-gray-100 logo" class="text-xl font-black leading-none text-gray-900 select-none dark:text-gray-100 logo"
title="Sink" :title="title"
>Sink</a> >{{ title }}</a>
<a <a
class="mt-4 text-sm text-gray-500 sm:ml-4 sm:pl-4 sm:border-l sm:border-gray-200 sm:mt-0" class="mt-4 text-sm text-gray-500 sm:ml-4 sm:pl-4 sm:border-l sm:border-gray-200 sm:mt-0"
href="https://html.zone" href="https://html.zone"
@ -27,8 +24,8 @@ onMounted(() => {
class="inline-flex justify-center mt-4 space-x-5 sm:ml-auto sm:mt-0 sm:justify-start" class="inline-flex justify-center mt-4 space-x-5 sm:ml-auto sm:mt-0 sm:justify-start"
> >
<a <a
ref="email" v-if="email"
href="mailto:sink.cool$miantiao.me" :href="`mailto:${email}`"
title="Email" title="Email"
class="text-gray-400 hover:text-gray-500" class="text-gray-400 hover:text-gray-500"
> >
@ -38,7 +35,8 @@ onMounted(() => {
/> />
</a> </a>
<a <a
href="https://t.me/htmlzone" v-if="telegram"
:href="telegram"
target="_blank" target="_blank"
title="Telegram" title="Telegram"
class="text-gray-400 hover:text-gray-500" class="text-gray-400 hover:text-gray-500"
@ -49,7 +47,8 @@ onMounted(() => {
/> />
</a> </a>
<a <a
href="https://mt.ci" v-if="blog"
:href="blog"
target="_blank" target="_blank"
title="Blog" title="Blog"
class="text-gray-400 hover:text-gray-500" class="text-gray-400 hover:text-gray-500"
@ -61,7 +60,8 @@ onMounted(() => {
</a> </a>
<a <a
href="https://x.com/0xKaiBi" v-if="twitter"
:href="twitter"
target="_blank" target="_blank"
title="Twitter" title="Twitter"
class="text-gray-400 hover:text-gray-500" class="text-gray-400 hover:text-gray-500"
@ -73,7 +73,8 @@ onMounted(() => {
</a> </a>
<a <a
href="https://miantiao.me/@chi" v-if="mastodon"
:href="mastodon"
target="_blank" target="_blank"
title="Mastodon" title="Mastodon"
class="text-gray-400 hover:text-gray-500" class="text-gray-400 hover:text-gray-500"
@ -85,7 +86,8 @@ onMounted(() => {
</a> </a>
<a <a
href="https://github.com/ccbikai" v-if="github"
:href="github"
target="_blank" target="_blank"
title="GitHub" title="GitHub"
class="text-gray-400 hover:text-gray-500" class="text-gray-400 hover:text-gray-500"

View file

@ -4,6 +4,7 @@ import { GitHubIcon } from 'vue3-simple-icons'
import SwitchTheme from '../SwitchTheme.vue' import SwitchTheme from '../SwitchTheme.vue'
const showMenu = ref(false) const showMenu = ref(false)
const { title, github } = useAppConfig()
</script> </script>
<template> <template>
@ -15,7 +16,7 @@ const showMenu = ref(false)
<div class="flex items-center justify-start w-1/4 h-full pr-4"> <div class="flex items-center justify-start w-1/4 h-full pr-4">
<a <a
href="/" href="/"
title="Sink" :title="title"
class="flex items-center py-4 space-x-2 text-xl font-black text-gray-900 dark:text-gray-100 md:py-0" class="flex items-center py-4 space-x-2 text-xl font-black text-gray-900 dark:text-gray-100 md:py-0"
> >
<span <span
@ -23,11 +24,11 @@ const showMenu = ref(false)
> >
<img <img
src="/sink.png" src="/sink.png"
alt="Sink" :alt="title"
class="w-full h-full rounded-full" class="w-full h-full rounded-full"
> >
</span> </span>
<span class="mx-2">Sink</span> <span class="mx-2">{{ title }}</span>
</a> </a>
</div> </div>
@ -41,7 +42,7 @@ const showMenu = ref(false)
> >
<a <a
href="/" href="/"
title="Sink" :title="title"
class="inline-flex items-center w-auto h-16 px-4 text-xl font-black leading-none text-gray-900 dark:text-gray-100 md:hidden" class="inline-flex items-center w-auto h-16 px-4 text-xl font-black leading-none text-gray-900 dark:text-gray-100 md:hidden"
> >
<span <span
@ -49,11 +50,11 @@ const showMenu = ref(false)
> >
<img <img
src="/sink.png" src="/sink.png"
alt="Sink" :alt="title"
class="w-full h-full rounded-full" class="w-full h-full rounded-full"
> >
</span> </span>
<span class="mx-2">Sink</span> <span class="mx-2">{{ title }}</span>
</a> </a>
<div class="w-full mx-4" /> <div class="w-full mx-4" />
<div <div
@ -62,10 +63,10 @@ const showMenu = ref(false)
<a <a
class="w-full px-6 py-2 mr-0 text-gray-700 cursor-pointer dark:text-gray-300 md:px-3 md:mr-2 lg:mr-3 md:w-auto" class="w-full px-6 py-2 mr-0 text-gray-700 cursor-pointer dark:text-gray-300 md:px-3 md:mr-2 lg:mr-3 md:w-auto"
href="/dashboard" href="/dashboard"
title="Sink Dashboard" :title="`${title} Dashboard`"
>Dashboard</a> >Dashboard</a>
<a <a
href="https://github.com/ccbikai/sink" :href="github"
target="_blank" target="_blank"
title="Github" title="Github"
class="inline-flex items-center w-full px-6 py-3 text-sm font-medium leading-4 text-white bg-gray-900 md:px-3 md:w-auto md:rounded-full hover:bg-gray-800 focus:outline-none md:focus:ring-2 focus:ring-0 focus:ring-offset-2 focus:ring-gray-800" class="inline-flex items-center w-full px-6 py-3 text-sm font-medium leading-4 text-white bg-gray-900 md:px-3 md:w-auto md:rounded-full hover:bg-gray-800 focus:outline-none md:focus:ring-2 focus:ring-0 focus:ring-offset-2 focus:ring-gray-800"