🔒 SUPPORT SSR SITE REBUILD && DECLARE FORK TARGET REPO:IT-TOOL

This commit is contained in:
babyProxy 2024-04-22 23:42:56 +08:00
parent 61035dd088
commit 80aa4292a5
6 changed files with 7019 additions and 5530 deletions

View file

@ -4,18 +4,18 @@
<meta charset="UTF-8" />
<link rel="icon" href="favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>IT Tools</title>
<meta itemprop="name" content="IT Tools" />
<title>极客日志 - 在线工具箱 - zeeklog</title>
<meta itemprop="name" content="Zeeklog online tools" />
<meta
name="description"
content="Collection of handy online tools for developers, with great UX. IT Tools is a free and open-source collection of handy online tools for developers & people working in IT."
content="极客日志 在线工具 编码/解码url格式的字符串 JWT解析器 XML格式化 在线二维码生成器 在线JSON美化 在线JSON格式化 JSON转YAML转换器 TOML转YAML 在线 Base64 字符串编码/解码图片转base64 Base64 文件转换器 BIP39密码生成器 Hmac 生成器 罗马数字转换器 ETA 计算器 YAML美化和格式化 随机端口生成 加密/解密文本 打乱字符串 Git 备忘录 基准生成器 HTTP 状态码 SQL 美化和格式化 Crontab 表达式生成 密码强度分析仪 计时器 Token 生成器 百分比计算器 SVG 占位符生成器 JSON 转 CSV 摄像机记录器 Keycode 信息 Emoji 选择器 Color 选择器 加密 "
/>
<meta
itemprop="description"
content="Collection of handy online tools for developers, with great UX. IT Tools is a free and open-source collection of handy online tools for developers & people working in IT."
content="极客日志 在线工具 编码/解码url格式的字符串 JWT解析器 XML格式化 在线二维码生成器 在线JSON美化 在线JSON格式化 JSON转YAML转换器 TOML转YAML 在线 Base64 字符串编码/解码图片转base64 Base64 文件转换器 BIP39密码生成器 Hmac 生成器 罗马数字转换器 ETA 计算器 YAML美化和格式化 随机端口生成 加密/解密文本 打乱字符串 Git 备忘录 基准生成器 HTTP 状态码 SQL 美化和格式化 Crontab 表达式生成 密码强度分析仪 计时器 Token 生成器 百分比计算器 SVG 占位符生成器 JSON 转 CSV 摄像机记录器 Keycode 信息 Emoji 选择器 Color 选择器 加密 "
/>
<link rel="author" href="humans.txt" />
<link rel="canonical" href="https://it-tools.tech" />
<link rel="canonical" href="https://tool.zeeklog.com" />
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png" />
@ -24,32 +24,30 @@
<meta name="msapplication-TileColor" content="#da532c" />
<meta name="theme-color" content="#ffffff" />
<meta property="og:url" content="https://it-tools.tech/" />
<meta property="og:url" content="https://tool.zeeklog.com/" />
<meta property="og:type" content="website" />
<meta property="og:title" content="IT Tools" />
<meta property="og:title" content="Zeeklog online tools" />
<meta
property="og:description"
content="Collection of handy online tools for developers, with great UX. IT Tools is a free and open-source collection of handy online tools for developers & people working in IT."
content="极客日志 在线工具 编码/解码url格式的字符串 JWT解析器 XML格式化 在线二维码生成器 在线JSON美化 在线JSON格式化 JSON转YAML转换器 TOML转YAML 在线 Base64 字符串编码/解码图片转base64 Base64 文件转换器 BIP39密码生成器 Hmac 生成器 罗马数字转换器 ETA 计算器 YAML美化和格式化 随机端口生成 加密/解密文本 打乱字符串 Git 备忘录 基准生成器 HTTP 状态码 SQL 美化和格式化 Crontab 表达式生成 密码强度分析仪 计时器 Token 生成器 百分比计算器 SVG 占位符生成器 JSON 转 CSV 摄像机记录器 Keycode 信息 Emoji 选择器 Color 选择器 加密 "
/>
<meta property="og:image" content="https://it-tools.tech/banner.png?v=2" />
<meta property="og:image" content="https://tool.zeeklog.com/banner.png?v=2" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@ittoolsdottech" />
<meta name="twitter:creator" content="@cthmsst" />
<meta name="twitter:title" content="IT Tools" />
<meta name="twitter:title" content="Zeeklog online tools" />
<meta
name="twitter:description"
content="Collection of handy online tools for developers, with great UX. IT Tools is a free and open-source collection of handy online tools for developers & people working in IT."
content="极客日志 在线工具 编码/解码url格式的字符串 JWT解析器 XML格式化 在线二维码生成器 在线JSON美化 在线JSON格式化 JSON转YAML转换器 TOML转YAML 在线 Base64 字符串编码/解码图片转base64 Base64 文件转换器 BIP39密码生成器 Hmac 生成器 罗马数字转换器 ETA 计算器 YAML美化和格式化 随机端口生成 加密/解密文本 打乱字符串 Git 备忘录 基准生成器 HTTP 状态码 SQL 美化和格式化 Crontab 表达式生成 密码强度分析仪 计时器 Token 生成器 百分比计算器 SVG 占位符生成器 JSON 转 CSV 摄像机记录器 Keycode 信息 Emoji 选择器 Color 选择器 加密 "
/>
<meta name="twitter:image" content="https://it-tools.tech/banner.png?v=2" />
<meta name="twitter:image:alt" content="IT Tools" />
<meta name="twitter:image" content="https://tool.zeeklog.com/banner.png?v=2" />
<meta name="twitter:image:alt" content="Zeeklog online tools" />
<style><!--app-css--></style>
</head>
<body>
<div id="app"><!--app-html--></div>
<!-- <script type="module" src="/src/main.ts"></script>-->
<script type="module" src="/src/entry-client.ts"></script>
</body>
</html>

