mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-05-05 13:57:10 -04:00
🔒 SUPPORT SSR SITE REBUILD && DECLARE FORK TARGET REPO:IT-TOOL
This commit is contained in:
parent
61035dd088
commit
80aa4292a5
6 changed files with 7019 additions and 5530 deletions
28
index.html
28
index.html
|
@ -4,18 +4,18 @@
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" href="favicon.ico" />
|
<link rel="icon" href="favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>IT Tools</title>
|
<title>极客日志 - 在线工具箱 - zeeklog</title>
|
||||||
<meta itemprop="name" content="IT Tools" />
|
<meta itemprop="name" content="Zeeklog online tools" />
|
||||||
<meta
|
<meta
|
||||||
name="description"
|
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
|
<meta
|
||||||
itemprop="description"
|
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="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="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png" />
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.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="msapplication-TileColor" content="#da532c" />
|
||||||
<meta name="theme-color" content="#ffffff" />
|
<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:type" content="website" />
|
||||||
<meta property="og:title" content="IT Tools" />
|
<meta property="og:title" content="Zeeklog online tools" />
|
||||||
<meta
|
<meta
|
||||||
property="og:description"
|
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:card" content="summary_large_image" />
|
||||||
<meta name="twitter:site" content="@ittoolsdottech" />
|
<meta name="twitter:site" content="@ittoolsdottech" />
|
||||||
<meta name="twitter:creator" content="@cthmsst" />
|
<meta name="twitter:creator" content="@cthmsst" />
|
||||||
|
|
||||||
<meta name="twitter:title" content="IT Tools" />
|
<meta name="twitter:title" content="Zeeklog online tools" />
|
||||||
<meta
|
<meta
|
||||||
name="twitter:description"
|
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" content="https://tool.zeeklog.com/banner.png?v=2" />
|
||||||
<meta name="twitter:image:alt" content="IT Tools" />
|
<meta name="twitter:image:alt" content="Zeeklog online tools" />
|
||||||
<style><!--app-css--></style>
|
<style><!--app-css--></style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"><!--app-html--></div>
|
<div id="app"><!--app-html--></div>
|
||||||
<!-- <script type="module" src="/src/main.ts"></script>-->
|
|
||||||
<script type="module" src="/src/entry-client.ts"></script>
|
<script type="module" src="/src/entry-client.ts"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"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",
|
"build:ssr": "node server.js",
|
||||||
"preview": "vite preview --port 5050",
|
"preview": "vite preview --port 5050",
|
||||||
"test": "npm run test:unit",
|
"test": "npm run test:unit",
|
||||||
|
|
12349
pnpm-lock.yaml
generated
12349
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
@ -7,37 +7,37 @@ const { isDarkTheme } = toRefs(styleStore);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<c-tooltip :tooltip="$t('home.nav.github')" position="bottom">
|
<!-- <c-tooltip :tooltip="$t('home.nav.github')" position="bottom">-->
|
||||||
<c-button
|
<!-- <c-button-->
|
||||||
circle
|
<!-- circle-->
|
||||||
variant="text"
|
<!-- variant="text"-->
|
||||||
href="https://github.com/CorentinTh/it-tools"
|
<!-- href="https://github.com/CorentinTh/it-tools"-->
|
||||||
target="_blank"
|
<!-- target="_blank"-->
|
||||||
rel="noopener noreferrer"
|
<!-- rel="noopener noreferrer"-->
|
||||||
:aria-label="$t('home.nav.githubRepository')"
|
<!-- :aria-label="$t('home.nav.githubRepository')"-->
|
||||||
>
|
<!-- >-->
|
||||||
<n-icon size="25" :component="BrandGithub" />
|
<!-- <n-icon size="25" :component="BrandGithub" />-->
|
||||||
</c-button>
|
<!-- </c-button>-->
|
||||||
</c-tooltip>
|
<!-- </c-tooltip>-->
|
||||||
|
|
||||||
<c-tooltip :tooltip="$t('home.nav.twitter')" position="bottom">
|
<!-- <c-tooltip :tooltip="$t('home.nav.twitter')" position="bottom">-->
|
||||||
<c-button
|
<!-- <c-button-->
|
||||||
circle
|
<!-- circle-->
|
||||||
variant="text"
|
<!-- variant="text"-->
|
||||||
href="https://twitter.com/ittoolsdottech"
|
<!-- href="https://twitter.com/ittoolsdottech"-->
|
||||||
rel="noopener"
|
<!-- rel="noopener"-->
|
||||||
target="_blank"
|
<!-- target="_blank"-->
|
||||||
:aria-label="$t('home.nav.twitterAccount')"
|
<!-- :aria-label="$t('home.nav.twitterAccount')"-->
|
||||||
>
|
<!-- >-->
|
||||||
<n-icon size="25" :component="BrandTwitter" />
|
<!-- <n-icon size="25" :component="BrandTwitter" />-->
|
||||||
</c-button>
|
<!-- </c-button>-->
|
||||||
</c-tooltip>
|
<!-- </c-tooltip>-->
|
||||||
|
|
||||||
<c-tooltip :tooltip="$t('home.nav.about')" position="bottom">
|
<!-- <c-tooltip :tooltip="$t('home.nav.about')" position="bottom">-->
|
||||||
<c-button circle variant="text" to="/about" :aria-label="$t('home.nav.aboutLabel')">
|
<!-- <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" />
|
<!-- <n-icon size="25" :component="InfoCircle" />-->
|
||||||
</c-button>
|
<!-- </c-button>-->
|
||||||
</c-tooltip>
|
<!-- </c-tooltip>-->
|
||||||
<c-tooltip :tooltip="isDarkTheme ? $t('home.nav.lightMode') : $t('home.nav.darkMode')" position="bottom">
|
<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()">
|
<c-button circle variant="text" :aria-label="$t('home.nav.mode')" @click="() => styleStore.toggleDark()">
|
||||||
<n-icon v-if="isDarkTheme" size="25" :component="Sun" />
|
<n-icon v-if="isDarkTheme" size="25" :component="Sun" />
|
||||||
|
|
|
@ -1,38 +1,42 @@
|
||||||
// // entry-client.js
|
// entry-client.js
|
||||||
// import { createApp } from './main';
|
import { createApp } from './main';
|
||||||
//
|
|
||||||
// const { app, router } = createApp();
|
|
||||||
//
|
|
||||||
// router.isReady().then(() => {
|
|
||||||
// app.mount('#app', true);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// import 'uno.css'; // 确保这是你的 UnoCSS 生成的样式文件
|
// import 'uno.css'; // 确保这是你的 UnoCSS 生成的样式文件
|
||||||
|
|
||||||
import { createHead } from '@vueuse/head';
|
const { app, router } = createApp();
|
||||||
|
|
||||||
// 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(() => {
|
router.isReady().then(() => {
|
||||||
console.log('---- Router is ready, now mounting the app...');
|
|
||||||
app.mount('#app', true);
|
app.mount('#app', true);
|
||||||
console.log('---- App has been mounted successfully.');
|
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
console.log(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);
|
||||||
|
// });
|
||||||
|
|
|
@ -41,7 +41,7 @@ const tools = computed<ToolCategory[]>(() => [
|
||||||
<MenuLayout class="menu-layout" :class="{ isSmallScreen: styleStore.isSmallScreen }">
|
<MenuLayout class="menu-layout" :class="{ isSmallScreen: styleStore.isSmallScreen }">
|
||||||
<template #sider>
|
<template #sider>
|
||||||
<RouterLink to="/" class="hero-wrapper">
|
<RouterLink to="/" class="hero-wrapper">
|
||||||
<HeroGradient class="gradient" />
|
<!-- <HeroGradient class="gradient" />-->
|
||||||
<div class="text-wrapper">
|
<div class="text-wrapper">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
IT - TOOLS
|
IT - TOOLS
|
||||||
|
@ -96,14 +96,14 @@ const tools = computed<ToolCategory[]>(() => [
|
||||||
|
|
||||||
<template #content>
|
<template #content>
|
||||||
<div flex items-center justify-center gap-2>
|
<div flex items-center justify-center gap-2>
|
||||||
<CButton
|
<!-- <CButton-->
|
||||||
circle
|
<!-- circle-->
|
||||||
variant="text"
|
<!-- variant="text"-->
|
||||||
:aria-label="$t('home.toggleMenu')"
|
<!-- :aria-label="$t('home.toggleMenu')"-->
|
||||||
@click="styleStore.isMenuCollapsed = !styleStore.isMenuCollapsed"
|
<!-- @click="styleStore.isMenuCollapsed = !styleStore.isMenuCollapsed"-->
|
||||||
>
|
<!-- >-->
|
||||||
<NIcon size="25" :component="Menu2" />
|
<!-- <NIcon size="25" :component="Menu2" />-->
|
||||||
</CButton>
|
<!-- </CButton>-->
|
||||||
|
|
||||||
<CTooltip :tooltip="$t('home.home')" position="bottom">
|
<CTooltip :tooltip="$t('home.home')" position="bottom">
|
||||||
<CButton to="/" circle variant="text" :aria-label="$t('home.home')">
|
<CButton to="/" circle variant="text" :aria-label="$t('home.home')">
|
||||||
|
@ -125,20 +125,20 @@ const tools = computed<ToolCategory[]>(() => [
|
||||||
<NavbarButtons v-if="!styleStore.isSmallScreen" />
|
<NavbarButtons v-if="!styleStore.isSmallScreen" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<CTooltip position="bottom" :tooltip="$t('home.support')">
|
<!-- <CTooltip position="bottom" :tooltip="$t('home.support')">-->
|
||||||
<CButton
|
<!-- <CButton-->
|
||||||
round
|
<!-- round-->
|
||||||
href="https://www.buymeacoffee.com/cthmsst"
|
<!-- href="https://www.buymeacoffee.com/cthmsst"-->
|
||||||
rel="noopener"
|
<!-- rel="noopener"-->
|
||||||
target="_blank"
|
<!-- target="_blank"-->
|
||||||
class="support-button"
|
<!-- class="support-button"-->
|
||||||
:bordered="false"
|
<!-- :bordered="false"-->
|
||||||
@click="() => tracker.trackEvent({ eventName: 'Support button clicked' })"
|
<!-- @click="() => tracker.trackEvent({ eventName: 'Support button clicked' })"-->
|
||||||
>
|
<!-- >-->
|
||||||
{{ $t('home.buyMeACoffee') }}
|
<!-- {{ $t('home.buyMeACoffee') }}-->
|
||||||
<NIcon v-if="!styleStore.isSmallScreen" :component="Heart" ml-2 />
|
<!-- <NIcon v-if="!styleStore.isSmallScreen" :component="Heart" ml-2 />-->
|
||||||
</CButton>
|
<!-- </CButton>-->
|
||||||
</CTooltip>
|
<!-- </CTooltip>-->
|
||||||
</div>
|
</div>
|
||||||
<slot />
|
<slot />
|
||||||
</template>
|
</template>
|
||||||
|
@ -178,7 +178,7 @@ const tools = computed<ToolCategory[]>(() => [
|
||||||
}
|
}
|
||||||
|
|
||||||
.sider-content {
|
.sider-content {
|
||||||
padding-top: 160px;
|
//padding-top: 160px;
|
||||||
padding-bottom: 200px;
|
padding-bottom: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue