diff --git a/external/fonts/AaCute.ttf b/external/fonts/AaCute.ttf new file mode 100644 index 00000000..e3ee1ee4 Binary files /dev/null and b/external/fonts/AaCute.ttf differ diff --git a/external/fonts/JetBrainsMono.ttf b/external/fonts/JetBrainsMono.ttf new file mode 100644 index 00000000..b60e77f5 Binary files /dev/null and b/external/fonts/JetBrainsMono.ttf differ diff --git a/external/fonts/post.jpg b/external/fonts/post.jpg new file mode 100644 index 00000000..89067f6f Binary files /dev/null and b/external/fonts/post.jpg differ diff --git a/src/plugin/data.ts b/src/plugin/data.ts new file mode 100644 index 00000000..f5d4d667 --- /dev/null +++ b/src/plugin/data.ts @@ -0,0 +1,4 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; + +export let current_path = dirname(fileURLToPath(import.meta.url)); \ No newline at end of file diff --git a/src/plugin/drawTime.ts b/src/plugin/drawTime.ts index c25e6ea8..db0343f2 100644 --- a/src/plugin/drawTime.ts +++ b/src/plugin/drawTime.ts @@ -1,4 +1,6 @@ import { createCanvas, loadImage } from "@napi-rs/canvas"; +import path from "path"; +import { current_path } from "./data"; /** * 绘制时间模式匹配的可视化图表 @@ -41,7 +43,7 @@ export async function drawTimePattern(data: { const ctx = canvas.getContext('2d'); // 加载背景图 - const backgroundImage = await loadImage('C:\\fonts\\post.jpg'); + const backgroundImage = await loadImage(path.join(current_path,'.\\fonts\\post.jpg')); const pattern = ctx.createPattern(backgroundImage, 'repeat'); ctx.fillStyle = pattern; ctx.fillRect(0, 0, width, height); diff --git a/src/plugin/network.ts b/src/plugin/network.ts index 39096a7f..3ae3719f 100644 --- a/src/plugin/network.ts +++ b/src/plugin/network.ts @@ -1,4 +1,6 @@ import { createCanvas, loadImage } from "@napi-rs/canvas"; +import path from "path"; +import { current_path } from "./data"; interface NetworkNode { id: string; @@ -39,7 +41,7 @@ export async function drawWordNetwork(data: NetworkData): Promise { // 绘制背景 try { - const backgroundImage = await loadImage('C:\\fonts\\post.jpg'); + const backgroundImage = await loadImage(path.join(current_path, '.\\fonts\\post.jpg')); const pattern = ctx.createPattern(backgroundImage, 'repeat'); if (pattern) { ctx.fillStyle = pattern; diff --git a/src/shell/drawJson.ts b/src/shell/drawJson.ts index 3dcd9f73..e063e74e 100644 --- a/src/shell/drawJson.ts +++ b/src/shell/drawJson.ts @@ -1,4 +1,6 @@ +import { current_path } from "@/plugin/data"; import { createCanvas, loadImage } from "@napi-rs/canvas"; +import path from "path"; export async function drawJsonContent(jsonContent: string) { const lines = jsonContent.split('\n'); @@ -27,7 +29,7 @@ export async function drawJsonContent(jsonContent: string) { const finalCanvas = createCanvas(width, height); const finalCtx = finalCanvas.getContext('2d'); - const backgroundImage = await loadImage('C:\\fonts\\post.jpg'); + const backgroundImage = await loadImage(path.join(current_path,'.\\fonts\\post.jpg')); const pattern = finalCtx.createPattern(backgroundImage, 'repeat'); finalCtx.fillStyle = pattern; finalCtx.fillRect(0, 0, width, height); diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index a8870097..0c719ecf 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -1,5 +1,9 @@ +import { dirname, join } from 'node:path'; import { NCoreInitShell } from './base'; import { GlobalFonts } from '@napi-rs/canvas'; -GlobalFonts.registerFromPath('C:\\fonts\\JetBrainsMono.ttf', 'JetBrains Mono'); -GlobalFonts.registerFromPath('C:\\fonts\\AaCute.ttf', 'Aa偷吃可爱长大的'); +import { fileURLToPath } from 'node:url'; + +let current_path = dirname(fileURLToPath(import.meta.url)); +GlobalFonts.registerFromPath(join(current_path, '.\\fonts\\JetBrainsMono.ttf'), 'JetBrains Mono'); +GlobalFonts.registerFromPath(join(current_path, '.\\fonts\\AaCute.ttf', 'Aa偷吃可爱长大的')); NCoreInitShell(); \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index d25aa5ac..673556b7 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -27,6 +27,7 @@ if (process.env.NAPCAT_BUILDSYS == 'linux') { const UniversalBaseConfigPlugin: PluginOption[] = [ cp({ targets: [ + { src: './external/fonts', dest: 'dist/fonts' }, { src: './manifest.json', dest: 'dist' }, { src: './src/core/external/napcat.json', dest: 'dist/config/' }, { src: './src/native/packet', dest: 'dist/moehoo', flatten: false }, @@ -50,6 +51,7 @@ const UniversalBaseConfigPlugin: PluginOption[] = [ const FrameworkBaseConfigPlugin: PluginOption[] = [ cp({ targets: [ + { src: './external/fonts', dest: 'dist/fonts' }, { src: './manifest.json', dest: 'dist' }, { src: './src/core/external/napcat.json', dest: 'dist/config/' }, { src: './src/native/packet', dest: 'dist/moehoo', flatten: false }, @@ -69,6 +71,7 @@ const FrameworkBaseConfigPlugin: PluginOption[] = [ const ShellBaseConfigPlugin: PluginOption[] = [ cp({ targets: [ + { src: './external/fonts', dest: 'dist/fonts' }, { src: './src/native/packet', dest: 'dist/moehoo', flatten: false }, { src: './src/native/pty', dest: 'dist/pty', flatten: false }, { src: './napcat.webui/dist/', dest: 'dist/static/', flatten: false },