├── .gitignore
├── .obsidian
├── app.json
├── appearance.json
├── core-plugins.json
├── hotkeys.json
└── workspace.json
├── .python-version
├── LICENSE
├── README.md
├── docs
├── 1
│ ├── 1.md
│ ├── 2.md
│ ├── 3.md
│ └── 4.md
├── 2
│ ├── 1.md
│ ├── 2.md
│ ├── 3.md
│ ├── 4.md
│ ├── 5.md
│ └── 6.md
├── 3
│ ├── 1.md
│ └── 2.md
├── 4
│ ├── 1.md
│ ├── 2.md
│ ├── 3.md
│ ├── 4.md
│ ├── 5.md
│ └── 6.md
├── 5
│ ├── 1.md
│ ├── 2.md
│ └── 3.md
├── 6
│ ├── 1.md
│ ├── 10.md
│ ├── 11.md
│ ├── 2.md
│ ├── 3.md
│ ├── 4.md
│ ├── 5.md
│ ├── 6.md
│ ├── 7.md
│ ├── 8.md
│ └── 9.md
├── 7
│ ├── 1.md
│ ├── 2.md
│ ├── 3.md
│ └── 4.md
├── 8
│ ├── 1.md
│ ├── 2.md
│ ├── 3.md
│ └── 4.md
├── 9
│ ├── 1.md
│ ├── 2.md
│ ├── 3.md
│ ├── 4.md
│ └── 5.md
├── imgs
│ └── cover.jpg
└── index.md
├── mkdocs.yml
├── overrides
├── 404.html
├── assets
│ ├── images
│ │ └── favicon.png
│ ├── javascripts
│ │ ├── bundle.d691e9de.min.js
│ │ ├── bundle.d691e9de.min.js.map
│ │ ├── lunr
│ │ │ ├── min
│ │ │ │ ├── lunr.ar.min.js
│ │ │ │ ├── lunr.da.min.js
│ │ │ │ ├── lunr.de.min.js
│ │ │ │ ├── lunr.du.min.js
│ │ │ │ ├── lunr.es.min.js
│ │ │ │ ├── lunr.fi.min.js
│ │ │ │ ├── lunr.fr.min.js
│ │ │ │ ├── lunr.hi.min.js
│ │ │ │ ├── lunr.hu.min.js
│ │ │ │ ├── lunr.it.min.js
│ │ │ │ ├── lunr.ja.min.js
│ │ │ │ ├── lunr.jp.min.js
│ │ │ │ ├── lunr.multi.min.js
│ │ │ │ ├── lunr.nl.min.js
│ │ │ │ ├── lunr.no.min.js
│ │ │ │ ├── lunr.pt.min.js
│ │ │ │ ├── lunr.ro.min.js
│ │ │ │ ├── lunr.ru.min.js
│ │ │ │ ├── lunr.stemmer.support.min.js
│ │ │ │ ├── lunr.sv.min.js
│ │ │ │ ├── lunr.th.min.js
│ │ │ │ ├── lunr.tr.min.js
│ │ │ │ ├── lunr.vi.min.js
│ │ │ │ └── lunr.zh.min.js
│ │ │ ├── tinyseg.js
│ │ │ └── wordcut.js
│ │ └── workers
│ │ │ ├── search.ecf98df9.min.js
│ │ │ └── search.ecf98df9.min.js.map
│ └── stylesheets
│ │ ├── main.2e8b5541.min.css
│ │ ├── main.2e8b5541.min.css.map
│ │ ├── palette.cbb835fc.min.css
│ │ └── palette.cbb835fc.min.css.map
├── base.html
├── main.html
├── mkdocs_theme.yml
├── overrides
│ ├── assets
│ │ ├── javascripts
│ │ │ ├── bundle.a3d871f9.min.js
│ │ │ ├── bundle.a3d871f9.min.js.map
│ │ │ └── iconsearch_index.json
│ │ └── stylesheets
│ │ │ ├── main.8a4f01ed.min.css
│ │ │ └── main.8a4f01ed.min.css.map
│ ├── blog.html
│ ├── home.html
│ ├── main.html
│ └── partials
│ │ ├── actions.html
│ │ └── content.html
├── partials
│ ├── actions.html
│ ├── comments.html
│ ├── consent.html
│ ├── content.html
│ ├── copyright.html
│ ├── feedback.html
│ ├── footer.html
│ ├── header.html
│ ├── icons.html
│ ├── integrations
│ │ ├── analytics.html
│ │ └── analytics
│ │ │ └── google.html
│ ├── javascripts
│ │ ├── announce.html
│ │ ├── base.html
│ │ ├── consent.html
│ │ ├── content.html
│ │ ├── outdated.html
│ │ └── palette.html
│ ├── language.html
│ ├── languages
│ │ ├── af.html
│ │ ├── ar.html
│ │ ├── bg.html
│ │ ├── bn.html
│ │ ├── ca.html
│ │ ├── cs.html
│ │ ├── da.html
│ │ ├── de.html
│ │ ├── el.html
│ │ ├── en.html
│ │ ├── eo.html
│ │ ├── es.html
│ │ ├── et.html
│ │ ├── fa.html
│ │ ├── fi.html
│ │ ├── fr.html
│ │ ├── gl.html
│ │ ├── he.html
│ │ ├── hi.html
│ │ ├── hr.html
│ │ ├── hu.html
│ │ ├── hy.html
│ │ ├── id.html
│ │ ├── is.html
│ │ ├── it.html
│ │ ├── ja.html
│ │ ├── ka.html
│ │ ├── kr.html
│ │ ├── lt.html
│ │ ├── lv.html
│ │ ├── mk.html
│ │ ├── mn.html
│ │ ├── ms.html
│ │ ├── my.html
│ │ ├── nl.html
│ │ ├── nn.html
│ │ ├── no.html
│ │ ├── pl.html
│ │ ├── pt-BR.html
│ │ ├── pt.html
│ │ ├── ro.html
│ │ ├── ru.html
│ │ ├── sh.html
│ │ ├── si.html
│ │ ├── sk.html
│ │ ├── sl.html
│ │ ├── sr.html
│ │ ├── sv.html
│ │ ├── th.html
│ │ ├── tl.html
│ │ ├── tr.html
│ │ ├── uk.html
│ │ ├── ur.html
│ │ ├── uz.html
│ │ ├── vi.html
│ │ ├── zh-Hant.html
│ │ ├── zh-TW.html
│ │ └── zh.html
│ ├── logo.html
│ ├── nav-item.html
│ ├── nav.html
│ ├── palette.html
│ ├── search.html
│ ├── social.html
│ ├── source-file.html
│ ├── source.html
│ ├── tabs-item.html
│ ├── tabs.html
│ ├── tags.html
│ ├── toc-item.html
│ └── toc.html
└── plugins
│ ├── __init__.py
│ ├── search
│ ├── __init__.py
│ └── plugin.py
│ ├── social
│ ├── __init__.py
│ └── plugin.py
│ └── tags
│ ├── __init__.py
│ └── plugin.py
└── site
├── 1
├── 1
│ └── index.html
├── 2
│ └── index.html
├── 3
│ └── index.html
└── 4
│ └── index.html
├── 2
├── 1
│ └── index.html
├── 2
│ └── index.html
├── 3
│ └── index.html
├── 4
│ └── index.html
├── 5
│ └── index.html
└── 6
│ └── index.html
├── 3
├── 1
│ └── index.html
└── 2
│ └── index.html
├── 4
├── 1
│ └── index.html
├── 2
│ └── index.html
├── 3
│ └── index.html
├── 4
│ └── index.html
├── 5
│ └── index.html
└── 6
│ └── index.html
├── 5
├── 1
│ └── index.html
├── 2
│ └── index.html
└── 3
│ └── index.html
├── 6
├── 1
│ └── index.html
├── 2
│ └── index.html
├── 3
│ └── index.html
├── 4
│ └── index.html
├── 5
│ └── index.html
├── 6
│ └── index.html
├── 7
│ └── index.html
├── 8
│ └── index.html
├── 9
│ └── index.html
├── 10
│ └── index.html
└── 11
│ └── index.html
├── 7
├── 1
│ └── index.html
├── 2
│ └── index.html
├── 3
│ └── index.html
└── 4
│ └── index.html
├── 8
├── 1
│ └── index.html
├── 2
│ └── index.html
├── 3
│ └── index.html
└── 4
│ └── index.html
├── 9
├── 1
│ └── index.html
├── 2
│ └── index.html
├── 3
│ └── index.html
├── 4
│ └── index.html
└── 5
│ └── index.html
├── 404.html
├── assets
├── images
│ └── favicon.png
├── javascripts
│ ├── bundle.d691e9de.min.js
│ ├── bundle.d691e9de.min.js.map
│ ├── bundle.d6c3db9e.min.js
│ ├── bundle.d6c3db9e.min.js.map
│ ├── glightbox.min.js
│ ├── lunr
│ │ ├── min
│ │ │ ├── lunr.ar.min.js
│ │ │ ├── lunr.da.min.js
│ │ │ ├── lunr.de.min.js
│ │ │ ├── lunr.du.min.js
│ │ │ ├── lunr.es.min.js
│ │ │ ├── lunr.fi.min.js
│ │ │ ├── lunr.fr.min.js
│ │ │ ├── lunr.hi.min.js
│ │ │ ├── lunr.hu.min.js
│ │ │ ├── lunr.it.min.js
│ │ │ ├── lunr.ja.min.js
│ │ │ ├── lunr.jp.min.js
│ │ │ ├── lunr.ko.min.js
│ │ │ ├── lunr.multi.min.js
│ │ │ ├── lunr.nl.min.js
│ │ │ ├── lunr.no.min.js
│ │ │ ├── lunr.pt.min.js
│ │ │ ├── lunr.ro.min.js
│ │ │ ├── lunr.ru.min.js
│ │ │ ├── lunr.stemmer.support.min.js
│ │ │ ├── lunr.sv.min.js
│ │ │ ├── lunr.ta.min.js
│ │ │ ├── lunr.th.min.js
│ │ │ ├── lunr.tr.min.js
│ │ │ ├── lunr.vi.min.js
│ │ │ └── lunr.zh.min.js
│ │ ├── tinyseg.js
│ │ └── wordcut.js
│ └── workers
│ │ ├── search.16e2a7d4.min.js
│ │ ├── search.16e2a7d4.min.js.map
│ │ ├── search.ecf98df9.min.js
│ │ └── search.ecf98df9.min.js.map
└── stylesheets
│ ├── glightbox.min.css
│ ├── main.2e8b5541.min.css
│ ├── main.2e8b5541.min.css.map
│ ├── main.472b142f.min.css
│ ├── main.472b142f.min.css.map
│ ├── palette.08040f6c.min.css
│ ├── palette.08040f6c.min.css.map
│ ├── palette.cbb835fc.min.css
│ └── palette.cbb835fc.min.css.map
├── imgs
└── cover.jpg
├── index.html
├── overrides
└── assets
│ ├── javascripts
│ ├── bundle.a3d871f9.min.js
│ ├── bundle.a3d871f9.min.js.map
│ └── iconsearch_index.json
│ └── stylesheets
│ ├── main.8a4f01ed.min.css
│ └── main.8a4f01ed.min.css.map
├── search
└── search_index.json
├── sitemap.xml
└── sitemap.xml.gz
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | */.DS_Store
3 |
--------------------------------------------------------------------------------
/.obsidian/app.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/.obsidian/appearance.json:
--------------------------------------------------------------------------------
1 | {
2 | "accentColor": ""
3 | }
--------------------------------------------------------------------------------
/.obsidian/core-plugins.json:
--------------------------------------------------------------------------------
1 | [
2 | "file-explorer",
3 | "global-search",
4 | "switcher",
5 | "graph",
6 | "backlink",
7 | "outgoing-link",
8 | "tag-pane",
9 | "page-preview",
10 | "daily-notes",
11 | "templates",
12 | "note-composer",
13 | "command-palette",
14 | "editor-status",
15 | "starred",
16 | "outline",
17 | "word-count",
18 | "file-recovery"
19 | ]
--------------------------------------------------------------------------------
/.obsidian/hotkeys.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/.python-version:
--------------------------------------------------------------------------------
1 | 3.8.13
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://pve.sqlsec.com/)
--------------------------------------------------------------------------------
/docs/1/2.md:
--------------------------------------------------------------------------------
1 | ## 黑苹果
2 |
3 | 这台机器也是支持物理机黑苹果的,国光我尝试安装成功过,但是有 1 个巨大的坑点:黑苹果对双路很多个 CPU 的支持不是很好,**macOS 底层最大只支持 32核 64 线程的 CPU**,所以我只能 BIOS 阉割 CPU 的数量才可以成功跑起来,所以最后的跑分也不是很强,但是图没有了,下面就上一下单路物理黑苹果的跑分情况吧:
4 |
5 | === "很多个框框"
6 |
7 | 
8 |
9 | === "R23 跑分"
10 |
11 | 
12 |
13 | 因为得阉割 CPU 数量才可以跑物理黑苹果,这怎么能忍?所以这个物理黑苹果方案就首先排除掉了。
14 |
15 | ## PVE
16 |
17 | 全称 Proxmox Virtual Environment,是基于 Debian 的 Linux 系统,虚拟机内核为 KVM。硬件兼容性优秀。Web UI 的界面功能不强,但是如果通过命令行去操作的话,扩展定制能力几乎是无限的。
18 |
19 | 
20 |
21 | ## ESXi
22 |
23 | 是 VMWare vSphere Hypervisor 套件之下重要组件。前期依赖 Linux 源码,后来抛弃 Linux 做成了ESXi。很成熟的商业产品,界面清晰易用,但对家用硬件的兼容性较差(主要面向商业服务器),扩展可定制程度不高。
24 |
25 | 
26 |
27 | ## unRaid
28 |
29 | 是 1 个 NAS系统,是基于 Slackware 的 Linux 系统,虚拟机内核也是 KVM。磁盘阵列管理非常有特色,灵活性很高。同时还有很不错的插件、Docker 和虚拟机支持。
30 |
31 | 
32 |
33 | ## 总结
34 |
35 | | 产品 | 直通 | 网络配置 | 扩展性 | 难度 |
36 | | :----: | :--: | :------: | :----: | :--: |
37 | | PVE | 很棒 | 一般 | 高 | 困难 |
38 | | ESXi | 一般 | 强大 | 低 | 中等 |
39 | | unRaid | 一般 | 简陋 | 中 | 简单 |
40 |
41 | 简单总结一下:**PVE 适合有 Linux 基础的玩家,折腾好的话,易用性和扩展性是可以吊打 ESXi 的**。所以国光我也单独开了这个自愈没记录以下 PVE 的折腾记录,学习之余也可以帮助到更多对 PVE 感兴趣的网友。
42 |
43 | ## 参考
44 |
45 | 更多相关的对比,大家可以自行阅读一下下发的参考链接:
46 |
47 | - [知乎 - ESXi、PVE、unRaid对比](https://zhuanlan.zhihu.com/p/166352130)
48 | - [V2EX - 聊聊 esxi 和 pve 家用场景哪个更有优势](https://www.v2ex.com/t/826802)
49 |
50 |
--------------------------------------------------------------------------------
/docs/1/3.md:
--------------------------------------------------------------------------------
1 | 细心的网友发现国光这套配置使用了很多硬盘:
2 |
3 | | 硬盘 | 型号 |
4 | | :----------- | :----------------------------------------------- |
5 | | **硬盘 - 1** | 金帮 P4LL PCIe 4.0 NVEM 协议 SSD 1TB |
6 | | **硬盘 - 2** | 西数 SN550 NVEM 协议 SSD 256GB (做 PVE 启动盘) |
7 | | **硬盘 - 3** | 西数 SN570 NVEM 协议 SSD 1TB (组硬 Raid0) |
8 | | **硬盘 - 4** | 西数 SN570 NVEM 协议 SSD 1TB(组硬 Raid0) |
9 | | **硬盘 - 5** | 梵想 S500 Pro NVEM 协议 SSD 1TB |
10 | | **硬盘 - 6** | 爱国者 P3000 Pro NVEM 协议 SSD 1TB |
11 | | **硬盘 - 7** | 镁光 M600 SSD 绝版 MLC 颗粒 SATA 协议 SSD 1TB |
12 | | **硬盘 - 8** | 樊想 FP325 系列 SSD SATA 协议 SSD 256GB |
13 | | **硬盘 - 9** | 希捷酷鹰 ST4000VX007 垂直非叠瓦 HDD 4TB |
14 |
15 | 国光用这套 PVE 主要就是想**多开虚拟机**使用,如果**几十个虚拟机同时运行**的话,对硬盘的负担也是不小的,所以国光我直接上了 6 个 NVME 硬盘来用来分担硬盘压力。
16 |
17 | 具体用法,下面画个草图来讲一下国光我打算怎么使用这些硬盘:
18 |
19 | 
20 |
21 | 1. SN 570 作为 PVE 的安装系统盘,保证 PVE 的运行流程的同时也用来存放运行虚拟机
22 | 2. SN 550、S500、P3000 Pro 均挂载为 PVE 的目录,用来存放运行虚拟机
23 | 3. FP325 这个 256GB 固态也挂载为 PVE 的目录,但是只用来作为 PVE 的 iSO 镜像仓库和模板仓库使用
24 | 4. 4TB 的 HDD 机械硬盘分为 NTFS、APFS和 exFAT 格式,用于直通 macOS 或者 Windows 虚拟机使用
25 | - 1TB NTFS 可以作为 Windows 虚拟机的存储盘
26 | - 2TB APFS 可以作为 macOS 虚拟机的存储盘
27 | - 剩下的分区 exFAT 格式的分区用户 Windows 和 macOS 的交互公用存储区域
28 | 5. M600 SATA SSD 专门用于 Windows 下直通的游戏盘,保障游戏的加载速度
29 |
30 |
31 |
32 | 下面是硬盘划分的细节图:
33 |
34 | 
35 |
36 |
--------------------------------------------------------------------------------
/docs/1/4.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/docs/1/4.md
--------------------------------------------------------------------------------
/docs/2/1.md:
--------------------------------------------------------------------------------
1 | ## 相关选项
2 |
3 | 安装系统前得设置一下 BIOS,因为 BIOS 不同主板大同小异,很难详细展开说,所以我们一般主要关注下面几个相关选项就 O可以了:
4 |
5 | - [x] **开启** Intel VMX 虚拟化技术(PCIe 件直通必须)
6 | - [x] **开启** VT-d (PCIe 件直通必须)
7 | - [x] **开启** SR-IOV 网卡虚拟化技术 (高效先进的虚拟机网卡技术)
8 | - [x] **开启** Above 4G Decoding(vGPU 方案需要开启这个选项)
9 | - [x] **开启** Numa (多路 CPU 建议开启,提高多路 CPU 运行效率,合理分配负载)
10 | - [x] **开启** x2APIC(PCIe 硬件直通需要)
11 |
12 | 其中我这块华南主板**首先恢复出厂设置**的话,`VMX`、`VT-d` 和`Numa` 都是满足要求的,我只需要设置其他的选项即可。
13 |
14 | ## 开启 Above 4G Decoding
15 |
16 | vGPU 方案需要开启 4G 以上解码,没有 vGPU 的使用需求不打开也是没问题的。以我的华南主板为例,在【Advenced】-【PCI Subsustem Settings】里面可以打开 **Above 4G Decoding** 选项。
17 |
18 |
19 | ## 开启 SR-IOV
20 |
21 | ???+ info
22 |
23 | 全称是 `Single Root IO Virtualization Support` 是一种高效先进的虚拟网卡技术。一个物理网卡可以虚拟出来多个轻量化的PCI-e 物理设备,从而可以分配给虚拟机使用。启用 SR-IOV 的这个功能,将大大减轻宿主机的CPU负荷,提高网络性能,降低网络时延等。
24 |
25 | 以我的华南主板为例,在【Advenced】-【PCI Subsustem Settings】里面可以打开 **SR-IOV** 选项:
26 |
27 | 
28 |
29 | ## 开启 x2APIC
30 |
31 | ???+ info
32 |
33 | x2APIC 是 x86 平台处理中断的机制,是之前 xAPIC 的替代品,再之前是 Intel® 82489DX external APIC。x2APIC 支持帮助操作系统以较高的内核数配置更高效地运行,并优化虚拟化环境中的中断分配。
34 |
35 |
36 |
37 | 以我的华南主板为例,在 【InterRCSetup】 - 【Processor Configuration】 里面可以打开 **X2APIC** 选项:
38 |
39 | 
40 |
41 |
42 |
43 | !!! warning "如果开启后,通过命令检测如果依然没有工作在 X2APIC 模式的情况下,请尝试**关掉**下面的「X2APIC_OPT_OUT_Flag」选项"
44 |
45 |
--------------------------------------------------------------------------------
/docs/2/2.md:
--------------------------------------------------------------------------------
1 | ## U 盘制作
2 |
3 | 制作启动盘的方式有很多,国光我不再赘述,个人比较喜欢 [balenaEthcher](https://www.balena.io/etcher/) 这个工具,界面简单直观:
4 |
5 | 
6 |
7 | ## 安装流程
8 |
9 | 整个 PVE 安装过程很简单,所以下面只放关键的截图。首先选择一个你准备好安装 PVE 的整个磁盘,我选择的是 250GB 的 WD SN550:
10 |
11 | 
12 |
13 | 选择这么小容量的硬盘,是因为 PVE 会自动把选择的硬盘划分为虚拟机存放和模板文件的两个区,感觉不是很合理。所以国光我干脆直接用个小容量硬盘单独来安装虚拟机,这样哪怕是不合理的分区也不可惜了。
14 |
15 | 选择好自己的网卡,然后配置 1 个静态 IP,根据自己的实际情况配置网关、DNS 等:
16 |
17 | 
18 |
19 | 最后没问题的话,点击「Install」安装完成自动重启就安装完毕了。
20 |
21 | ## 网络修复
22 |
23 | 这个一个流传已久的 PVE BUG,即当我们的 PCIe 的硬件发生变动的时候,我们的 PVE 网络会出现故障,虽然可以正常开机,但是并没有真正获取到 IP 地址,导致 PVE 服务器 ping 不通,PVE 的 Web UI 控制台没法访问,就像下面一样:
24 |
25 | 
26 |
27 | ??? Warning "如果因为修改了直通显卡,无法进这个交互 shell 界面的话...... 点击展开解决办法 👉"
28 |
29 | 可以在开机选择系统的时候选择「高级选项」:
30 | 
31 | 然后选择「recovery mode 恢复模式」即可:
32 | 
33 |
34 | 细心的小伙伴发现,我们 PVE 安装的时候,网卡的型号是 **enp5s0**,但实际上现在网卡变成了 **enp8s0**,只需要编辑网卡配置文件,改回 **enp8s0** 就可以了(下面命令是:编辑网卡配置文件 将 enp5s0 替换成 enp8s0):
35 |
36 | ```bash
37 | sed -i 's/enp5s0/enp8s0/g' /etc/network/interfaces
38 | ```
39 |
40 | 编辑完重启即可解决问题。
41 |
42 |
--------------------------------------------------------------------------------
/docs/2/4.md:
--------------------------------------------------------------------------------
1 | ## ls 系列
2 |
3 | ### lsblk
4 |
5 | 列出块设备信息(硬盘,闪存盘,cd-ROM等等),而且还能显示他们之间的依赖关系以及挂载目录详情。
6 |
7 | ```bash
8 | lsblk
9 | ```
10 |
11 | 
12 |
13 | ### lscpu
14 |
15 | 查看当前机器的 CPU 信息:
16 |
17 | ```bash
18 | lscpu
19 | ```
20 |
21 | ### lsmem
22 |
23 | 查看内存容量信息:
24 |
25 | ```bash
26 | lsmem
27 | ```
28 |
29 | ### lsmod
30 |
31 | 显示系统已经加载的模块
32 |
33 | ```bash
34 | lsmod
35 | ```
36 |
37 | 常配合 grep 搜索指定的模块:
38 |
39 | ```bash
40 | lsmod |grep -e vfio -e nvidia
41 | ```
42 |
43 | 
44 |
45 | ### lspci
46 |
47 | 查看系统中所有 PCI 总线和设备的详细信息:
48 |
49 | ```bash
50 | lspci
51 | ```
52 |
53 | lspci 相关的常用命令:
54 |
55 | ```bash
56 | # 查看以太网卡
57 | lspci -nn | grep Eth
58 |
59 | # 查看显卡设备
60 | lspci -nn | grep -E "Display|VGA|Audio|AMD|NVIDIA"
61 |
62 | # 查看无线网卡
63 | lspci -nn | grep -E "Network|Wireless|Adapter"
64 | ```
65 |
66 | 查看以太网卡设备的详情:
67 |
68 | ```bash
69 | # 查看以太网卡,发现以太网卡的总线为 04:00.0
70 | lspci -nn | grep Eth
71 |
72 | # 查看总线为 04:00.0 的以太网卡设备详情
73 | lspci -s 04:00.0 -v
74 |
75 | # 查看总线为 04:00.0 的以太网卡设备的更多详情
76 | lspci -s 04:00.0 -vv
77 | ```
78 |
79 | 可以看到使用的驱动为:ixgbe 驱动,IOMMU group 为 93 等详情:
80 |
81 | 
82 |
83 | ### lsusb
84 |
85 | 查看 USB 设备列表:
86 |
87 | ```bash
88 | lsusb
89 | ```
90 |
91 | 
92 |
93 | 查看 USB 树状列表信息:
94 |
95 | ```bash
96 | lsusb -t
97 | ```
98 |
99 | 
100 |
101 | 查看某个 USB 设备的详情:
102 |
103 | ```bash
104 | lsusb -d 046d:c08b -v
105 | ```
106 |
107 | 
108 |
109 | ### lslogins
110 |
111 | 查看开启自启的服务有哪些:
112 |
113 | ```bashlslogins
114 | lslogins
115 | ```
116 |
117 | ## dmesg 系列
118 |
119 | Linux dmesg(英文全称:display message)命令用于显示开机信息。
120 |
121 | kernel 会将开机信息存储在 ring buffer 中。您若是开机时来不及查看信息,可利用 dmesg 来查看。开机信息亦保存在 /var/log 目录中,名称为 dmesg 的文件里。
122 |
123 | ### 检测 IOMMU 状态
124 |
125 | 检测 IOMMU 等虚拟化相关的配置状态:
126 |
127 | ```bash
128 | dmesg | grep -E "DMAR|IOMMU"
129 | ```
130 |
131 | 
132 |
133 | ### 检测 IOMMU 中断重映射
134 |
135 | 如果没有中断重新映射,将无法使用 PCI 直通。所有使用支持英特尔定向 I/O 虚拟化技术 (VT-d) 但不支持中断重新映射的英特尔处理器和芯片组的系统都报错。较新的处理器和芯片组(AMD 和 Intel)都提供了中断重新映射支持。
136 |
137 | ```bashs
138 | dmesg | grep 'remapping'
139 | ```
140 |
141 | 如果看到类似下面的内容之一:
142 |
143 | ```ini
144 | "AMD-Vi: Interrupt remapping enabled"
145 | "DMAR-IR: Enabled IRQ remapping in x2apic mode"
146 | ```
147 |
148 | 则表示支持中断映射。
149 |
150 | 
151 |
152 | ## fdisk 系列
153 |
154 |
--------------------------------------------------------------------------------
/docs/2/5.md:
--------------------------------------------------------------------------------
1 | ## 基础知识
2 |
3 | Guest Agent 是安装在 VM 虚拟机里面的一个帮助程序,在 PVE 里面主要起到下面三个作用:
4 |
5 | 1. 使用正常方法关闭 VM,还不是依赖于 ACPI 命令或者其他窗口策略
6 | 2. 显示 VM 的 IP 地址,提高用户的使用体验
7 | 3. 在进行备份的时候冻结 VM 上的文件系统系列
8 |
9 | === "Guest Agen 未安装"
10 |
11 | 
12 |
13 | === "Guest Agen 已安装"
14 |
15 | 
16 |
17 |
18 | ## 安装 Agent
19 |
20 | ### Linux
21 |
22 | 在基于 Debian/Ubuntu 的系统:
23 |
24 | ```bash
25 | apt install qemu-guest-agent
26 | ```
27 |
28 | 在基于 Redhat 的系统:
29 |
30 | ```bash
31 | yum install qemu-guest-agent
32 | ```
33 |
34 | qemu-guest-agent 默认为开启自启的,重启 VM 即可看到效果。
35 |
36 | ### Windows
37 |
38 | Windows 下需要接住 VirtIO 驱动,最新稳定版本的下载地址为:
39 |
40 | [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso)
41 |
42 | 然后将 iso 镜像添加到 VM 中,打开 **virtio-win-guest-tools.exe** 即可自动安装所有相关的工具:
43 |
44 | 
45 |
46 | ### macOS
47 |
48 | 经过国光测试,参考我的[黑苹果章节](/7/1/),会发现 Guest Agent 是默认安装好的,有图有真相:
49 |
50 | 
51 |
52 |
53 |
54 | ## 参考链接
55 |
56 | - [PVE 官方 Qemu-guest-agent](https://pve.proxmox.com/wiki/Qemu-guest-agent)
--------------------------------------------------------------------------------
/docs/3/1.md:
--------------------------------------------------------------------------------
1 | ## 整体架构
2 |
3 | 原图的链接为:[https://www.processon.com/v/63942170daf0d42ad937e9f8](https://www.processon.com/v/63942170daf0d42ad937e9f8)
4 |
5 | 
6 |
7 | 本次网络架构只用到了半载的 2 个 2.5G 网口,实际上实现图上这些功能 1 个网口足以,这里面的 eth2 只是为了方便后续我可能会外挂路由器来使用。
8 |
9 | ## 架构解释
10 |
11 | 图上的机构是根据我的实际需求来设计的,所以仅供大家参考一下:
12 |
13 | 1. 因为是租的房子,楼上租客也是直插的光猫,所以我不能让光猫不能走桥接模式(对光猫的负担有点大了)
14 | 2. 划分单独的 1 个网段跑安全靶场,要和生产区(不同网段默认隔离)和家庭网络区隔离(需要 OpenWrt 配置防火墙)
15 | 3. 日常的手机有时候需要访问 NAS 等资源,所以将黑群晖这些单独使用 vmbr0 网桥
16 | 4. eht2 物理网口未来可以外挂 1 个路由器只关掉 DHCP 只当做 AP 来使用,目前是做临时网线插笔记本使用
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/docs/4/1.md:
--------------------------------------------------------------------------------
1 | ## 硬盘列表
2 |
3 | 首先看下我们的硬盘列表:
4 |
5 | 
6 |
7 | 下面备注一下这些硬盘的作用:
8 |
9 | | 设备名 | 协议 | 硬盘型号 | 容量 | 备注 |
10 | | :----------: | :--: | :------------------------- | :---: | :---------------------- |
11 | | /dev/nvme0n1 | NVME | GeIL 金邦 P4L PCIe 4.0 | 1TB | 做 Windows 游戏盘直通用 |
12 | | /dev/nvme1n1 | NVME | Fanxiang 梵想 S500 PRO | 1TB | 挂载为 PVE 目录使用 |
13 | | /dev/nvme2n1 | NVME | WD 西数 SN570 * 2 组 RAID0 | 2TB | 挂载为 PVE 目录使用 |
14 | | /dev/nvme3n1 | NVME | WD 西数 SN550 | 256GB | PVE 的系统盘 |
15 | | /dev/nvme4n1 | NVME | aigo 爱国者 P3000Pro | 1TB | 挂载为 PVE 目录使用 |
16 | | /dev/sda | SATA | 希捷 ST2000VX008 | 2TB | 直通给黑群晖使用 |
17 | | /dev/sdb | SATA | 希捷 ST2000VX008 | 2TB | 直通给黑群晖使用 |
18 | | /dev/sdc | SATA | Micron 镁光 M600 | 1TB | 直通给黑群晖使用 |
19 | | /dev/sdd | SATA | Fanxiang 梵想 FP325T | 256GB | PVE 下作为 ISO 镜像模板 |
20 | | /dev/sde | SATA | 希捷 ST1000DM003 | 1TB | 直通给黑群晖使用 |
21 | | /dev/sdf | SATA | WDC 西数 WD10EZEX | 1TB | 直通给黑群晖使用 |
22 |
23 | ## 硬盘分区
24 |
25 | 使用 fdisk 命令将「需要挂载为到 PVE 下当做目录的硬盘」分区或者 Windows PE 下使用 Diskgenius 将这些硬盘分成单个分区:
26 |
27 | 
28 |
29 | 最终整理的内容如下:
30 |
31 | | 分区 | 协议 | 硬盘型号 | 容量 | 备注 |
32 | | :------------: | :--: | :------------------------- | :---: | :---------------------- |
33 | | /dev/nvme1n1p1 | NVME | Fanxiang 梵想 S500 PRO | 1TB | 挂载为 PVE 目录使用 |
34 | | /dev/nvme2n1p1 | NVME | WD 西数 SN570 * 2 组 RAID0 | 2TB | 挂载为 PVE 目录使用 |
35 | | /dev/nvme4n1p1 | NVME | aigo 爱国者 P3000Pro | 1TB | 挂载为 PVE 目录使用 |
36 | | /dev/sdd1 | SATA | Fanxiang 梵想 FP325T | 256GB | PVE 下作为 ISO 镜像模板 |
37 |
38 | ## 添加硬盘
39 |
40 | ```bash
41 | # 将 上述分区 格式化为 ext4 格式
42 | mkfs -t ext4 /dev/nvme1n1p1
43 | mkfs -t ext4 /dev/nvme2n1p1
44 | mkfs -t ext4 /dev/nvme4n1p1
45 | mkfs -t ext4 /dev/sdd1
46 |
47 | # 创建对应的目录
48 | mkdir /mnt/ssd1-nvme-1tb-Fanxiang-S500PRO
49 | mkdir /mnt/ssd2-nvme-2tb-WD-AN1500
50 | mkdir /mnt/ssd3-nvme-1tb-AIGO-P3000PRO
51 | mkdir /mnt/ssd4-sata-256g-Fanxiang-FP325
52 |
53 | # 将分区对应挂载到目录下
54 | mount -t ext4 /dev/nvme1n1p1 /mnt/ssd1-nvme-1tb-Fanxiang-S500PRO
55 | mount -t ext4 /dev/nvme2n1p1 /mnt/ssd2-nvme-2tb-WD-AN1500
56 | mount -t ext4 /dev/nvme4n1p1 /mnt/ssd3-nvme-1tb-AIGO-P3000PRO
57 | mount -t ext4 /dev/sdd1 /mnt/ssd4-sata-256g-Fanxiang-FP325
58 |
59 | # 设置开机自启挂载
60 | echo /dev/nvme1n1p1 /mnt/ssd1-nvme-1tb-Fanxiang-S500PRO ext4 defaults 1 2 >> /etc/fstab
61 | echo /dev/nvme2n1p1 /mnt/ssd2-nvme-2tb-WD-AN1500 ext4 defaults 1 2 >> /etc/fstab
62 | echo /dev/nvme4n1p1 /mnt/ssd3-nvme-1tb-AIGO-P3000PRO ext4 defaults 1 2 >> /etc/fstab
63 | echo /dev/sdd1 /mnt/ssd4-sata-256g-Fanxiang-FP325 ext4 defaults 1 2 >> /etc/fstab
64 | ```
65 |
66 | 最后来到 Web UI 界面「数据中心」-「存储」将上述我们挂载的目录添加到 PVE 中并勾选全部内容:
67 |
68 | 
69 |
70 | 最后全部添加硬盘完成后的效果如下:
71 |
72 | 
73 |
74 | ## 简单方法(补充)
75 |
76 | 其实 PVE Web 里面也可以点点点添加硬盘,操作会更简单一点。首先擦除我们需要添加的硬盘:
77 |
78 | 
79 |
80 | 然后找到「目录」选择「创建:目录」即可:
81 |
82 | 
83 |
84 | 添加的效果如下:
85 |
86 | 
87 |
88 |
89 |
90 | 默认为类型为 VZDump备份文件, 磁盘映像, ISO镜像, 容器, 片段, 容器模板:
91 |
92 | 
93 |
--------------------------------------------------------------------------------
/docs/4/3.md:
--------------------------------------------------------------------------------
1 | PVE 自带的证书是无效的,这怎么能忍?:
2 |
3 | 
4 |
5 | ## 域名解析
6 |
7 | 配置 1 个 A 记录的子域名解析到 192.168.1.10(PVE 的控制台 IP):
8 |
9 | 
10 |
11 | 配置好解析后,十几分钟后测试一下,确保全国各地解析都没问题:
12 |
13 | 
14 |
15 | ## 签发证书
16 |
17 | 使用云服务器厂商提供服务签发1个免费的证书,国光我这里使用的是阿里云的 DigiCert 免费版 SSL:
18 |
19 | 
20 |
21 | 然后下载类型为:「其他」留着备用
22 |
23 | ## 导入证书
24 |
25 | 在 PVE 的 Web UI 控制台中,找到节点 - 「系统」-「凭证」导入我们上面下载好的证书:
26 |
27 | 
28 |
29 | 导入完成后,输入 xeon.sqlsec.com 这个域名重新载入 Web UI 控制台,这时候已经没有不安全的提示了:
30 |
31 | 
--------------------------------------------------------------------------------
/docs/4/4.md:
--------------------------------------------------------------------------------
1 | ## 需求场景
2 |
3 | local-vm 要满了,想迁移 VM 磁盘到其他硬盘里面去:
4 |
5 | 
6 |
7 | ## 定位路径
8 |
9 | ```bash hl_lines="1"
10 | ➜ cat /etc/pve/qemu-server/103.conf |grep sata
11 | boot: order=sata0
12 | sata0: local-lvm:vm-103-disk-1,backup=0,cache=unsafe,discard=on,size=320G,ssd=1
13 | ```
14 |
15 | 拿到当前的硬盘信息为:**local-lvm:vm-103-disk-1**
16 |
17 | 继续使用命令`pvesm path` 来定位具体的存放路径:
18 |
19 | ```bash hl_lines="1"
20 | ➜ pvesm path local-lvm:vm-103-disk-1
21 | /dev/pve/vm-103-disk-1
22 | ```
23 |
--------------------------------------------------------------------------------
/docs/5/1.md:
--------------------------------------------------------------------------------
1 | ## 基本安装
2 |
3 | 这部分其实在之前的 [网络实战 - 安装 OpenWrt - vmbr1](/3/2/#openwrt-vmbr1) 章节说过了,国光我不在赘述,大家自己看前面的章节即可。
4 |
5 | ## 语言设置
6 |
7 | OpenWrt 自带的语言里面默认是没有中文的:
8 |
9 | 
10 |
11 | 这让第一次上手 OpenWrt 的中国用户来说并不是很友好,不过幸运的是我们可以手动安装中文语言包。
12 |
13 | 首先更新一下软件源:
14 |
15 | 
16 |
17 | 接着搜索:base-zh-cn,找到 **luci-i18n-base-zh-cn** 点击 Install 安装即可:
18 |
19 | 
20 |
21 | 安装好后刷新一下系统就变成中文界面啦:
22 |
23 | 
24 |
25 |
--------------------------------------------------------------------------------
/docs/5/2.md:
--------------------------------------------------------------------------------
1 | 本教程基于 **ext4** 文件系统的 OpenWrt,如果你的文件系统是基于 `SquashFS` 只读系统的话,那么会稍微麻烦一点,挖个坑,后面国光我有时间了单独来写这块内容。
2 |
3 | OpenWrt 镜像默认的磁盘大小是比较小的,没安装几个软件就不够用了,所以需要我们手动来扩容一下:
4 |
5 | 
6 |
7 | ## 增加空间
8 |
9 | 首先 PVE 下给之前的 SATA 硬盘增加 2GB 空间:
10 |
11 | 
12 |
13 | 硬件更改后,记得重启一下这个 OpenWrt 的 VM
14 |
15 | 然后 OpenWrt 安装 cfdisk 工具:
16 |
17 | 
18 |
19 | 后面扩容分区需要用到这个工具。
20 |
21 | ## 扩容分区
22 |
23 | 使用 cfdisk 来扩容分区,可以看到末尾有 2GB 空闲分区:
24 |
25 | 
26 |
27 | 选中第二个分区,选择下面的「Resize」 调整磁盘分区大小:
28 |
29 | 
30 |
31 | 最后选择第二个分区,选择「Write」 保存我们上面的操作:
32 |
33 | 
34 |
35 | 此时记住我们当前的第 2 个分区路径为:**/dev/sda2** 下一步操作需要用到这个路径信息
36 |
37 | ## 设置循环
38 |
39 | OpenWrt 安装 losetup 工具:
40 |
41 | 
42 |
43 | 以及 resize2fs 工具:
44 |
45 | 
46 |
47 | 接着设置循环设备并挂载,操作完重启一下:
48 |
49 | ```bash
50 | losetup /dev/loop0 /dev/sda2
51 | resize2fs -f /dev/loop0
52 | reboot
53 | ```
54 | 
55 |
56 | ## 扩容效果
57 |
58 | 经过上述几步操作,最终扩容成功的效果如下:
59 |
60 | 
61 |
62 | ## 参考链接
63 |
64 | - [Bilibili - OpenWrt的空间扩容问题,可以这么直接解决!](https://www.bilibili.com/video/BV1WK411Z79q/)
65 |
66 |
--------------------------------------------------------------------------------
/docs/5/3.md:
--------------------------------------------------------------------------------
1 | ## 插件介绍
2 |
3 | OpenClash 是一个可运行在 OpenWrt 上的 Clash 客户端,兼容 Shadowsocks、ShadowsocksR、Vmess、Trojan、Snell 等协议,根据灵活的规则配置实现策略代理。
4 |
5 | 官方开源项目地址:[https://github.com/vernesong/OpenClash](https://github.com/vernesong/OpenClash)
6 |
7 | ## 下载插件
8 |
9 | 首先下载[最新的 ipk 文件](https://github.com/vernesong/OpenClash/releases)到 OpenWrt 里面
10 |
11 | ```bash
12 | opkg install uci-app-openclash_0.45.70-beta_all.ipk
13 | ```
14 |
15 | 因为缺少相关依赖,默认是无法直接安装成功的:
16 |
17 | 
18 |
19 | ## 卸载 dnsmasq
20 |
21 | 由于自带的 dnsmasq 会和下面要安装的 dnsmasq-full 冲突,所以我们需要提前卸载:
22 |
23 | ```bash
24 | opkg remove dnsmasq
25 | mv /etc/config/dhcp /etc/config/dhcp.bak
26 | ```
27 |
28 | ## 依赖安装
29 |
30 | ```bash
31 | opkg update
32 | opkg install iptables
33 | opkg install dnsmasq-full
34 | opkg install coreutils
35 | opkg install coreutils-nohup
36 | opkg install bash
37 | opkg install curl
38 | opkg install jsonfilter
39 | opkg install ca-certificates
40 | opkg install ipset
41 | opkg install ip-full
42 | opkg install iptables-mod-tproxy
43 | opkg install kmod-tun
44 | opkg install luci-compat
45 | ```
46 |
47 | 依赖安装完成后就可以直接来安装了 openclash 了:
48 |
49 | ```bash
50 | opkg install uci-app-openclash_0.45.70-beta_all.ipk
51 | ```
52 |
53 | 安装成功后,在 OpenWrt 的控制面板里面的「服务」菜单下可以找到 OpenClash:
54 |
55 | 
56 |
57 | 不过呢,像上图这样,表示服务还都没有启动起来。
58 |
59 | 所以我们配置好订阅后,启动一下 OpenClash 服务试试看,如果出现下图这种情况,表示服务是正常没问题的:
60 |
61 | 
62 |
63 | Bingo!至此我们已经可以轻松愉悦的上网冲浪了。
64 |
65 |
--------------------------------------------------------------------------------
/docs/6/10.md:
--------------------------------------------------------------------------------
1 | ## 添加社区源
2 |
3 | 首先在套件群晖社区源:[https://packages.synocommunity.com](https://packages.synocommunity.com)
4 |
5 | 
6 |
7 | ## 安装 套件
8 |
9 | 首先安装「Z shell(with modules) 」套件:
10 |
11 | 
12 |
13 | 然后再安装 git 套件 (后面安装 oh my zsh 插件需要使用到 git 命令):
14 |
15 | 
16 |
17 |
18 |
19 | ## 设置默认 shell
20 |
21 | 编辑配置文件,手动将默认的 shell 设置为 zsh shell:
22 |
23 | ```bash
24 | vim ~/.profile
25 | ```
26 |
27 | 追加内容如下:
28 |
29 | ```bash
30 | if [[ -x /usr/local/bin/zsh ]]; then
31 | export SHELL=/usr/local/bin/zsh
32 | exec /usr/local/bin/zsh
33 | fi
34 | ```
35 |
36 | 即可看到我们的 shell 环境变成了 zsh 环境:
37 |
38 | ```bash
39 | echo $SHELL
40 | ```
41 |
42 | 
43 |
44 | ## 安装 oh my zsh
45 |
46 | zsh 命令行下直接使用下面的命令安装即可:
47 |
48 | ```bash
49 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
50 | ```
51 |
52 | 或者使用 wget 下载脚本也行:
53 |
54 | ```bash
55 | sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
56 | ```
57 |
58 | 如果还卡的话,我们也可以手动使用浏览器下载然后上传到我们的 DSM 上,最后手动运行`./install.sh` 即可。
59 |
60 | 等待脚本自动安装 oh my zsh 即可:
61 |
62 | 
63 |
64 | 修复一下权限问题:
65 |
66 | ```bash
67 | sudo chmod 755 /usr/local/bin/zsh
68 | ```
69 |
70 | 最后安装后,随便换个 ys 主题,效果还是很赞的:
71 |
72 | 
73 |
74 | ## oh my zsh 插件安装
75 |
76 | 下面这次插件是国光我平时使用的插件,大家可以参考一下:
77 |
78 | ```bash
79 | # 命令补全插件
80 | git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
81 |
82 | # 语法高亮插件
83 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
84 | ```
85 |
86 | 编辑 `.zshrc` 文件分别启用这两个插件:
87 |
88 | ```bash
89 | sed -i 's/(git)/(git zsh-syntax-highlighting zsh-autosuggestions)/g' ~/.zshrc
90 | ```
91 |
92 | ## vim 配置
93 |
94 | 下载导入配色方案:
95 |
96 | ```bash
97 | sudo wget https://html.sqlsec.com/desert.vim -o /usr/share/vim/vim82/colors/desert.vim
98 | ```
99 |
100 | 然后编辑 vim 配色文件:
101 |
102 | ```bash
103 | vim ~/.vimrc
104 | ```
105 |
106 | 内容如下:
107 |
108 | ```bash
109 | set nu " 显示行号
110 | colorscheme desert " 颜色显示方案
111 | syntax on " 打开语法高亮
112 | ```
113 |
114 |
--------------------------------------------------------------------------------
/docs/6/11.md:
--------------------------------------------------------------------------------
1 | ## 抛出问题
2 |
3 | Docker 自带的 bridge 网桥默认是不支持 IPv6 的:
4 |
5 | 
6 |
7 | 这就导致了我们下图传统方法通过 bridge 映射的 8443 和 8080 端口无法被 IPv6 网络访问,只能走 IPv4 网络:
8 |
9 | 
10 |
11 | 从 DSM7 开始群晖官方也不建议我们去修改 Docker 的配置文件,而且考虑到 IPv6 的地址可能会发生变化,我们如果直接去编辑 Docker 配置文件,强开 IPv6 的话也并不是一个很优雅的方式。除了使用 host 网络类型,其实我们还有别的选择,就是自带的 Web Station 套件。
12 |
13 | 
14 |
15 | ## 实战演示
16 |
17 | 下面就实战演示一下,如果使用群晖 NAS 搭建一个图书管理系统,并配置 IPv6 网络正常访问。
18 |
19 | ### 下载镜像
20 |
21 | 我们这里使用的是 talebook 开源项目,一改 Calibre 古老丑陋的页面,基于Vue独立编写了新的简约美观界面,作者更新还比较频繁,经常新增一些小功能。
22 |
23 | 由于截止目前2023年02月27日,最新的 3.6.3 版本还存在一个[在线阅读 PDF 无法加载的 BUG](https://github.com/talebook/talebook/issues/280),所以我们使用的是 talebook 的 3.6.2 版本:
24 |
25 | 
26 |
27 | ### 创建容器
28 |
29 | 
30 |
31 |
32 |
33 | 
34 |
35 | 
36 |
37 | 
38 |
39 |
40 |
41 |
42 |
43 | ### Web Station 配置
44 |
45 | 
46 |
47 | 
48 |
49 | 
50 |
51 | 
52 |
53 | 
54 |
55 | 
56 |
57 | 
58 |
59 |
60 |
61 | ### SSL 证书导入
62 |
63 | ### 书籍图书导入
64 |
65 |
66 |
67 | ## 最终效果
68 |
69 |
--------------------------------------------------------------------------------
/docs/6/2.md:
--------------------------------------------------------------------------------
1 | ## 存储设计
2 |
3 | 配合群晖官网的 RAID 容量计算器:[https://www.synology.cn/zh-cn/support/RAID_calculator](https://www.synology.cn/zh-cn/support/RAID_calculator)
4 |
5 | 下图是国光我整体的存储设计,总共需要 6 个存储池,分别对应 6 个存储空间。
6 |
7 | 
8 |
9 | 下面简单说明一下为什么我要这么做的原因:
10 |
11 | 1. **存储池 1** :容量不错,时候存放日常影音媒体和设置 home 目录
12 | 2. **存储池 2** :容量大,时候存放日常影音媒体和存放日常资料
13 | 3. **存储池 3** :2 个 2TB 希捷垂直硬盘,做 raid1 阵列存放重要数据也有一定保障
14 | 4. **存储池 4** :3 个 1TB 硬盘组 raid0 奢侈一下吧,只存放一些常用软件和系统镜像啥的,或者剪辑视频的临时产物
15 | 5. **存储池 5** :1TB SATA MLC SSD 尽量发挥出优势来,可以跑 Docker 或者数据库等需要读写要求的服务
16 | 6. **存储池 6**:这个 3 TB 历史上还检测出坏道,软件先屏蔽了,但是估计离挂了也不远吧,就做临时下着片子存放
17 |
18 | ## 最终结构
19 |
20 | 第一次使用划分存储池存储空间的时候,建议磁盘检查一遍,这样心理有个数,数据才可以安心存放,哪怕要耗费不少时间,但是还是很值得的,毕竟“磨刀不误砍柴工”。
21 |
22 | 最终根据上面的图来实操,最终的布置效果如下:
23 |
24 | 
25 |
26 | 细心的朋友会发现我的 SSD 没有用,不要慌,这个 SSD 可以后面当做缓存盘来使用。
27 |
28 | 以及下面这个空硬盘图标:
29 |
30 | 
31 |
32 | 我们也一并来解决。
--------------------------------------------------------------------------------
/docs/6/3.md:
--------------------------------------------------------------------------------
1 | ## 抛出问题
2 |
3 | 细心或者有强迫症的朋友一定注意到了我们群晖的硬盘信息里面居然没有识别到我们的硬盘,明明我们已经插了 10 块硬盘了:
4 |
5 | 
6 |
7 | 这是因为我们的硬盘属于扩展硬盘,编号是从 7 开始的:
8 |
9 | 
10 |
11 | 而这个图标里面只识别板载硬盘,编号应该为 1、2、3、4 才可以正常显示。
12 |
13 | ## 解决方法
14 |
15 | 既然群晖只显示板载硬盘,那肯定还有小伙伴有疑问,不对啊,为啥我们的引导的硬盘是板载的没有识别呢?
16 |
17 | 
18 |
19 | 国光猜测是因为这个引导盘太小了,只能作为引导,群晖没把他当回事。
20 |
21 | ### 腾出 sata0
22 |
23 | 不过这个可恶的引导盘确实占了 sata0 的位置,我们待会给他改为 sata4 编号,这样就可以让 sata0、sata1、sata2、sata3 正常被群晖识别为板载硬盘了。
24 |
25 | 直接编辑虚拟机配置:
26 |
27 | ```bash
28 | nano /etc/pve/qemu-server/100.conf
29 | ```
30 |
31 | 手动将 sata0 改为 sata4:
32 |
33 | 
34 |
35 | ### 添加 sata 0、1、2、3
36 |
37 | 我们这里需要再添加 4 块 SSD,当然 SSD 也不是白添加的,用来做缓存也是不错的选择。
38 |
39 | 关于 SSD 缓存有一些坑和基础知识得了解一下:
40 |
41 | 1. **SSD 写入放大问题**
42 | - **缓存要保留一定的未分配空间,建议分配 80%,防止写入放大**。是因为群晖的缓存自动释放速度很慢,当缓存占用率 99%后,会反复对一些块进行移除,写入,导致硬盘的健康度下降。
43 | 1. SSD 建议开启只读缓存
44 | - 只读缓存陈本很低,只需要 1 块硬盘,而读写缓存需要 2 块硬盘。
45 | - 读写缓存主要是在群晖用于网页服务,iscsi,虚拟机的情况下有较好的加速作用,提升效果有限。
46 | - 读写缓存是和存储空间并在一起的,也就是说如果 SSD 突然 GG,与读写缓存相连的这个存储空间会挂掉。
47 | - 大部分家用场景,做读缓存就够了,读写缓存没有任何帮助,反而增加了存储空间挂掉的风险。
48 |
49 | 根据上述知识点我们重新设计一下我们的硬盘结构:
50 |
51 | 
52 |
53 | 主要就添加了 4 个 PVE 的 125GB 虚拟 SSD,打算给存储池1、2、3、4 做 125 x 80% = 120GB SSD 缓存。另外直通的硬盘里面有 1 个 256GB 的小牌子 SATA SSD 正好也可以直通给存储池 6 做 200GB 的 SSD 缓存。
54 |
55 | 下面是国光我添加硬盘勾选的一些参数:
56 |
57 | 
58 |
59 | 1. 勾选 「SSD 仿真」,必选。这样可以让群晖识别你为 SSD,从而才可以将其作为缓存盘。
60 | 2. 勾选 「丢弃」,可选,开启 SSD TRIM 支持,也是一种先进的存储技术
61 | 3. 缓存类型选择为:「Write back」,是一个提高虚拟机 IO 的一种非常有效的参数
62 |
63 | 以此类推,添加完剩下 3 块硬盘:
64 |
65 | 
66 |
67 | 最后不要忘记修正一下我们现在的引导,已经从原来的 sata0 变为 sata4 了:
68 |
69 | 
70 |
71 | ## 最终效果
72 |
73 | 最终我们解决了群晖的硬盘信息里面识别不到我们硬盘的问题,强迫症狂喜:
74 |
75 | 
76 |
77 | 提示未初始化不要紧,我们参考下面的 SSD 缓存给他们都初始化一下:
78 |
79 | ## SSD 缓存
80 |
81 | 既然添加了缓存就得利用起来,下面以存储池 1 为例来添加 SSD 缓存。先创建 SSD 缓存:
82 |
83 | 
84 |
85 | 然后给存储空间1装载加速一下:
86 |
87 | 
88 |
89 | 选择「只读缓存」:
90 |
91 | 
92 |
93 | 只有 1 个硬盘,这里选择「Basic」类型:
94 |
95 | 
96 |
97 | 选择我们要添加的 SSD:
98 |
99 | 
100 |
101 | 为了防止写入放大,这里分配大小为:125 x 80% = 120GB 大小:
102 |
103 | 
104 |
105 | 最终添加好的效果如下:
106 |
107 | 
108 |
109 | 以此类推,我们给其他存储池也添加对应的 SSD 缓存,最终强迫症终于舒服了:
110 |
111 | 
112 |
113 |
114 |
115 | 然后再配置一下家目录:
116 |
117 | 
118 |
119 | 然后每个存储空间新建自己的对应的文件,最终的效果如下:
120 |
121 | 
122 |
123 |
--------------------------------------------------------------------------------
/docs/6/4.md:
--------------------------------------------------------------------------------
1 | ## 引出问题
2 |
3 | 细心的网友会发现我们 PVE 安装的黑群晖的 CPU 型号和 CPU 内核数和我们 PVE 里面提供的信息是不一样的:
4 |
5 | 
6 |
7 | 这是因为引导本身的问题,为了尽量去模拟真实的白群晖。不过呢,我们也可以手动纠正一下,让黑群晖正确识别到我们的 CPU 型号以及核心数。
8 |
9 | ## VM 配置
10 |
11 | 首先确保我们的 VM 虚拟机的 CPU 需要选择 host 类型,这样才可以让黑群晖识别到我们物理机的 CPU 真正的型号,此外非单路 CPU 主机还建议启用 NUMA :
12 |
13 | 
14 |
15 | ## 纠正型号
16 |
17 | 我们此次所使用的开源项目地址为:[https://github.com/FOXBI/ch_cpuinfo](https://github.com/FOXBI/ch_cpuinfo)
18 |
19 | 下载上传到 DSM 中我们直接执行 ch_cpuinfo 即可:
20 |
21 | 
22 |
23 | 工具交互比较简单,不懂的地方谷歌翻译一下就懂了。第一次使用只需根据提示引导先后输入:1 然后 y 即可,因为国光我这里之前已经安装过这个工具了,所以下面图中使用的是 2 然后 y:
24 |
25 | 
26 |
27 | 如果没有成功或者显示有 BUG 的话,不妨后退几个版本看看,最终国光我在 4.0.0 版本中,黑群晖 DSM 已经可以正常显示我们的 CPU 型号和核心数了:
28 |
29 | 
30 |
31 | 其实核心原理就是修改 admin_center.js 文件内容:
32 |
33 | ```bash
34 | vim /usr/syno/synoman/webman/modules/AdminCenter/admin_center.js
35 | ```
36 |
37 | 我们也可以自定义我们想要的信息,改完替换回去就行了。
38 |
39 |
--------------------------------------------------------------------------------
/docs/6/5.md:
--------------------------------------------------------------------------------
1 | ## 安装套件
2 |
3 | DVA3221 机型官方是默认支持独显驱动的,只需要手动安装 NVIDIA Runtime Library 套件即可:
4 |
5 | 
6 |
7 | 其他原生不支持 N 卡去的机型如:DS918+、DS920+ 等机型也是可以手动安装这个套件来驱动 N 卡的,但是官方源里面肯定是不带这个 N 卡套件的,我们需要手动添加第三方的 DSM 源:[https://spk7.imnks.com/](https://spk7.imnks.com/)
8 |
9 | ## 直通独显
10 |
11 | 首先 PVE VM 硬件选择「添加:PCI设备」,选择我们的 Tesla P4 显卡:
12 |
13 | 
14 |
15 | 只勾选所有功能和 ROM-Bar 即可:
16 |
17 | 
18 |
19 | ## 直通效果
20 |
21 | 然后我们就可以正常在控制面板的信息中心看到我们直通的 Tesla P4 显卡了:
22 |
23 | 
24 |
25 | 使用 DSM 的命令行也可以正常识别我们添加的显卡:
26 |
27 | ```bash
28 | nvidia-smi
29 | ```
30 |
31 | 后面国光我测试添加了两块 N 卡都是正常识别的,不过添加两块意义不大,正常情况下 1 个 Tesla P4 就完全足够我们日常使用了:
32 |
33 | 
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/docs/6/7.md:
--------------------------------------------------------------------------------
1 | ## 抛出问题
2 |
3 | 前面使用 DDNS 来访问 DSM 的 IPv6 公网的时候发现会提示不安全,这是因为我们的 SSL 证书和域名对不上:
4 |
5 | 
6 |
7 | 所以需要我们手动添加一下证书即可。
8 |
9 | ## 申请证书
10 |
11 | 首先到阿里云的控制台里面申请 1 个免费的 SSL 证书:
12 |
13 | 
14 |
15 | 然后一般 2 分钟左右即可申请成功批准下来:
16 |
17 | 
18 |
19 | ## 下载证书
20 |
21 | 一般来说我们下载 Nginx 类型的证书即可:
22 |
23 | 
24 |
25 | ## 导入证书
26 |
27 | 控制面板中的「安全性」找到「证书」标签,手动添加我们刚刚下载好的证书:
28 |
29 | 
30 |
31 | 导入 key 和 pem 即可:
32 |
33 | 
34 |
35 | 导入后记得将服务都切换为我们新的证书:
36 |
37 | 
38 |
39 | 最后浏览器会提示我们的连接是安全的了,强迫症狂喜:
40 |
41 | 
--------------------------------------------------------------------------------
/docs/6/8.md:
--------------------------------------------------------------------------------
1 | ## WebDAV 是什么
2 |
3 | WebDAV (Web Distributed Authoring and Versioning)是一种网络文件传输协议,它是在 HTTP/1.1 协议上的扩展,可以让用户通过 WebDAV 客户端像访问本地文件一样访问互联网上的文件,并且支持对这些文件的修改和管理。
4 |
5 | 用 WebDAV,你可以通过一个 WebDAV 客户端连接到远程服务器上的文件夹,像在本地计算机上一样浏览、打开、编辑、保存、删除等操作文件,就像访问本地文件一样方便。同时,WebDAV 还提供了版本控制和锁定功能,可以让多个用户协作编辑同一份文件时更加方便和安全。
6 |
7 | ## 安装阿里云盘套件
8 |
9 | 阿里云盘支持 WebDAV 协议,我们 DSM 群晖添加使用也比较方便简单。首先安装「阿里云盘WebDAV」套件:
10 |
11 | 
12 |
13 | 根据提示填写配置即可:
14 |
15 | 
16 |
17 | 其中需要填写 refreshToken 我们可以使用下面的网站配合手机扫码来获取:
18 |
19 | [https://alist.nn.ci/zh/guide/drivers/aliyundrive.html](https://alist.nn.ci/zh/guide/drivers/aliyundrive.html)
20 |
21 | 
22 |
23 | ## 挂载阿里云盘
24 |
25 | 添加挂载阿里云盘 WebDAV 也比较简单,可以使用群晖自带的「File Station」来挂载:
26 |
27 | 
28 |
29 | 选择「WebDAV/WevDAV HTTPS」类型:
30 |
31 | 
32 |
33 | 然后填写我们上一步的配置信息即可成功挂载我们的阿里云盘:
34 |
35 | 
36 |
37 | 挂载的效果如下:
38 |
39 | 
40 |
41 | ## 挂载 115 网盘
42 |
43 | 同理也可以安装 115网盘的 WevDAV 套件:
44 |
45 | 
46 |
47 | 然后也可以正常挂载到我们的 DSM 里面:
48 |
49 | 
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/docs/6/9.md:
--------------------------------------------------------------------------------
1 | alist 可以理解为一个网盘整合系统,基本上支持国内的各种各样的网盘,非常的强大好用,基本上是 NAS 必备神器。
2 |
3 | ## Docker 加速
4 |
5 | Docker 注册表设置,选择默认的存储库后我们点击编辑:
6 |
7 | 
8 |
9 | 然后就可以填写启用 Docker 国内的源了:
10 |
11 | 
12 |
13 | ## 安装 alist
14 |
15 | 搜索 alist 关键词,找到 `xhofe/alist` 镜像点击「下载」,选择最新版本的 latest 进行下载:
16 |
17 | 
18 |
19 | 下载好后点击「启动」然后网络使用「bridge」类型:
20 |
21 | 
22 |
23 | !!! Note "国光小课堂:IPv6 访问需求"
24 | 如果有 IPv6 访问需求的话,这里得使用 host 网络类型,无 IPv6 需求的话使用默认的 bridge 足够我们大多数人使用了,而且也方便我们自定义端口。
25 |
26 | 常规设置这里默认即可:
27 |
28 | 
29 |
30 | 修改端口映射,将容器的 5244 端口映射到 DSM 的 15244 端口:
31 |
32 | 
33 |
34 | 然后分别挂载配置文件夹(/opt/alist/data)和存储文件夹(/opt/alist/share):
35 |
36 | 
37 |
38 | 然后在容器里面找到我们新建的容器双击即可看到运行情况:
39 |
40 | 
41 |
42 | 可以看到成功在 15244 端口运行了:
43 |
44 | 
45 |
46 | ## 配置 alist
47 |
48 | 从 Docker 的日志可以看到 admin 用户的密码,顺便发现 alist 是运行在 IPv4 端口上的:
49 |
50 | 
51 |
52 | 为了方便复制密码,我们也可以导出 HTML 查看:
53 |
54 | 
55 |
56 | 等了进去后会提示:**failed get storage: please add a storage first.** 这表示没有挂载不要慌,我们手动点击「管理」:
57 |
58 | 
59 |
60 | ### 更改管理密码
61 |
62 | 日志里面的密码是随机生成的,我们也可以换成自定义密码:
63 |
64 | 
65 |
66 | ### 添加本地存储
67 |
68 | 然后选择本地存储:
69 |
70 | 
71 |
72 | 手动添加之前的 **/opt/alist/share** 路径:
73 |
74 | 
75 |
76 | 最后添加的效果如下:
77 |
78 | 
79 |
80 | ### 添加百度网盘
81 |
82 | 首先访问下面链接获取百度的 refresh token:
83 |
84 | ```bash
85 | https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id=iYCeC9g08h5vuP9UqvPHKKSVrKFXGa1v&redirect_uri=https://alist.nn.ci/tool/baidu/callback&scope=basic,netdisk&qrcode=1
86 | ```
87 |
88 | 登录后即可获取:
89 |
90 | 
91 |
92 | 挂载细节如下:
93 |
94 | 
95 |
96 | 填写刷新令牌:
97 |
98 | 
99 |
100 | 其他默认即可,最后添加的效果如下:
101 |
102 | 
103 |
104 | ### 添加其他网盘
105 |
106 | 以此类推,我们可以添加各种乱七八糟的网盘,最终的全部添加的效果如下:
107 |
108 | 
109 |
110 | 这样再也不用到处打开网盘了,全部通过 alist 交互就完事儿:
111 |
112 | 
113 |
--------------------------------------------------------------------------------
/docs/7/1.md:
--------------------------------------------------------------------------------
1 | ## 准备镜像
2 |
3 | 准备好 OpenCore 引导镜像和 macOS 安装镜像即可:
4 |
5 | 
6 |
7 | - **官方镜像**
8 |
9 | 这种方式用于在线安装 macOS 的原版镜像,优点是纯净,但是对网速比较差的网友不是很友好。
10 |
11 | 开源项目地址:[https://github.com/thenickdude/OSX-KVM](https://github.com/thenickdude/OSX-KVM)
12 |
13 | 需要我们自己手动编译生成 Monterey-recovery.img 恢复镜像,使用 Linux 或者 macOS 直接 make 编译即可:
14 |
15 | ```bash
16 | # 拉取项目
17 | git clone https://github.com/thenickdude/OSX-KVM.git
18 |
19 | ## Linux 需要安装编译相关工具
20 | sudo apt install qemu-utils make
21 |
22 | # 编译 macOS 12 恢复镜像
23 | cd scripts/monterey
24 | make Monterey-recovery.img
25 |
26 | ## 如果你网速很快的话 直接构建完整版镜像也是 OK 的 (可选操作)
27 | make Monterey-full.img
28 |
29 | # 编译 macOS 13 恢复镜像
30 | cd scripts/ventura
31 | make Ventura-recovery.img
32 |
33 | ## 如果你网速很快的话 直接构建完整版镜像也是 OK 的 (可选操作)
34 | make make Ventura-full.img
35 | ```
36 |
37 | 最后上传编译好的 img 到 PVE 的 ISO 镜像库即可
38 |
39 | - **传统镜像**
40 |
41 | 对于我们黑苹果职业玩家来说,出来工作随身带个 “锤子” 是很正常的,所以大家基本上都是有黑苹果镜像的(网络上也很多人分享完整镜像),不过呢我们的镜像是 dmg 格式的后缀,PVE 并不支持 dmg 后缀的镜像上传。解决方法也很简单,直接将**镜像重命名为 iso** 即可,对,就是这么简单,甚至都不需要使用 dmg2img 这种工具,最后上传 iso 到 PVE 的 ISO 镜像库即可。
42 |
43 | ## 准备引导
44 |
45 | PVE 黑苹果 OpenCore 引导开源项目地址:[https://github.com/thenickdude/KVM-Opencore/releases](https://github.com/thenickdude/KVM-Opencore/releases)
46 |
47 | 直接下载解压然后上传到 PVE 的 ISO 镜像库即可。
48 |
49 | 
50 |
51 |
52 |
53 | ## 底层设置
54 |
55 | 黑苹果安装需要参考前面的教程部分配置好 BIOS:[https://pve.sqlsec.com/2/1/](https://pve.sqlsec.com/2/1/)
56 |
57 | 然后配置好硬件直通部分:[https://pve.sqlsec.com/2/3/](https://pve.sqlsec.com/2/3/)
58 |
59 | ## 虚拟机配置
60 |
61 | 下面是黑苹果安装虚拟机配置的一些细节,大家可以根据自己的实际情况来参考:
62 |
63 | === "常规"
64 |
65 | 
66 |
67 | 给自己的虚拟机创建一个自定义名称,记住此时的 VM ID 为 103,后面需要用得到。
68 |
69 | ----
70 |
71 | === "操作系统"
72 |
73 | 
74 | 先添加一个 OpenCore 的引导镜像,系统类别选择「Other」。
75 |
76 | ----
77 |
78 | === "系统"
79 |
80 | 
81 | 显卡选择「VMWare 兼容」,开启 Qemu 代理,BIOS 选择「QVMF UEFI」,机器选择「q35」,最后必须取消勾选「预注册密钥」
82 |
83 | ----
84 |
85 | === "磁盘"
86 |
87 | 
88 |
89 | 硬盘选择「VirtIO Block」,然后磁盘大小根据你的需要进行设置,缓存选择「Write back(不安全)」,然后勾选「丢弃」这样可以支持苹果的 TRIM 技术,其他参考图上细节设置即可。
90 |
91 | 需要提一下:SATA 类型兼容性最好,但是 4k 读写速度下降很多很多;VirtIO Block 是黑苹果下最快的硬盘类型,但是兼容性差一点,比如 QQ 闪退无法打开。 所以**鱼和熊掌不可兼得**,国光我研究了很久都没有找到完美的解决方法。
92 |
93 | ----
94 |
95 | === "CPU"
96 |
97 | 
98 | CPU 设置好核心数(建议 2、4、8),类别选择「Haswell」兼容性更好,因为国光我知道我这个 CPU 也是完全没可以黑苹果的,所以这里直接选择了「host」类型。接着勾选「启用 NUMA」。
99 |
100 | ----
101 |
102 | === "内存"
103 |
104 | 
105 | 根据自己的实际配置分配内存,macOS 的话建议至少分配 8GB 内存,然后取消勾选「Ballooning 设备」
106 |
107 | ----
108 |
109 | === "网络"
110 |
111 | 
112 | 网络类型选择「VirtIO 半虚拟化」性能更好,然后网桥根据自己的实际网口情况自行选择。
113 |
114 | ----
115 |
116 | 创建完虚拟机后先不要着急开机,我们再添加一个我们的之前上传好的黑苹果安装镜像,最终完整的配置如下:
117 |
118 | 
119 |
120 | 至于为什么上图圈出来的是两个硬盘而不是两个 CD 的原因是,我们下一节操作修改生效的,具体参考下一节即可。
121 |
122 |
--------------------------------------------------------------------------------
/docs/7/2.md:
--------------------------------------------------------------------------------
1 | ## 参数修正
2 |
3 | 我们之前 macOS 的虚拟机的 ID 为 103,所以我们可以通过这个 ID 直接来编辑虚拟机的配置( Web 界面功能有限,直接编辑配置可以更灵活定制):
4 |
5 | ```bash
6 | nano /etc/pve/qemu-server/103.conf
7 | ```
8 |
9 | 根据自己的 CPU 类别,在**第 1 行**添加如下配置:
10 |
11 | ### macOS < 13.X
12 |
13 | - **intel CPU**
14 |
15 | ```ini
16 | args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
17 | ```
18 |
19 | - **AMD CPU**
20 |
21 | ```ini
22 | args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,check
23 | ```
24 |
25 | ### macOS = 13.X Ventura
26 |
27 | 如果您的 CPU 不支持,或者您希望能够在 Proxmox 节点之间迁移正在运行的 VM,则可以从 -cpu 列表中删除“+invtsc”功能。
28 |
29 | - **intel CPU**
30 |
31 | ```ini
32 | args: -device isa-applesmc,osk="THE-OSK-YOU-EXTRACTED-GOES-HERE" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on
33 | ```
34 |
35 | - **AMD CPU**
36 |
37 | ```ini
38 | args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu Haswell-noTSX,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on
39 | ```
40 |
41 | ## 修改 CD 光盘
42 |
43 | 接着修改我们的 CD 光盘配置,删掉「media=cdrom」换成「cache=unsafe」,最终的配置效果如下:
44 |
45 | 
46 |
47 |
--------------------------------------------------------------------------------
/docs/7/3.md:
--------------------------------------------------------------------------------
1 | ## 引导设置
2 |
3 | 取消 net 设备引导,将 OpenCore 引导调整至第一位:
4 |
5 | 
6 |
7 | ## 系统安装
8 |
9 | 系统安装对于黑苹果玩家来说并不难,考虑到 PVE 用户全体可能对黑苹果不那么了解,所以国光就再赘述啰嗦一下。
10 |
11 | ### 第 1 遍进度条
12 |
13 | 首先进入 OpenCore 界面的主界面如下,由于我们的 EFI 是针对 PVE 定制好的,所以直接选择 **Install macOS Monterey** 就可以了:
14 |
15 | 
16 |
17 | 接着等待进入条走完进入到苹果系统的安装界面,选择最后一个磁盘工具:
18 |
19 | 
20 |
21 | 根据下图标记的顺序,先选择磁盘,然后擦除一下就行,格式保持默认,可以考虑自定义 1 个逼真的磁盘名称:Macintosh
22 |
23 | 
24 |
25 | 操作完后,点击「Erase」即可擦除磁盘,操作完成后关掉当前窗口:
26 |
27 | 
28 |
29 | 选择第二项「Install macOS Monterey」:
30 |
31 | 
32 |
33 | 后面操作都比较简单,根据系统提示走即可,等待第 1 遍进度条安装:
34 |
35 | 
36 |
37 | ### 第 2 遍进度条
38 |
39 | 进度条走完后自动重启,此时出现了一个「macOS Installer」:
40 |
41 | 
42 |
43 | 选择后,此时开始走第 2 遍进度条:
44 |
45 | 
46 |
47 | 后面可能还会继续重启几次,但是只要有 「macOS Installer」选项的话,我们无脑继续即可。
48 |
49 | ### 第 3 遍进度条
50 |
51 | 此时出现了一个我们之前设置的磁盘名称 Macintosh 的选项,选择他:
52 |
53 | 
54 |
55 | 可能还会继续重启几次,最终我们进入到了 macOS 初始化界面:
56 |
57 | 
58 |
59 | ## 初始化系统
60 |
61 | 详细的操作也可以参考国光我的黑苹果教程:[实战演示 - 初始化设置](https://apple.sqlsec.com/5-%E5%AE%9E%E6%88%98%E6%BC%94%E7%A4%BA/5-5/#_3)
62 |
63 | 选择好自己的国家地区:
64 |
65 | 
66 |
67 | 然后点击「继续」,后面大家根据系统引导来操作就行,反正一直根据自己的感觉点击就可以了,正常人都没问题的,最后我们会成功进入苹果系统:
68 |
69 | 
70 |
71 | 因为这种情况下是没有显卡驱动的,我们操作会很卡,另外还有很多细节需要优化,所以接着看下一章吧,我们离成功不远了。
72 |
73 |
--------------------------------------------------------------------------------
/docs/8/2.md:
--------------------------------------------------------------------------------
1 | ## 安装使用
2 |
3 | PVE 基于 Debian 系统的,所以可以直接使用下面的一键安装脚本来安装 zerotier 客户端:
4 |
5 | ```bash
6 | curl -s https://install.zerotier.com | bash
7 | ```
8 |
9 | 安装完成后,使用直接设置开机自启然后加入网络即可:
10 |
11 | ```bash
12 | # 设置 zerotier 开机自启
13 | systemctl enable zerotier-one.service
14 |
15 | # 启动 zerotier 服务
16 | systemctl start zerotier-one.service
17 |
18 | # 加入网络
19 | zerotier-cli join {NETWORK ID}
20 | ```
21 |
22 | 加入网络后在 [ZeroTier Central](https://my.zerotier.com/) 的网络里面勾选新增的 PVE 宿主机,将其变为 Auth 认证的状态,此时 ZeroTier 就会给 PVE 分配一个内网 IP:
23 |
24 | 
25 |
26 | 此时其他同在这个网络组里面的设备,可以直接访问这个内网的 IP 地址,非常的方便。
27 |
28 | ## 延迟测试
29 |
30 | 在公司网络使用江苏电信的 Macbook Pro 访问家里的江苏移动的 PVE 机器,一开始 Ping 的延迟很高:
31 |
32 | 
33 |
34 | 不要慌,ZeroTier 的原理就是做隧道打通最后走 P2P 方式连接,让子弹飞一会儿(一般十分钟左右吧),可以看到后面的稳定性和延迟明显降低了很多:
35 |
36 | 
37 |
38 | ## 速度测试
39 |
40 | 直接使用 PVE 的 Web 控制台上传,速度可以跑到 11MB/s:
41 |
42 | 
43 |
44 | 使用 ZeroTier 测试宝塔面板的上传文件速度,也可以达到 11.43 MB/s:
45 |
46 | 
47 |
48 | 这个 10几 MB/s 的上传速度可能不是 ZeroTier 的极限,可能是我这个江苏电信套餐的极限......
49 |
50 | 总的来说虽然速度不如我们内网快,但是这个带宽基本上秒国内的大多数个人服务器了,国光我已经很满意了。
51 |
52 | ## 极端测试
53 |
54 | 因为上次在公司的上传速度有限,这次在家里使用超过 1000M 的中国移动套餐来看看上传速度到底有多块:
55 |
56 | 
57 |
58 | 最快达到了 39.6 Mb/s,感觉还没有摸到 zerotier 的上限, 这个 39.6 Mb/s 应该是我移动宽带套餐的上传速度上限了......
59 |
60 | 总之,zerotier 的速度基本上应该无上限的,完全取决于你自己当前客户端的宽带套餐的上传速度,就这样, 不再测试了溜了溜了。
61 |
62 |
--------------------------------------------------------------------------------
/docs/8/3.md:
--------------------------------------------------------------------------------
1 | ## DDNS 是什么
2 |
3 | 通俗的说我们家用宽带的 IPv4 或者 IPv6 基本上都会来回变的,不像我们的服务器的 IP 是固定不变的,如果去域名厂商的控制台配置解析的话,每次 IP 变动得重新设置一下 A 记录(IPv4)或者 AAA 记录(IPv6)的解析是很麻烦的,所以这个适合就有了 DDNS 技术。
4 |
5 | DDNS 全称也叫做动态域名解析,相当于每隔一段时间主动去我们的云厂商控制台里面配置域名解析,哪怕我们的域名变了也可以保证及时同步解析,让我们的域名始终指向正确的 IP 地址。
6 |
7 | ## 公网 IPv4
8 |
9 | 因为网络的发展,全球的 IPv4 资源都十分紧张。早几年的电信宽带还是自带公网 IPv4 的,虽然不是固定的,但是配置 1 个 DDNS 解析还是极好的。但是现在 2023 年了,如今的个人家庭宽带带公网 IPv4 的可能性已经不大了,但是好在 IPv6 技术的出现。
10 |
11 | ## 公网 IPv6
12 |
13 | 因为 IPv6 的资源非常非常多,而且国家也强制了运营商需要分配 IPv6 资源,所以如今家用宽带基本上都是自带外网的 IPv6 资源的。IPv6 资源分发到每个家里可以理解是一个资源池,哪怕光猫下面连接路由器,路由器下面再接一些设备,也可以保证这些设备也获取到独立的公网 IPv6 地址。没错!IPv6 的普及也就是万物互联时代的开始。
14 |
15 | ## PVE 开启 IPv6
16 |
17 | 那么既然 IPv6 资源这么多,怎么保证我们的 PVE 也有自己的 IPv6 地址呢?
18 |
19 | 其实很简单,PVE 本身也是默认开始了 IPv6 配置和转发的,我们只需要使用如下命令自动配置 SLAAC IPv6 地址即可:
20 |
21 | ```bash
22 | echo "net.ipv6.conf.all.accept_ra=2" >> /etc/sysctl.conf
23 | echo "net.ipv6.conf.default.accept_ra=2" >> /etc/sysctl.conf
24 | echo "net.ipv6.conf.vmbr0.accept_ra=2" >> /etc/sysctl.conf
25 | echo "net.ipv6.conf.all.autoconf=1" >> /etc/sysctl.conf
26 | echo "net.ipv6.conf.default.autoconf=1" >> /etc/sysctl.conf
27 | echo "net.ipv6.conf.vmbr0.autoconf=1" >> /etc/sysctl.conf
28 | ```
29 |
30 | 然后重启 PVE 后即可看到我们的 IPv6 公网地址了:
31 |
32 | ```bash
33 | ip a|grep inet6
34 | ```
35 |
36 | 
37 |
38 | ## PVE 安装 Docker
39 |
40 | 因为 DDNS-GO 是目前比较好用的 DDNS 解析工具,考虑到 PVE 底层就是 Debian,我们使用 Docker 来部署 DDNS-GO 会更加简单方便一点,PVE 安装 Docker 也比较简单方便,使用官方脚本即可一键安装了:
41 |
42 | ```bash
43 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
44 | ```
45 |
46 | ## Docker 安装 DDNS-GO
47 |
48 | 安装好 Docker 的话,使用如下命令即可部署搭建出 DDNS-GO 服务:
49 |
50 | ```bash
51 | docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go
52 | ```
53 |
54 | 默认大家都是有 Docker 基础的,国光简单解释一下几个参数的作用:
55 |
56 | **--restart=always**:表示随 Docker 服务启动就开启自启这容器
57 |
58 | **--net=host** :表示使用 host 网络,即和主机共享 IP,而我们传统的 -p 走的是 bridge 桥接模式,这样就无法获取到公网的 IPv6 地址 (PS:Windows/Mac桌面版的 Docker不支持`--net=host`)
59 |
60 | ## DDNS-GO 的简单使用
61 |
62 | DDNS-GO 的使用非常简单,首先填写我们域名厂商的 AK 和 SK 即可:
63 |
64 | 
65 |
66 | 因为国光的家庭带宽无公网的 IPv4,所以这里只开启 IPv6 地址:
67 |
68 | 1. 一般来说通过网卡获取的 IPv6 地址要准确一点
69 | 2. Domains 直接填写我们想要解析的 IPv6 地址即可,DDNS-GO 会自动带着我们的 AK 和 SK 去控制台帮我们添加解析记录
70 |
71 | 
72 |
73 | 使用 Docker 按照上述教程安装 DDNS-GO 的话,我们的配置文件默认明文保存在:
74 |
75 | ```bash
76 | cat /opt/ddns-go/.ddns_go_config.yaml
77 | ```
78 |
79 | 
80 |
81 | 这样就算配置了密码,忘记了查看一下这个文件即可,同时也要记住不要随便泄露这个文件,毕竟里面带着我们的 AK 和 SK 信息。
82 |
83 | ## DDNS IPv6 解析效果
84 |
85 | DDNS-GO 会在阿里云控制台里面自动添加 AAA IPv6 的解析记录:
86 |
87 | 
88 |
89 | 然后我们就可以在有 IPv6 公网的网络环境随时随地访问我们的 PVE 控制台了:
90 |
91 | 
--------------------------------------------------------------------------------
/docs/8/4.md:
--------------------------------------------------------------------------------
1 | 实际上 Windows 自家的 RDP 已经满足大多数用户使用了,我们还可以继续优化优化,正常敲个代码啥的都绰绰有余了。
2 |
3 | ## 解锁帧数
4 |
5 | Windows 的 RDP 远程桌面默认的 FPS 限制为 30 FPS,这个帧数其实敲代码确实也完全足够了:
6 |
7 | 
8 |
9 |
10 |
11 | 但是高刷显示器用户可能难以接受,好在我们可以通过编辑注册表解锁这个帧数的限制。
12 |
13 | 首先打开注册表编辑器,然后跳转到:
14 |
15 | ```ini
16 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
17 | ```
18 |
19 | 选择「新建」,然后选择「DWORD(32 位)值」:
20 |
21 | 
22 |
23 | 名称为:**DWMFRAMEINTERVAL**,基数选择**十进制**,数值数据填写:**15**
24 |
25 | 
26 |
27 | ??? note "国光小课堂:RDP 其他帧数对应表"
28 |
29 | |十进制| FPS 帧数|
30 | |-|-|
31 | |15|60|
32 | |10|40|
33 | |5|20|
34 | |1|4|
35 |
36 | 一顿操作后 RDP 的帧数已经提高了很多:
37 |
38 | 
39 |
40 | 关于 RDP 优化教程中,除了这个修改注册表开启 60FPS 是全球统一的,后面的优化教程国光测试了一些感觉就是以讹传讹,国光只用数据来说话,毕竟实践是检验真理的唯一标准。
41 |
42 | ## RDP 细节
43 |
44 | 1. macOS 开虚拟机,然后使用 RDP 连接流畅度不如物理机的 Windows 的连接效果
45 | 2. TestUFO 测试帧数并不是 RDP 实际显示的帧数,建议以 RDP 自带的为准
46 | 3. Windows 11 开始, RDP 点击信号图标,然后展开详细信息可以看到连接的具体参数
47 | 4. RDP 优化设计到解码显卡加速的教程,这些优化方法的效果建议自己测试,以实际测试为准
48 |
49 | ## 显卡加速
50 |
51 | 建议有独显的机器配置显卡加速,编辑「**组策略**」依次找到 「计算机配置」 -> 「管理模板」 -> 「Windows 组件」 -> 「远程桌面服务」 -> 「远程桌面会话主机」 -> 「远程会话环境」里面涉及到了几个部分,下面国光来一一测试这部分内容。
52 |
53 | | 操作方法 | 传输协议 | 往返时间 | 平均带宽 | FPS 波动范围 | 平均 FPS |
54 | | :------- | :------: | :------: | :--------: | :----------: | :------: |
55 | | 硬件图形 | UDP | 16ms | 81.82 Mbps | 55~62 FPS | 59 FPS |
56 | | | | | | | |
57 | | | | | | | |
58 | | | | | | | |
59 | | | | | | | |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/docs/9/1.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/docs/9/1.md
--------------------------------------------------------------------------------
/docs/9/2.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/docs/9/2.md
--------------------------------------------------------------------------------
/docs/9/3.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/docs/9/3.md
--------------------------------------------------------------------------------
/docs/9/4.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/docs/9/4.md
--------------------------------------------------------------------------------
/docs/imgs/cover.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/docs/imgs/cover.jpg
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | template: overrides/home.html
3 | title: 主页
4 | ---
5 |
6 |
--------------------------------------------------------------------------------
/mkdocs.yml:
--------------------------------------------------------------------------------
1 | site_name: 国光的 PVE 环境搭建教程
2 | site_url: https://pve.sqlsec.com
3 | site_author: 国光
4 | site_description: "国光的 PVE 环境搭建教程"
5 | repo_name: sqlsec/PVE
6 | repo_url: https://github.com/sqlsec/PVE
7 | copyright: Copyright © 国光
8 | theme:
9 | name: material
10 | custom_dir: overrides
11 | font: false
12 | language: zh
13 | icon:
14 | logo: fontawesome/brands/linux
15 | repo: fontawesome/brands/git-alt
16 | favicon: https://image.3001.net/images/20200922/16007336487809.jpg
17 | features:
18 | - navigation.tabs
19 | - navigation.tabs.sticky
20 | - search.suggest
21 | - search.highlight
22 | - search.share
23 | - content.code.annotate
24 | palette:
25 | # Toggle light mode
26 | - scheme: default
27 | primary: indigo
28 | accent: indigo
29 | toggle:
30 | icon: material/brightness-7
31 | name: 切换深色模式
32 | # Toggle dark mode
33 | - scheme: slate
34 | primary: black
35 | accent: blue
36 | toggle:
37 | icon: material/brightness-4
38 | name: 切换浅色模式
39 | markdown_extensions:
40 | - pymdownx.highlight:
41 | use_pygments: true
42 | auto_title: true
43 | anchor_linenums: true
44 | - admonition
45 | - pymdownx.details
46 | - pymdownx.superfences
47 | - pymdownx.inlinehilite
48 | - pymdownx.snippets
49 | - attr_list
50 | - md_in_html
51 | - pymdownx.tabbed:
52 | alternate_style: true
53 | - def_list
54 | - pymdownx.tasklist:
55 | custom_checkbox: true
56 | - toc:
57 | permalink: true
58 | plugins:
59 | - git-revision-date
60 | - search:
61 | prebuild_index: true
62 | lang:
63 | - en
64 | - ja
65 | - glightbox
66 | edit_uri: edit/main/docs/
67 | extra:
68 | generator: false
69 | social:
70 | - icon: fontawesome/brands/redhat
71 | link: https://www.sqlsec.com
72 | name: 国光
73 | nav:
74 | - "index.md"
75 | - 准备工作:
76 | - 硬件配置: "1/1.md"
77 | - 系统选择: "1/2.md"
78 | - 磁盘划分: "1/3.md"
79 | - 架构规划: "1/4.md"
80 | - PVE 基础:
81 | - BIOS设置: "2/1.md"
82 | - 系统安装: "2/2.md"
83 | - 基础设置: "2/3.md"
84 | - 常用命令: "2/4.md"
85 | - 来宾代理: "2/5.md"
86 | - 华南排错: "2/6.md"
87 | - 网络划分:
88 | - 网络架构: "3/1.md"
89 | - 网络实战: "3/2.md"
90 | - PEV 进阶:
91 | - 添加硬盘: "4/1.md"
92 | - 硬件直通: "4/2.md"
93 | - 配置证书: "4/3.md"
94 | - 硬盘迁移: "4/4.md"
95 | - vGPU教程: "4/5.md"
96 | - 功耗节能: "4/6.md"
97 | - 软路由:
98 | - 基本操作: "5/1.md"
99 | - 硬盘扩容: "5/2.md"
100 | - OpenClash: "5/3.md"
101 | - IPv6 配置: "5/4.md"
102 | - 黑群晖:
103 | - 基本安装: "6/1.md"
104 | - 存储划分: "6/2.md"
105 | - SSD缓存: "6/3.md"
106 | - CPU修正: "6/4.md"
107 | - 直通独显: "6/5.md"
108 | - 远程访问: "6/6.md"
109 | - 添加证书: "6/7.md"
110 | - WebDAV: "6/8.md"
111 | - 安装 alist: "6/9.md"
112 | - 终端美化: "6/10.md"
113 | - Docker与IPv6: "6/11.md"
114 | - 黑苹果:
115 | - 准备工作: "7/1.md"
116 | - 修正配置: "7/2.md"
117 | - 系统安装: "7/3.md"
118 | - 系统优化: "7/4.md"
119 | - 远程穿透:
120 | - NAT类型: "8/1.md"
121 | - ZeroTier: "8/2.md"
122 | - IPv6 DDNS: "8/3.md"
123 | - 远程桌面: "8/4.md"
124 | - IPv6 专题:
125 | - IPv6 基础: "9/1.md"
126 | - IPv6 场景: "9/2.md"
127 | - IPv6 使用: "9/3.md"
128 | - IPv6 普及: "9/4.md"
129 | - IPv6与光猫: "9/5.md"
--------------------------------------------------------------------------------
/overrides/404.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% extends "main.html" %}
5 | {% block content %}
6 |
404 - Not found
7 | {% endblock %}
8 |
--------------------------------------------------------------------------------
/overrides/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/overrides/assets/images/favicon.png
--------------------------------------------------------------------------------
/overrides/assets/javascripts/lunr/min/lunr.hi.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
--------------------------------------------------------------------------------
/overrides/assets/javascripts/lunr/min/lunr.ja.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
--------------------------------------------------------------------------------
/overrides/assets/javascripts/lunr/min/lunr.th.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
--------------------------------------------------------------------------------
/overrides/assets/javascripts/lunr/min/lunr.vi.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
--------------------------------------------------------------------------------
/overrides/assets/javascripts/lunr/min/lunr.zh.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
--------------------------------------------------------------------------------
/overrides/assets/stylesheets/palette.cbb835fc.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"palette.css"}
--------------------------------------------------------------------------------
/overrides/main.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% extends "base.html" %}
5 |
--------------------------------------------------------------------------------
/overrides/mkdocs_theme.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2016-2022 Martin Donath
2 |
3 | # Permission is hereby granted, free of charge, to any person obtaining a copy
4 | # of this software and associated documentation files (the "Software"), to
5 | # deal in the Software without restriction, including without limitation the
6 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | # sell copies of the Software, and to permit persons to whom the Software is
8 | # furnished to do so, subject to the following conditions:
9 |
10 | # The above copyright notice and this permission notice shall be included in
11 | # all copies or substantial portions of the Software.
12 |
13 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
16 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | # IN THE SOFTWARE.
20 |
21 | # Language for theme localization
22 | language: en
23 |
24 | # Text direction (can be ltr or rtl), default: ltr
25 | direction:
26 |
27 | # Feature flags for functionality that alters behavior significantly, and thus
28 | # may be a matter of taste
29 | features: []
30 |
31 | # Sets the primary and accent color palettes as defined in the Material Design
32 | # documentation - possible values can be looked up in the getting started guide
33 | palette:
34 |
35 | # Primary color used for header, sidebar and links, default: indigo
36 | primary:
37 |
38 | # Accent color for highlighting user interaction, default: indigo
39 | accent:
40 |
41 | # Fonts used by Material, automatically loaded from Google Fonts - see the site
42 | # for a list of available fonts
43 | font:
44 |
45 | # Default font for text
46 | text: Roboto
47 |
48 | # Fixed-width font for code listings
49 | code: Roboto Mono
50 |
51 | # From Material 5.x on, icons are inlined into the HTML and CSS as SVGs. Some
52 | # icons that are part of the HTML can be configured and replaced
53 | icon:
54 |
55 | # Favicon to be rendered
56 | favicon: assets/images/favicon.png
57 |
58 | # Material includes the search in the header as a partial, not as a separate
59 | # template, so it's correct that search.html is missing
60 | include_search_page: false
61 |
62 | # Material doesn't use MkDocs search functionality but provides its own. For
63 | # this reason, only the search index needs to be built
64 | search_index_only: true
65 |
66 | # Static pages to build
67 | static_templates:
68 | - 404.html
69 |
--------------------------------------------------------------------------------
/overrides/overrides/assets/stylesheets/main.8a4f01ed.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["src/overrides/assets/stylesheets/main/_typeset.scss","../../../../src/overrides/assets/stylesheets/main.scss","src/assets/stylesheets/utilities/_break.scss","src/overrides/assets/stylesheets/main/layout/_banner.scss","src/overrides/assets/stylesheets/main/layout/_hero.scss","src/overrides/assets/stylesheets/main/layout/_iconsearch.scss","src/overrides/assets/stylesheets/main/layout/_sponsorship.scss"],"names":[],"mappings":"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","file":"main.css"}
--------------------------------------------------------------------------------
/overrides/overrides/blog.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% extends "overrides/main.html" %}
5 | {% block content %}
6 | {{ super() }}
7 |
8 |
9 |
10 | {% endblock %}
11 |
--------------------------------------------------------------------------------
/overrides/overrides/home.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% extends "overrides/main.html" %}
5 | {% block tabs %}
6 | {{ super() }}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Proxmox Virtual Environment
16 |
国光的 PVE 生产环境搭建折腾记录,涉及到硬件选购、显卡直通、软路由以及常见的 Linux 发行版的琐碎细节
17 |
18 | 快速开始
19 |
20 |
21 |
22 |
23 |
24 | {% endblock %}
25 | {% block content %}{% endblock %}
26 | {% block footer %}{% endblock %}
27 |
--------------------------------------------------------------------------------
/overrides/overrides/main.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% extends "base.html" %}
5 | {% block extrahead %}
6 |
7 | {% endblock %}
8 | {% block content %}
9 | {% include "overrides/partials/content.html" %}
10 | {% endblock %}
11 | {% block scripts %}
12 | {{ super() }}
13 |
14 | {% endblock %}
15 |
--------------------------------------------------------------------------------
/overrides/overrides/partials/actions.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if page.edit_url %}
5 | {% set edit = "https://github.com/squidfunk/mkdocs-material/edit" %}
6 | {% set view = "https://raw.githubusercontent.com/squidfunk/mkdocs-material" %}
7 |
8 | {% include ".icons/material/file-edit-outline.svg" %}
9 |
10 |
11 | {% include ".icons/material/file-eye-outline.svg" %}
12 |
13 | {% endif %}
14 |
--------------------------------------------------------------------------------
/overrides/overrides/partials/content.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if "tags" in config.plugins %}
5 | {% include "partials/tags.html" %}
6 | {% endif %}
7 | {% include "overrides/partials/actions.html" %}
8 | {% if not "\x3ch1" in page.content %}
9 | {{ page.title | d(config.site_name, true)}}
10 | {% endif %}
11 | {{ page.content }}
12 | {% if page.meta and (
13 | page.meta.git_revision_date_localized or
14 | page.meta.revision_date
15 | ) %}
16 | {% include "partials/source-file.html" %}
17 | {% endif %}
18 | {% include "partials/feedback.html" %}
19 |
--------------------------------------------------------------------------------
/overrides/partials/actions.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if page.edit_url %}
5 |
6 | {% set icon = config.theme.icon.edit or "material/pencil" %}
7 | {% include ".icons/" ~ icon ~ ".svg" %}
8 |
9 | {% endif %}
10 |
--------------------------------------------------------------------------------
/overrides/partials/comments.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
--------------------------------------------------------------------------------
/overrides/partials/consent.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% set cookies = config.extra.consent.cookies %}
5 | {% if config.extra.analytics and not cookies %}
6 | {% set cookies = { "analytics": "Google Analytics" } %}
7 | {% endif %}
8 | {% set actions = config.extra.consent.actions %}
9 | {% if not actions %}
10 | {% set actions = ["accept", "manage"] %}
11 | {% endif %}
12 | {{ config.extra.consent.title }}
13 | {{ config.extra.consent.description }}
14 |
15 |
37 |
38 | {% for action in actions %}
39 | {% if action == "accept" %}
40 |
41 | {{- lang.t("consent.accept") -}}
42 |
43 | {% endif %}
44 | {% if action == "reject" %}
45 |
46 | {{- lang.t("consent.reject") -}}
47 |
48 | {% endif %}
49 | {% if action == "manage" %}
50 |
51 | {{- lang.t("consent.manage") -}}
52 |
53 | {% endif %}
54 | {% endfor %}
55 |
56 |
--------------------------------------------------------------------------------
/overrides/partials/content.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if "tags" in config.plugins %}
5 | {% include "partials/tags.html" %}
6 | {% endif %}
7 | {% include "partials/actions.html" %}
8 | {% if not "\x3ch1" in page.content %}
9 | {{ page.title | d(config.site_name, true)}}
10 | {% endif %}
11 | {{ page.content }}
12 | {% if page.meta and (
13 | page.meta.git_revision_date_localized or
14 | page.meta.revision_date
15 | ) %}
16 | {% include "partials/source-file.html" %}
17 | {% endif %}
18 | {% include "partials/feedback.html" %}
19 | {% include "partials/comments.html" %}
20 |
--------------------------------------------------------------------------------
/overrides/partials/copyright.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 | {% if config.copyright %}
6 |
7 | {{ config.copyright }}
8 |
9 | {% endif %}
10 | {% if not config.extra.generator == false %}
11 | Made with
12 |
13 | Material for MkDocs
14 |
15 | {% endif %}
16 |
17 |
--------------------------------------------------------------------------------
/overrides/partials/feedback.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if config.extra.analytics %}
5 | {% set feedback = config.extra.analytics.feedback %}
6 | {% endif %}
7 | {% if page.meta and page.meta.hide %}
8 | {% if "feedback" in page.meta.hide %}
9 | {% set feedback = None %}
10 | {% endif %}
11 | {% endif %}
12 | {% if feedback %}
13 |
46 | {% endif %}
47 |
--------------------------------------------------------------------------------
/overrides/partials/footer.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
53 |
--------------------------------------------------------------------------------
/overrides/partials/icons.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if config.theme.icon.admonition %}
5 | {% set style = ["\x3cstyle\x3e:root{"] %}
6 | {% for type, icon in config.theme.icon.admonition.items() %}
7 | {% import ".icons/" ~ icon ~ ".svg" as icon %}
8 | {% set _ = style.append(
9 | "--md-admonition-icon--" ~ type ~ ":" ~
10 | "url('data:image/svg+xml;charset=utf-8," ~
11 | icon | replace("\n", "") ~
12 | "');"
13 | ) %}
14 | {% endfor %}
15 | {% set _ = style.append("}\x3c/style\x3e") %}
16 | {{ style | join }}
17 | {% endif %}
18 | {% if config.theme.icon.tag %}
19 | {% set style = ["\x3cstyle\x3e"] %}
20 | {% for type, icon in config.theme.icon.tag.items() %}
21 | {% import ".icons/" ~ icon ~ ".svg" as icon %}
22 | {% if type != "default" %}
23 | {% set modifier = "--" ~ type %}
24 | {% endif %}
25 | {% set _ = style.append(
26 | ".md-tag-icon" ~ modifier ~ "{" ~
27 | "--md-tag-icon:" ~
28 | "url('data:image/svg+xml;charset=utf-8," ~
29 | icon | replace("\n", "") ~
30 | "');" ~
31 | "}"
32 | ) %}
33 | {% endfor %}
34 | {% set _ = style.append("\x3c/style\x3e") %}
35 | {{ style | join }}
36 | {% endif %}
37 |
--------------------------------------------------------------------------------
/overrides/partials/integrations/analytics.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if config.extra.analytics %}
5 | {% set provider = config.extra.analytics.provider %}
6 | {% endif %}
7 | {% if provider %}
8 | {% include "partials/integrations/analytics/" ~ provider ~ ".html" %}
9 | {% if config.extra.consent %}
10 |
11 | {% else %}
12 |
13 | {% endif %}
14 | {% endif %}
15 |
--------------------------------------------------------------------------------
/overrides/partials/integrations/analytics/google.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if config.extra.analytics %}
5 | {% set property = config.extra.analytics.property | d("", true) %}
6 | {% endif %}
7 | {% if property.startswith("G-") %}
8 |
9 | {% elif property.startswith("UA-") %}
10 |
11 | {% endif %}
12 |
--------------------------------------------------------------------------------
/overrides/partials/javascripts/announce.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
--------------------------------------------------------------------------------
/overrides/partials/javascripts/base.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
--------------------------------------------------------------------------------
/overrides/partials/javascripts/consent.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
--------------------------------------------------------------------------------
/overrides/partials/javascripts/content.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if "content.tabs.link" in features %}
5 |
6 | {% endif %}
7 |
--------------------------------------------------------------------------------
/overrides/partials/javascripts/outdated.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
--------------------------------------------------------------------------------
/overrides/partials/javascripts/palette.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
--------------------------------------------------------------------------------
/overrides/partials/language.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% import "partials/languages/" ~ config.theme.language ~ ".html" as lang %}
5 | {% import "partials/languages/en.html" as fallback %}
6 | {% macro t(key) %}{{ lang.t(key) or fallback.t(key) }}{% endmacro %}
7 |
--------------------------------------------------------------------------------
/overrides/partials/languages/af.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "af",
6 | "clipboard.copy": "Kopieer na knipbord",
7 | "clipboard.copied": "gekopieer na knipbord",
8 | "edit.link.title": "Wysig hierdie bladsy",
9 | "footer.previous": "Vorige",
10 | "footer.next": "Volgende",
11 | "meta.comments": "Kommentaar",
12 | "meta.source": "Bron",
13 | "search.config.lang": "nl",
14 | "search.placeholder": "Soek",
15 | "search.result.placeholder": "Tik om te begin soek",
16 | "search.result.none": "Geen ooreenstemmende dokumente",
17 | "search.result.one": "1 ooreenstemmende dokument",
18 | "search.result.other": "# ooreenstemmende dokumente",
19 | "skip.link.title": "Slaan oor na inhoud",
20 | "source.link.title": "Slaan oor na inhoud",
21 | "source.file.date.updated": "Laaste opdatering",
22 | "source.file.date.created": "Geskep",
23 | "toc.title": "Inhoudsopgawe"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ar.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ar",
6 | "direction": "rtl",
7 | "clipboard.copy": "نسخ إلى الحافظة",
8 | "clipboard.copied": "تم النسخ الى الحافظة",
9 | "edit.link.title": "عدل الصفحة",
10 | "footer.previous": "السابقة",
11 | "footer.next": "التالية",
12 | "meta.comments": "التعليقات",
13 | "meta.source": "المصدر",
14 | "search.config.pipeline": " ",
15 | "search.placeholder": "بحث",
16 | "search.result.placeholder": "اكتب لبدء البحث",
17 | "search.result.none": "لا توجد نتائج",
18 | "search.result.one": "نتائج البحث مستند واحد",
19 | "search.result.other": "نتائج البحث # مستندات",
20 | "skip.link.title": "انتقل إلى المحتوى",
21 | "source.link.title": "اذهب إلى المصدر",
22 | "source.file.date.updated": "اخر تحديث",
23 | "source.file.date.created": "خلقت",
24 | "toc.title": "جدول المحتويات"
25 | }[key] }}{% endmacro %}
26 |
--------------------------------------------------------------------------------
/overrides/partials/languages/bg.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "bg",
6 | "clipboard.copy": "Копирай",
7 | "clipboard.copied": "Копирано",
8 | "edit.link.title": "Редактирай тази страница",
9 | "footer.previous": "Предишна",
10 | "footer.next": "Следваща",
11 | "footer.title": "Долен колонтитул",
12 | "header.title": "Горен колонтитул",
13 | "meta.comments": "Коментари",
14 | "meta.source": "Код",
15 | "nav.title": "Навигация",
16 | "search.config.lang": "ru",
17 | "search.placeholder": "Търси",
18 | "search.reset": "Изчисти",
19 | "search.result.placeholder": "Започнете да пишете, за да търсите",
20 | "search.result.none": "Няма резултати",
21 | "search.result.one": "1 резултат",
22 | "search.result.other": "# резултата",
23 | "search.result.more.one": "още 1 на тази страница",
24 | "search.result.more.other": "още # на тази страница",
25 | "skip.link.title": "Към съдържанието",
26 | "source.link.title": "Към хранилището",
27 | "source.file.date.updated": "Последна промяна",
28 | "source.file.date.created": "Създаден",
29 | "tabs.title": "Табове",
30 | "toc.title": "Съдържание"
31 | }[key] }}{% endmacro %}
32 |
--------------------------------------------------------------------------------
/overrides/partials/languages/bn.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "bn",
6 | "clipboard.copy": "ক্লিপবোর্ডে কপি করুন",
7 | "clipboard.copied": "ক্লিপবোর্ডে কপি হয়েছে",
8 | "edit.link.title": "এই পেজ এডিট করুন",
9 | "footer.previous": "পূর্ববর্তী",
10 | "footer.next": "পরে",
11 | "footer.title": "ফুটার",
12 | "header.title": "হেডার",
13 | "meta.comments": "কমেন্ট",
14 | "meta.source": "সোর্স",
15 | "nav.title": "ন্যাভিগেশন",
16 | "search.config.pipeline": " ",
17 | "search.placeholder": "সার্চ",
18 | "search.reset": "মুছে ফেলুন",
19 | "search.result.placeholder": "সার্চ টাইপ করুন",
20 | "search.result.none": "কিছু পাওয়া যায়নি",
21 | "search.result.one": "১ টা ডকুমেন্ট",
22 | "search.result.other": "# টা ডকুমেন্ট",
23 | "skip.link.title": "কনটেন্টে যান",
24 | "source.link.title": "রিপোজিটরিতে যান",
25 | "source.file.date.updated": "শেষ আপডেট",
26 | "source.file.date.created": "তৈরি হয়েছে",
27 | "tabs.title": "ট্যাব",
28 | "toc.title": "টেবিল অফ কনটেন্ট"
29 | }[key] }}{% endmacro %}
30 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ca.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ca",
6 | "clipboard.copy": "Còpia al porta-retalls",
7 | "clipboard.copied": "Copiat al porta-retalls",
8 | "edit.link.title": "Edita aquesta pàgina",
9 | "footer.previous": "Anterior",
10 | "footer.next": "Següent",
11 | "meta.comments": "Comentaris",
12 | "meta.source": "Codi font",
13 | "search.placeholder": "Cerca",
14 | "search.result.placeholder": "Escriu per a començar a cercar",
15 | "search.result.none": "Cap document coincideix",
16 | "search.result.one": "1 document coincident",
17 | "search.result.other": "# documents coincidents",
18 | "skip.link.title": "Salta el contingut",
19 | "source.link.title": "Ves al repositori",
20 | "source.file.date.updated": "Darrera actualització",
21 | "source.file.date.created": "Creada",
22 | "toc.title": "Taula de continguts"
23 | }[key] }}{% endmacro %}
24 |
--------------------------------------------------------------------------------
/overrides/partials/languages/cs.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "cs",
6 | "clipboard.copy": "Kopírovat do schránky",
7 | "clipboard.copied": "Zkopírováno do schránky",
8 | "edit.link.title": "Upravit tuto stránku",
9 | "footer.previous": "Předchozí",
10 | "footer.next": "Další",
11 | "meta.comments": "Komentáře",
12 | "meta.source": "Zdroj",
13 | "search.placeholder": "Hledat",
14 | "search.result.placeholder": "Pište co se má vyhledat",
15 | "search.result.none": "Nenalezeny žádné dokumenty",
16 | "search.result.one": "Nalezený dokument: 1",
17 | "search.result.other": "Nalezené dokumenty: #",
18 | "skip.link.title": "Přeskočit obsah",
19 | "source.link.title": "Přejít do repozitáře",
20 | "source.file.date.updated": "Poslední aktualizace",
21 | "source.file.date.created": "Vytvořeno",
22 | "toc.title": "Obsah"
23 | }[key] }}{% endmacro %}
24 |
--------------------------------------------------------------------------------
/overrides/partials/languages/da.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "da",
6 | "clipboard.copy": "Kopiér til udklipsholderen",
7 | "clipboard.copied": "Kopieret til udklipsholderen",
8 | "edit.link.title": "Redigér denne side",
9 | "footer.previous": "Forrige",
10 | "footer.next": "Næste",
11 | "meta.comments": "Kommentarer",
12 | "meta.source": "Kilde",
13 | "search.config.lang": "da",
14 | "search.placeholder": "Søg",
15 | "search.result.placeholder": "Indtast søgeord",
16 | "search.result.none": "Ingen resultater fundet",
17 | "search.result.one": "1 resultat",
18 | "search.result.other": "# resultater",
19 | "skip.link.title": "Gå til indholdet",
20 | "source.link.title": "Åbn arkiv",
21 | "source.file.date.updated": "Sidste ændring",
22 | "source.file.date.created": "Oprettet",
23 | "toc.title": "Indholdsfortegnelse"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/de.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "de",
6 | "announce.dismiss": "Nicht mehr anzeigen",
7 | "clipboard.copy": "In Zwischenablage kopieren",
8 | "clipboard.copied": "In Zwischenablage kopiert",
9 | "consent.accept": "Akzeptieren",
10 | "consent.manage": "Einstellungen",
11 | "consent.reject": "Ablehnen",
12 | "edit.link.title": "Seite editieren",
13 | "footer.previous": "Zurück",
14 | "footer.next": "Weiter",
15 | "footer.title": "Fußzeile",
16 | "header.title": "Kopfzeile",
17 | "meta.comments": "Kommentare",
18 | "meta.source": "Quellcode",
19 | "nav.title": "Navigation",
20 | "search.config.lang": "de",
21 | "search.placeholder": "Suche",
22 | "search.share": "Teilen",
23 | "search.reset": "Zurücksetzen",
24 | "search.result.initializer": "Suche wird initialisiert",
25 | "search.result.placeholder": "Suchbegriff eingeben",
26 | "search.result.none": "Keine Suchergebnisse",
27 | "search.result.one": "1 Suchergebnis",
28 | "search.result.other": "# Suchergebnisse",
29 | "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite",
30 | "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite",
31 | "search.result.term.missing": "Es fehlt",
32 | "search.title": "Suche",
33 | "select.language.title": "Sprache wechseln",
34 | "select.version.title": "Version auswählen",
35 | "skip.link.title": "Zum Inhalt",
36 | "source.link.title": "Zum Repository",
37 | "source.file.date.updated": "Letztes Update",
38 | "source.file.date.created": "Erstellt",
39 | "tabs.title": "Hauptnavigation",
40 | "toc.title": "Inhaltsverzeichnis",
41 | "top.title": "Zurück zum Seitenanfang"
42 | }[key] }}{% endmacro %}
43 |
--------------------------------------------------------------------------------
/overrides/partials/languages/el.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "el",
6 | "clipboard.copy": "Αντιγραφή στο πρόχειρο",
7 | "clipboard.copied": "Αντιγράφηκε στο πρόχειρο",
8 | "edit.link.title": "Επεξεργασία αυτής της σελίδας",
9 | "footer.previous": "Προηγούμενο",
10 | "footer.next": "Επόμενο",
11 | "footer.title": "Υποσέλιδο",
12 | "header.title": "Κεφαλίδα",
13 | "meta.comments": "Σχόλια",
14 | "meta.source": "Πηγή",
15 | "nav.title": "Πλοήγηση",
16 | "search.config.pipeline": "stopWordFilter",
17 | "search.placeholder": "Αναζήτηση",
18 | "search.share": "Διαμοίραση",
19 | "search.reset": "Καθαρισμός",
20 | "search.result.initializer": "Αρχικοποίηση αναζήτησης",
21 | "search.result.placeholder": "Πληκτρολογήστε για να αρχίσει η αναζήτηση",
22 | "search.result.none": "Δεν βρέθηκαν αντίστοιχα αρχεία",
23 | "search.result.one": "1 έγγραφο ταιριάζει",
24 | "search.result.other": "# έγγραφα ταιριάζουν",
25 | "search.result.more.one": "1 ακόμα σε αυτήν τη σελίδα",
26 | "search.result.more.other": "# ακόμα σε αυτήν τη σελίδα",
27 | "search.result.term.missing": "Λείπει",
28 | "search.title": "Αναζήτηση",
29 | "select.language.title": "Επιλογή γλώσσας",
30 | "select.version.title": "Επιλογή έκδοσης",
31 | "skip.link.title": "Μετάβαση στο περιεχόμενο",
32 | "source.link.title": "Μετάβαση στο αποθετήριο",
33 | "source.file.date.updated": "τελευταία ενημέρωση",
34 | "source.file.date.created": "Δημιουργήθηκε",
35 | "tabs.title": "Καρτέλες",
36 | "toc.title": "Πίνακας περιεχομένων",
37 | "top.title": "Επιστροφή στην αρχή"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/en.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "en",
6 | "direction": "ltr",
7 | "announce.dismiss": "Don't show this again",
8 | "clipboard.copy": "Copy to clipboard",
9 | "clipboard.copied": "Copied to clipboard",
10 | "consent.accept": "Accept",
11 | "consent.manage": "Manage settings",
12 | "consent.reject": "Reject",
13 | "edit.link.title": "Edit this page",
14 | "footer.previous": "Previous",
15 | "footer.next": "Next",
16 | "footer.title": "Footer",
17 | "header.title": "Header",
18 | "meta.comments": "Comments",
19 | "meta.source": "Source",
20 | "nav.title": "Navigation",
21 | "search.config.lang": "en",
22 | "search.config.pipeline": "trimmer, stopWordFilter",
23 | "search.config.separator": "[\\s\\-]+",
24 | "search.placeholder": "Search",
25 | "search.share": "Share",
26 | "search.reset": "Clear",
27 | "search.result.initializer": "Initializing search",
28 | "search.result.placeholder": "Type to start searching",
29 | "search.result.none": "No matching documents",
30 | "search.result.one": "1 matching document",
31 | "search.result.other": "# matching documents",
32 | "search.result.more.one": "1 more on this page",
33 | "search.result.more.other": "# more on this page",
34 | "search.result.term.missing": "Missing",
35 | "search.title": "Search",
36 | "select.language.title": "Select language",
37 | "select.version.title": "Select version",
38 | "skip.link.title": "Skip to content",
39 | "source.link.title": "Go to repository",
40 | "source.file.date.updated": "Last update",
41 | "source.file.date.created": "Created",
42 | "tabs.title": "Tabs",
43 | "toc.title": "Table of contents",
44 | "top.title": "Back to top"
45 | }[key] }}{% endmacro %}
46 |
--------------------------------------------------------------------------------
/overrides/partials/languages/eo.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "eo",
6 | "clipboard.copy": "Kopii al tondujo",
7 | "clipboard.copied": "Kopiado al klipo",
8 | "edit.link.title": "Redakti ĉi tiun paĝon",
9 | "footer.previous": "Antaŭa",
10 | "footer.next": "Sekva",
11 | "footer.title": "Piedlinio",
12 | "header.title": "Kaplinio",
13 | "meta.comments": "Komentoj",
14 | "meta.source": "Fontkodo",
15 | "nav.title": "Navigado",
16 | "search.config.lang": "es",
17 | "search.placeholder": "Serĉo",
18 | "search.reset": "Klara",
19 | "search.result.placeholder": "Tajpu por komenci serĉadon",
20 | "search.result.none": "Neniuj kongruaj dokumentoj",
21 | "search.result.one": "1 kongrua dokumento",
22 | "search.result.other": "# kongruaj dokumentoj",
23 | "skip.link.title": "Saltu al enhavo",
24 | "source.link.title": "Iru al deponejo",
25 | "source.file.date.updated": "Lasta ĝisdatigo",
26 | "source.file.date.created": "Kreita",
27 | "tabs.title": "Langetoj",
28 | "toc.title": "Enhavtabelo"
29 | }[key] }}{% endmacro %}
30 |
--------------------------------------------------------------------------------
/overrides/partials/languages/es.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "es",
6 | "clipboard.copy": "Copiar al portapapeles",
7 | "clipboard.copied": "Copiado al portapapeles",
8 | "consent.accept": "Aceptar",
9 | "consent.manage": "Gestionar cookies",
10 | "edit.link.title": "Editar esta página",
11 | "footer.previous": "Anterior",
12 | "footer.next": "Siguiente",
13 | "footer.title": "Pie",
14 | "header.title": "Cabecera",
15 | "meta.comments": "Comentarios",
16 | "meta.source": "Fuente",
17 | "nav.title": "Navegación",
18 | "search.config.lang": "es",
19 | "search.placeholder": "Búsqueda",
20 | "search.reset": "Limpiar",
21 | "search.result.initializer": "Inicializando búsqueda",
22 | "search.result.placeholder": "Teclee para comenzar búsqueda",
23 | "search.result.none": "No se encontraron documentos",
24 | "search.result.one": "1 documento encontrado",
25 | "search.result.other": "# documentos encontrados",
26 | "search.result.more.one": "1 más en esta página",
27 | "search.result.more.other": "# más en esta página",
28 | "search.result.term.missing": "Falta",
29 | "select.language.title": "Seleccionar idioma",
30 | "select.version.title": "Seleccionar versión",
31 | "skip.link.title": "Saltar a contenido",
32 | "source.link.title": "Ir al repositorio",
33 | "source.file.date.updated": "Última actualización",
34 | "source.file.date.created": "Creado",
35 | "tabs.title": "Pestañas",
36 | "toc.title": "Tabla de contenidos",
37 | "top.title": "Volver al principio"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/et.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "et",
6 | "clipboard.copy": "Kopeeri lõikelauale",
7 | "clipboard.copied": "Kopeeritud",
8 | "edit.link.title": "Muuda seda lehte",
9 | "footer.previous": "Eelmine",
10 | "footer.next": "Järgmine",
11 | "meta.comments": "Kommentaarid",
12 | "meta.source": "Lähtekood",
13 | "search.placeholder": "Otsi",
14 | "search.result.placeholder": "Otsimiseks kirjuta siia",
15 | "search.result.none": "Otsingule ei leitud ühtegi vastet",
16 | "search.result.one": "Leiti üks tulemus",
17 | "search.result.other": "Leiti # tulemust",
18 | "skip.link.title": "Keri sisuni",
19 | "source.link.title": "Ava repositooriumis",
20 | "source.file.date.updated": "Viimane uuendus",
21 | "source.file.date.created": "Loodud",
22 | "toc.title": "Sisukord"
23 | }[key] }}{% endmacro %}
24 |
--------------------------------------------------------------------------------
/overrides/partials/languages/fa.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "fa",
6 | "direction": "rtl",
7 | "clipboard.copy": "کپی کردن",
8 | "clipboard.copied": "کپی شد",
9 | "edit.link.title": "این صفحه را ویرایش کنید",
10 | "footer.previous": "قبلی",
11 | "footer.next": "بعدی",
12 | "meta.comments": "نظرات",
13 | "meta.source": "منبع",
14 | "search.config.pipeline": " ",
15 | "search.placeholder": "جستجو",
16 | "search.result.placeholder": "برای شروع جستجو تایپ کنید",
17 | "search.result.none": "سندی یافت نشد",
18 | "search.result.one": "1 سند یافت شد",
19 | "search.result.other": "# سند یافت شد",
20 | "skip.link.title": "پرش به محتویات",
21 | "source.link.title": "رفتن به مخزن",
22 | "source.file.date.updated": "اخرین بروزرسانی",
23 | "source.file.date.created": "ایجاد شده",
24 | "toc.title": "فهرست موضوعات"
25 | }[key] }}{% endmacro %}
26 |
--------------------------------------------------------------------------------
/overrides/partials/languages/fi.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "fi",
6 | "clipboard.copy": "Kopioi leikepöydälle",
7 | "clipboard.copied": "Kopioitu leikepöydälle",
8 | "edit.link.title": "Muokkaa tätä sivua",
9 | "footer.previous": "Edellinen",
10 | "footer.next": "Seuraava",
11 | "meta.comments": "Kommentit",
12 | "meta.source": "Lähdekodi",
13 | "search.config.lang": "fi",
14 | "search.placeholder": "Hae",
15 | "search.result.placeholder": "Kirjoita aloittaaksesi haun",
16 | "search.result.none": "Ei täsmääviä dokumentteja",
17 | "search.result.one": "1 täsmäävä dokumentti",
18 | "search.result.other": "# täsmäävää dokumenttia",
19 | "skip.link.title": "Hyppää sisältöön",
20 | "source.link.title": "Mene repositoryyn",
21 | "source.file.date.updated": "Viimeisin päivitys",
22 | "source.file.date.created": "Luotu",
23 | "toc.title": "Sisällysluettelo"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/fr.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "fr",
6 | "clipboard.copy": "Copier dans le presse-papier",
7 | "clipboard.copied": "Copié dans le presse-papier",
8 | "consent.accept": "Accepter",
9 | "consent.manage": "Paramétrer vos choix",
10 | "consent.reject": "Refuser",
11 | "edit.link.title": "Editer cette page",
12 | "footer.previous": "Précédent",
13 | "footer.next": "Suivant",
14 | "footer.title": "Pied de page",
15 | "header.title": "En-tête",
16 | "meta.comments": "Commentaires",
17 | "meta.source": "Source",
18 | "nav.title": "Navigation",
19 | "search.config.lang": "fr",
20 | "search.placeholder": "Rechercher",
21 | "search.reset": "Effacer",
22 | "search.result.initializer": "Initialisation de la recherche",
23 | "search.result.placeholder": "Taper pour démarrer la recherche",
24 | "search.result.none": "Aucun document trouvé",
25 | "search.result.one": "1 document trouvé",
26 | "search.result.other": "# documents trouvés",
27 | "search.result.more.one": "1 de plus sur cette page",
28 | "search.result.more.other": "# de plus sur cette page",
29 | "search.result.term.missing": "Non trouvé",
30 | "select.language.title": "Sélectionner la langue",
31 | "select.version.title": "Sélectionner la version",
32 | "skip.link.title": "Aller au contenu",
33 | "source.link.title": "Aller au dépôt",
34 | "source.file.date.updated": "Dernière mise à jour",
35 | "source.file.date.created": "Créé",
36 | "tabs.title": "Onglets",
37 | "toc.title": "Table des matières",
38 | "top.title": "Retour en haut de la page"
39 | }[key] }}{% endmacro %}
40 |
--------------------------------------------------------------------------------
/overrides/partials/languages/gl.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "gl",
6 | "clipboard.copy": "Copiar no cortapapeis",
7 | "clipboard.copied": "Copiado no cortapapeis",
8 | "edit.link.title": "Editar esta páxina",
9 | "footer.previous": "Anterior",
10 | "footer.next": "Seguinte",
11 | "footer.title": "Pé",
12 | "header.title": "Cabeceira",
13 | "meta.comments": "Comentarios",
14 | "meta.source": "Fonte",
15 | "nav.title": "Navegación",
16 | "search.config.lang": "es",
17 | "search.placeholder": "Procura",
18 | "search.reset": "Limpar",
19 | "search.result.initializer": "Inicializando procura",
20 | "search.result.placeholder": "Insira un termo",
21 | "search.result.none": "Sen resultados",
22 | "search.result.one": "1 resultado atopado",
23 | "search.result.other": "# resultados atopados",
24 | "search.result.more.one": "1 máis nesta páxina",
25 | "search.result.more.other": "# máis nesta páxina",
26 | "search.result.term.missing": "Falta",
27 | "select.language.title": "Seleccionar idioma",
28 | "select.version.title": "Seleccionar version",
29 | "skip.link.title": "Ir ao contido",
30 | "source.link.title": "Ir ao repositorio",
31 | "source.file.date.updated": "Última actualización",
32 | "source.file.date.created": "Creada",
33 | "tabs.title": "Pestanas",
34 | "toc.title": "Táboa de contidos",
35 | "top.title": "Volver ao principio"
36 | }[key] }}{% endmacro %}
37 |
--------------------------------------------------------------------------------
/overrides/partials/languages/he.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "he",
6 | "direction": "rtl",
7 | "announce.dismiss": "לא להציג את זה שוב",
8 | "clipboard.copy": "העתקה ללוח",
9 | "clipboard.copied": "הועתק ללוח",
10 | "consent.accept": "לקבל",
11 | "consent.manage": "לנהל הגדרות",
12 | "consent.reject": "לדחות",
13 | "edit.link.title": "עריכת הדף הזה",
14 | "footer.previous": "הקודם",
15 | "footer.next": "הבא",
16 | "footer.title": "כותרת תחתונה",
17 | "header.title": "כותרת עליונה",
18 | "meta.comments": "הערות",
19 | "meta.source": "מקור",
20 | "nav.title": "ניווט",
21 | "search.config.pipeline": " ",
22 | "search.placeholder": "חיפוש",
23 | "search.share": "שיתוף",
24 | "search.reset": "ניקוי",
25 | "search.result.initializer": "אתחול חיפוש",
26 | "search.result.placeholder": "יש להקליד כדי להתחיל לחפש",
27 | "search.result.none": "אין מסמכים תואמים",
28 | "search.result.one": "1 מסמך תואם",
29 | "search.result.other": "# מסמך תואם",
30 | "search.result.more.one": "עוד אחד בדף הזה",
31 | "search.result.more.other": "עוד # בדף הזה",
32 | "search.result.term.missing": "חסר",
33 | "search.title": "חיפוש",
34 | "select.language.title": "בחירת שפה",
35 | "select.version.title": "בחירת גרסה",
36 | "skip.link.title": "לדלג לתוכן",
37 | "source.link.title": "לעבור אל המאגר",
38 | "source.file.date.updated": "עדכון אחרון",
39 | "source.file.date.created": "נוצר",
40 | "tabs.title": "לשוניות",
41 | "toc.title": "תוכן העניינים",
42 | "top.title": "חזרה למעלה"
43 | }[key] }}{% endmacro %}
44 |
--------------------------------------------------------------------------------
/overrides/partials/languages/hi.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "hi",
6 | "clipboard.copy": "क्लिपबोर्ड पर कॉपी करें",
7 | "clipboard.copied": "क्लिपबोर्ड पर कॉपी कर दिया गया",
8 | "edit.link.title": "इस पृष्ठ को संपादित करें",
9 | "footer.previous": "पिछला",
10 | "footer.next": "आगामी",
11 | "meta.comments": "टिप्पणियाँ",
12 | "meta.source": "स्रोत",
13 | "search.config.lang": "hi",
14 | "search.placeholder": "खोज",
15 | "search.result.placeholder": "खोज शुरू करने के लिए टाइप करें",
16 | "search.result.none": "कोई मिलान डॉक्यूमेंट नहीं",
17 | "search.result.one": "1 मिलान डॉक्यूमेंट",
18 | "search.result.other": "# मिलान डाक्यूमेंट्स",
19 | "skip.link.title": "विषय पर बढ़ें",
20 | "source.link.title": "रिपॉजिटरी पर जाएं",
21 | "source.file.date.updated": "आखिरी अपडेट",
22 | "source.file.date.created": "बनाया था",
23 | "toc.title": "विषय - सूची"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/hr.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "hr",
6 | "announce.dismiss": "Ne prikazuj ovo opet",
7 | "clipboard.copy": "Kopirajte u međuspremnik",
8 | "clipboard.copied": "Kopirano u međuspremnik",
9 | "consent.accept": "Prihvati",
10 | "consent.manage": "Upravljaj postavkama",
11 | "consent.reject": "Odbij",
12 | "edit.link.title": "Uredi stranicu",
13 | "footer.previous": "Prethodno",
14 | "footer.next": "Sljedeće",
15 | "footer.title": "Podnožje",
16 | "header.title": "Zaglavlje",
17 | "meta.comments": "Komentari",
18 | "meta.source": "Izvor",
19 | "nav.title": "Navigacija",
20 | "search.placeholder": "Pretraživanje",
21 | "search.share": "Podijeli",
22 | "search.reset": "Očisti",
23 | "search.result.initializer": "Inicijaliziranje pretraživanja",
24 | "search.result.placeholder": "Unesite pojam pretraživanja",
25 | "search.result.none": "Ništa nije pronađeno",
26 | "search.result.one": "1 rezultat pretraživanja",
27 | "search.result.other": "# rezultata pretraživanja",
28 | "search.result.more.one": "1 rezultat na ovoj stranici",
29 | "search.result.more.other": "# rezultata na ovoj stranici",
30 | "search.result.term.missing": "Nedostaje",
31 | "search.title": "Pretraživanje",
32 | "select.language.title": "Odabir jezika",
33 | "select.version.title": "Odabir verzije",
34 | "skip.link.title": "Preskočite na sadržaj",
35 | "source.link.title": "Idite u repozitorij",
36 | "source.file.date.updated": "Zadnje ažuriranje",
37 | "source.file.date.created": "Stvoreno",
38 | "tabs.title": "Kartice",
39 | "toc.title": "Sadržaj",
40 | "top.title": "Vratite se na vrh"
41 | }[key] }}{% endmacro %}
42 |
--------------------------------------------------------------------------------
/overrides/partials/languages/hu.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "hu",
6 | "clipboard.copy": "Másolás vágólapra",
7 | "clipboard.copied": "Vágólapra másolva",
8 | "edit.link.title": "Oldal szerkesztése",
9 | "footer.previous": "Előző",
10 | "footer.next": "Következő",
11 | "footer.title": "Élőláb",
12 | "header.title": "Élőfej",
13 | "meta.comments": "Hozzászólások",
14 | "meta.source": "Forrás",
15 | "nav.title": "Navigáció",
16 | "search.config.lang": "hu",
17 | "search.placeholder": "Keresés",
18 | "search.reset": "Törlés",
19 | "search.result.initializer": "Keresés inicializálása",
20 | "search.result.placeholder": "Kereséshez írj ide valamit",
21 | "search.result.none": "Nincs találat",
22 | "search.result.one": "1 egyező dokumentum",
23 | "search.result.other": "# egyező dokumentum",
24 | "search.result.more.one": "1 további találat az oldalon",
25 | "search.result.more.other": "# további találat az oldalon",
26 | "search.result.term.missing": "Üres",
27 | "skip.link.title": "Kihagyás",
28 | "source.link.title": "Főoldalra ugrás",
29 | "source.file.date.updated": "Utolsó frissítés",
30 | "source.file.date.created": "Létrehozva",
31 | "tabs.title": "Lapok",
32 | "toc.title": "Tartalomjegyzék"
33 | }[key] }}{% endmacro %}
34 |
--------------------------------------------------------------------------------
/overrides/partials/languages/hy.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "hy",
6 | "clipboard.copy": "Պատճենել",
7 | "clipboard.copied": "Պատճենված է",
8 | "edit.link.title": "Խմբագրել այս էջը",
9 | "footer.previous": "Նախորդը",
10 | "footer.next": "Հաջորդը",
11 | "footer.title": "Վերջնագիր",
12 | "header.title": "Գլխագիր",
13 | "meta.comments": "Մեկնաբանությունները",
14 | "meta.source": "Աղբյուր",
15 | "nav.title": "Տեղորոշում",
16 | "search.config.pipeline": " ",
17 | "search.placeholder": "Փնտրել",
18 | "search.share": "Կիսվել",
19 | "search.reset": "Ջնջել",
20 | "search.result.initializer": "Փնտրում",
21 | "search.result.placeholder": "Մուտքագրեք փնտրելու համար",
22 | "search.result.none": "Համապատասխանություններ չկան",
23 | "search.result.one": "1 համապատասխանություն",
24 | "search.result.other": "# համապատասխանություններ",
25 | "search.result.more.one": "ևս 1-ը այս էջում",
26 | "search.result.more.other": "ևս #-ը այս էջում",
27 | "search.result.term.missing": "Բացակայում է",
28 | "search.title": "Փնտրում",
29 | "select.language.title": "Ընտրել լեզուն",
30 | "select.version.title": "Ընտրել տարբերակը",
31 | "skip.link.title": "Անցնել պարունակությանը",
32 | "source.link.title": "Դեպի պահոց",
33 | "source.file.date.updated": "Վերջին թարմացումը",
34 | "source.file.date.created": "Ստեղծված է",
35 | "tabs.title": "Ներդիրներ",
36 | "toc.title": "Բովանդակություն",
37 | "top.title": "Վերադառնալ սկիզբ"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/id.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "id",
6 | "clipboard.copy": "Salin ke memori",
7 | "clipboard.copied": "Tersalin ke memori",
8 | "edit.link.title": "Ubah halaman ini",
9 | "footer.previous": "Sebelumnya",
10 | "footer.next": "Selanjutnya",
11 | "meta.comments": "Komentar",
12 | "meta.source": "Sumber",
13 | "search.config.pipeline": " ",
14 | "search.placeholder": "Cari",
15 | "search.result.placeholder": "Ketik untuk mulai pencarian",
16 | "search.result.none": "Tidak ada dokumen yang sesuai",
17 | "search.result.one": "1 dokumen ditemukan",
18 | "search.result.other": "# dokumen ditemukan",
19 | "skip.link.title": "Lewati ke isi",
20 | "source.link.title": "Menuju repositori",
21 | "source.file.date.created": "Dibuat",
22 | "toc.title": "Daftar isi"
23 | }[key] }}{% endmacro %}
24 |
--------------------------------------------------------------------------------
/overrides/partials/languages/is.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "is",
6 | "clipboard.copy": "Afrita í klemmuspjald",
7 | "clipboard.copied": "Afritað í klemmuspjald",
8 | "edit.link.title": "Ritvinna þessa síðu",
9 | "footer.previous": "Fyrra",
10 | "footer.next": "Næsta",
11 | "footer.title": "Síðufótur",
12 | "header.title": "Haus",
13 | "meta.comments": "Athugasemdir",
14 | "meta.source": "Grunnur",
15 | "nav.title": "Valmynd",
16 | "search.placeholder": "Leit",
17 | "search.reset": "Hreinsa",
18 | "search.result.placeholder": "Sláðu inn til að hefja leit",
19 | "search.result.none": "Engin skjöl fundust",
20 | "search.result.one": "1 skjal fannst",
21 | "search.result.other": "# skjöl fundust",
22 | "search.result.more.one": "1 til viðbótar á þessari síðu",
23 | "search.result.more.other": "# til viðbótar á þessari síðu",
24 | "skip.link.title": "Hoppa yfir í efni",
25 | "source.link.title": "Fara í gagnahirslu (e. repository)",
26 | "source.file.date.updated": "Síðasta uppfærsla",
27 | "source.file.date.created": "Búið til",
28 | "tabs.title": "Flipar",
29 | "toc.title": "Efnisyfirlit"
30 | }[key] }}{% endmacro %}
31 |
--------------------------------------------------------------------------------
/overrides/partials/languages/it.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "it",
6 | "clipboard.copy": "Copia",
7 | "clipboard.copied": "Copiato",
8 | "edit.link.title": "Modifica",
9 | "footer.previous": "Precedente",
10 | "footer.next": "Prossimo",
11 | "footer.title": "Piede",
12 | "header.title": "Intestazione",
13 | "meta.comments": "Commenti",
14 | "meta.source": "Sorgente",
15 | "nav.title": "Navigazione",
16 | "search.config.lang": "it",
17 | "search.placeholder": "Cerca",
18 | "search.share": "Condividi",
19 | "search.reset": "Cancella",
20 | "search.result.initializer": "Inizializza la ricerca",
21 | "search.result.placeholder": "Scrivi per iniziare a cercare",
22 | "search.result.none": "Nessun documento trovato",
23 | "search.result.one": "1 documento trovato",
24 | "search.result.other": "# documenti trovati",
25 | "search.result.more.one": "1 altro in questa pagina",
26 | "search.result.more.other": "# altri in questa pagina",
27 | "search.result.term.missing": "Non presente",
28 | "search.title": "Cerca",
29 | "select.language.title": "Seleziona la lingua",
30 | "select.version.title": "Seleziona la versione",
31 | "skip.link.title": "Vai al contenuto",
32 | "source.link.title": "Apri repository",
33 | "source.file.date.updated": "Ultimo aggiornamento",
34 | "source.file.date.created": "Creata",
35 | "tabs.title": "Tabs",
36 | "toc.title": "Indice",
37 | "top.title": "Torna su"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ja.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ja",
6 | "clipboard.copy": "クリップボードへコピー",
7 | "clipboard.copied": "コピーしました",
8 | "edit.link.title": "編集",
9 | "footer.previous": "前",
10 | "footer.next": "次",
11 | "footer.title": "フッター",
12 | "header.title": "ヘッダー",
13 | "meta.comments": "コメント",
14 | "meta.source": "ソース",
15 | "nav.title": "ナビゲーション",
16 | "search.config.lang": "ja",
17 | "search.config.pipeline": "trimmer, stemmer",
18 | "search.config.separator": "[\\s\\- 、。,.]+",
19 | "search.placeholder": "検索",
20 | "search.reset": "クリア",
21 | "search.result.initializer": "検索を初期化",
22 | "search.result.placeholder": "検索キーワードを入力してください",
23 | "search.result.none": "何も見つかりませんでした",
24 | "search.result.one": "1件見つかりました",
25 | "search.result.other": "#件見つかりました",
26 | "search.result.more.one": "このページ内にもう1件見つかりました",
27 | "search.result.more.other": "このページ内にあと#件見つかりました",
28 | "search.result.term.missing": "検索に含まれない",
29 | "skip.link.title": "コンテンツにスキップ",
30 | "source.link.title": "リポジトリへ",
31 | "source.file.date.updated": "最終更新日",
32 | "source.file.date.created": "作成した",
33 | "tabs.title": "タブ",
34 | "toc.title": "目次"
35 | }[key] }}{% endmacro %}
36 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ka.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ka",
6 | "clipboard.copy": "კოპირება",
7 | "clipboard.copied": "კოპირებულია",
8 | "edit.link.title": "გვერდის რედარქირება",
9 | "footer.previous": "წინა",
10 | "footer.next": "შემდეგი",
11 | "meta.comments": "კომენტარები",
12 | "meta.source": "წყარო",
13 | "nav.title": "ნავიგაცია",
14 | "search.config.pipeline": " ",
15 | "search.placeholder": "ძებნა",
16 | "search.reset": "გასუფთავება",
17 | "search.result.placeholder": "ჩაწერე ძებნის დასაწყებად",
18 | "search.result.none": "დოკუმენტი ვერ მოიძებნა",
19 | "search.result.one": "მოიძებნა 1 დოკუმენტი",
20 | "search.result.other": "მოიძებნა # დოკუმენტი",
21 | "search.result.more.one": "კიდევ 1 ამ გვერდზე",
22 | "search.result.more.other": "კიდევ # ამ გვერდზე",
23 | "skip.link.title": "კონტენტზე გადასვლა",
24 | "source.link.title": "საცავში გადასვლა",
25 | "source.file.date.updated": "ბოლო განახლება",
26 | "source.file.date.created": "შეიქმნა",
27 | "tabs.title": "ტაბები",
28 | "toc.title": "სარჩევი"
29 | }[key] }}{% endmacro %}
30 |
--------------------------------------------------------------------------------
/overrides/partials/languages/kr.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "kr",
6 | "clipboard.copy": "클립보드로 복사",
7 | "clipboard.copied": "클립보드에 복사됨",
8 | "edit.link.title": "이 페이지를 편집",
9 | "footer.previous": "이전",
10 | "footer.next": "다음",
11 | "meta.comments": "댓글",
12 | "meta.source": "출처",
13 | "search.config.pipeline": " ",
14 | "search.placeholder": "검색",
15 | "search.share": "공유",
16 | "search.reset": "지우기",
17 | "search.result.initializer": "검색 초기화",
18 | "search.result.placeholder": "검색어를 입력하세요",
19 | "search.result.none": "검색어와 일치하는 문서가 없습니다",
20 | "search.result.one": "1개의 일치하는 문서",
21 | "search.result.other": "#개의 일치하는 문서",
22 | "search.result.more.one": "이 문서에서 1개의 검색 결과 더 보기",
23 | "search.result.more.other": "이 문서에서 #개의 검색 결과 더 보기",
24 | "search.result.term.missing": "포함되지 않은 검색어",
25 | "search.title": "검색",
26 | "select.language.title": "언어설정",
27 | "select.version.title": "버전 선택",
28 | "skip.link.title": "콘텐츠로 이동",
29 | "source.link.title": "저장소로 이동",
30 | "source.file.date.updated": "마지막 업데이트",
31 | "source.file.date.created": "작성일",
32 | "toc.title": "목차",
33 | "top.title": "맨위로"
34 | }[key] }}{% endmacro %}
35 |
--------------------------------------------------------------------------------
/overrides/partials/languages/lt.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "lt",
6 | "clipboard.copy": "Kopijuoti į iškarpinę",
7 | "clipboard.copied": "Nukopijuota į iškarpinę",
8 | "edit.link.title": "Redaguoti šį puslapį",
9 | "footer.previous": "Ankstesnis",
10 | "footer.next": "Sekantis",
11 | "footer.title": "Poraštė",
12 | "header.title": "Antraštė",
13 | "meta.comments": "Komentarai",
14 | "meta.source": "Išeitinis kodas",
15 | "nav.title": "Navigacija",
16 | "search.config.pipeline": " ",
17 | "search.placeholder": "Paieška",
18 | "search.share": "Dalintis",
19 | "search.reset": "Išvalyti",
20 | "search.result.initializer": "Paieškos inicijavimas",
21 | "search.result.placeholder": "Įveskite norėdami pradėti paiešką",
22 | "search.result.none": "Atitinkančių dokumentų nerasta",
23 | "search.result.one": "1 atitinkantis dokumentas",
24 | "search.result.other": "# atitinkantys dokumentai",
25 | "search.result.more.one": "Dar 1 šiame puslapyje",
26 | "search.result.more.other": "Dar # šiame puslapyje",
27 | "search.result.term.missing": "Nerasta",
28 | "search.title": "Paieška",
29 | "select.language.title": "Pasirinkti kalbą",
30 | "select.version.title": "Pasrinkti versiją",
31 | "skip.link.title": "Pereiti prie turinio",
32 | "source.link.title": "Eiti į saugyklą",
33 | "source.file.date.updated": "Paskutinis atnaujinimas",
34 | "source.file.date.created": "Sukurta",
35 | "tabs.title": "Skirtukai",
36 | "toc.title": "Turinys",
37 | "top.title": "Grįžti į viršų"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/lv.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "lv",
6 | "clipboard.copy": "Kopēt starpliktuvē",
7 | "clipboard.copied": "Kopēts starpliktuvē",
8 | "edit.link.title": "Rediģēt šo lapu",
9 | "footer.previous": "Iepriekšējais",
10 | "footer.next": "Nākamais",
11 | "footer.title": "Kājene",
12 | "header.title": "Galvene",
13 | "meta.comments": "Komentārs",
14 | "meta.source": "Avots",
15 | "nav.title": "Navigācija",
16 | "search.placeholder": "Meklēt",
17 | "search.reset": "Notīrīt",
18 | "search.result.initializer": "Notiek meklēšanas inicializācija",
19 | "search.result.placeholder": "Ierakstiet, lai sāktu meklēšanu",
20 | "search.result.none": "Nav atbilstošu dokumentu",
21 | "search.result.one": "1 atbilstošs dokuments",
22 | "search.result.other": "# atbilstoši dokumenti ",
23 | "search.result.more.one": "1 šajā lapā",
24 | "search.result.more.other": "# un vairāk šajā lapā",
25 | "search.result.term.missing": "Trūkstošs",
26 | "select.language.title": "Izvēlies valodu",
27 | "select.version.title": "Izvēlies versiju",
28 | "skip.link.title": "Pāriet uz saturu",
29 | "source.link.title": "Doties uz repozitoriju",
30 | "source.file.date.updated": "Pēdējoreiz atjaunots",
31 | "source.file.date.created": "Izveidots",
32 | "tabs.title": "Cilnes",
33 | "toc.title": "Satura rādītājs",
34 | "top.title": "Atpakaļ uz augšu"
35 | }[key] }}{% endmacro %}
36 |
--------------------------------------------------------------------------------
/overrides/partials/languages/mk.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "mk",
6 | "clipboard.copy": "Копирај во таблата",
7 | "clipboard.copied": "Копирано",
8 | "edit.link.title": "Уредете ја оваа страница",
9 | "footer.previous": "Претходно",
10 | "footer.next": "Следно",
11 | "footer.title": "Подножје",
12 | "header.title": "Заглавје",
13 | "meta.comments": "Коментари",
14 | "meta.source": "Извор",
15 | "nav.title": "Наслов за навигација",
16 | "search.config.lang": "ru",
17 | "search.placeholder": "Пребарување",
18 | "search.reset": "Чисти",
19 | "search.result.initializer": "Иницијализирање на пребарувањето",
20 | "search.result.placeholder": "Напишете за да започнете со пребарување",
21 | "search.result.none": "Нема соодветни документи",
22 | "search.result.one": "1 документ што се совпаѓа",
23 | "search.result.other": "# соодветни документи",
24 | "search.result.more.one": "Уште 1 на оваа страница",
25 | "search.result.more.other": "Уште # на оваа страница",
26 | "search.result.term.missing": "Недостасува",
27 | "select.language.title": "Изберете јазик",
28 | "select.version.title": "Изберете верзија",
29 | "skip.link.title": "Прескокнете до содржината",
30 | "source.link.title": "Одете до складиштето",
31 | "source.file.date.updated": "Последно ажурирање",
32 | "source.file.date.created": "Создаден",
33 | "tabs.title": "Јазичиња",
34 | "toc.title": "Содржина",
35 | "top.title": "Вратете се на почетокот"
36 | }[key] }}{% endmacro %}
37 |
--------------------------------------------------------------------------------
/overrides/partials/languages/mn.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "mn",
6 | "clipboard.copy": "Хуулах",
7 | "clipboard.copied": "Санах ойд хуулах",
8 | "edit.link.title": "Хуудас засварлах",
9 | "footer.previous": "Өмнөх",
10 | "footer.next": "Дараах",
11 | "footer.title": "Хөл",
12 | "header.title": "Толгой",
13 | "meta.comments": "Сэтгэгдэл",
14 | "meta.source": "Эх үүсвэр",
15 | "nav.title": "Чиглүүлэгч",
16 | "search.config.lang": "ru",
17 | "search.placeholder": "Хайлт",
18 | "search.reset": "Цэвэрлэх",
19 | "search.result.placeholder": "Хайлтын үгээ бичнэ үү",
20 | "search.result.none": "Таарц илэрсэнгүй",
21 | "search.result.one": "1 таарц илэрлээ",
22 | "search.result.other": "# Тохирох баримт бичиг",
23 | "search.result.more.one": "1 илүү хуудас байна",
24 | "search.result.more.other": "# илүү хуудас байна",
25 | "skip.link.title": "Агуулгыг алгасах",
26 | "source.link.title": "Хадгалах сан руу очих",
27 | "source.file.date.updated": "Сүүлийн шинэчлэлт",
28 | "source.file.date.created": "Үүсгэсэн",
29 | "tabs.title": "Табууд",
30 | "toc.title": "Агуулга"
31 | }[key] }}{% endmacro %}
32 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ms.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ms",
6 | "clipboard.copy": "Salin ke papan keratan",
7 | "clipboard.copied": "Disalin ke papan keratan",
8 | "edit.link.title": "Edit halaman ini",
9 | "footer.previous": "Sebelumnya",
10 | "footer.next" : "Seterusnya",
11 | "footer.title": "Pengaki",
12 | "header.title": "Pengepala",
13 | "meta.comments": "Komen",
14 | "meta.source": "Sumber",
15 | "nav.title": "Navigasi",
16 | "search.placeholder": "Cari",
17 | "search.reset": "Padam",
18 | "search.result.initializer": "Siap carian",
19 | "search.result.placeholder": "Taip untuk mula mencari",
20 | "search.result.none": "Tiada dokumen yang sepadan",
21 | "search.result.one": "1 dokumen yang sepadan",
22 | "search.result.other": "# dokumen yang sepadan",
23 | "search.result.more.one": "1 lagi di halaman ini",
24 | "search.result.more.other": "# lagi di halaman ini",
25 | "search.result.term.missing": "Hilang",
26 | "select.language.title": "Pilih bahasa",
27 | "select.version.title": "Pilih versi",
28 | "skip.link.title": "Langkau tajuk talian",
29 | "source.link.title": "tajuk talian asal",
30 | "source.file.date.updated": "Tarikh fil dikemas kini",
31 | "source.file.date.created": "tarikh fil asal dicipta",
32 | "tabs.title": "Tab",
33 | "toc.title": "Jadual kandungan",
34 | "top.title": "Kembali ke atas"
35 | }[key] }}{% endmacro %}
36 |
--------------------------------------------------------------------------------
/overrides/partials/languages/my.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "my",
6 | "clipboard.copy": "ကလစ်ဘုတ် သို့ ကူးယူရန်",
7 | "clipboard.copied": "ကလစ်ဘုတ် သို့ ကူယူပြီး",
8 | "edit.link.title": "ဤ စာမျက်နှာကို ပြင်ရန်",
9 | "footer.previous": "နောက်သို့",
10 | "footer.next": "ရှေ့သို့",
11 | "footer.title": "အောက်ခြေ",
12 | "header.title": "ခေါင်းပိုင်း",
13 | "meta.comments": "မှတ်ချက်များ",
14 | "meta.source": "ရင်းမြစ်",
15 | "nav.title": "လမ်းညွှန်",
16 | "search.config.pipeline": " ",
17 | "search.placeholder": "ရှာရန်",
18 | "search.reset": "ရှင်းလင်း",
19 | "search.result.placeholder": "ရှာဖွေခြင်းစရန် စာရိုက်ပါ",
20 | "search.result.none": "တူညီသော စာရွက်စာတမ်းများ မရှိပါ",
21 | "search.result.one": "စာရွက်စာတမ်း ၁ ခု တူညီသည်",
22 | "search.result.other": "စာရွက်စာတမ်း # ခု တူညီသည်",
23 | "skip.link.title": "မာတိကာ သို့ သွားရန်",
24 | "source.link.title": "repository သို့ သွားရန်",
25 | "source.file.date.updated": "နောက်ဆုံး ထုတ်ပြန်ချက်",
26 | "source.file.date.created": "နေပြည်တော်",
27 | "tabs.title": "တက်များ",
28 | "toc.title": "ပါဝင်အကြောင်းအရာများ"
29 | }[key] }}{% endmacro %}
30 |
--------------------------------------------------------------------------------
/overrides/partials/languages/nl.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "nl",
6 | "clipboard.copy": "Kopiëren naar klembord",
7 | "clipboard.copied": "Gekopieerd naar klembord",
8 | "edit.link.title": "Wijzig deze pagina",
9 | "footer.previous": "Vorige",
10 | "footer.next": "Volgende",
11 | "meta.comments": "Reacties",
12 | "meta.source": "Bron",
13 | "search.config.lang": "nl",
14 | "search.placeholder": "Zoeken",
15 | "search.result.placeholder": "Typ om te beginnen met zoeken",
16 | "search.result.none": "Geen overeenkomende documenten",
17 | "search.result.one": "1 overeenkomende document",
18 | "search.result.other": "# overeenkomende documenten",
19 | "skip.link.title": "Ga naar inhoud",
20 | "source.link.title": "Ga naar repository",
21 | "source.file.date.updated": "Laatst geüpdatet",
22 | "source.file.date.created": "Gecreëerd",
23 | "toc.title": "Inhoudsopgave"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/nn.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "nn",
6 | "clipboard.copy": "Kopier til utklippstavla",
7 | "clipboard.copied": "Kopiert til utklippstavla",
8 | "edit.link.title": "Rediger denne sida",
9 | "footer.previous": "Førre",
10 | "footer.next": "Neste",
11 | "meta.comments": "Kommentarar",
12 | "meta.source": "Kjelde",
13 | "search.config.lang": "no",
14 | "search.placeholder": "Søk",
15 | "search.result.placeholder": "Skriv søkeord",
16 | "search.result.none": "Ingen treff",
17 | "search.result.one": "1 treff",
18 | "search.result.other": "# treff",
19 | "skip.link.title": "Gå til innhald",
20 | "source.link.title": "Gå til kjelde",
21 | "source.file.date.updated": "Siste oppdatering",
22 | "source.file.date.created": "Laget",
23 | "toc.title": "Innhaldsliste"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/no.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "no",
6 | "clipboard.copy": "Kopier til utklippstavlen",
7 | "clipboard.copied": "Kopiert til utklippstavlen",
8 | "edit.link.title": "Rediger denne siden",
9 | "footer.previous": "Forrige",
10 | "footer.next": "Neste",
11 | "meta.comments": "Kommentarer",
12 | "meta.source": "Kilde",
13 | "search.config.lang": "no",
14 | "search.placeholder": "Søk",
15 | "search.result.placeholder": "Skriv søkeord",
16 | "search.result.none": "Ingen treff",
17 | "search.result.one": "1 treff",
18 | "search.result.other": "# treff",
19 | "skip.link.title": "Gå til innhold",
20 | "source.link.title": "Gå til kilde",
21 | "source.file.date.updated": "Siste oppdatering",
22 | "source.file.date.created": "Created",
23 | "toc.title": "Innholdsfortegnelse"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/pl.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "pl",
6 | "clipboard.copy": "Kopiuj do schowka",
7 | "clipboard.copied": "Skopiowane",
8 | "edit.link.title": "Edytuj tę stronę",
9 | "footer.previous": "Poprzednia strona",
10 | "footer.next": "Następna strona",
11 | "footer.title": "Stopka",
12 | "header.title": "Nagłówek",
13 | "meta.comments": "Komentarze",
14 | "meta.source": "Kod źródłowy",
15 | "search.config.pipeline": " ",
16 | "nav.title": "Nawigacja",
17 | "search.placeholder": "Szukaj",
18 | "search.reset": "Wyczyść",
19 | "search.result.initializer": "Inicjowanie wyszukiwania",
20 | "search.result.placeholder": "Zacznij pisać, aby szukać",
21 | "search.result.none": "Brak wyników wyszukiwania",
22 | "search.result.one": "Wyniki wyszukiwania: 1",
23 | "search.result.other": "Wyniki wyszukiwania: #",
24 | "search.result.more.one": "1 więcej na tej stronie",
25 | "search.result.more.other": "# więcej na tej stronie",
26 | "search.result.term.missing": "Brak",
27 | "skip.link.title": "Przejdź do treści",
28 | "source.link.title": "Idź do repozytorium",
29 | "source.file.date.updated": "Ostatnia aktualizacja",
30 | "source.file.date.created": "Utworzony",
31 | "tabs.title": "Zakładki",
32 | "toc.title": "Spis treści"
33 | }[key] }}{% endmacro %}
34 |
--------------------------------------------------------------------------------
/overrides/partials/languages/pt-BR.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "pt",
6 | "clipboard.copy": "Copiar para área de Transferência",
7 | "clipboard.copied": "Copiado para área de Transferência",
8 | "edit.link.title": "Editar esta página",
9 | "footer.previous": "Anterior",
10 | "footer.next": "Próximo",
11 | "footer.title": "Rodapé",
12 | "header.title": "Cabeçalho",
13 | "meta.comments": "Comentários",
14 | "meta.source": "Origem",
15 | "nav.title": "Navegação",
16 | "search.config.lang": "pt",
17 | "search.placeholder": "Buscar",
18 | "search.reset": "Limpar",
19 | "search.result.initializer": "Inicializando busca",
20 | "search.result.placeholder": "Digite para iniciar a busca",
21 | "search.result.none": "Nenhum documento encontrado",
22 | "search.result.one": "1 documento encontrado",
23 | "search.result.other": "# documentos encontrados",
24 | "search.result.more.one": "1 more on this page",
25 | "search.result.more.other": "# more on this page",
26 | "search.result.term.missing": "Perdido",
27 | "search.title": "Pesquisar",
28 | "select.language.title": "Selecione a linguagem",
29 | "select.version.title": "Selecione a versão",
30 | "skip.link.title": "Pular para conteúdo",
31 | "source.link.title": "Ir para repositório",
32 | "source.file.date.updated": "Ultima atualização",
33 | "source.file.date.created": "Criado em",
34 | "tabs.title": "Abas",
35 | "toc.title": "Indice",
36 | "top.title": "Voltar para o topo"
37 | }[key] }}{% endmacro %}
38 |
--------------------------------------------------------------------------------
/overrides/partials/languages/pt.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "pt",
6 | "clipboard.copy": "Copiar para área de transferência",
7 | "clipboard.copied": "Copiado para área de transferência",
8 | "edit.link.title": "Editar esta página",
9 | "footer.previous": "Anterior",
10 | "footer.next": "Próximo",
11 | "footer.title": "Rodapé",
12 | "header.title": "Cabeçalho",
13 | "meta.comments": "Comentários",
14 | "meta.source": "Fonte",
15 | "nav.title": "Navegação",
16 | "search.config.lang": "pt",
17 | "search.placeholder": "Buscar",
18 | "search.share": "Compartilhar",
19 | "search.reset": "Limpar",
20 | "search.result.initializer": "Inicializando a pesquisa",
21 | "search.result.placeholder": "Digite para iniciar a busca",
22 | "search.result.none": "Nenhum resultado encontrado",
23 | "search.result.one": "1 resultado encontrado",
24 | "search.result.other": "# resultados encontrados",
25 | "search.result.more.one": "Mais 1 nesta página",
26 | "search.result.more.other": "Mais # nesta página",
27 | "search.result.term.missing": "Ausente",
28 | "search.title": "Pesquisar",
29 | "select.language.title": "Selecione o idioma",
30 | "select.version.title": "Selecione a versão",
31 | "skip.link.title": "Ir para o conteúdo",
32 | "source.link.title": "Ir ao repositório",
33 | "source.file.date.updated": "Última atualização",
34 | "source.file.date.created": "Criada",
35 | "tabs.title": "Abas",
36 | "toc.title": "Índice",
37 | "top.title": "Voltar ao topo"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ro.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ro",
6 | "clipboard.copy": "Copiază în clipboard",
7 | "clipboard.copied": "Copiat în clipboard",
8 | "edit.link.title": "Editeaza această pagină",
9 | "footer.previous": "Anterior",
10 | "footer.next": "Următor",
11 | "meta.comments": "Comentarii",
12 | "meta.source": "Sursă",
13 | "search.config.lang": "ro",
14 | "search.placeholder": "Căutare",
15 | "search.result.placeholder": "Tastează pentru a începe căutarea",
16 | "search.result.none": "Nu a fost găsit niciun document",
17 | "search.result.one": "1 document găsit",
18 | "search.result.other": "# documente găsite",
19 | "skip.link.title": "Sari la conținut",
20 | "source.link.title": "Accesează repository-ul",
21 | "source.file.date.updated": "Ultima actualizare",
22 | "source.file.date.created": "Creată",
23 | "toc.title": "Cuprins"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ru.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ru",
6 | "clipboard.copy": "Копировать в буфер",
7 | "clipboard.copied": "Скопировано в буфер",
8 | "edit.link.title": "Редактировать страницу",
9 | "footer.previous": "Назад",
10 | "footer.next": "Вперед",
11 | "footer.title": "Нижний колонтитул",
12 | "header.title": "Верхний колонтитул",
13 | "meta.comments": "Комментарии",
14 | "meta.source": "Исходный код",
15 | "nav.title": "Навигация",
16 | "search.config.lang": "ru",
17 | "search.placeholder": "Поиск",
18 | "search.share": "Поделиться",
19 | "search.reset": "Очистить",
20 | "search.result.initializer": "Инициализация поиска",
21 | "search.result.placeholder": "Начните печатать для поиска",
22 | "search.result.none": "Совпадений не найдено",
23 | "search.result.one": "Найдено 1 совпадение",
24 | "search.result.other": "Найдено совпадений: #",
25 | "search.result.more.one": "Ещё 1 на этой странице",
26 | "search.result.more.other": "Ещё # на этой странице",
27 | "search.result.term.missing": "Отсутствует",
28 | "search.title": "Поиск",
29 | "select.language.title": "Выберите язык",
30 | "select.version.title": "Выберите версию",
31 | "skip.link.title": "Перейти к содержанию",
32 | "source.link.title": "Перейти к репозиторию",
33 | "source.file.date.updated": "Последнее обновление",
34 | "source.file.date.created": "Дата создания",
35 | "tabs.title": "Вкладки",
36 | "toc.title": "Содержание раздела",
37 | "top.title": "К началу"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/sh.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "sh",
6 | "clipboard.copy": "Kopiraj u klipbord",
7 | "clipboard.copied": "Iskopirano u klipbord",
8 | "edit.link.title": "Ažuriraj stranicu",
9 | "footer.previous": "Prethodno",
10 | "footer.next": "Sledeće",
11 | "footer.title": "Podnožje",
12 | "header.title": "Zaglavlje",
13 | "meta.comments": "Komentari",
14 | "meta.source": "Izvor",
15 | "nav.title": "Navigacija",
16 | "search.placeholder": "Pretraga",
17 | "search.share": "Deljenje",
18 | "search.reset": "Očisti",
19 | "search.result.initializer": "Inicijalizujem pretragu",
20 | "search.result.placeholder": "Unesite pojam pretrage",
21 | "search.result.none": "Ništa nije pronađeno",
22 | "search.result.one": "1 rezultat pretrage",
23 | "search.result.other": "# rezultata pretrage",
24 | "search.result.more.one": "još 1 na ovoj strani",
25 | "search.result.more.other": "još # na ovoj strani",
26 | "search.result.term.missing": "Nedostaje",
27 | "search.title": "Pretraga",
28 | "select.language.title": "Izaberi jezik",
29 | "select.version.title": "Izaberi verziju",
30 | "skip.link.title": "Idi na tekst",
31 | "source.link.title": "Idi u repozitorijum",
32 | "source.file.date.updated": "Ažuriran",
33 | "source.file.date.created": "Kreiran",
34 | "tabs.title": "Tabovi",
35 | "toc.title": "Sadržaj",
36 | "top.title": "Nazad na vrh"
37 | }[key] }}{% endmacro %}
38 |
--------------------------------------------------------------------------------
/overrides/partials/languages/si.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "si",
6 | "clipboard.copy": "කොපි කරන්න",
7 | "clipboard.copied": "කොපි කළා",
8 | "edit.link.title": "පිටුව සංස්කරණය",
9 | "footer.previous": "පසුගිය",
10 | "footer.next": "මීළඟ",
11 | "footer.title": "පාදම",
12 | "header.title": "ශීර්ෂය",
13 | "meta.comments": "ප්රතිචාර",
14 | "meta.source": "මූලාශ්රය",
15 | "nav.title": "යාත්රණය",
16 | "search.config.pipeline": " ",
17 | "search.placeholder": "සොයන්න",
18 | "search.reset": "මකන්න",
19 | "search.result.placeholder": "සෙවීමට ටයිප් කරන්න",
20 | "search.result.none": "කිසිවක් හමු නොවුණි",
21 | "search.result.one": "1 ගැලපෙන ගොනුවක්",
22 | "search.result.other": "ගැලපෙන ගොනු # ක්",
23 | "search.result.more.one": "තව 1 ප්රතිඵලයක්",
24 | "search.result.more.other": "තව ප්රතිඵල # ක්",
25 | "skip.link.title": "අන්තර්ගතය වෙත යන්න",
26 | "source.link.title": "රිපොසිටරියට යන්න",
27 | "source.file.date.updated": "අවසන් යාවත්කාලීන වීම",
28 | "source.file.date.created": "ٺاھيو ويو",
29 | "tabs.title": "ටැබ්ස්",
30 | "toc.title": "පටුන"
31 | }[key] }}{% endmacro %}
32 |
--------------------------------------------------------------------------------
/overrides/partials/languages/sk.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "sk",
6 | "clipboard.copy": "Kopírovať do schránky",
7 | "clipboard.copied": "Skopírované do schránky",
8 | "edit.link.title": "Upraviť túto stránku",
9 | "footer.previous": "Späť",
10 | "footer.next": "Ďalej",
11 | "meta.comments": "Komentáre",
12 | "meta.source": "Zdroj",
13 | "search.placeholder": "Hľadať",
14 | "search.result.placeholder": "Pre vyhľadávanie začni písať",
15 | "search.result.none": "Žiadne vyhovujúce dokumenty",
16 | "search.result.one": "Vyhovujúci dokument: 1",
17 | "search.result.other": "Vyhovujúce dokumenty: #",
18 | "skip.link.title": "Preskočiť na obsah",
19 | "source.link.title": "Zobraziť repozitár",
20 | "source.file.date.updated": "Posledná aktualizácia",
21 | "source.file.date.created": "Vytvorené",
22 | "toc.title": "Obsah"
23 | }[key] }}{% endmacro %}
24 |
--------------------------------------------------------------------------------
/overrides/partials/languages/sl.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "sl",
6 | "announce.dismiss": "Ne prikaži več",
7 | "clipboard.copy": "Kopiraj v odložišče",
8 | "clipboard.copied": "Kopirano v odložišče",
9 | "consent.accept": "Sprejmi",
10 | "consent.manage": "Uredi nastavitve",
11 | "consent.reject": "Zavrni",
12 | "edit.link.title": "Uredi stran",
13 | "footer.previous": "Prejšnja stran",
14 | "footer.next": "Naslednja stran",
15 | "footer.title": "Glava",
16 | "header.title": "Noga",
17 | "meta.comments": "Komentarji",
18 | "meta.source": "Izvorna koda",
19 | "nav.title": "Navigacija",
20 | "search.config.lang": "sl",
21 | "search.placeholder": "Išči",
22 | "search.share": "Deli",
23 | "search.reset": "Počisti",
24 | "search.result.initializer": "Inicializacija iskanja",
25 | "search.result.placeholder": "Vpiši iskalni niz",
26 | "search.result.none": "Ni zadetkov",
27 | "search.result.one": "1 zadetek",
28 | "search.result.other": "# zadetkov",
29 | "search.result.more.one": "Še 1 na tej strani",
30 | "search.result.more.other": "Še # na tej strani",
31 | "search.result.term.missing": "Manjka",
32 | "search.title": "Iskanje",
33 | "select.language.title": "Izberi jezik",
34 | "select.version.title": "Izberi različico",
35 | "skip.link.title": "Skoči na vsebino",
36 | "source.link.title": "Pojdi na repozitorij",
37 | "source.file.date.updated": "Zadnja posodobitev",
38 | "source.file.date.created": "Ustvarjeno",
39 | "tabs.title": "Zavihki",
40 | "toc.title": "Kazalo",
41 | "top.title": "Nazaj na vrh"
42 | }[key] }}{% endmacro %}
43 |
--------------------------------------------------------------------------------
/overrides/partials/languages/sr.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "sr",
6 | "clipboard.copy": "Копирај у клипборд",
7 | "clipboard.copied": "Ископирано у клипборд",
8 | "edit.link.title": "Ажурирај страницу",
9 | "footer.previous": "Претходно",
10 | "footer.next": "Следеће",
11 | "footer.title": "Подножје",
12 | "header.title": "Заглавље",
13 | "meta.comments": "Коментари",
14 | "meta.source": "Извор",
15 | "nav.title": "Навигација",
16 | "search.placeholder": "Претрага",
17 | "search.share": "Дељење",
18 | "search.reset": "Очисти",
19 | "search.result.initializer": "Иницијализујем претрагу",
20 | "search.result.placeholder": "Унесите појам претраге",
21 | "search.result.none": "Ништа није пронађено",
22 | "search.result.one": "1 резултат претраге",
23 | "search.result.other": "# резултата претраге",
24 | "search.result.more.one": "још 1 на овој страни",
25 | "search.result.more.other": "још # на овој страни",
26 | "search.result.term.missing": "Недостаје",
27 | "search.title": "Претрага",
28 | "select.language.title": "Изабери језик",
29 | "select.version.title": "Изабери верзију",
30 | "skip.link.title": "Иди на текст",
31 | "source.link.title": "Иди у репозиторијум",
32 | "source.file.date.updated": "Ажуриран",
33 | "source.file.date.created": "Креиран",
34 | "tabs.title": "Табови",
35 | "toc.title": "Садржај",
36 | "top.title": "Назад на врх"
37 | }[key] }}{% endmacro %}
38 |
--------------------------------------------------------------------------------
/overrides/partials/languages/sv.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "sv",
6 | "clipboard.copy": "Kopiera till urklipp",
7 | "clipboard.copied": "Kopierat till urklipp",
8 | "consent.accept": "Acceptera",
9 | "consent.manage": "Hantera inställningar",
10 | "edit.link.title": "Redigera sidan",
11 | "footer.previous": "Föregående",
12 | "footer.next": "Nästa",
13 | "footer.title": "Sidfot",
14 | "header.title": "Sidhuvud",
15 | "meta.comments": "Kommentarer",
16 | "meta.source": "Källa",
17 | "nav.title": "Navigation",
18 | "search.config.lang": "sv",
19 | "search.placeholder": "Sök",
20 | "search.share": "Dela",
21 | "search.reset": "Rensa",
22 | "search.result.initializer": "Initialiserar sök",
23 | "search.result.placeholder": "Skriv sökord",
24 | "search.result.none": "Inga sökresultat",
25 | "search.result.one": "1 sökresultat",
26 | "search.result.other": "# sökresultat",
27 | "search.result.more.one": "1 till på denna sidan",
28 | "search.result.more.other": "# till på denna sidan",
29 | "search.result.term.missing": "Saknas",
30 | "search.title": "Sök",
31 | "select.language.title": "Välj språk",
32 | "select.version.title": "Välj version",
33 | "skip.link.title": "Gå till innehållet",
34 | "source.link.title": "Gå till datakatalog",
35 | "source.file.date.updated": "Senaste uppdaterad",
36 | "source.file.date.created": "Skapad",
37 | "tabs.title": "Flikar",
38 | "toc.title": "Innehållsförteckning",
39 | "top.title": "Tillbaka till toppen"
40 | }[key] }}{% endmacro %}
41 |
--------------------------------------------------------------------------------
/overrides/partials/languages/th.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "th",
6 | "clipboard.copy": "คัดลอก",
7 | "clipboard.copied": "คัดลอกแล้ว",
8 | "edit.link.title": "แก้ไขหน้านี้",
9 | "footer.previous": "ก่อนหน้า",
10 | "footer.next": "ต่อไป",
11 | "meta.comments": "ความคิดเห็น",
12 | "meta.source": "แหล่งที่มา",
13 | "search.config.lang": "th",
14 | "search.placeholder": "ค้นหา",
15 | "search.result.placeholder": "พิมพ์เพื่อเริ่มค้นหา",
16 | "search.result.none": "ไม่พบเอกสารที่ตรงกัน",
17 | "search.result.one": "พบเอกสารที่ตรงกัน",
18 | "search.result.other": "พบ # เอกสารที่ตรงกัน",
19 | "skip.link.title": "ข้ามไปที่เนื้อหา",
20 | "source.link.title": "ไปที่ Repository",
21 | "source.file.date.updated": "สร้าง",
22 | "source.file.date.created": "สร้าง",
23 | "toc.title": "สารบัญ"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/tl.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "tl",
6 | "clipboard.copy": "Kopyahin sa clipboard",
7 | "clipboard.copied": "Nakopya mula sa clipboard",
8 | "edit.link.title": "I-edit ang pahinang ito",
9 | "footer.previous": "Nakaraan",
10 | "footer.next": "Susunod",
11 | "footer.title": "Lagdang Pangwakas",
12 | "header.title": "Pamuhatan",
13 | "meta.comments": "Mga Komento",
14 | "meta.source": "Pinagmulan",
15 | "nav.title": "Nabigasyon",
16 | "search.placeholder": "Hanapin",
17 | "search.share": "Ibahagi",
18 | "search.reset": "Tanggalin",
19 | "search.result.initializer": "Sinisimulan ang paghahanap",
20 | "search.result.placeholder": "Mag-type upang simulan ang paghahanap",
21 | "search.result.none": "Walang nahanap na dokumento",
22 | "search.result.one": "1 magkatugmang dokumento",
23 | "search.result.other": "# magkatugmang mga dokumento",
24 | "search.result.more.one": "1 meron sa pahina na ito",
25 | "search.result.more.other": "# meron sa pahina na ito",
26 | "search.result.term.missing": "Nawawala",
27 | "search.title": "Hanapin",
28 | "select.language.title": "Pumili ng lenguwahe",
29 | "select.version.title": "Pumili ng bersyon",
30 | "skip.link.title": "I-skip tungo sa nilalaman",
31 | "source.link.title": "Pumunta sa repository",
32 | "source.file.date.updated": "Huling update",
33 | "source.file.date.created": "Nagawa",
34 | "tabs.title": "Mga tala",
35 | "toc.title": "Talaan ng nilalaman",
36 | "top.title": "Bumalik sa taas"
37 | }[key] }}{% endmacro %}
38 |
--------------------------------------------------------------------------------
/overrides/partials/languages/tr.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "tr",
6 | "clipboard.copy": "Kopyala",
7 | "clipboard.copied": "Kopyalandı",
8 | "edit.link.title": "Düzenle",
9 | "footer.previous": "Önceki",
10 | "footer.next": "Sonraki",
11 | "meta.comments": "Yorumlar",
12 | "meta.source": "Kaynak",
13 | "search.config.lang": "tr",
14 | "search.placeholder": "Ara",
15 | "search.result.placeholder": "Aramaya başlamak için yazın",
16 | "search.result.none": "Eşleşen doküman bulunamadı",
17 | "search.result.one": "1 doküman bulundu",
18 | "search.result.other": "# doküman bulundu",
19 | "skip.link.title": "Ana içeriğe geç",
20 | "source.link.title": "Depoya git",
21 | "source.file.date.updated": "Son Güncelleme",
22 | "source.file.date.created": "Oluşturuldu",
23 | "toc.title": "İçindekiler"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/uk.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "uk",
6 | "clipboard.copy": "Скопіювати в буфер",
7 | "clipboard.copied": "Скопійовано в буфер",
8 | "edit.link.title": "Редагувати сторінку",
9 | "footer.previous": "Назад",
10 | "footer.next": "Вперед",
11 | "meta.comments": "Коментарі",
12 | "meta.source": "Вихідний код",
13 | "search.config.lang": "ru",
14 | "search.placeholder": "Пошук",
15 | "search.result.placeholder": "Розпочніть писати для пошуку",
16 | "search.result.none": "Збігів не знайдено",
17 | "search.result.one": "Знайдено 1 збіг",
18 | "search.result.other": "Знайдено # збігів",
19 | "skip.link.title": "Перейти до змісту",
20 | "source.link.title": "Перейти до репозиторію",
21 | "source.file.date.updated": "Останнє оновлення",
22 | "source.file.date.created": "Створено",
23 | "toc.title": "Зміст"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/ur.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "ur",
6 | "direction": "rtl",
7 | "clipboard.copy": "کلِپ بورڈ میں نقل کریں",
8 | "clipboard.copied": "کلِپ بورڈ میں نقل کر دیا گیا",
9 | "edit.link.title": "اس صفحے میں ترمیم کریں",
10 | "footer.previous": "پچھلا",
11 | "footer.next": "اگلا",
12 | "footer.title": "ذیلی تحریر",
13 | "header.title": "سر تحریر",
14 | "meta.comments": "تبصرے",
15 | "meta.source": "ذریعہ",
16 | "nav.title": "رہنمائی",
17 | "search.config.pipeline": " ",
18 | "search.placeholder": "تلاش کریں",
19 | "search.share": "اشتراک کریں",
20 | "search.reset": "صاف کریں",
21 | "search.result.initializer": "تلاش کا آغاز ہو رہا ہے",
22 | "search.result.placeholder": "تلاش شروع کرنے کے لئے ٹائپ کریں",
23 | "search.result.none": "کوئی ملتی جلتی دستاویزات نہیں",
24 | "search.result.one": "۱ ملتی جلتی دستاویز",
25 | "search.result.other": "# ملتی جلتی دستاویزات",
26 | "search.result.more.one": "اِس صفحے پر مزید ۱",
27 | "search.result.more.other": "اِس صفحے پر مزید #",
28 | "search.result.term.missing": "گمشدہ",
29 | "search.title": "تلاش",
30 | "select.language.title": "زبان کا انتخاب کریں",
31 | "select.version.title": "ورژن کا انتخاب کریں",
32 | "skip.link.title": "براہِ راست مواد پر جائیں",
33 | "source.link.title": "ریپازٹری پر جائیں",
34 | "source.file.date.updated": "آخری بار تجدید",
35 | "source.file.date.created": "تخلیق",
36 | "tabs.title": "ٹیبز",
37 | "toc.title": "فہرست",
38 | "top.title": "واپس اوپر جائیں"
39 | }[key] }}{% endmacro %}
40 |
--------------------------------------------------------------------------------
/overrides/partials/languages/uz.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "uz",
6 | "clipboard.copy": "Buferga nusxalash",
7 | "clipboard.copied": "Buferga nusxalandi",
8 | "edit.link.title": "Ushbu sahifani tahrirlash",
9 | "footer.previous": "Oldingi sahifa",
10 | "footer.next": "Keyingi sahifa",
11 | "footer.title": "Pastgi qism",
12 | "header.title": "Sarlavha",
13 | "meta.comments": "Izohlar",
14 | "meta.source": "Manba",
15 | "nav.title": "Navigatsiya",
16 | "search.config.lang": "tr",
17 | "search.placeholder": "Qidirish",
18 | "search.share": "Ulashish",
19 | "search.reset": "Tozalash",
20 | "search.result.initializer": "Qidiruv ishga tushirilmoqda",
21 | "search.result.placeholder": "Qidiruvni boshlash uchun kiriting",
22 | "search.result.none": "Mos natijalar yo'q",
23 | "search.result.one": "1 ta mos natija",
24 | "search.result.other": "# ta mos keladigan natijalar",
25 | "search.result.more.one": "Ushbu sahifada yana 1 ta natija",
26 | "search.result.more.other": "Bu sahifada yana # ta natija",
27 | "search.result.term.missing": "To'ldirilmagan",
28 | "search.title": "Qidirish",
29 | "select.language.title": "Tilni tanlang",
30 | "select.version.title": "Versiyani tanlang",
31 | "skip.link.title": "Tarkibga o'tish",
32 | "source.link.title": "Repozitoriyga o'tish",
33 | "source.file.date.updated": "Oxirgi yangilanish",
34 | "source.file.date.created": "Yaratildi",
35 | "tabs.title": "Yorliqlar",
36 | "toc.title": "Mundarija",
37 | "top.title": "Yuqoriga qaytish"
38 | }[key] }}{% endmacro %}
39 |
--------------------------------------------------------------------------------
/overrides/partials/languages/vi.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "vi",
6 | "clipboard.copy": "Sao chép vào bộ nhớ",
7 | "clipboard.copied": "Sao chép xong",
8 | "edit.link.title": "Chỉnh sửa",
9 | "footer.previous": "Trước",
10 | "footer.next": "Sau",
11 | "meta.comments": "Bình luận",
12 | "meta.source": "Mã nguồn",
13 | "search.config.lang": "vi",
14 | "search.placeholder": "Tìm kiếm",
15 | "search.result.placeholder": "Nhập để bắt đầu tìm kiếm",
16 | "search.result.none": "Không tìm thấy tài liệu liên quan",
17 | "search.result.one": "1 tài liệu liên quan",
18 | "search.result.other": "# tài liệu liên quan",
19 | "skip.link.title": "Vào thẳng nội dung",
20 | "source.link.title": "Đến kho lưu trữ mã nguồn",
21 | "source.file.date.updated": "Cập nhật cuối cùng",
22 | "source.file.date.created": "Tạo",
23 | "toc.title": "Mục lục"
24 | }[key] }}{% endmacro %}
25 |
--------------------------------------------------------------------------------
/overrides/partials/languages/zh-Hant.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "zh-Hant",
6 | "clipboard.copy": "拷貝",
7 | "clipboard.copied": "已拷貝",
8 | "edit.link.title": "編輯此頁",
9 | "footer.previous": "上一頁",
10 | "footer.next": "下一頁",
11 | "meta.comments": "評論",
12 | "meta.source": "來源",
13 | "search.config.lang": "ja",
14 | "search.config.pipeline": "trimmer, stemmer",
15 | "search.config.separator": "[\\s\\-,。]+",
16 | "search.placeholder": "搜尋",
17 | "search.result.initializer": "正在初始化搜尋引擎",
18 | "search.result.placeholder": "鍵入以開始檢索",
19 | "search.result.none": "沒有找到符合條件的結果",
20 | "search.result.one": "找到 1 个符合條件的結果",
21 | "search.result.other": "# 個符合條件的結果",
22 | "skip.link.title": "跳轉至",
23 | "source.link.title": "前往倉庫",
24 | "source.file.date.updated": "最後更新",
25 | "source.file.date.created": "建立日期",
26 | "toc.title": "目錄"
27 | }[key] }}{% endmacro %}
28 |
--------------------------------------------------------------------------------
/overrides/partials/languages/zh-TW.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "zh-Hant",
6 | "announce.dismiss": "不再顯示此訊息",
7 | "clipboard.copy": "複製",
8 | "clipboard.copied": "已複製",
9 | "consent.accept": "同意",
10 | "consent.manage": "管理設定",
11 | "consent.reject": "拒絕",
12 | "edit.link.title": "編輯此頁",
13 | "footer.previous": "上一頁",
14 | "footer.next": "下一頁",
15 | "meta.comments": "留言",
16 | "meta.source": "來源",
17 | "search.config.lang": "ja",
18 | "search.config.pipeline": "trimmer, stemmer",
19 | "search.config.separator": "[\\s\\- 、。,.?;]+",
20 | "search.placeholder": "搜尋",
21 | "search.result.initializer": "正在初始化搜尋引擎",
22 | "search.result.placeholder": "打字進行搜尋",
23 | "search.result.none": "沒有符合的項目",
24 | "search.result.one": "找到 1 個符合的項目",
25 | "search.result.other": "找到 # 個符合的項目",
26 | "search.result.more.one": "此頁尚有 1 個符合的項目",
27 | "search.result.more.other": "此頁尚有 # 個符合的項目",
28 | "skip.link.title": "跳轉到",
29 | "source.link.title": "前往倉庫",
30 | "source.file.date.updated": "最後更新",
31 | "source.file.date.created": "建立日期",
32 | "toc.title": "目錄"
33 | }[key] }}{% endmacro %}
34 |
--------------------------------------------------------------------------------
/overrides/partials/languages/zh.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro t(key) %}{{ {
5 | "language": "zh",
6 | "announce.dismiss": "不再显示此消息",
7 | "clipboard.copy": "复制",
8 | "clipboard.copied": "已复制",
9 | "consent.accept": "同意",
10 | "consent.manage": "管理设定",
11 | "consent.reject": "拒绝",
12 | "edit.link.title": "编辑此页",
13 | "footer.previous": "上一页",
14 | "footer.next": "下一页",
15 | "footer.title": "页脚",
16 | "header.title": "页眉",
17 | "meta.comments": "评论",
18 | "meta.source": "来源",
19 | "nav.title": "导航栏",
20 | "search.config.lang": "ja",
21 | "search.config.pipeline": "trimmer, stemmer",
22 | "search.config.separator": "[\\s\\-,。]+",
23 | "search.placeholder": "搜索",
24 | "search.share": "分享",
25 | "search.reset": "清空当前内容",
26 | "search.result.initializer": "正在初始化搜索引擎",
27 | "search.result.placeholder": "键入以开始搜索",
28 | "search.result.none": "没有找到符合条件的结果",
29 | "search.result.one": "找到 1 个符合条件的结果",
30 | "search.result.other": "# 个符合条件的结果",
31 | "search.result.more.one": "在该页上还有 1 个符合条件的结果",
32 | "search.result.more.other": "在该页上还有 # 个符合条件的结果",
33 | "search.result.term.missing": "缺少",
34 | "search.title": "查找",
35 | "select.language.title": "选择当前语言",
36 | "select.version.title": "选择当前版本",
37 | "skip.link.title": "跳转至",
38 | "source.link.title": "前往仓库",
39 | "source.file.date.updated": "最后更新",
40 | "source.file.date.created": "创建日期",
41 | "tabs.title": "标签",
42 | "toc.title": "目录",
43 | "top.title": "回到页面顶部"
44 | }[key] }}{% endmacro %}
45 |
--------------------------------------------------------------------------------
/overrides/partials/logo.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if config.theme.logo %}
5 |
6 | {% else %}
7 | {% set icon = config.theme.icon.logo or "material/library" %}
8 | {% include ".icons/" ~ icon ~ ".svg" %}
9 | {% endif %}
10 |
--------------------------------------------------------------------------------
/overrides/partials/nav.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% set class = "md-nav md-nav--primary" %}
5 | {% if "navigation.tabs" in features %}
6 | {% set class = class ~ " md-nav--lifted" %}
7 | {% endif %}
8 | {% if "toc.integrate" in features %}
9 | {% set class = class ~ " md-nav--integrated" %}
10 | {% endif %}
11 |
12 |
13 |
14 | {% include "partials/logo.html" %}
15 |
16 | {{ config.site_name }}
17 |
18 | {% if config.repo_url %}
19 |
20 | {% include "partials/source.html" %}
21 |
22 | {% endif %}
23 |
24 | {% for nav_item in nav %}
25 | {% set path = "__nav_" ~ loop.index %}
26 | {% set level = 1 %}
27 | {% include "partials/nav-item.html" %}
28 | {% endfor %}
29 |
30 |
31 |
--------------------------------------------------------------------------------
/overrides/partials/palette.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% macro primary(key) %}{{ {
5 | "red": "#ef5552",
6 | "pink": "#e92063",
7 | "purple": "#ab47bd",
8 | "deep-purple": "#7e56c2",
9 | "indigo": "#4051b5",
10 | "blue": "#2094f3",
11 | "light-blue": "#02a6f2",
12 | "cyan": "#00bdd6",
13 | "teal": "#009485",
14 | "green": "#4cae4f",
15 | "light-green": "#8bc34b",
16 | "lime": "#cbdc38",
17 | "yellow": "#ffec3d",
18 | "amber": "#ffc105",
19 | "orange": "#ffa724",
20 | "deep-orange": "#ff6e42",
21 | "brown": "#795649",
22 | "grey": "#757575",
23 | "blue-grey": "#546d78",
24 | "black": "#000000",
25 | "white": "#ffffff"
26 | }[key] }}{% endmacro %}
27 | {% macro accent(key) %}{{ {
28 | "red": "#ff1a47",
29 | "pink": "#f50056",
30 | "purple": "#df41fb",
31 | "deep-purple": "#7c4dff",
32 | "indigo": "#526cfe",
33 | "blue": "#4287ff",
34 | "light-blue": "#0091eb",
35 | "cyan": "#00bad6",
36 | "teal": "#00bda4",
37 | "green": "#00c753",
38 | "light-green": "#63de17",
39 | "lime": "#b0eb00",
40 | "yellow": "#ffd500",
41 | "amber": "#ffaa00",
42 | "orange": "#ff9100",
43 | "deep-orange": "#ff6e42"
44 | }[key] }}{% endmacro %}
45 |
--------------------------------------------------------------------------------
/overrides/partials/search.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
39 |
--------------------------------------------------------------------------------
/overrides/partials/social.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 | {% for social in config.extra.social %}
6 | {% set title = social.name %}
7 | {% if not title and "//" in social.link %}
8 | {% set _, url = social.link.split("//") %}
9 | {% set title = url.split("/")[0] %}
10 | {% endif %}
11 |
12 | {% include ".icons/" ~ social.icon ~ ".svg" %}
13 |
14 | {% endfor %}
15 |
16 |
--------------------------------------------------------------------------------
/overrides/partials/source-file.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
6 |
7 | {% if page.meta.git_revision_date_localized %}
8 | {{ lang.t("source.file.date.updated") }}:
9 | {{ page.meta.git_revision_date_localized }}
10 | {% if page.meta.git_creation_date_localized %}
11 |
12 | {{ lang.t("source.file.date.created") }}:
13 | {{ page.meta.git_creation_date_localized }}
14 | {% endif %}
15 | {% elif page.meta.revision_date %}
16 | {{ lang.t("source.file.date.updated") }}:
17 | {{ page.meta.revision_date }}
18 | {% endif %}
19 |
20 |
21 |
--------------------------------------------------------------------------------
/overrides/partials/source.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
6 | {% set icon = config.theme.icon.repo or "fontawesome/brands/git-alt" %}
7 | {% include ".icons/" ~ icon ~ ".svg" %}
8 |
9 |
10 | {{ config.repo_name }}
11 |
12 |
13 |
--------------------------------------------------------------------------------
/overrides/partials/tabs-item.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if not class %}
5 | {% set class = "md-tabs__link" %}
6 | {% if nav_item.active %}
7 | {% set class = class ~ " md-tabs__link--active" %}
8 | {% endif %}
9 | {% endif %}
10 | {% if nav_item.children %}
11 | {% set title = title | d(nav_item.title) %}
12 | {% set nav_item = nav_item.children | first %}
13 | {% if nav_item.children %}
14 | {% include "partials/tabs-item.html" %}
15 | {% else %}
16 |
17 |
18 | {{ title }}
19 |
20 |
21 | {% endif %}
22 | {% else %}
23 |
24 |
25 | {{ nav_item.title }}
26 |
27 |
28 | {% endif %}
29 |
--------------------------------------------------------------------------------
/overrides/partials/tabs.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% set class = "" %}
5 |
6 |
7 |
8 | {% for nav_item in nav %}
9 | {% include "partials/tabs-item.html" %}
10 | {% endfor %}
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/overrides/partials/tags.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% if page.meta and page.meta.hide %}
5 | {% set hidden = "hidden" if "tags" in page.meta.hide %}
6 | {% endif %}
7 | {% if tags %}
8 |
9 | {% for tag in tags %}
10 | {% if config.extra.tags %}
11 | {% set icon = " md-tag-icon" %}
12 | {% if tag.type %}
13 | {% set icon = icon ~ " md-tag-icon--" ~ tag.type %}
14 | {% endif %}
15 | {% endif %}
16 | {% if tag.url %}
17 |
18 | {{- tag.name -}}
19 |
20 | {% else %}
21 |
22 | {{- tag.name -}}
23 |
24 | {% endif %}
25 | {% endfor %}
26 |
27 | {% endif %}
28 |
--------------------------------------------------------------------------------
/overrides/partials/toc-item.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 |
5 |
6 | {{ toc_item.title }}
7 |
8 | {% if toc_item.children %}
9 |
10 |
11 | {% for toc_item in toc_item.children %}
12 | {% include "partials/toc-item.html" %}
13 | {% endfor %}
14 |
15 |
16 | {% endif %}
17 |
18 |
--------------------------------------------------------------------------------
/overrides/partials/toc.html:
--------------------------------------------------------------------------------
1 | {#-
2 | This file was automatically generated - do not edit
3 | -#}
4 | {% set title = lang.t("toc.title") %}
5 | {% if config.mdx_configs.toc and config.mdx_configs.toc.title %}
6 | {% set title = config.mdx_configs.toc.title %}
7 | {% endif %}
8 |
9 | {% set toc = page.toc %}
10 | {% set first = toc | first %}
11 | {% if first and first.level == 1 %}
12 | {% set toc = first.children %}
13 | {% endif %}
14 | {% if toc %}
15 |
16 |
17 | {{ title }}
18 |
19 |
20 | {% for toc_item in toc %}
21 | {% include "partials/toc-item.html" %}
22 | {% endfor %}
23 |
24 | {% endif %}
25 |
26 |
--------------------------------------------------------------------------------
/overrides/plugins/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/overrides/plugins/__init__.py
--------------------------------------------------------------------------------
/overrides/plugins/search/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/overrides/plugins/search/__init__.py
--------------------------------------------------------------------------------
/overrides/plugins/search/plugin.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2016-2021 Martin Donath
2 |
3 | # Permission is hereby granted, free of charge, to any person obtaining a copy
4 | # of this software and associated documentation files (the "Software"), to
5 | # deal in the Software without restriction, including without limitation the
6 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | # sell copies of the Software, and to permit persons to whom the Software is
8 | # furnished to do so, subject to the following conditions:
9 |
10 | # The above copyright notice and this permission notice shall be included in
11 | # all copies or substantial portions of the Software.
12 |
13 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
16 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | # IN THE SOFTWARE.
20 |
21 | import logging
22 |
23 | from mkdocs.commands.build import DuplicateFilter
24 | from mkdocs.contrib.search import SearchPlugin as BasePlugin
25 | from mkdocs.contrib.search.search_index import SearchIndex as BaseIndex
26 |
27 | # -----------------------------------------------------------------------------
28 | # Class
29 | # -----------------------------------------------------------------------------
30 |
31 | # Search plugin with custom search index
32 | class SearchPlugin(BasePlugin):
33 |
34 | # Override to use a custom search index
35 | def on_pre_build(self, config):
36 | super().on_pre_build(config)
37 | self.search_index = SearchIndex(**self.config)
38 |
39 | # -----------------------------------------------------------------------------
40 |
41 | # Search index with support for additional fields
42 | class SearchIndex(BaseIndex):
43 |
44 | # Override to add additional fields for each page
45 | def add_entry_from_context(self, page):
46 | index = len(self._entries)
47 | super().add_entry_from_context(page)
48 | entry = self._entries[index]
49 |
50 | # Add document tags, if any
51 | if page.meta.get("tags"):
52 | if type(page.meta["tags"]) is list:
53 | entry["tags"] = [
54 | str(tag) for tag in page.meta["tags"]
55 | ]
56 | else:
57 | log.warning(
58 | "Skipping 'tags' due to invalid syntax [%s]: %s",
59 | page.file.src_path,
60 | page.meta["tags"]
61 | )
62 |
63 | # Add document boost for search
64 | if "search" in page.meta:
65 | search = page.meta["search"]
66 | if "boost" in search:
67 | entry["boost"] = search["boost"]
68 |
69 | # -----------------------------------------------------------------------------
70 | # Data
71 | # -----------------------------------------------------------------------------
72 |
73 | # Set up logging
74 | log = logging.getLogger("mkdocs")
75 | log.addFilter(DuplicateFilter())
76 |
--------------------------------------------------------------------------------
/overrides/plugins/social/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/overrides/plugins/social/__init__.py
--------------------------------------------------------------------------------
/overrides/plugins/tags/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/overrides/plugins/tags/__init__.py
--------------------------------------------------------------------------------
/site/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/site/assets/images/favicon.png
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.hi.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.ja.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.ta.min.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="-உஊ-ஏஐ-ஙச-ட-னப-யர-ஹ-ிீ-ொ-ௐ---௩௪-௯௰-௹௺-a-zA-Za-zA-Z0-90-9",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}});
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.th.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.vi.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.zh.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
--------------------------------------------------------------------------------
/site/assets/stylesheets/palette.08040f6c.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"palette.css"}
--------------------------------------------------------------------------------
/site/assets/stylesheets/palette.cbb835fc.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"palette.css"}
--------------------------------------------------------------------------------
/site/imgs/cover.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/site/imgs/cover.jpg
--------------------------------------------------------------------------------
/site/overrides/assets/stylesheets/main.8a4f01ed.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["src/overrides/assets/stylesheets/main/_typeset.scss","../../../../src/overrides/assets/stylesheets/main.scss","src/assets/stylesheets/utilities/_break.scss","src/overrides/assets/stylesheets/main/layout/_banner.scss","src/overrides/assets/stylesheets/main/layout/_hero.scss","src/overrides/assets/stylesheets/main/layout/_iconsearch.scss","src/overrides/assets/stylesheets/main/layout/_sponsorship.scss"],"names":[],"mappings":"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","file":"main.css"}
--------------------------------------------------------------------------------
/site/sitemap.xml.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sqlsec/PVE/e833ec099aa5987ddf4017daf12f5c9dc622511a/site/sitemap.xml.gz
--------------------------------------------------------------------------------