-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
🔨 refactor: 创建 dir 符号链接;并编写 ps 脚本用于获取 windows 管理员权限
- Loading branch information
Showing
7 changed files
with
329 additions
and
357 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,15 +20,21 @@ | |
|
||
## Get started | ||
|
||
1. Make a copy of this repo as a template with the `Use this template` button, please note that the repo name must be the same as the plugin name, the default branch must be `main` | ||
1. Use the <kbd>Use this template</kbd> 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`. | ||
2. Clone your repository to the local development folder. | ||
* Note: Unlike `plugin-sample`, this example does not recommend directly downloading the code to `{workspace}/data/plugins/`. | ||
3. Install [NodeJS](https://nodejs.org/en/download) and [pnpm](https://pnpm.io/installation), then run `pnpm i` in the development folder to install the required dependencies. | ||
4. Run the `pnpm run make-link` command to create a symbolic link (Windows developers, please refer to the "make-link on Windows" section below). | ||
5. Execute `pnpm run dev` for real-time compilation. | ||
6. Open the marketplace in SiYuan and enable the plugin in the download tab. | ||
|
||
2. Clone your repo to a local development folder at any place | ||
- Notice: we **don't recommand** you to place the folder under your `{workspace}/data/plugins/` folder. | ||
### Setting the Target Directory for the make-link Command | ||
|
||
3. Install NodeJS and pnpm, then run pnpm i in the command line under your repo folder | ||
4. **Auto create development symbolic links** | ||
- Make sure that SiYuan is running | ||
- Run `pnpm run make-link`, the script will detect all the siyuan workspace, please select the targe workspace and the script will automatically create the symbolic link under the `{workspace}/data/plugins/` folder | ||
The `make-link` command creates a symbolic link that binds your `dev` directory to the SiYuan plugin directory. You can configure the target SiYuan workspace and create the symbolic link in three ways: | ||
|
||
1. **Select Workspace** | ||
- Open SiYuan, ensure the SiYuan kernel is running. | ||
- Run `pnpm run make-link`, the script will automatically detect all SiYuan workspaces, please manually enter the number to select the workspace. | ||
```bash | ||
>>> pnpm run make-link | ||
> [email protected] make-link H:\SrcCode\开源项目\plugin-sample-vite-svelte | ||
|
@@ -42,22 +48,24 @@ | |
Got target directory: H:\Media\SiYuan/data/plugins | ||
Done! Created symlink H:\Media\SiYuan/data/plugins/plugin-sample-vite-svelte | ||
``` | ||
4. **Manually create development symbolic links** | ||
- Open `./scripts/make_dev_link.js` file, set `targetDir` to your SiYuan plugin directory `<siyuan workspace>/data/plugins` | ||
- Run `pnpm run make-link`, succeed if following message is shown: | ||
```bash | ||
>>> pnpm run make-link | ||
> [email protected] make-link H:\SrcCode\plugin-sample-vite-svelte | ||
> node ./scripts/make_dev_link.js | ||
Done! Created symlink H:/SiYuanDevSpace/data/plugins/plugin-sample-vite-svelte | ||
``` | ||
5. **Create development symbolic links by using environment variable** | ||
- You can set environment variable `SIYUAN_PLUGIN_DIR` as `/data/plugins` | ||
6. Execute pnpm run dev for real-time compilation | ||
7. Open SiYuan marketplace and enable plugin in downloaded tab | ||
> Notice: as the `make-link` script rely on the `fetch` function, please **ensure that at least version v18 of nodejs is installed** if you want to use make-link script. | ||
2. **Manually Configure Target Directory** | ||
- Open the `./scripts/make_dev_link.js` file, change `targetDir` to the SiYuan plugin directory `<siyuan workspace>/data/plugins`. | ||
- Run the `pnpm run make-link` command. If you see a message similar to the one below, it indicates successful creation: | ||
3. **Set Environment Variable to Create Symbolic Link** | ||
- Set the system environment variable `SIYUAN_PLUGIN_DIR` to the path `workspace/data/plugins`. | ||
### make-link on Windows | ||
Due to SiYuan upgrading to Go 1.23, the old version of junction links cannot be recognized normally on Windows, so it has been changed to create `dir` symbolic links. | ||
> https://github.com/siyuan-note/siyuan/issues/12399 | ||
However, creating directory symbolic links on Windows using NodeJs may require administrator privileges. You have the following options: | ||
1. Run `pnpm run make-link` in a command line with administrator privileges. | ||
2. Configure Windows settings, enable developer mode in [System Settings - Update & Security - Developer Mode] then run `pnpm run make-link`. | ||
3. Run `pnpm run make-link-win`, this command will use a PowerShell script to request administrator privileges, requiring the system to enable PowerShell script execution permissions. | ||
## I18n | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,11 +18,19 @@ | |
|
||
## 开始 | ||
|
||
1. 通过 <kbd>Use this template</kbd> 按钮将该库文件复制到你自己的库中,请注意库名必须和插件名称一致,默认分支必须为 `main` | ||
1. 通过 <kbd>Use this template</kbd> 按钮将该库文件复制到你自己的库中,请注意库名和插件名称一致,默认分支必须为 `main` | ||
2. 将你的库克隆到本地开发文件夹中 | ||
* 注意: 同 `plugin-sample` 不同, 本样例并不推荐直接把代码下载到 `{workspace}/data/plugins/` | ||
3. 安装 [NodeJS](https://nodejs.org/en/download) 和 [pnpm](https://pnpm.io/installation),然后在开发文件夹下执行 `pnpm i` 安装所需要的依赖 | ||
3. **自动创建符号链接** | ||
4. 运行 `pnpm run make-link` 命令创建符号链接 (Windows 下的开发者请参阅下方「Windows 下的 make-link」小节) | ||
5. 执行 `pnpm run dev` 进行实时编译 | ||
6. 在思源中打开集市并在下载选项卡中启用插件 | ||
|
||
### 设置 make-link 命令的目标目录 | ||
|
||
make-link 命令会创建符号链接将你的 `dev` 目录绑定到思源的插件目录下。你可以有三种方式来配置目标的思源工作空间并创建符号链接: | ||
|
||
1. **选择工作空间** | ||
- 打开思源笔记, 确保思源内核正在运行 | ||
- 运行 `pnpm run make-link`, 脚本会自动检测所有思源的工作空间, 请在命令行中手动输入序号以选择工作空间 | ||
```bash | ||
|
@@ -38,23 +46,26 @@ | |
Got target directory: H:\Media\SiYuan/data/plugins | ||
Done! Created symlink H:\Media\SiYuan/data/plugins/plugin-sample-vite-svelte | ||
``` | ||
4. **手动创建符号链接** | ||
2. **手动配置目标目录** | ||
- 打开 `./scripts/make_dev_link.js` 文件,更改 `targetDir` 为思源的插件目录 `<siyuan workspace>/data/plugins` | ||
- 运行 `pnpm run make-link` 命令, 如果看到类似以下的消息,说明创建成功: | ||
```bash | ||
❯❯❯ pnpm run make-link | ||
> [email protected] make-link H:\SrcCode\plugin-sample-vite-svelte | ||
> node ./scripts/make_dev_link.js | ||
Done! Created symlink H:/SiYuanDevSpace/data/plugins/plugin-sample-vite-svelte | ||
``` | ||
5. **设置环境变量创建符号链接** | ||
- 你也可以设置系统的环境变量 `SIYUAN_PLUGIN_DIR` 为 `/data/plugins` 的路径 | ||
6. 执行 `pnpm run dev` 进行实时编译 | ||
7. 在思源中打开集市并在下载选项卡中启用插件 | ||
3. **设置环境变量创建符号链接** | ||
- 设置系统的环境变量 `SIYUAN_PLUGIN_DIR` 为 `工作空间/data/plugins` 的路径 | ||
### Windows 下的 make-link | ||
由于思源升级了 Go 1.23,旧版创建的 junction link 在 windows 下无法被正常识别,故而改为创建 `dir` 符号链接。 | ||
> https://github.com/siyuan-note/siyuan/issues/12399 | ||
不过 Windows 下使用 NodeJs 创建目录符号链接可能需要管理员权限,你可以有如下几种选择: | ||
> 注意由于使用的 make-link 脚本依赖于 `fetch`,所以如果想要使用 make-link **请保证至少安装 v18 版本的 nodejs** | ||
1. 在具有管理员权限的命令行中运行 `pnpm run make-link` | ||
2. 配置 Windows 设置,在 [系统设置-更新与安全-开发者模式] 中启用开发者模式,然后再运行 `pnpm run make-link` | ||
3. 运行 `pnpm run make-link-win`,该命令会使用一个 powershell 脚本来寻求管理员权限,需要在系统中开启 PowerShell 脚本执行权限 | ||
## 国际化 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Copyright (c) 2024 by frostime. All Rights Reserved. | ||
# @Author : frostime | ||
# @Date : 2024-09-06 19:15:53 | ||
# @FilePath : /scripts/elevate.ps1 | ||
# @LastEditTime : 2024-09-06 19:39:13 | ||
# @Description : Force to elevate the script to admin privilege. | ||
|
||
param ( | ||
[string]$scriptPath | ||
) | ||
|
||
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition | ||
$projectDir = Split-Path -Parent $scriptDir | ||
|
||
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { | ||
$args = "-NoProfile -ExecutionPolicy Bypass -File `"" + $MyInvocation.MyCommand.Path + "`" -scriptPath `"" + $scriptPath + "`"" | ||
Start-Process powershell.exe -Verb RunAs -ArgumentList $args -WorkingDirectory $projectDir | ||
exit | ||
} | ||
|
||
Set-Location -Path $projectDir | ||
& node $scriptPath | ||
|
||
pause |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.