Farsi Docs updated

This commit is contained in:
AA 2024-01-09 15:53:43 +03:30
parent b27b5ada31
commit 543bf4eb30
5 changed files with 217 additions and 14 deletions

32
docs/Build_Core_fa.md Normal file
View File

@ -0,0 +1,32 @@
## ساخت nekoray_core و nekobox_core
### ساختار دایرکتوری
```
| nekoray
| go/cmd/*
| Xray-core
| sing-box-extra
| sing-box
| ......
```
### ساخت معمولی
1. `bash libs/get_source.sh `(دریافت خودکار ساختار دایرکتوری، خودکار checkout commit)
2. `GOOS=windows GOARCH=amd64 bash libs/build_go.sh`
برای مشاهده GOOS و GOARCH های پشتیبانی شده به `libs/build_go.sh` مراجعه کنید.
در ساخت غیررسمی، نیازی به کامپایل `updater` و `launcher` نیست.
### تگ‌های sing-box
برای مشاهده تگ‌های استفاده شده به `libs/build_go.sh` مراجعه کنید.

View File

@ -71,4 +71,4 @@ ninja
پس از کامپایل، فایل `nekoray` به دست می‌آید.
### کامپایل بخش Go
لطفاً به [Build_Core.md](./Build_Core.md) مراجعه کنید.
لطفاً به [Build_Core_fa.md](./Build_Core_fa.md) مراجعه کنید.

65
docs/Build_Windows_fa.md Normal file
View File

@ -0,0 +1,65 @@
کامپایل Nekoray در ویندوز
### git clone
```
git clone https://github.com/MatsuriDayo/nekoray.git --recursive
```
### نصب Visual Studio
با نصب از وب سایت رسمی مایکروسافت، می توانید از نسخه های 2019 و 2022 استفاده کنید و محیط توسعه ++Win32 C را نصب کنید.
پس از نصب، می‌توانید `x64 Native Tools Command Prompt` را در منوی «شروع» پیدا کنید.
دستورات زیر این مقاله همه در این cmd اجرا می شوند. `cmake` `ninja` و ابزارهای دیگر را می توان با VS استفاده کرد.
### دانلود Qt SDK
نسخه ای که در حال حاضر توسط Windows Release استفاده می شود Qt 6.5.x است.
پس از دانلود و خارج کردن از حالت ظش، پوشه bin را به environment variable اضافه کنید.
#### بسته Qt مورد استفاده برای کامپایل نسخه (MSVC2019 x86_64) را دانلود کنید
https://github.com/MatsuriDayo/nekoray_qt_runtime/releases/download/20220503/Qt6.5.0-Windows-x86_64-VS2022-17.5.5-20230507.7z
#### Official signed version of Qt 5.15.2 (optional, known memory leak bugs)
پکیج های `qtbase` `qtsvg` `qttools` را از اینجا دانلود کنید و آن را در همان دایرکتوری استخراج کنید.
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/
### کامپایل جزئی ++c
#### وابستگی های مورد نیاز ++C/C را کامپایل و نصب کنید
(You may have to hang the ladder for this step)
```shell
bash ./libs/build_deps_all.sh
```
در حال حاضر فقط اسکریپت های bash وجود دارد، بدون پردازش دسته ای یا پاورشل، اگر ویندوز همراه bash نیست، توصیه می شود خودتان آن را نصب کنید.
جزئیاتی مانند پارامترهای CMake مشابه لینوکس است. اگر سوالی دارید، لطفاً به داکیومنت [Build_Linux_fa.md](./Build_Linux_fa.md) مراجعه کنید.
#### کامپایل کد اصلی
لطفاً دستورات را با موقعیت QT Sdk خود جایگزین کنید.
```shell
mkdir build
cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=D:/path/to/qt/5.15.2/msvc2019_64 ..
ninja
```
بعد از اتمام کامپایل، فایل `nekoray.exe` را دریافت خواهید کرد.
سپس با اجرای دستور `windeployqt nekoray.exe`، فایل‌های مورد نیاز مانند DLL به صورت خودکار در دایرکتوری فعلی کپی می‌شوند.
### بخش کامپایل Go
لطفاً به [Build_Core_fa.md](./Build_Core_fa.md) مراجعه کنید.

View File