View file

@ -22,7 +22,7 @@
},
"scripts": {
"dev": "vite",
"build": "vue-tsc --noEmit && NODE_OPTIONS=--max_old_space_size=4096 vite build",
"build": "vue-tsc --noEmit && vite build",
"build:ssr": "node server.js",
"preview": "vite preview --port 5050",
"test": "npm run test:unit",

11721
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -7,37 +7,37 @@ const { isDarkTheme } = toRefs(styleStore);
</script>
<template>
<c-tooltip :tooltip="$t('home.nav.github')" position="bottom">
<c-button
circle
variant="text"
href="https://github.com/CorentinTh/it-tools"
target="_blank"
rel="noopener noreferrer"
:aria-label="$t('home.nav.githubRepository')"
>
<n-icon size="25" :component="BrandGithub" />
</c-button>
</c-tooltip>
<!-- <c-tooltip :tooltip="$t('home.nav.github')" position="bottom">-->
<!-- <c-button-->
<!-- circle-->
<!-- variant="text"-->
<!-- href="https://github.com/CorentinTh/it-tools"-->
<!-- target="_blank"-->
<!-- rel="noopener noreferrer"-->
<!-- :aria-label="$t('home.nav.githubRepository')"-->
<!-- >-->
<!-- <n-icon size="25" :component="BrandGithub" />-->
<!-- </c-button>-->
<!-- </c-tooltip>-->
<c-tooltip :tooltip="$t('home.nav.twitter')" position="bottom">
<c-button
circle
variant="text"
href="https://twitter.com/ittoolsdottech"
rel="noopener"
target="_blank"
:aria-label="$t('home.nav.twitterAccount')"
>
<n-icon size="25" :component="BrandTwitter" />
</c-button>
</c-tooltip>
<!-- <c-tooltip :tooltip="$t('home.nav.twitter')" position="bottom">-->
<!-- <c-button-->
<!-- circle-->
<!-- variant="text"-->
<!-- href="https://twitter.com/ittoolsdottech"-->
<!-- rel="noopener"-->
<!-- target="_blank"-->
<!-- :aria-label="$t('home.nav.twitterAccount')"-->
<!-- >-->
<!-- <n-icon size="25" :component="BrandTwitter" />-->
<!-- </c-button>-->
<!-- </c-tooltip>-->
<c-tooltip :tooltip="$t('home.nav.about')" position="bottom">
<c-button circle variant="text" to="/about" :aria-label="$t('home.nav.aboutLabel')">
<n-icon size="25" :component="InfoCircle" />
</c-button>
</c-tooltip>
<!-- <c-tooltip :tooltip="$t('home.nav.about')" position="bottom">-->
<!-- <c-button circle variant="text" @click='window.open("https://zeeklog.com/about-ne0")' :aria-label="$t('home.nav.aboutLabel')">-->
<!-- <n-icon size="25" :component="InfoCircle" />-->
<!-- </c-button>-->
<!-- </c-tooltip>-->
<c-tooltip :tooltip="isDarkTheme ? $t('home.nav.lightMode') : $t('home.nav.darkMode')" position="bottom">
<c-button circle variant="text" :aria-label="$t('home.nav.mode')" @click="() => styleStore.toggleDark()">
<n-icon v-if="isDarkTheme" size="25" :component="Sun" />

View file

@ -1,38 +1,42 @@
// // entry-client.js
// import { createApp } from './main';
//
// const { app, router } = createApp();
//
// router.isReady().then(() => {
// app.mount('#app', true);
// });
// entry-client.js
import { createApp } from './main';
// import 'uno.css'; // 确保这是你的 UnoCSS 生成的样式文件
import { createHead } from '@vueuse/head';
// src/entry-client.js
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import App from './App.vue';
import router from '@/router';
import { plausible } from '@/plugins/plausible.plugin';
import { naive } from '@/plugins/naive.plugin';
import { i18nPlugin } from '@/plugins/i18n.plugin';
const app = createApp(App);
const pinia = createPinia();
app.use(pinia);
app.use(createHead());
app.use(i18nPlugin);
app.use(router);
app.use(plausible);
app.use(naive);
const { app, router } = createApp();
router.isReady().then(() => {
console.log('---- Router is ready, now mounting the app...');
app.mount('#app', true);
console.log('---- App has been mounted successfully.');
}).catch((err) => {
console.log(err);
});
//
// // import 'uno.css'; // 确保这是你的 UnoCSS 生成的样式文件
//
// import { createHead } from '@vueuse/head';
//
// // src/entry-client.js
// import { createApp } from 'vue';
// import { createPinia } from 'pinia';
// import App from './App.vue';
// import router from '@/router';
// import { plausible } from '@/plugins/plausible.plugin';
// import { naive } from '@/plugins/naive.plugin';
// import { i18nPlugin } from '@/plugins/i18n.plugin';
//
// const app = createApp(App);
// const pinia = createPinia();
// app.use(pinia);
// app.use(createHead());
// app.use(i18nPlugin);
// app.use(router);
// app.use(plausible);
// app.use(naive);
//
// router.isReady().then(() => {
// console.log('---- Router is ready, now mounting the app...');
// app.mount('#app', true);
// console.log('---- App has been mounted successfully.');
// }).catch((err) => {
// console.log(err);
// });

View file

@ -41,7 +41,7 @@ const tools = computed<ToolCategory[]>(() => [
<MenuLayout class="menu-layout" :class="{ isSmallScreen: styleStore.isSmallScreen }">
<template #sider>
<RouterLink to="/" class="hero-wrapper">
<HeroGradient class="gradient" />
<!-- <HeroGradient class="gradient" />-->
<div class="text-wrapper">
<div class="title">
IT - TOOLS
@ -96,14 +96,14 @@ const tools = computed<ToolCategory[]>(() => [
<template #content>
<div flex items-center justify-center gap-2>
<CButton
circle
variant="text"
:aria-label="$t('home.toggleMenu')"
@click="styleStore.isMenuCollapsed = !styleStore.isMenuCollapsed"
>
<NIcon size="25" :component="Menu2" />
</CButton>
<!-- <CButton-->
<!-- circle-->
<!-- variant="text"-->
<!-- :aria-label="$t('home.toggleMenu')"-->
<!-- @click="styleStore.isMenuCollapsed = !styleStore.isMenuCollapsed"-->
<!-- >-->
<!-- <NIcon size="25" :component="Menu2" />-->
<!-- </CButton>-->
<CTooltip :tooltip="$t('home.home')" position="bottom">
<CButton to="/" circle variant="text" :aria-label="$t('home.home')">
@ -125,20 +125,20 @@ const tools = computed<ToolCategory[]>(() => [
<NavbarButtons v-if="!styleStore.isSmallScreen" />
</div>
<CTooltip position="bottom" :tooltip="$t('home.support')">
<CButton
round
href="https://www.buymeacoffee.com/cthmsst"
rel="noopener"
target="_blank"
class="support-button"
:bordered="false"
@click="() => tracker.trackEvent({ eventName: 'Support button clicked' })"
>
{{ $t('home.buyMeACoffee') }}
<NIcon v-if="!styleStore.isSmallScreen" :component="Heart" ml-2 />
</CButton>
</CTooltip>
<!-- <CTooltip position="bottom" :tooltip="$t('home.support')">-->
<!-- <CButton-->
<!-- round-->
<!-- href="https://www.buymeacoffee.com/cthmsst"-->
<!-- rel="noopener"-->
<!-- target="_blank"-->
<!-- class="support-button"-->
<!-- :bordered="false"-->
<!-- @click="() => tracker.trackEvent({ eventName: 'Support button clicked' })"-->
<!-- >-->
<!-- {{ $t('home.buyMeACoffee') }}-->
<!-- <NIcon v-if="!styleStore.isSmallScreen" :component="Heart" ml-2 />-->
<!-- </CButton>-->
<!-- </CTooltip>-->
</div>
<slot />
</template>
@ -178,7 +178,7 @@ const tools = computed<ToolCategory[]>(() => [
}
.sider-content {
padding-top: 160px;
//padding-top: 160px;
padding-bottom: 200px;
}