diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 49834e5..36af5e0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,4 +59,4 @@ jobs: artifactErrorsFailBuild: true artifacts: "package.zip" token: ${{ secrets.GITHUB_TOKEN }} - prerelease: false + prerelease: true diff --git a/README.md b/README.md index 648dcb7..f0b2a1c 100644 --- a/README.md +++ b/README.md @@ -18,14 +18,6 @@ 4. Provides a github action template to automatically generate package.zip and upload to new release -> [!TIP] -> You can also use our maintained [siyuan-plugin-cli](https://www.npmjs.com/package/siyuan-plugin-cli) command-line tool to directly build plugins in your local terminal. -> -> Additionally, for the `make-link` related commands mentioned in this plugin, all future updates will be made in [siyuan-plugin-cli](https://www.npmjs.com/package/siyuan-plugin-cli). -> -> The built-in `make-link` scripts may also be removed in a future version, in favor of using the `siyuan-plugin-cli` tool, aiming to simplify the workload of maintaining multiple plugin templates. - - ## Get started 1. Use the Use this template button to make a copy of this repo as a template. Note that the repository name should match the plugin name, and the default branch must be `main`. diff --git a/README_zh_CN.md b/README_zh_CN.md index 0ac9fca..e60f454 100644 --- a/README_zh_CN.md +++ b/README_zh_CN.md @@ -26,13 +26,6 @@ 5. 执行 `pnpm run dev` 进行实时编译 6. 在思源中打开集市并在下载选项卡中启用插件 -> [!TIP] -> 你也可以使用我们维护的 [siyuan-plugin-cli](https://www.npmjs.com/package/siyuan-plugin-cli) 命令行工具,在本地终端中直接构建插件。 -> -> 此外,对于本插件以下提及到的 `make-link` 相关的命令,后续所有更新将在 [siyuan-plugin-cli](https://www.npmjs.com/package/siyuan-plugin-cli) 中进行。 -> -> 模板内置的 `make-link` 脚本也可能会在未来某个版本中移除,转而使用 `siyuan-plugin-cli` 工具,意在简化同时维护多个插件模板的工作量。 - ### 设置 make-link 命令的目标目录 make-link 命令会创建符号链接将你的 `dev` 目录绑定到思源的插件目录下。你可以有三种方式来配置目标的思源工作空间并创建符号链接: diff --git a/package.json b/package.json index 2b7cdec..971fd74 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "plugin-sample-vite-svelte", - "version": "0.3.6", + "version": "0.3.5", "type": "module", "description": "This is a sample plugin based on vite and svelte for Siyuan (https://b3log.org/siyuan)", "repository": "", @@ -8,30 +8,28 @@ "author": "frostime", "license": "MIT", "scripts": { - "dev": "cross-env NODE_ENV=development VITE_SOURCEMAP=inline vite build --watch", - "build": "cross-env NODE_ENV=production vite build", "make-link": "node --no-warnings ./scripts/make_dev_link.js", "make-link-win": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./scripts/elevate.ps1 -scriptPath ./scripts/make_dev_link.js", - "update-version": "node --no-warnings ./scripts/update_version.js", + "dev": "vite build --watch", + "build": "vite build", "make-install": "vite build && node --no-warnings ./scripts/make_install.js" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^3.1.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", "@tsconfig/svelte": "^4.0.1", "@types/node": "^20.3.0", - "cross-env": "^7.0.3", "fast-glob": "^3.2.12", - "glob": "^10.0.0", + "glob": "^7.2.3", "js-yaml": "^4.1.0", "minimist": "^1.2.8", "rollup-plugin-livereload": "^2.0.5", "sass": "^1.63.3", - "siyuan": "1.0.4", - "svelte": "^4.2.19", + "siyuan": "0.9.9", + "svelte": "^4.2.0", "ts-node": "^10.9.1", "typescript": "^5.1.3", - "vite": "^5.2.9", + "vite": "^5.0.0", "vite-plugin-static-copy": "^1.0.2", "vite-plugin-zip-pack": "^1.0.5" } -} \ No newline at end of file +} diff --git a/plugin.json b/plugin.json index fd63a3c..1af2cfe 100644 --- a/plugin.json +++ b/plugin.json @@ -2,16 +2,15 @@ "name": "plugin-sample-vite-svelte", "author": "frostime", "url": "https://github.com/siyuan-note/plugin-sample-vite-svelte", - "version": "0.3.6", + "version": "0.3.5", "minAppVersion": "3.0.12", "backends": [ "windows", "linux", "darwin", + "docker", "ios", - "android", - "harmony", - "docker" + "android" ], "frontends": [ "desktop", @@ -38,8 +37,6 @@ ] }, "keywords": [ - "plugin", - "sample", - "插件样例" + "plugin", "sample", "插件样例" ] } diff --git a/public/i18n/README.md b/public/i18n/README.md deleted file mode 100644 index af8de98..0000000 --- a/public/i18n/README.md +++ /dev/null @@ -1,12 +0,0 @@ -思源支持的 i18n 文件范围,可以在控制台 `siyuan.config.langs` 中查看。以下是目前(2024-10-24)支持的语言方案: - -The range of i18n files supported by SiYuan can be viewed in the console under `siyuan.config.langs`. Below are the language schemes currently supported as of now (October 24, 2024) : - -```js ->>> siyuan.config.langs.map( lang => lang.name) -['de_DE', 'en_US', 'es_ES', 'fr_FR', 'he_IL', 'it_IT', 'ja_JP', 'pl_PL', 'ru_RU', 'zh_CHT', 'zh_CN'] -``` - -在插件开发中,默认使用 JSON 格式作为国际化(i18n)的载体文件。如果您更喜欢使用 YAML 语法,可以将 JSON 文件替换为 YAML 文件(例如 `en_US.yaml`),并在其中编写 i18n 文本。本模板提供了相关的 Vite 插件,可以在编译时自动将 YAML 文件转换为 JSON 文件(请参见 `/yaml-plugin.js`)。本 MD 文件 和 YAML 文件会在 `npm run build` 时自动从 `dist` 目录下删除,仅保留必要的 JSON 文件共插件系统使用。 - -In plugin development, JSON format is used by default as the carrier file for internationalization (i18n). If you prefer to use YAML syntax, you can replace the JSON file with a YAML file (e.g., `en_US.yaml`) and write the i18n text within it. This template provides a related Vite plugin that can automatically convert YAML files to JSON files during the compilation process (see `/yaml-plugin.js`). This markdown file and YAML files will be automatically removed from the `dist` directory during `npm run build`, leaving only the necessary JSON files for plugin system to use. diff --git a/public/i18n/zh_CN.json b/public/i18n/zh_CN.json deleted file mode 100644 index 6600f6a..0000000 --- a/public/i18n/zh_CN.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "addTopBarIcon": "使用插件添加一个顶栏按钮", - "cancel": "取消", - "save": "保存", - "byeMenu": "再见,菜单!", - "helloPlugin": "你好,插件!", - "byePlugin": "再见,插件!", - "showDialog": "弹出一个对话框", - "removedData": "数据已删除", - "confirmRemove": "确认删除 ${name} 中的数据?", - "insertEmoji": "插入表情", - "removeSpace": "移除空格", - "getTab": "在日志中打印出已打开的所有自定义页签", - "name": "思源", - "hello": { - "makesure": "使用这个模板之前,请阅读官方教程, 确保自己已经理解了插件的基本开发流程。" - }, - "hintTitle": "关于", - "hintDesc": "🔗 plugin-sample-vite-svelte
💻 @frostime
💻 @88250
💻 @zxkmm" -} \ No newline at end of file diff --git a/public/i18n/zh_CN.yaml b/public/i18n/zh_CN.yaml new file mode 100644 index 0000000..16099a3 --- /dev/null +++ b/public/i18n/zh_CN.yaml @@ -0,0 +1,21 @@ +--- +addTopBarIcon: 使用插件添加一个顶栏按钮 +cancel: 取消 +save: 保存 +byeMenu: 再见,菜单! +helloPlugin: 你好,插件! +byePlugin: 再见,插件! +showDialog: 弹出一个对话框 +removedData: 数据已删除 +confirmRemove: 确认删除 ${name} 中的数据? +insertEmoji: 插入表情 +removeSpace: 移除空格 +getTab: 在日志中打印出已打开的所有自定义页签 +name: 思源 +hello: + makesure: 使用这个模板之前,请阅读官方教程, + 确保自己已经理解了插件的基本开发流程。 +hintTitle: 关于 +hintDesc: "\U0001F517 + plugin-sample-vite-svelte
\U0001F4BB @frostime
\U0001F4BB @88250
\U0001F4BB + @zxkmm" diff --git a/scripts/update_version.js b/scripts/update_version.js deleted file mode 100644 index 775c98a..0000000 --- a/scripts/update_version.js +++ /dev/null @@ -1,141 +0,0 @@ -// const fs = require('fs'); -// const path = require('path'); -// const readline = require('readline'); -import fs from 'node:fs'; -import path from 'node:path'; -import readline from 'node:readline'; - -// Utility to read JSON file -function readJsonFile(filePath) { - return new Promise((resolve, reject) => { - fs.readFile(filePath, 'utf8', (err, data) => { - if (err) return reject(err); - try { - const jsonData = JSON.parse(data); - resolve(jsonData); - } catch (e) { - reject(e); - } - }); - }); -} - -// Utility to write JSON file -function writeJsonFile(filePath, jsonData) { - return new Promise((resolve, reject) => { - fs.writeFile(filePath, JSON.stringify(jsonData, null, 2), 'utf8', (err) => { - if (err) return reject(err); - resolve(); - }); - }); -} - -// Utility to prompt the user for input -function promptUser(query) { - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout - }); - return new Promise((resolve) => rl.question(query, (answer) => { - rl.close(); - resolve(answer); - })); -} - -// Function to parse the version string -function parseVersion(version) { - const [major, minor, patch] = version.split('.').map(Number); - return { major, minor, patch }; -} - -// Function to auto-increment version parts -function incrementVersion(version, type) { - let { major, minor, patch } = parseVersion(version); - - switch (type) { - case 'major': - major++; - minor = 0; - patch = 0; - break; - case 'minor': - minor++; - patch = 0; - break; - case 'patch': - patch++; - break; - default: - break; - } - - return `${major}.${minor}.${patch}`; -} - -// Main script -(async function () { - try { - const pluginJsonPath = path.join(process.cwd(), 'plugin.json'); - const packageJsonPath = path.join(process.cwd(), 'package.json'); - - // Read both JSON files - const pluginData = await readJsonFile(pluginJsonPath); - const packageData = await readJsonFile(packageJsonPath); - - // Get the current version from both files (assuming both have the same version) - const currentVersion = pluginData.version || packageData.version; - console.log(`\n🌟 Current version: \x1b[36m${currentVersion}\x1b[0m\n`); - - // Calculate potential new versions for auto-update - const newPatchVersion = incrementVersion(currentVersion, 'patch'); - const newMinorVersion = incrementVersion(currentVersion, 'minor'); - const newMajorVersion = incrementVersion(currentVersion, 'major'); - - // Prompt the user with formatted options - console.log('🔄 How would you like to update the version?\n'); - console.log(` 1️⃣ Auto update \x1b[33mpatch\x1b[0m version (new version: \x1b[32m${newPatchVersion}\x1b[0m)`); - console.log(` 2️⃣ Auto update \x1b[33mminor\x1b[0m version (new version: \x1b[32m${newMinorVersion}\x1b[0m)`); - console.log(` 3️⃣ Auto update \x1b[33mmajor\x1b[0m version (new version: \x1b[32m${newMajorVersion}\x1b[0m)`); - console.log(` 4️⃣ Input version \x1b[33mmanually\x1b[0m`); - // Press 0 to skip version update - console.log(' 0️⃣ Quit without updating\n'); - - const updateChoice = await promptUser('👉 Please choose (1/2/3/4): '); - - let newVersion; - - switch (updateChoice.trim()) { - case '1': - newVersion = newPatchVersion; - break; - case '2': - newVersion = newMinorVersion; - break; - case '3': - newVersion = newMajorVersion; - break; - case '4': - newVersion = await promptUser('✍️ Please enter the new version (in a.b.c format): '); - break; - case '0': - console.log('\n🛑 Skipping version update.'); - return; - default: - console.log('\n❌ Invalid option, no version update.'); - return; - } - - // Update the version in both plugin.json and package.json - pluginData.version = newVersion; - packageData.version = newVersion; - - // Write the updated JSON back to files - await writeJsonFile(pluginJsonPath, pluginData); - await writeJsonFile(packageJsonPath, packageData); - - console.log(`\n✅ Version successfully updated to: \x1b[32m${newVersion}\x1b[0m\n`); - - } catch (error) { - console.error('❌ Error:', error); - } -})(); diff --git a/src/hello.svelte b/src/hello.svelte index 967c7f6..cc9f0dd 100644 --- a/src/hello.svelte +++ b/src/hello.svelte @@ -1,11 +1,3 @@ -