@ -4,22 +4,22 @@
1. 打开 `基本设置 - 安全 - 启用 hook.js 功能`
2. js 代码请放置于 `config/hook.nekoray.js``config/hook.nekobox.js`
## 技术信息
## Technical Information
* JS Engine: QuickJS ES2020
* 提供的接口:如下面代码所示
* JS engine: QuickJS ES2020.
* Provided interfaces: as shown in the following code
## 示例代码 (typescript)
## کد نمونه (typescript)
```ts
const globalAny: any = globalThis
// 目前提供的方法
// روش‌های ارائه‌شده در حال حاضر
interface nekoray_in {
log(...a: any): void
}
// 目前提供的 hook 点
// نقاط hook ارائه‌شده در حال حاضر
interface nekoray_hook {
hook_core_config(config: string): string
hook_tun_config(config: string): string
@ -42,12 +42,12 @@ class my_hook implements nekoray_hook {
}
hook_tun_config(config: string): string {
return config // 返回输入,表示不修改
return config // بازگشت ورودی، نشان دهنده عدم تغییر
}
hook_tun_script(script: string): string {
console.log("Script") // 输出到 stdout
this.nekoray.log("Script:", script) // 输出到日志
console.log("Script") // خروجی به stdout
this.nekoray.log("Script:", script) // خروجی به لاگ
return script
}
@ -65,7 +65,7 @@ class my_hook implements nekoray_hook {
globalAny.hook = new my_hook
```
## 示例代码 (javascript)
## کد نمونه (javascript)
```js
var globalAny = globalThis;
@ -84,11 +84,11 @@ var my_hook = /** @class */ (function () {
return JSON.stringify(json);
};
my_hook.prototype.hook_tun_config = function (config) {
return config; // 返回输入,表示不修改
return config; // بازگشت ورودی، نشان دهنده عدم تغییر
};
my_hook.prototype.hook_tun_script = function (script) {
console.log("Script"); // 输出到 stdout
this.nekoray.log("Script:", script); // 输出到日志
console.log("Script"); // خروجی به stdout
this.nekoray.log("Script:", script); // خروجی به لاگ
return script;
};
my_hook.prototype.hook_import = function (content) {

106
docs/HookJS_fa.md Normal file
View File

@ -0,0 +1,106 @@
# استفاده از فایل hook.js
## فعالسازی
1. `Basic Settings - Security - Enable hook.js function` را روشن کنید
2. کد JS را در `config/hook.nekoray.js` یا `config/hook.nekobox.js` قرار دهید.
## 技术信息
* JS Engine: QuickJS ES2020
* 提供的接口:如下面代码所示
## 示例代码 (typescript)
```ts
const globalAny: any = globalThis
// 目前提供的方法
interface nekoray_in {
log(...a: any): void
}
// 目前提供的 hook 点
interface nekoray_hook {
hook_core_config(config: string): string
hook_tun_config(config: string): string
hook_tun_script(script: string): string
hook_import(content: string): string
}
class my_hook implements nekoray_hook {
private nekoray = globalAny.nekoray as nekoray_in
hook_core_config(config: string): string {
var json = JSON.parse(config)
var my_rule = {
"geosite": "cn",
"server": "dns-direct",
"disable_cache": true
}
json["dns"]["rules"].push(my_rule)
return JSON.stringify(json)
}
hook_tun_config(config: string): string {
return config // 返回输入,表示不修改
}
hook_tun_script(script: string): string {
console.log("Script") // 输出到 stdout
this.nekoray.log("Script:", script) // 输出到日志
return script
}
hook_import(content: string): string {
var newContent: Array<any> = []
content.split("\n").forEach((line: any) => {
if (line.startsWith("vmess://")) {
newContent.push(line)
}
})
return newContent.join("\n")
}
}
globalAny.hook = new my_hook
```
## 示例代码 (javascript)
```js
var globalAny = globalThis;
var my_hook = /** @class */ (function () {
function my_hook() {
this.nekoray = globalAny.nekoray;
}
my_hook.prototype.hook_core_config = function (config) {
var json = JSON.parse(config);
var my_rule = {
"geosite": "cn",
"server": "dns-direct",
"disable_cache": true
};
json["dns"]["rules"].push(my_rule);
return JSON.stringify(json);
};
my_hook.prototype.hook_tun_config = function (config) {
return config; // 返回输入,表示不修改
};
my_hook.prototype.hook_tun_script = function (script) {
console.log("Script"); // 输出到 stdout
this.nekoray.log("Script:", script); // 输出到日志
return script;
};
my_hook.prototype.hook_import = function (content) {
var newContent = [];
content.split("\n").forEach(function (line) {
if (line.startsWith("vmess://")) {
newContent.push(line);
}
});
return newContent.join("\n");
};
return my_hook;
}());
globalAny.hook = new my_hook;
```