diff --git a/.gitignore b/.gitignore
index 635f2a5..404758c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,5 +21,4 @@ yarn-error.log*
*lock
public/
.DS_Store
-themes
hugo.toml
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..5f601a0
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "themes/hextra"]
+ path = themes/hextra
+ url = https://github.com/imfing/hextra
diff --git a/config.toml b/config.toml
deleted file mode 100644
index 4961592..0000000
--- a/config.toml
+++ /dev/null
@@ -1,133 +0,0 @@
-baseURL = "https://rustdesk.com/docs"
-languageCode = "en-US"
-defaultContentLanguage = "en"
-
-title = "RustDesk Documentation"
-theme = "hugo-theme-learn"
-metaDataFormat = "yaml"
-defaultContentLanguageInSubdir= true
-
-[markup]
- [markup.goldmark]
- [markup.goldmark.renderer]
- unsafe = true
-# use icon https://github.com/matcornic/hugo-theme-learn/issues/363
-
-[params]
- disable_cookie = true
- editURL = "https://github.com/rustdesk/doc.rustdesk.com/edit/master/content/"
- description = "Documentation for RustDesk"
- author = "RustDesk"
- showVisitedLinks = false
- disableSearch = true
- disableBreadcrumb = false
- disableNextPrev = false
- disableLandingPageButton = true
- disableMermaid = false
- #customMermaidURL = "https://unpkg.com/mermaid@8.8.0/dist/mermaid.min.js"
- titleSeparator = "::"
- themeVariant = "blue"
- custom_css = ["css/theme-mine.css"]
-
-[outputs]
-home = [ "HTML", "RSS", "JSON"]
-
-[Languages]
-[Languages.en]
-title = "Documentation for RustDesk"
-weight = 1
-languageName = "English"
-landingPageName = " Home"
-
-[Languages.es]
-title = "Documentación para RustDesk"
-weight = 1
-languageName = "Español"
-landingPageName = " Principal"
-
-[Languages.fr]
-title = "Documentation du RustDesk"
-weight = 2
-languageName = "Français"
-landingPageName = " Page d'accueil"
-
-[Languages.ru]
-title = "Документация для RustDesk"
-weight = 2
-languageName = "Русский"
-landingPageName = " Домашняя страница"
-
-[Languages.pt]
-title = "Documentação para RustDesk"
-weight = 2
-languageName = "Português"
-landingPageName = " Pagina inicial"
-
-[Languages.it]
-title = "Documentazione per RustDesk"
-weight = 2
-languageName = "Italiano"
-landingPageName = " Pagina iniziale"
-
-[Languages.de]
-title = "Dokumentation für RustDesk"
-weight = 2
-languageName = "Deutsch"
-landingPageName = " Startseite"
-
-[Languages.nl]
-title = "Documentatie voor RustDesk"
-weight = 2
-languageName = "Nederlands"
-landingPageName = " Startpagina"
-
-[Languages.tr]
-title = "RustDesk için Belgeler"
-weight = 2
-languageName = "Türkçe"
-landingPageName = " Ana sayfa"
-
-[Languages.ja]
-title = "RustDeskのドキュメント"
-weight = 2
-languageName = "日本語"
-landingPageName = " ホームページ"
-
-[Languages.zh-cn]
-title = "RustDesk文档"
-weight = 3
-languageName = "简体中文"
-landingPageName = " 首页"
-
-[Languages.zh-cn.params]
-disable_cookie = true
-
-[Languages.zh-tw]
-title = "RustDesk文檔"
-weight = 3
-languageName = "繁體中文"
-landingPageName = " 首頁"
-
-[[menu.shortcuts]]
-name = " GitHub"
-identifier = "ds"
-url = "https://github.com/rustdesk/doc.rustdesk.com"
-weight = 10
-
-[[menu.shortcuts]]
-name = " Discord"
-identifier = "dd"
-url = "https://discord.com/invite/nDceKgxnkV"
-weight = 20
-
-[[menu.shortcuts]]
-name = " Twitter"
-identifier = "tt"
-url = "https://twitter.com/rustdesk"
-weight = 30
-
-[[menu.shortcuts]]
-name = " Reddit"
-identifier = "rd"
-url = "https://www.reddit.com/r/rustdesk/"
-weight = 40
diff --git a/content/_index.de.md b/content/_index.de.md
index 7246148..ff04baa 100644
--- a/content/_index.de.md
+++ b/content/_index.de.md
@@ -1,5 +1,6 @@
---
title: "RustDesk Dokumentation"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk ist eine vollausgestattete Open-Source-Alternative für Fernsteuerung m
- Wir mögen es einfach und werden uns bemühen, es wo möglich noch einfacher zu machen.
### GitHub Repositories
-Haupt-Client-Repository: https://github.com/rustdesk/rustdesk
-Open-Source-Server-Repository: https://github.com/rustdesk/rustdesk-server
-Pro-Server-Repository: https://github.com/rustdesk/rustdesk-server-pro
-Dokumentations-Repository: https://github.com/rustdesk/doc.rustdesk.com
+- **Haupt-Client-Repository**: https://github.com/rustdesk/rustdesk
+- **Open-Source-Server-Repository**: https://github.com/rustdesk/rustdesk-server
+- **Pro-Server-Repository**: https://github.com/rustdesk/rustdesk-server-pro
+- **Dokumentations-Repository**: https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.en.md b/content/_index.en.md
index 36333bc..af95e54 100644
--- a/content/_index.en.md
+++ b/content/_index.en.md
@@ -1,5 +1,6 @@
---
title: "Docs of RustDesk"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk is a full-featured open source remote control alternative for self-host
- We like to keep things simple and will strive to make simpler where possible.
### GitHub Repositories
-Main Client Repository: https://github.com/rustdesk/rustdesk
-Open source Server Repository: https://github.com/rustdesk/rustdesk-server
-Pro Server Repository: https://github.com/rustdesk/rustdesk-server-pro
-Doc Repository: https://github.com/rustdesk/doc.rustdesk.com
+- **Main Client Repository**: https://github.com/rustdesk/rustdesk
+- **Open Source Server Repository**: https://github.com/rustdesk/rustdesk-server
+- **Pro Server Repository**: https://github.com/rustdesk/rustdesk-server-pro
+- **Documentation Repository**: https://github.com/rustdesk/doc.rustdesk.com
{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.es.md b/content/_index.es.md
index 9a55dd3..26ce8f6 100644
--- a/content/_index.es.md
+++ b/content/_index.es.md
@@ -1,5 +1,6 @@
---
title: "Documentación de RustDesk"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk es una alternativa de control remoto de código abierto con todas las f
- Nos gusta mantener las cosas simples y nos esforzaremos por hacerlas más simples donde sea posible.
### Repositorios de GitHub
-Repositorio principal del cliente: https://github.com/rustdesk/rustdesk
-Repositorio del servidor de código abierto: https://github.com/rustdesk/rustdesk-server
-Repositorio del servidor Pro: https://github.com/rustdesk/rustdesk-server-pro
-Repositorio de documentación: https://github.com/rustdesk/doc.rustdesk.com
+- **Repositorio principal del cliente**: https://github.com/rustdesk/rustdesk
+- **Repositorio del servidor de código abierto**: https://github.com/rustdesk/rustdesk-server
+- **Repositorio del servidor Pro**: https://github.com/rustdesk/rustdesk-server-pro
+- **Repositorio de documentación**: https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.fr.md b/content/_index.fr.md
index 0be5986..a2810e4 100644
--- a/content/_index.fr.md
+++ b/content/_index.fr.md
@@ -1,5 +1,6 @@
---
title: "Documentation RustDesk"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk est une alternative de contrôle à distance open source complète pour
- Nous aimons garder les choses simples et nous efforcerons de les simplifier autant que possible.
### Dépôts GitHub
-Dépôt client principal : https://github.com/rustdesk/rustdesk
-Dépôt serveur open source : https://github.com/rustdesk/rustdesk-server
-Dépôt serveur Pro : https://github.com/rustdesk/rustdesk-server-pro
-Dépôt de documentation : https://github.com/rustdesk/doc.rustdesk.com
+- **Dépôt client principal** : https://github.com/rustdesk/rustdesk
+- **Dépôt serveur open source** : https://github.com/rustdesk/rustdesk-server
+- **Dépôt serveur Pro** : https://github.com/rustdesk/rustdesk-server-pro
+- **Dépôt de documentation** : https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.it.md b/content/_index.it.md
index bacd770..bdbeab0 100644
--- a/content/_index.it.md
+++ b/content/_index.it.md
@@ -1,5 +1,6 @@
---
title: "Documentazione RustDesk"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk è un'alternativa completa di controllo remoto open source per self-hos
- Ci piace mantenere le cose semplici e ci sforzeremo di renderle più semplici dove possibile.
### Repository GitHub
-Repository client principale: https://github.com/rustdesk/rustdesk
-Repository server open source: https://github.com/rustdesk/rustdesk-server
-Repository server Pro: https://github.com/rustdesk/rustdesk-server-pro
-Repository documentazione: https://github.com/rustdesk/doc.rustdesk.com
+- **Repository client principale**: https://github.com/rustdesk/rustdesk
+- **Repository server open source**: https://github.com/rustdesk/rustdesk-server
+- **Repository server Pro**: https://github.com/rustdesk/rustdesk-server-pro
+- **Repository documentazione**: https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.ja.md b/content/_index.ja.md
index 02fc553..e037b7f 100644
--- a/content/_index.ja.md
+++ b/content/_index.ja.md
@@ -1,5 +1,6 @@
---
title: "RustDesk ドキュメント"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk は、最小限の設定でセルフホスティングとセキュリ
- 物事をシンプルに保つことを好み、可能な限りよりシンプルにするよう努力します。
### GitHub リポジトリ
-メインクライアントリポジトリ:https://github.com/rustdesk/rustdesk
-オープンソースサーバーリポジトリ:https://github.com/rustdesk/rustdesk-server
-プロサーバーリポジトリ:https://github.com/rustdesk/rustdesk-server-pro
-ドキュメントリポジトリ:https://github.com/rustdesk/doc.rustdesk.com
+- **メインクライアントリポジトリ**: https://github.com/rustdesk/rustdesk
+- **オープンソースサーバーリポジトリ**: https://github.com/rustdesk/rustdesk-server
+- **プロサーバーリポジトリ**: https://github.com/rustdesk/rustdesk-server-pro
+- **ドキュメントリポジトリ**: https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.pt.md b/content/_index.pt.md
index 5491f96..d510ef6 100644
--- a/content/_index.pt.md
+++ b/content/_index.pt.md
@@ -1,5 +1,6 @@
---
title: "Documentação do RustDesk"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk é uma alternativa completa de controle remoto de código aberto para a
- Nós gostamos de manter as coisas simples e nos esforçaremos para torná-las mais simples onde possível.
### Repositórios do GitHub
-Repositório principal do cliente: https://github.com/rustdesk/rustdesk
-Repositório do servidor de código aberto: https://github.com/rustdesk/rustdesk-server
-Repositório do servidor Pro: https://github.com/rustdesk/rustdesk-server-pro
-Repositório de documentação: https://github.com/rustdesk/doc.rustdesk.com
+- **Repositório principal do cliente**: https://github.com/rustdesk/rustdesk
+- **Repositório do servidor de código aberto**: https://github.com/rustdesk/rustdesk-server
+- **Repositório do servidor Pro**: https://github.com/rustdesk/rustdesk-server-pro
+- **Repositório de documentação**: https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.zh-cn.md b/content/_index.zh-cn.md
index 7fb7ab7..2fa57d4 100644
--- a/content/_index.zh-cn.md
+++ b/content/_index.zh-cn.md
@@ -1,5 +1,6 @@
---
title: "RustDesk 文档"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk 是一个功能完整的开源远程控制替代方案,支持自托
- 我们喜欢保持简单,并将努力在可能的地方变得更简单。
### GitHub 存储库
-主客户端存储库:https://github.com/rustdesk/rustdesk
-开源服务器存储库:https://github.com/rustdesk/rustdesk-server
-专业服务器存储库:https://github.com/rustdesk/rustdesk-server-pro
-文档存储库:https://github.com/rustdesk/doc.rustdesk.com
+- **主客户端存储库**: https://github.com/rustdesk/rustdesk
+- **开源服务器存储库**: https://github.com/rustdesk/rustdesk-server
+- **专业服务器存储库**: https://github.com/rustdesk/rustdesk-server-pro
+- **文档存储库**: https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/_index.zh-tw.md b/content/_index.zh-tw.md
index ad0757e..a57c281 100644
--- a/content/_index.zh-tw.md
+++ b/content/_index.zh-tw.md
@@ -1,5 +1,6 @@
---
title: "RustDesk 文件"
+type: docs
weight: 1
---
@@ -16,9 +17,9 @@ RustDesk 是一個功能完整的開源遠端控制替代方案,支援自託
- 我們喜歡保持簡單,並將努力在可能的地方變得更簡單。
### GitHub 儲存庫
-主客戶端儲存庫:https://github.com/rustdesk/rustdesk
-開源伺服器儲存庫:https://github.com/rustdesk/rustdesk-server
-專業伺服器儲存庫:https://github.com/rustdesk/rustdesk-server-pro
-文件儲存庫:https://github.com/rustdesk/doc.rustdesk.com
+- **主客戶端儲存庫**: https://github.com/rustdesk/rustdesk
+- **開源伺服器儲存庫**: https://github.com/rustdesk/rustdesk-server
+- **專業伺服器儲存庫**: https://github.com/rustdesk/rustdesk-server-pro
+- **文件儲存庫**: https://github.com/rustdesk/doc.rustdesk.com
-{{% children depth="4" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="4" showhidden="true" %}}
diff --git a/content/cmd.txt b/content/cmd.txt
index 1697563..5129602 100644
--- a/content/cmd.txt
+++ b/content/cmd.txt
@@ -1,3 +1,3 @@
This is the content directory of a hugo doc project. Currently only the english version is full, all other languages are not full transalted.
Please help me translate _index.en.md file to other languages, so far please translate languages of (zh-cn, zh-tw, de, fr, es, pt, ja, it), e.g.
-for german translation, the new file name should be _index.de.md, if the file exists, please overwrite it. please handle all files, traverse all files under all directories recursively.
+for german translation, the new file name should be _index.de.md, if the file exists, please overwrite it. please handle all files, traverse all files under all directories recursively.
\ No newline at end of file
diff --git a/content/dev/_index.de.md b/content/dev/_index.de.md
index 9386390..d079b4f 100755
--- a/content/dev/_index.de.md
+++ b/content/dev/_index.de.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### Kapitel 3
-
-# Entwicklung
-
{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.en.md b/content/dev/_index.en.md
index 2eb2b67..745eb4b 100755
--- a/content/dev/_index.en.md
+++ b/content/dev/_index.en.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### Chapter 3
-
-# Development
-
-{{% children depth="3" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.es.md b/content/dev/_index.es.md
index fd27ece..5003065 100644
--- a/content/dev/_index.es.md
+++ b/content/dev/_index.es.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### Capítulo 3
-
-# Desarrollo
-
-{{% children depth="3" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.fr.md b/content/dev/_index.fr.md
index 718cc60..b63624e 100644
--- a/content/dev/_index.fr.md
+++ b/content/dev/_index.fr.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### Chapitre 3
-
-# Développement
-
{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.it.md b/content/dev/_index.it.md
index d3bbd82..ca39b25 100755
--- a/content/dev/_index.it.md
+++ b/content/dev/_index.it.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### Capitolo 3
-
-# Sviluppo
-
-{{% children depth="3" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.ja.md b/content/dev/_index.ja.md
index 1434871..3ad2671 100755
--- a/content/dev/_index.ja.md
+++ b/content/dev/_index.ja.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### 第3章
-
-# 開発
-
-{{% children depth="3" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.pt.md b/content/dev/_index.pt.md
index 97d5e63..acc0265 100644
--- a/content/dev/_index.pt.md
+++ b/content/dev/_index.pt.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### Capítulo 3
-
-# Desenvolvimento
-
-{{% children depth="3" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.zh-cn.md b/content/dev/_index.zh-cn.md
index 32a83d9..a016fdd 100755
--- a/content/dev/_index.zh-cn.md
+++ b/content/dev/_index.zh-cn.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### Chapter 3
-
-# 开发
-
-{{% children depth="3" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="3" showhidden="true" %}}
diff --git a/content/dev/_index.zh-tw.md b/content/dev/_index.zh-tw.md
index 07fdce7..6aca0cd 100755
--- a/content/dev/_index.zh-tw.md
+++ b/content/dev/_index.zh-tw.md
@@ -5,8 +5,4 @@ pre: "3. "
chapter: true
---
-### 章節 3
-
-# 開發
-
-{{% children depth="3" showhidden="true" %}}
\ No newline at end of file
+{{% children depth="3" showhidden="true" %}}
diff --git a/data/icons.yaml b/data/icons.yaml
new file mode 100644
index 0000000..687d422
--- /dev/null
+++ b/data/icons.yaml
@@ -0,0 +1,297 @@
+# SVG icons
+#
+# Example usage in templates using the icon.html partial:
+#
+# {{ partial "utils/icon.html" (dict "name" "github" "attributes" "height=24") }}
+
+github: >
+
+
+codeberg: >
+
+
+gitlab: >
+
+
+bitbucket: >
+
+
+hextra:
+
+hugo:
+hugo-full: >
+
+
+jupyter:
+
+warning:
+one:
+cards:
+copy:
+hamburger-menu:
+markdown:
+folder-tree:
+card:
+
+# Icons from heroicons v1 outlined https://github.com/tailwindlabs/heroicons/tree/v1
+academic-cap:
+adjustments:
+annotation:
+archive:
+arrow-circle-down:
+arrow-circle-left:
+arrow-circle-right:
+arrow-circle-up:
+arrow-down:
+arrow-left:
+arrow-narrow-down:
+arrow-narrow-left:
+arrow-narrow-right:
+arrow-narrow-up:
+arrow-right:
+arrow-sm-down:
+arrow-sm-left:
+arrow-sm-right:
+arrow-sm-up:
+arrow-up:
+arrows-expand:
+at-symbol:
+backspace:
+badge-check:
+ban:
+beaker:
+bell:
+book-open:
+bookmark:
+bookmark-alt:
+briefcase:
+cake:
+calculator:
+calendar:
+camera:
+cash:
+chart-bar:
+chart-pie:
+chart-square-bar:
+chat:
+chat-alt:
+chat-alt-2:
+check:
+check-circle:
+chevron-double-down:
+chevron-double-left:
+chevron-double-right:
+chevron-double-up:
+chevron-down:
+chevron-left:
+chevron-right:
+chevron-up:
+chip:
+clipboard:
+clipboard-check:
+clipboard-copy:
+clipboard-list:
+clock:
+cloud:
+cloud-download:
+cloud-upload:
+code:
+cog:
+collection:
+color-swatch:
+credit-card:
+cube:
+cube-transparent:
+currency-bangladeshi:
+currency-dollar:
+currency-euro:
+currency-pound:
+currency-rupee:
+currency-yen:
+cursor-click:
+database:
+desktop-computer:
+device-mobile:
+device-tablet:
+document:
+document-add:
+document-download:
+document-duplicate:
+document-remove:
+document-report:
+document-search:
+document-text:
+dots-circle-horizontal:
+dots-horizontal:
+dots-vertical:
+download:
+duplicate:
+emoji-happy:
+emoji-sad:
+exclamation:
+exclamation-circle:
+external-link:
+eye:
+eye-off:
+fast-forward:
+film:
+filter:
+finger-print:
+fire:
+flag:
+folder:
+folder-add:
+folder-download:
+folder-open:
+folder-remove:
+gift:
+globe:
+globe-alt:
+hand:
+hashtag:
+heart:
+home:
+identification:
+inbox:
+inbox-in:
+information-circle:
+key:
+library:
+light-bulb:
+lightning-bolt:
+link:
+location-marker:
+lock-closed:
+lock-open:
+login:
+logout:
+mail:
+mail-open:
+map:
+menu:
+menu-alt-1:
+menu-alt-2:
+menu-alt-3:
+menu-alt-4:
+microphone:
+minus:
+minus-circle:
+minus-sm:
+moon:
+music-note:
+newspaper:
+office-building:
+paper-airplane:
+paper-clip:
+pause:
+pencil:
+pencil-alt:
+phone:
+phone-incoming:
+phone-missed-call:
+phone-outgoing:
+photograph:
+play:
+plus:
+plus-circle:
+plus-sm:
+presentation-chart-bar:
+presentation-chart-line:
+printer:
+puzzle:
+qrcode:
+question-mark-circle:
+receipt-refund:
+receipt-tax:
+refresh:
+reply:
+rewind:
+rss:
+save:
+save-as:
+scale:
+scissors:
+search:
+search-circle:
+selector:
+server:
+share:
+shield-check:
+shield-exclamation:
+shopping-bag:
+shopping-cart:
+sort-ascending:
+sort-descending:
+sparkles:
+speakerphone:
+star:
+status-offline:
+status-online:
+stop:
+sun:
+support:
+switch-horizontal:
+switch-vertical:
+table:
+tag:
+template:
+terminal:
+thumb-down:
+thumb-up:
+ticket:
+translate:
+trash:
+trending-down:
+trending-up:
+truck:
+upload:
+user:
+user-add:
+user-circle:
+user-group:
+user-remove:
+users:
+variable:
+video-camera:
+view-boards:
+view-grid:
+view-grid-add:
+view-list:
+volume-off:
+volume-up:
+wifi:
+x:
+x-circle:
+zoom-in:
+zoom-out:
+
+# Socials
+instagram:
+facebook:
+discord:
+twitter:
+mastodon:
+youtube:
+x-twitter:
+linkedin:
+slack:
+bluesky:
+telegram:
+reddit: >
+
diff --git a/hugo.yaml b/hugo.yaml
new file mode 100644
index 0000000..c28e913
--- /dev/null
+++ b/hugo.yaml
@@ -0,0 +1,187 @@
+# Hugo configuration file
+title: RustDesk Documentation
+baseURL: "https://rustdesk.com/docs"
+languageCode: "en-US"
+defaultContentLanguage: "en"
+defaultContentLanguageInSubdir: true
+
+# Use Hextra theme
+theme: hextra
+
+# Metadata format
+metaDataFormat: yaml
+
+# Markup configuration
+markup:
+ goldmark:
+ renderer:
+ unsafe: true
+ highlight:
+ noClasses: false
+
+# Enable page bundles and resource processing
+enableEmoji: true
+enableRobotsTXT: true
+
+# Configure static file handling for absolute paths
+staticDir: ["static"]
+
+# Configure resource processing
+imaging:
+ resampleFilter: "lanczos"
+ quality: 85
+
+# Output formats
+outputs:
+ home: ["HTML", "RSS", "JSON"]
+
+# Parameters
+params:
+ disable_cookie: true
+ description: "Documentation for RustDesk"
+ author: "RustDesk"
+ showVisitedLinks: false
+ disableSearch: false
+ disableBreadcrumb: false
+ disableNextPrev: false
+ disableLandingPageButton: true
+ disableMermaid: false
+ titleSeparator: "::"
+ themeVariant: "blue"
+ custom_css: ["css/theme-mine.css", "css/custom-enhancements.css"]
+
+ navbar:
+ displayTitle: true
+ displayLogo: true
+ logo:
+ path: images/logo.svg
+ width: 24
+ height: 24
+
+ footer:
+ displayCopyright: true
+ displayPoweredBy: false
+
+ theme:
+ default: system
+ displayToggle: true
+
+ editURL:
+ enable: true
+ base: "https://github.com/rustdesk/doc.rustdesk.com/edit/master/content"
+
+# Main navigation menu
+menu:
+ main:
+ - name: Search
+ weight: 1
+ params:
+ type: search
+ - name: GitHub
+ url: "https://github.com/rustdesk/doc.rustdesk.com"
+ weight: 2
+ params:
+ icon: github
+ - name: Discord
+ url: "https://discord.com/invite/nDceKgxnkV"
+ weight: 3
+ params:
+ icon: discord
+ - name: Twitter
+ url: "https://twitter.com/rustdesk"
+ weight: 4
+ params:
+ icon: x-twitter
+ - name: Reddit
+ url: "https://www.reddit.com/r/rustdesk/"
+ weight: 5
+ params:
+ icon: reddit
+
+# Multi-language configuration
+languages:
+ en:
+ title: "Documentation for RustDesk"
+ weight: 1
+ languageName: "English"
+ params:
+ landingPageName: "🏠 Home"
+ disable_cookie: true
+
+ es:
+ title: "Documentación para RustDesk"
+ weight: 1
+ languageName: "Español"
+ params:
+ landingPageName: "🏠 Principal"
+
+ fr:
+ title: "Documentation du RustDesk"
+ weight: 2
+ languageName: "Français"
+ params:
+ landingPageName: "🏠 Page d'accueil"
+
+ # ru:
+ # title: "Документация для RustDesk"
+ # weight: 2
+ # languageName: "Русский"
+ # params:
+ # landingPageName: "🏠 Домашняя страница"
+
+ pt:
+ title: "Documentação para RustDesk"
+ weight: 2
+ languageName: "Português"
+ params:
+ landingPageName: "🏠 Pagina inicial"
+
+ it:
+ title: "Documentazione per RustDesk"
+ weight: 2
+ languageName: "Italiano"
+ params:
+ landingPageName: "🏠 Pagina iniziale"
+
+ de:
+ title: "Dokumentation für RustDesk"
+ weight: 2
+ languageName: "Deutsch"
+ params:
+ landingPageName: "🏠 Startseite"
+
+ #nl:
+ # title: "Documentatie voor RustDesk"
+ # weight: 2
+ # languageName: "Nederlands"
+ # params:
+ # landingPageName: "🏠 Startpagina"
+
+ # tr:
+ # title: "RustDesk için Belgeler"
+ # weight: 2
+ # languageName: "Türkçe"
+ # params:
+ # landingPageName: "🏠 Ana sayfa"
+
+ ja:
+ title: "RustDeskのドキュメント"
+ weight: 2
+ languageName: "日本語"
+ params:
+ landingPageName: "🏠 ホームページ"
+
+ zh-cn:
+ title: "RustDesk文档"
+ weight: 3
+ languageName: "简体中文"
+ params:
+ landingPageName: "🏠 首页"
+ disable_cookie: true
+
+ zh-tw:
+ title: "RustDesk文檔"
+ weight: 3
+ languageName: "繁體中文"
+ params:
+ landingPageName: "🏠 首頁"
diff --git a/layouts/_markup/render-image.html b/layouts/_markup/render-image.html
new file mode 100644
index 0000000..a0062b8
--- /dev/null
+++ b/layouts/_markup/render-image.html
@@ -0,0 +1,43 @@
+{{- $alt := .PlainText | safeHTML -}}
+{{- $lazyLoading := .Page.Site.Params.enableImageLazyLoading | default true -}}
+{{- $dest := .Destination -}}
+{{- $url := urls.Parse $dest -}}
+
+{{- $isLocal := not $url.Scheme -}}
+{{- $isPage := and (eq .Page.Kind "page") (not .Page.BundleType) -}}
+{{- $startsWithSlash := hasPrefix $dest "/" -}}
+{{- $startsWithRelative := hasPrefix $dest "../" -}}
+
+{{- if and $dest $isLocal -}}
+ {{- if $startsWithSlash -}}
+ {{- with or (.PageInner.Resources.Get $url.Path) (resources.Get $url.Path) -}}
+ {{/* Images under assets directory */}}
+ {{- $query := cond $url.RawQuery (printf "?%s" $url.RawQuery) "" -}}
+ {{- $fragment := cond $url.Fragment (printf "#%s" $url.Fragment) "" -}}
+ {{- $dest = printf "%s%s%s" .RelPermalink $query $fragment -}}
+ {{- else -}}
+ {{/* Images under static directory - keep absolute path */}}
+ {{- $dest = $dest -}}
+ {{- end -}}
+ {{- else if and $isPage (not $startsWithRelative) -}}
+ {{/* Images that are sibling to the individual page file */}}
+ {{ $dest = (printf "../%s" $dest) }}
+ {{- end -}}
+{{- end -}}
+
+{{- $attributes := "" -}}
+{{- range $key, $value := .Attributes -}}
+ {{- if $value -}}
+ {{- $pair := printf "%s=%q" $key ($value | transform.HTMLEscape) -}}
+ {{- $attributes = printf "%s %s" $attributes $pair -}}
+ {{- end -}}
+{{- end -}}
+
+{{- with .Title -}}
+
+
+{{- end -}}
\ No newline at end of file
diff --git a/layouts/partials/custom-footer.html b/layouts/partials/custom/footer.html
similarity index 77%
rename from layouts/partials/custom-footer.html
rename to layouts/partials/custom/footer.html
index 69e8daf..bec3f2b 100644
--- a/layouts/partials/custom-footer.html
+++ b/layouts/partials/custom/footer.html
@@ -1,14 +1,4 @@
-
-
-
-
-{{ if not .Site.Params.disable_cookie }}
+{{ if not .context.Site.Params.disable_cookie }}