diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index 6664c9b..aebb238 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -9,7 +9,7 @@ jobs:
steps:
- name: Checkout project
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index df8250c..1cf57a0 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -37,7 +37,7 @@ jobs:
access_token: ${{ github.token }}
- name: Checkout Code
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Install Rust
run: |
@@ -70,7 +70,7 @@ jobs:
steps:
- name: Checkout Code
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Get Current Date
id: date
diff --git a/src/SUMMARY.md b/src/SUMMARY.md
index e3a7f1c..2f0cd8a 100644
--- a/src/SUMMARY.md
+++ b/src/SUMMARY.md
@@ -1,12 +1,12 @@
# Summary
-- [نیکاس](index.md)
-- [نمونه های مشابه](similar.md)
-- [شروع به کار](getting-started/index.md)
- - [نیازمندی ها](getting-started/requirements.md)
- - [نصب](getting-started/install.md)
- - [اجرا](getting-started/run.md)
-- [تنظیمات](config/index.md)
- - [سرور](config/server.md)
- - [کلاینت](config/client.md)
- - [داکر](config/docker.md)
+- [نیکاس](index.md)
+- [نمونه های مشابه](similar.md)
+- [شروع به کار](getting-started/index.md)
+ - [نیازمندی ها](getting-started/requirements.md)
+ - [نصب](getting-started/install.md)
+ - [اجرا](getting-started/run.md)
+- [تنظیمات](config/index.md)
+ - [سرور](config/server.md)
+ - [کلاینت](config/client.md)
+ - [داکر](config/docker.md)
diff --git a/src/config/client.md b/src/config/client.md
index a302b35..4aa080f 100644
--- a/src/config/client.md
+++ b/src/config/client.md
@@ -121,9 +121,9 @@ or
برای مثال اگر مقدار این گزینه را برابر `"3,3-"` قرار دهید باعث میشود حالات زیر اتفاق بیوفتد :
-- ایجاد کلاس `nikas-vote-level-0` برای نظرات با امتیاز کمتر از `منفی 3`
-- ایجاد کلاس `nikas-vote-level-1` برای نظرات با امتیاز بین `منفی 3` و `دو`
-- ایجاد کلاس `nikas-vote-level-2` برای نظرات با امتیاز `دو` و بیشتر
+- ایجاد کلاس `nikas-vote-level-0` برای نظرات با امتیاز کمتر از `منفی 3`
+- ایجاد کلاس `nikas-vote-level-1` برای نظرات با امتیاز بین `منفی 3` و `دو`
+- ایجاد کلاس `nikas-vote-level-2` برای نظرات با امتیاز `دو` و بیشتر
میتوانید از این کلاس ها برای ظاهرسازی مناسب نظرات استفاده کنید. برای مثال به ازای امتیاز برای آن ها از آیکون ستاره استفاده کنید.
@@ -137,8 +137,8 @@ or
با استفاده از این گزینه میتوانید قالب پیشفرض نیکاس را انتخاب کنید. دو مقدار معتبر وجود دارد :
-- `light` : قالب روشن
-- `dark` : قالب تیره
+- `light` : قالب روشن
+- `dark` : قالب تیره
> در صورتی که مقدار وارد شده معتبر نباشد ٬ قالب روشن استفاده خواهد شد.
diff --git a/src/config/index.md b/src/config/index.md
index 6617eee..fa0bbd7 100644
--- a/src/config/index.md
+++ b/src/config/index.md
@@ -2,9 +2,9 @@
در این بخش تنظیمات نیکاس را به صورت **سرور** و **کلاینت** بررسی میکنیم.
-- [سرور](server.md)
-- [کلاینت](client.md)
+- [سرور](server.md)
+- [کلاینت](client.md)
همچنین به بررسی تنظیمات لازم برای Docker میپردازیم
-- [داکر](docker.md)
+- [داکر](docker.md)
diff --git a/src/config/server.md b/src/config/server.md
index d32386b..95215ad 100644
--- a/src/config/server.md
+++ b/src/config/server.md
@@ -28,14 +28,14 @@ env NIKAS_SETTINGS=path/to/nikas.cfg nikas
حال به بررسی تنظیمات مختلف سرور میپردازیم :
-- [General](#general)
-- [Moderation](#moderation)
-- [Server](#server)
-- [SMTP](#smtp)
-- [Guard](#guard)
-- [Hash](#hash)
-- [RSS](#rss)
-- [Admin](#admin)
+- [General](#general)
+- [Moderation](#moderation)
+- [Server](#server)
+- [SMTP](#smtp)
+- [Guard](#guard)
+- [Hash](#hash)
+- [RSS](#rss)
+- [Admin](#admin)
## General
@@ -85,8 +85,8 @@ host =
سیستم اعلام دریافت نظر برای نظرات جدید :
-- **stdout** : این مورد به صورت پیشفرض فعال بوده و نظرات جدید در قالب خروجی عادی در ترمینال نمایش داده میشوند
-- **smtp** : اعلان از طریق ایمیل برای شما ارسال خواهد شد. توجه داشته باشید که در صورت استفاده از این گزینه باید تنظیمات [SMTP](#smtp) را نیز انجام دهید.
+- **stdout** : این مورد به صورت پیشفرض فعال بوده و نظرات جدید در قالب خروجی عادی در ترمینال نمایش داده میشوند
+- **smtp** : اعلان از طریق ایمیل برای شما ارسال خواهد شد. توجه داشته باشید که در صورت استفاده از این گزینه باید تنظیمات [SMTP](#smtp) را نیز انجام دهید.
### reply-notifications
@@ -350,9 +350,9 @@ password =
در نهایت روند اعتبارسنجی به کلی تغییر یافت و از روش های جایگزین برای این مورد استفاده شد. از آنجایی که در نیکاس جهت استفاده از پنل مدیریت نیاز به تعریف حساب کاربری خاصی نداریم ، پس مسلما یک کلمه عبور ساده جهت احراز هویت کافی است. یکی از اولین راه ها استفاده از `SHA-256` خواهد بود که در سال های اخیر مشکلاتی رو نیز به همراه داشته :
-- [CWE-327](https://cwe.mitre.org/data/definitions/327.html)
-- [CWE-328](https://cwe.mitre.org/data/definitions/328.html)
-- [CWE-916](https://cwe.mitre.org/data/definitions/916.html)
+- [CWE-327](https://cwe.mitre.org/data/definitions/327.html)
+- [CWE-328](https://cwe.mitre.org/data/definitions/328.html)
+- [CWE-916](https://cwe.mitre.org/data/definitions/916.html)
از این رو `SHA-256` به کلی کنار گذاشته شد و به سراغ [Argon2](https://en.wikipedia.org/wiki/Argon2) رفتیم. یک الگوریتم KDF که در امر رمزنگاری بسیار بهینه تر عمل میکند. این کتابخانه در نسخه [1.1.1](https://github.com/Nikas-Project/Server/releases/tag/1.1.1) به نیکاس اضافه شد و هم اکنون در دسترس است.
diff --git a/src/getting-started/index.md b/src/getting-started/index.md
index 4b2ec53..18621f3 100644
--- a/src/getting-started/index.md
+++ b/src/getting-started/index.md
@@ -2,6 +2,6 @@
در این بخش به بررسی نیازمندی های سخت افزاری و نرم افزاری می پردازیم و نیکاس را نصب می کنیم :
-- [نیازمندی ها](requirements.md)
-- [نصب](install.md)
-- [اجرا](run.md)
+- [نیازمندی ها](requirements.md)
+- [نصب](install.md)
+- [اجرا](run.md)
diff --git a/src/getting-started/install.md b/src/getting-started/install.md
index 9210338..ae708e9 100644
--- a/src/getting-started/install.md
+++ b/src/getting-started/install.md
@@ -2,10 +2,10 @@
راه های مختلفی برای نصب نیکاس وجود داره :
-- [Python Package](#python-package)
-- [Source](#source)
-- [Docker](#docker)
-- [Kubernetes](#kubernetes)
+- [Python Package](#python-package)
+- [Source](#source)
+- [Docker](#docker)
+- [Kubernetes](#kubernetes)
قبل از شروع به نصب ، ابتدا صفحه [پیش نیازها](requirements.md) را مطالعه کنید.
@@ -93,8 +93,8 @@ docker run -d --rm --name nikas -p 127.0.0.1:8080:8080 -v /opt/nikas:/config -v
از آنجایی که برای سرور نیکاس ایمیج داکری در اختیار دارید ٬ استقرار آن روی کلاستر Kubernetes نیز به راحتی صورت میگیرد. قبل از شروع به دو نکته توجه داشته باشید:
-- جهت اعمال کانفیگ های مختلف باید از ConfigMap استفاده کنید.
-- جهت ذخیره سازی دیتابیس باید از PersistentVolumeClaim استفاده کنید.
+- جهت اعمال کانفیگ های مختلف باید از ConfigMap استفاده کنید.
+- جهت ذخیره سازی دیتابیس باید از PersistentVolumeClaim استفاده کنید.
فایل Deployment نمونه در [مخزن نیکاس موجود است](https://github.com/Nikas-Project/Server/blob/master/kubernetes/deployment.yml). تنظیمات مورد نظر خودتان را اعمال کرده و نیکاس را مستقر کنید:
@@ -104,21 +104,21 @@ kubectl apply -f nikas-deployment.yaml
تنظیماتی که باید اعمال کنید شامل این موارد است:
-- `image` : نام و تگ ایمیج داکری نیکاس
-- `resources` : مشخصات منابع مورد نیاز برای اجرای نیکاس
-- `PersistentVolumeClaim` : حجم مورد نیاز برای ذخیره سازی دیتابیس
-- `ConfigMap` : کانفیگ های مورد نیاز برای اجرای نیکاس
-- `Route` : اگر از OpenShift استفاده میکنید ٬ این بخش را جهت معرفی دامنه خود تنظیم نمایید. در غیر اینصورت این بخش را حذف کرده و از Ingress Controller مناسب استفاده نمایید.
+- `image` : نام و تگ ایمیج داکری نیکاس
+- `resources` : مشخصات منابع مورد نیاز برای اجرای نیکاس
+- `PersistentVolumeClaim` : حجم مورد نیاز برای ذخیره سازی دیتابیس
+- `ConfigMap` : کانفیگ های مورد نیاز برای اجرای نیکاس
+- `Route` : اگر از OpenShift استفاده میکنید ٬ این بخش را جهت معرفی دامنه خود تنظیم نمایید. در غیر اینصورت این بخش را حذف کرده و از Ingress Controller مناسب استفاده نمایید.
### استقرار در کانتینر ابری ابرآروان
جهت استقرار نیکاس در کانتینر ابری ابرآروان ابتدا مراحل زیر را انجام دهید:
-- ایجاد یک پروژه جدید ( یا استفاده از پروژه فعلی )
-- ایجاد یک کلید دسترسی با مراجعه به تنظیمات / کلیدهای API ( [راهنما](https://www.arvancloud.com/help/fa/article/360034038654--%da%86%da%af%d9%88%d9%86%d9%87-API-Key-%db%8c%d8%a7-%da%a9%d9%84%db%8c%d8%af-%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8c%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af%d8%9f) )
-- تعریف یک زیردامنه برای نیکاس ( مثلا `nikas.example.com` ) و ثبت رکورد CNAME با مقدار زیر:
- - `nikas.example.com` → `default-gateway.ir-thr-at1.arvan.run.`
-- دریافت [CLI](https://docs.arvancloud.com/fa/developer-tools/cli/) ابرآروان
+- ایجاد یک پروژه جدید ( یا استفاده از پروژه فعلی )
+- ایجاد یک کلید دسترسی با مراجعه به تنظیمات / کلیدهای API ( [راهنما](https://www.arvancloud.com/help/fa/article/360034038654--%da%86%da%af%d9%88%d9%86%d9%87-API-Key-%db%8c%d8%a7-%da%a9%d9%84%db%8c%d8%af-%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8c%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af%d8%9f) )
+- تعریف یک زیردامنه برای نیکاس ( مثلا `nikas.example.com` ) و ثبت رکورد CNAME با مقدار زیر:
+ - `nikas.example.com` → `default-gateway.ir-thr-at1.arvan.run.`
+- دریافت [CLI](https://docs.arvancloud.com/fa/developer-tools/cli/) ابرآروان
پس از انجام مراحل بالا میتوانید نیکاس را مستقر کنید:
diff --git a/src/getting-started/requirements.md b/src/getting-started/requirements.md
index 6bb7d2e..acd4b39 100644
--- a/src/getting-started/requirements.md
+++ b/src/getting-started/requirements.md
@@ -38,15 +38,15 @@ sudo yum install python-setuptools python-virtualenv python-devel
نیازمندی های اصلی نیکاس :
-- Python 3.7+ (+ devel headers)
-- SQLite 3.3.8 or later
+- Python 3.7+ (+ devel headers)
+- SQLite 3.3.8 or later
در صورتی که تمایل به کامپایل و اجرای نیکاس از سورس را دارید ، باید لیست زیر را نصب داشته باشید :
-- [Make](https://www.gnu.org/software/make/)
-- C compiler
-- [NodeJS](https://nodejs.org/en/download/)
-- [NPM](https://npmjs.org/)
+- [Make](https://www.gnu.org/software/make/)
+- C compiler
+- [NodeJS](https://nodejs.org/en/download/)
+- [NPM](https://npmjs.org/)
> ❕ متاسفانه به دلیل برخی کتابخانه های استفاده شده در نیکاس امکان استفاده از NodeJS نسخه ۱۶ به بالا وجود ندارد. حتما از نسخه ۱۴ استفاده کنید.
diff --git a/src/getting-started/run.md b/src/getting-started/run.md
index d2d33d9..4162428 100644
--- a/src/getting-started/run.md
+++ b/src/getting-started/run.md
@@ -33,9 +33,9 @@ password = secret_token
در اینجا چنین مواردی را تعریف کرده ایم :
-- نام دیتابیس `example.db`
-- آدرس وب سایتی که نظرات در آن مدیریت می شوند ( وبلاگ شما ) : `https://arash-hatami.ir`
-- Host و Port مربوطه برای اجرای نیکاس : `localhost` - `1234`
-- پنل مدیریت فعال بوده و رمز ورود آن `secret_token` ( این مورد رمز عبور خام و اصلی نیست ، بعدا در موردش صحبت می کنیم )
+- نام دیتابیس `example.db`
+- آدرس وب سایتی که نظرات در آن مدیریت می شوند ( وبلاگ شما ) : `https://arash-hatami.ir`
+- Host و Port مربوطه برای اجرای نیکاس : `localhost` - `1234`
+- پنل مدیریت فعال بوده و رمز ورود آن `secret_token` ( این مورد رمز عبور خام و اصلی نیست ، بعدا در موردش صحبت می کنیم )
جهت مشاهده اطلاعات بیشتر در مورد تنظیم سرور نیکاس به این صفحه بروید : [تنظیمات سرور](../config/server.md)
diff --git a/src/index.md b/src/index.md
index ff5c3cd..982f420 100644
--- a/src/index.md
+++ b/src/index.md
@@ -14,9 +14,9 @@
در حال حاضر راه های زیادی برای رفع این مشکل وجود داره ولی با مسائل زیر مواجه خواهید شد :
-- تحریم / فیلتر
-- عدم پشتیبانی از زبان فارسی
-- سنگین بودن کتابخانه
-- ...
+- تحریم / فیلتر
+- عدم پشتیبانی از زبان فارسی
+- سنگین بودن کتابخانه
+- ...
نیکاس اینجا است تا مشکلات وبلاگ ها و سایت های پارسی زبان رو حل کنه 😀
diff --git a/src/similar.md b/src/similar.md
index c7a12b4..99c8a18 100644
--- a/src/similar.md
+++ b/src/similar.md
@@ -28,8 +28,8 @@
نمونه های بسیار زیاد دیگری هم وجود داره. رایگان ، غیر رایگان ، متن باز و ...
در نیکاس ویژگی های اصلی و مفید هرکدام از اون ها وجود داره :
-- متن باز
-- سبک و کم حجم
-- طراحی UI مدرن تر
-- راحتی در استفاده
-- ...
+- متن باز
+- سبک و کم حجم
+- طراحی UI مدرن تر
+- راحتی در استفاده
+- ...
diff --git a/theme/css/general.css b/theme/css/general.css
index 97edde5..22469f0 100644
--- a/theme/css/general.css
+++ b/theme/css/general.css
@@ -27,8 +27,9 @@ body {
code {
direction: ltr;
- font-family: "Source Code Pro", Consolas, "Ubuntu Mono", Menlo,
- "DejaVu Sans Mono", monospace, monospace !important;
+ font-family:
+ "Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono",
+ monospace, monospace !important;
font-size: 0.875em; /* please adjust the ace font size accordingly in editor.js */
}
diff --git a/theme/highlight.js b/theme/highlight.js
index 3f95a2d..690a947 100644
--- a/theme/highlight.js
+++ b/theme/highlight.js
@@ -25,7 +25,7 @@ var hljs = (function () {
}
class n {
constructor(e) {
- void 0 === e.data && (e.data = {}), (this.data = e.data);
+ (void 0 === e.data && (e.data = {}), (this.data = e.data));
}
ignoreMatch() {
this.ignore = !0;
@@ -88,11 +88,11 @@ var hljs = (function () {
? e
: n
: "start" === n[0].event
- ? e
- : n
+ ? e
+ : n
: e.length
- ? e
- : n;
+ ? e
+ : n;
}
function c(e) {
s +=
@@ -120,12 +120,12 @@ var hljs = (function () {
) {
o.reverse().forEach(u);
do {
- d(g.splice(0, 1)[0]), (g = l());
+ (d(g.splice(0, 1)[0]), (g = l()));
} while (g === e && g.length && g[0].offset === i);
o.reverse().forEach(c);
} else
- "start" === g[0].event ? o.push(g[0].node) : o.pop(),
- d(g.splice(0, 1)[0]);
+ ("start" === g[0].event ? o.push(g[0].node) : o.pop(),
+ d(g.splice(0, 1)[0]));
}
return s + t(r.substr(i));
},
@@ -134,9 +134,9 @@ var hljs = (function () {
o = (e) => !!e.kind;
class l {
constructor(e, n) {
- (this.buffer = ""),
+ ((this.buffer = ""),
(this.classPrefix = n.classPrefix),
- e.walk(this);
+ e.walk(this));
}
addText(e) {
this.buffer += t(e);
@@ -144,7 +144,7 @@ var hljs = (function () {
openNode(e) {
if (!o(e)) return;
let n = e.kind;
- e.sublanguage || (n = `${this.classPrefix}${n}`), this.span(n);
+ (e.sublanguage || (n = `${this.classPrefix}${n}`), this.span(n));
}
closeNode(e) {
o(e) && (this.buffer += s);
@@ -158,7 +158,8 @@ var hljs = (function () {
}
class c {
constructor() {
- (this.rootNode = { children: [] }), (this.stack = [this.rootNode]);
+ ((this.rootNode = { children: [] }),
+ (this.stack = [this.rootNode]));
}
get top() {
return this.stack[this.stack.length - 1];
@@ -171,7 +172,7 @@ var hljs = (function () {
}
openNode(e) {
const n = { kind: e, children: [] };
- this.add(n), this.stack.push(n);
+ (this.add(n), this.stack.push(n));
}
closeNode() {
if (this.stack.length > 1) return this.stack.pop();
@@ -208,7 +209,7 @@ var hljs = (function () {
}
class u extends c {
constructor(e) {
- super(), (this.options = e);
+ (super(), (this.options = e));
}
addKeyword(e, n) {
"" !== e && (this.openNode(n), this.addText(e), this.closeNode());
@@ -218,7 +219,7 @@ var hljs = (function () {
}
addSublanguage(e, n) {
const t = e.root;
- (t.kind = n), (t.sublanguage = !0), this.add(t);
+ ((t.kind = n), (t.sublanguage = !0), this.add(t));
}
toHTML() {
return new l(this, this.options).value();
@@ -369,10 +370,10 @@ var hljs = (function () {
return n
? +n
: (function (e) {
- return N.includes(e.toLowerCase());
- })(e)
- ? 0
- : 1;
+ return N.includes(e.toLowerCase());
+ })(e)
+ ? 0
+ : 1;
}
const R = t,
y = r,
@@ -404,7 +405,7 @@ var hljs = (function () {
var a = { code: n, language: e };
S("before:highlight", a);
var i = a.result ? a.result : m(a.language, a.code, t, r);
- return (i.code = a.code), S("after:highlight", i), i;
+ return ((i.code = a.code), S("after:highlight", i), i);
}
function m(e, t, a, s) {
var o = t;
@@ -416,20 +417,20 @@ var hljs = (function () {
);
}
function u() {
- null != y.subLanguage
+ (null != y.subLanguage
? (function () {
if ("" !== A) {
var e = null;
if ("string" == typeof y.subLanguage) {
if (!i[y.subLanguage])
return void O.addText(A);
- (e = m(
+ ((e = m(
y.subLanguage,
A,
!0,
k[y.subLanguage],
)),
- (k[y.subLanguage] = e.top);
+ (k[y.subLanguage] = e.top));
} else
e = v(
A,
@@ -437,8 +438,8 @@ var hljs = (function () {
? y.subLanguage
: null,
);
- y.relevance > 0 && (I += e.relevance),
- O.addSublanguage(e.emitter, e.language);
+ (y.relevance > 0 && (I += e.relevance),
+ O.addSublanguage(e.emitter, e.language));
}
})()
: (function () {
@@ -452,17 +453,17 @@ var hljs = (function () {
const r = c(y, n);
if (r) {
const [e, a] = r;
- O.addText(t),
+ (O.addText(t),
(t = ""),
(I += a),
- O.addKeyword(n[0], e);
+ O.addKeyword(n[0], e));
} else t += n[0];
- (e = y.keywordPatternRe.lastIndex),
- (n = y.keywordPatternRe.exec(A));
+ ((e = y.keywordPatternRe.lastIndex),
+ (n = y.keywordPatternRe.exec(A)));
}
- (t += A.substr(e)), O.addText(t);
+ ((t += A.substr(e)), O.addText(t));
})(),
- (A = "");
+ (A = ""));
}
function h(e) {
return (
@@ -478,7 +479,7 @@ var hljs = (function () {
var b = {};
function x(t, r) {
var i = r && r[0];
- if (((A += t), null == i)) return u(), 0;
+ if (((A += t), null == i)) return (u(), 0);
if (
"begin" === b.type &&
"end" === r.type &&
@@ -537,7 +538,8 @@ var hljs = (function () {
if (i) {
if (t["on:end"]) {
const e = new n(t);
- t["on:end"](r, e), e.ignore && (i = !1);
+ (t["on:end"](r, e),
+ e.ignore && (i = !1));
}
if (i) {
for (; t.endsParent && t.parent; )
@@ -555,9 +557,9 @@ var hljs = (function () {
u(),
i.excludeEnd && (A = t));
do {
- y.className && O.closeNode(),
+ (y.className && O.closeNode(),
y.skip || y.subLanguage || (I += y.relevance),
- (y = y.parent);
+ (y = y.parent));
} while (y !== a.parent);
return (
a.starts &&
@@ -573,13 +575,13 @@ var hljs = (function () {
throw Error(
"potential infinite loop, way more iterations than matches",
);
- return (A += i), i.length;
+ return ((A += i), i.length);
}
var E = T(e);
if (!E)
throw (
- (console.error(g.replace("{}", e)),
- Error('Unknown language: "' + e + '"'))
+ console.error(g.replace("{}", e)),
+ Error('Unknown language: "' + e + '"')
);
var _ = (function (e) {
function n(n, t) {
@@ -592,13 +594,13 @@ var hljs = (function () {
}
class t {
constructor() {
- (this.matchIndexes = {}),
+ ((this.matchIndexes = {}),
(this.regexes = []),
(this.matchAt = 1),
- (this.position = 0);
+ (this.position = 0));
}
addRule(e, n) {
- (n.position = this.position++),
+ ((n.position = this.position++),
(this.matchIndexes[this.matchAt] = n),
this.regexes.push([n, e]),
(this.matchAt +=
@@ -607,13 +609,13 @@ var hljs = (function () {
RegExp(e.toString() + "|").exec("")
.length - 1
);
- })(e) + 1);
+ })(e) + 1));
}
compile() {
0 === this.regexes.length &&
(this.exec = () => null);
const e = this.regexes.map((e) => e[1]);
- (this.matcherRe = n(
+ ((this.matcherRe = n(
(function (e, n = "|") {
for (
var t =
@@ -636,14 +638,14 @@ var hljs = (function () {
a += o;
break;
}
- (a += o.substring(0, l.index)),
+ ((a += o.substring(0, l.index)),
(o = o.substring(
l.index + l[0].length,
)),
"\\" === l[0][0] && l[1]
? (a += "\\" + (+l[1] + s))
: ((a += l[0]),
- "(" === l[0] && r++);
+ "(" === l[0] && r++));
}
a += ")";
}
@@ -651,7 +653,7 @@ var hljs = (function () {
})(e),
!0,
)),
- (this.lastIndex = 0);
+ (this.lastIndex = 0));
}
exec(e) {
this.matcherRe.lastIndex = this.lastIndex;
@@ -661,16 +663,16 @@ var hljs = (function () {
(e, n) => n > 0 && void 0 !== e,
),
r = this.matchIndexes[t];
- return n.splice(0, t), Object.assign(n, r);
+ return (n.splice(0, t), Object.assign(n, r));
}
}
class a {
constructor() {
- (this.rules = []),
+ ((this.rules = []),
(this.multiRegexes = []),
(this.count = 0),
(this.lastIndex = 0),
- (this.regexIndex = 0);
+ (this.regexIndex = 0));
}
getMatcher(e) {
if (this.multiRegexes[e])
@@ -689,8 +691,8 @@ var hljs = (function () {
this.regexIndex = 0;
}
addRule(e, n) {
- this.rules.push([e, n]),
- "begin" === n.type && this.count++;
+ (this.rules.push([e, n]),
+ "begin" === n.type && this.count++);
}
exec(e) {
const n = this.getMatcher(this.regexIndex);
@@ -717,9 +719,9 @@ var hljs = (function () {
return (function t(s, o) {
const l = s;
if (s.compiled) return l;
- (s.compiled = !0),
+ ((s.compiled = !0),
(s.__beforeBegin = null),
- (s.keywords = s.keywords || s.beginKeywords);
+ (s.keywords = s.keywords || s.beginKeywords));
let c = null;
if (
("object" == typeof s.keywords &&
@@ -739,11 +741,11 @@ var hljs = (function () {
t
);
function r(e, r) {
- n && (r = r.toLowerCase()),
+ (n && (r = r.toLowerCase()),
r.split(" ").forEach(function (n) {
var r = n.split("|");
t[r[0]] = [e, w(r[0], r[1])];
- });
+ }));
}
})(s.keywords, e.case_insensitive)),
s.lexemes && c)
@@ -798,20 +800,20 @@ var hljs = (function () {
e.cached_variants
? e.cached_variants
: (function e(n) {
- return (
- !!n &&
- (n.endsWithParent ||
- e(n.starts))
- );
- })(e)
- ? r(e, {
- starts: e.starts
- ? r(e.starts)
- : null,
- })
- : Object.isFrozen(e)
- ? r(e)
- : e
+ return (
+ !!n &&
+ (n.endsWithParent ||
+ e(n.starts))
+ );
+ })(e)
+ ? r(e, {
+ starts: e.starts
+ ? r(e.starts)
+ : null,
+ })
+ : Object.isFrozen(e)
+ ? r(e)
+ : e
);
})("self" === e ? s : e);
}),
@@ -860,11 +862,11 @@ var hljs = (function () {
L = !1;
try {
for (y.matcher.considerAll(); ; ) {
- B++,
+ (B++,
L
? (L = !1)
: ((y.matcher.lastIndex = S),
- y.matcher.considerAll());
+ y.matcher.considerAll()));
const e = y.matcher.exec(o);
if (!e) break;
const n = x(o.substring(S, e.index), e);
@@ -921,7 +923,7 @@ var hljs = (function () {
illegal: !1,
top: h,
};
- return n.emitter.addText(e), n;
+ return (n.emitter.addText(e), n);
})(e),
r = t;
return (
@@ -930,9 +932,9 @@ var hljs = (function () {
.filter(I)
.forEach(function (n) {
var a = m(n, e, !1);
- (a.language = n),
+ ((a.language = n),
a.relevance > r.relevance && (r = a),
- a.relevance > t.relevance && ((r = t), (t = a));
+ a.relevance > t.relevance && ((r = t), (t = a)));
}),
r.language && (t.second_best = r),
t
@@ -946,8 +948,8 @@ var hljs = (function () {
? "
"
: e
: f.tabReplace
- ? e.replace(/\t/g, f.tabReplace)
- : e,
+ ? e.replace(/\t/g, f.tabReplace)
+ : e,
)
: e;
}
@@ -972,21 +974,21 @@ var hljs = (function () {
return n.split(/\s+/).find((e) => p(e) || T(e));
})(e);
if (p(t)) return;
- S("before:highlightBlock", { block: e, language: t }),
+ (S("before:highlightBlock", { block: e, language: t }),
f.useBR
? ((n = document.createElement("div")).innerHTML =
e.innerHTML
.replace(/\n/g, "")
.replace(/
/g, "\n"))
- : (n = e);
+ : (n = e));
const r = n.textContent,
a = t ? b(t, r, !0) : v(r),
i = k(n);
if (i.length) {
const e = document.createElement("div");
- (e.innerHTML = a.value), (a.value = O(i, k(e), r));
+ ((e.innerHTML = a.value), (a.value = O(i, k(e), r)));
}
- (a.value = x(a.value)),
+ ((a.value = x(a.value)),
S("after:highlightBlock", { block: e, result: a }),
(e.innerHTML = a.value),
(e.className = (function (e, n, t) {
@@ -1008,7 +1010,7 @@ var hljs = (function () {
language: a.second_best.language,
re: a.second_best.relevance,
relavance: a.second_best.relevance,
- });
+ }));
}
const N = () => {
if (!N.called) {
@@ -1018,13 +1020,13 @@ var hljs = (function () {
}
};
function T(e) {
- return (e = (e || "").toLowerCase()), i[e] || i[s[e]];
+ return ((e = (e || "").toLowerCase()), i[e] || i[s[e]]);
}
function A(e, { languageName: n }) {
- "string" == typeof e && (e = [e]),
+ ("string" == typeof e && (e = [e]),
e.forEach((e) => {
s[e] = n;
- });
+ }));
}
function I(e) {
var n = T(e);
@@ -1036,7 +1038,7 @@ var hljs = (function () {
e[t] && e[t](n);
});
}
- Object.assign(t, {
+ (Object.assign(t, {
highlight: b,
highlightAuto: v,
fixMarkup: x,
@@ -1063,12 +1065,12 @@ var hljs = (function () {
!l)
)
throw n;
- console.error(n), (r = h);
+ (console.error(n), (r = h));
}
- r.name || (r.name = e),
+ (r.name || (r.name = e),
(i[e] = r),
(r.rawDefinition = n.bind(null, t)),
- r.aliases && A(r.aliases, { languageName: e });
+ r.aliases && A(r.aliases, { languageName: e }));
},
listLanguages: function () {
return Object.keys(i);
@@ -1097,9 +1099,9 @@ var hljs = (function () {
(t.safeMode = function () {
l = !0;
}),
- (t.versionString = "10.1.1");
+ (t.versionString = "10.1.1"));
for (const n in _) "object" == typeof _[n] && e(_[n]);
- return Object.assign(t, _), t;
+ return (Object.assign(t, _), t);
})({});
})();
"object" == typeof exports &&
@@ -1399,7 +1401,7 @@ hljs.registerLanguage(
r,
],
});
- (l.contains = [
+ ((l.contains = [
o,
c,
s,
@@ -1416,7 +1418,7 @@ hljs.registerLanguage(
e.QUOTE_STRING_MODE,
a,
e.inherit(e.C_BLOCK_COMMENT_MODE, { illegal: /\n/ }),
- ]);
+ ]));
var d = {
variants: [
o,
@@ -2810,7 +2812,7 @@ hljs.registerLanguage(
relevance: 0,
},
].concat(r);
- (c.contains = d), (b.contains = d);
+ ((c.contains = d), (b.contains = d));
var g = [
{ begin: /^\s*=>/, starts: { end: "$", contains: d } },
{
@@ -4862,7 +4864,7 @@ hljs.registerLanguage(
"use strict";
return function (e) {
var n = e.getLanguage("c-like").rawDefinition();
- return (n.name = "C"), (n.aliases = ["c", "h"]), n;
+ return ((n.name = "C"), (n.aliases = ["c", "h"]), n);
};
})(),
);
@@ -4992,7 +4994,7 @@ hljs.registerLanguage(
{ begin: /_(?!_)/, end: /_/, relevance: 0 },
],
};
- i.contains.push(s), s.contains.push(i);
+ (i.contains.push(s), s.contains.push(i));
var c = [e, a];
return (
(i.contains = i.contains.concat(c)),