forked from drowl87/hextra_mirror
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4d03e35bf2 | ||
![]() |
3242237f6c | ||
![]() |
004bc865aa | ||
![]() |
24de8cb34e |
@ -3,7 +3,7 @@
|
|||||||
"features": {
|
"features": {
|
||||||
"ghcr.io/devcontainers/features/hugo:1": {
|
"ghcr.io/devcontainers/features/hugo:1": {
|
||||||
"extended": true,
|
"extended": true,
|
||||||
"version": "0.145.0"
|
"version": "0.119.0"
|
||||||
},
|
},
|
||||||
"ghcr.io/devcontainers/features/node:1": {}
|
"ghcr.io/devcontainers/features/node:1": {}
|
||||||
},
|
},
|
||||||
|
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -57,7 +57,7 @@ We recommend that you search existing [issues][issues] or discussions before ope
|
|||||||
|
|
||||||
### Local development setup
|
### Local development setup
|
||||||
|
|
||||||
- [Hugo][hugo] >= v0.124.0 (extended version)
|
- [Hugo][hugo] >= v0.115.0 (extended version)
|
||||||
- [Node.js][nodejs]
|
- [Node.js][nodejs]
|
||||||
- [Go][go]
|
- [Go][go]
|
||||||
|
|
||||||
|
15
.github/FUNDING.yml
vendored
15
.github/FUNDING.yml
vendored
@ -1,15 +0,0 @@
|
|||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
github: imfing
|
|
||||||
patreon: # Replace with a single Patreon username
|
|
||||||
open_collective: # Replace with a single Open Collective username
|
|
||||||
ko_fi: # Replace with a single Ko-fi username
|
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
||||||
liberapay: # Replace with a single Liberapay username
|
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
|
||||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
|
||||||
polar: # Replace with a single Polar username
|
|
||||||
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
|
||||||
thanks_dev: # Replace with a single thanks.dev username
|
|
||||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -17,8 +17,6 @@ assignees: ''
|
|||||||
2.
|
2.
|
||||||
3.
|
3.
|
||||||
|
|
||||||
<!-- Provide a minimal example or link to a repository that reproduces the bug -->
|
|
||||||
|
|
||||||
**Expected Behavior**
|
**Expected Behavior**
|
||||||
|
|
||||||
<!-- What should have happened? -->
|
<!-- What should have happened? -->
|
||||||
|
46
.github/workflows/pages.yml
vendored
46
.github/workflows/pages.yml
vendored
@ -1,5 +1,5 @@
|
|||||||
# Build and deploy Hextra docs site to GitHub Pages
|
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
||||||
name: Deploy Hextra docs site to Pages
|
name: Deploy Hugo site to Pages
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# Runs on pushes targeting the default branch
|
# Runs on pushes targeting the default branch
|
||||||
@ -31,43 +31,35 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
HUGO_VERSION: 0.145.0
|
HUGO_VERSION: 0.117.0
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # fetch all history for .GitInfo and .Lastmod
|
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||||
fetch-tags: true
|
|
||||||
submodules: recursive
|
|
||||||
|
|
||||||
- name: Setup Go
|
- name: Setup Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: "1.24"
|
go-version: '1.20'
|
||||||
|
|
||||||
- name: Setup Pages
|
|
||||||
id: pages
|
|
||||||
uses: actions/configure-pages@v5
|
|
||||||
|
|
||||||
- name: Setup Hugo
|
- name: Setup Hugo
|
||||||
run: |
|
uses: peaceiris/actions-hugo@v2
|
||||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
with:
|
||||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
hugo-version: ${{ env.HUGO_VERSION }}
|
||||||
|
extended: true
|
||||||
- name: Make build script executable
|
- name: Build with Hugo
|
||||||
run: chmod +x ./build.sh
|
|
||||||
|
|
||||||
- name: Build all site versions
|
|
||||||
env:
|
env:
|
||||||
|
# For maximum backward compatibility with Hugo modules
|
||||||
HUGO_ENVIRONMENT: production
|
HUGO_ENVIRONMENT: production
|
||||||
HUGO_ENV: production
|
HUGO_ENV: production
|
||||||
run: |
|
run: |
|
||||||
./build.sh "${{ steps.pages.outputs.base_url }}"
|
hugo \
|
||||||
|
--minify \
|
||||||
|
--themesDir=../.. --source=exampleSite \
|
||||||
|
--baseURL "https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/"
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-pages-artifact@v3
|
uses: actions/upload-pages-artifact@v2
|
||||||
with:
|
with:
|
||||||
path: ./public
|
path: ./exampleSite/public
|
||||||
|
|
||||||
# Deployment job
|
# Deployment job
|
||||||
deploy:
|
deploy:
|
||||||
@ -79,4 +71,4 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Deploy to GitHub Pages
|
- name: Deploy to GitHub Pages
|
||||||
id: deployment
|
id: deployment
|
||||||
uses: actions/deploy-pages@v4
|
uses: actions/deploy-pages@v2
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
{
|
{
|
||||||
"plugins": [
|
|
||||||
"prettier-plugin-go-template"
|
|
||||||
],
|
|
||||||
"goTemplateBracketSpacing": true,
|
"goTemplateBracketSpacing": true,
|
||||||
"htmlWhitespaceSensitivity": "css",
|
"htmlWhitespaceSensitivity": "css",
|
||||||
"printWidth": 200,
|
"printWidth": 200,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<h1 align="center">هگزترا</h1>
|
<h1 align="center">هگزترا</h1>
|
||||||
<sup align="center"><a href="README.md">English</a> | <a href="README.zh-cn.md">简体中文</a> | <a href="README.fa.md">فارسی</a></sup>
|
|
||||||
<p align="center">تم هیوگو مدرن، پاسخگو و دارای امکانات کامل برای ایجاد وبسایتهای استاتیک زیبا.</p>
|
<p align="center">تم هیوگو مدرن، پاسخگو و دارای امکانات کامل برای ایجاد وبسایتهای استاتیک زیبا.</p>
|
||||||
|
|
||||||
نسخهی نمایشی → [imfing.github.io/hextra](https://imfing.github.io/hextra/fa)
|
نسخهی نمایشی → [imfing.github.io/hextra](https://imfing.github.io/hextra/fa)
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<h1 align="center">Hextra</h1>
|
<h1 align="center">Hextra</h1>
|
||||||
<sup align="center"><a href="README.md">English</a> | <a href="README.zh-cn.md">简体中文</a> | <a href="README.fa.md">فارسی</a></sup>
|
|
||||||
<p align="center">Modern, responsive, batteries-included Hugo theme for creating beautiful static websites.</p>
|
<p align="center">Modern, responsive, batteries-included Hugo theme for creating beautiful static websites.</p>
|
||||||
|
|
||||||
Demo → [imfing.github.io/hextra](https://imfing.github.io/hextra/)
|
Demo → [imfing.github.io/hextra](https://imfing.github.io/hextra/)
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<h1 align="center">Hextra</h1>
|
<h1 align="center">Hextra</h1>
|
||||||
<sup align="center"><a href="README.md">English</a> | <a href="README.zh-cn.md">简体中文</a> | <a href="README.fa.md">فارسی</a></sup>
|
|
||||||
<p align="center">用于创建美观的静态站点的现代化, 响应式, 功能强大的 Hugo 主题.</p>
|
<p align="center">用于创建美观的静态站点的现代化, 响应式, 功能强大的 Hugo 主题.</p>
|
||||||
|
|
||||||
演示 → [imfing.github.io/hextra](https://imfing.github.io/hextra/)
|
演示 → [imfing.github.io/hextra](https://imfing.github.io/hextra/)
|
||||||
@ -21,7 +20,7 @@
|
|||||||
- **响应式布局和深色模式支持** - 在任何设备上看起来都足够美观, 无论是手机, 平板电脑或者电脑. 深色模式的支持使 Hextra 可以应对各种照明环境.
|
- **响应式布局和深色模式支持** - 在任何设备上看起来都足够美观, 无论是手机, 平板电脑或者电脑. 深色模式的支持使 Hextra 可以应对各种照明环境.
|
||||||
- **快速且轻量** - 由 Hugo 强力支持, Hugo 是一个快如闪电的静态站点生成器, 这一切都只需一个可执行文件, Hextra 始终保持最小化, 无需 Javascript 或者 Node.js.
|
- **快速且轻量** - 由 Hugo 强力支持, Hugo 是一个快如闪电的静态站点生成器, 这一切都只需一个可执行文件, Hextra 始终保持最小化, 无需 Javascript 或者 Node.js.
|
||||||
- **全文搜索** - 集成了 Flexsearch 的全文搜索, 无需额外的配置.
|
- **全文搜索** - 集成了 Flexsearch 的全文搜索, 无需额外的配置.
|
||||||
- **功能齐全** - Markdown, 代码高亮, LaTex 数学公式, diagrams 图表和 Shortcodes 都可以用于丰富你的内容. 目录, 面包屑导航, 分页, 侧边栏等均由 Hextra 自动生成。
|
- **网站中的瑞士军刀** - Markdown, 代码高亮, LaTex 数学公式, diagrams 图表和 Shortcodes 都可以用于丰富你的内容. 目录, 面包屑导航, 分页, 侧边栏等均由 Hextra 自动生成。
|
||||||
- **多语言和 SEO Ready** - Hugo 的多语言模式使得构建多语言网站更简单. 具有 SEO tags, Open Graph, 和 Twitter Cards 等诸多开箱即用的功能.
|
- **多语言和 SEO Ready** - Hugo 的多语言模式使得构建多语言网站更简单. 具有 SEO tags, Open Graph, 和 Twitter Cards 等诸多开箱即用的功能.
|
||||||
|
|
||||||
## 快速开始
|
## 快速开始
|
||||||
|
@ -74,7 +74,7 @@
|
|||||||
/* CommentPreprocFile */ .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
|
/* CommentPreprocFile */ .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
|
||||||
/* Generic */ .chroma .g { }
|
/* Generic */ .chroma .g { }
|
||||||
/* GenericDeleted */ .chroma .gd { color: #ffa198; background-color: #490202 }
|
/* GenericDeleted */ .chroma .gd { color: #ffa198; background-color: #490202 }
|
||||||
/* GenericEmph */ .chroma .ge { color: inherit; font-style: italic }
|
/* GenericEmph */ .chroma .ge { font-style: italic }
|
||||||
/* GenericError */ .chroma .gr { color: #ffa198 }
|
/* GenericError */ .chroma .gr { color: #ffa198 }
|
||||||
/* GenericHeading */ .chroma .gh { color: #79c0ff; font-weight: bold }
|
/* GenericHeading */ .chroma .gh { color: #79c0ff; font-weight: bold }
|
||||||
/* GenericInserted */ .chroma .gi { color: #56d364; background-color: #0f5323 }
|
/* GenericInserted */ .chroma .gi { color: #56d364; background-color: #0f5323 }
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@
|
|||||||
.hextra-badge {
|
|
||||||
@apply hx:inline-flex hx:items-center;
|
|
||||||
}
|
|
@ -1,9 +1,5 @@
|
|||||||
.hextra-cards {
|
.hextra-cards {
|
||||||
grid-template-columns: repeat(auto-fill, minmax(max(250px, calc((100% - 1rem * 2) / var(--hextra-cards-grid-cols))), 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(max(250px, calc((100% - 1rem * 2) / var(--rows))), 1fr));
|
||||||
}
|
|
||||||
|
|
||||||
.hextra-card {
|
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.hextra-card img {
|
.hextra-card img {
|
||||||
@ -22,7 +18,6 @@
|
|||||||
|
|
||||||
.hextra-card p {
|
.hextra-card p {
|
||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark .hextra-card svg {
|
.dark .hextra-card svg {
|
||||||
@ -32,10 +27,3 @@
|
|||||||
.dark .hextra-card:hover svg {
|
.dark .hextra-card:hover svg {
|
||||||
color: currentColor;
|
color: currentColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hextra-card-tag {
|
|
||||||
position: absolute;
|
|
||||||
top: 5px;
|
|
||||||
right: 5px;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
(-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
|
(-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
|
||||||
) {
|
) {
|
||||||
.hextra-code-copy-btn {
|
.hextra-code-copy-btn {
|
||||||
@apply hx:backdrop-blur-md hx:opacity-85 hx:dark:opacity-80;
|
@apply hx-backdrop-blur-md hx-bg-opacity-[.85] dark:hx-bg-opacity-80;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
.hextra-feature-grid {
|
|
||||||
@media (min-width: 1024px) {
|
|
||||||
grid-template-columns: repeat(var(--hextra-feature-grid-cols), minmax(0, 1fr));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +1,29 @@
|
|||||||
.hextra-jupyter-code-cell {
|
.hextra-jupyter-code-cell {
|
||||||
scrollbar-gutter: auto;
|
scrollbar-gutter: auto;
|
||||||
|
|
||||||
@apply hx:mt-6;
|
@apply hx-mt-6;
|
||||||
|
|
||||||
|
.hextra-jupyter-code-cell-source {
|
||||||
|
@apply hx-text-sm;
|
||||||
|
.chroma,
|
||||||
|
pre {
|
||||||
|
@apply hx-m-0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.hextra-jupyter-code-cell-outputs-container {
|
.hextra-jupyter-code-cell-outputs-container {
|
||||||
@apply hx:text-xs hx:overflow-hidden;
|
@apply hx-text-xs hx-overflow-hidden hx-border hx-border-t-0 hx-rounded-b-xl dark:hx-border-neutral-800;
|
||||||
|
|
||||||
.hextra-jupyter-code-cell-outputs {
|
.hextra-jupyter-code-cell-outputs {
|
||||||
@apply hx:overflow-auto hx:max-h-[50vh];
|
@apply hx-overflow-auto hx-max-h-[50vh];
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
@apply hx:text-xs hx:overflow-auto hx:max-w-full;
|
@apply hx-p-4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hextra-jupyter-code-cell:has(.hextra-jupyter-code-cell-outputs) .hextra-jupyter-code-cell-source .chroma {
|
||||||
|
@apply hx-rounded-b-none;
|
||||||
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
nav {
|
nav {
|
||||||
.search-wrapper {
|
.search-wrapper {
|
||||||
@apply hx:hidden hx:md:inline-block;
|
@apply hx-hidden md:hx-inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8,43 +8,48 @@ nav {
|
|||||||
(-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
|
(-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
|
||||||
) {
|
) {
|
||||||
.nav-container-blur {
|
.nav-container-blur {
|
||||||
@apply hx:backdrop-blur-md hx:bg-white/[.85] hx:dark:bg-dark/80!;
|
@apply hx-backdrop-blur-md hx-bg-white/[.85] dark:!hx-bg-dark/80;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hamburger Menu - Flattened Structure */
|
.hamburger-menu svg {
|
||||||
.hamburger-menu svg g {
|
g {
|
||||||
@apply hx:origin-center hx:transition-all hx:duration-100 hx:ease-out;
|
@apply hx-origin-center;
|
||||||
}
|
transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
|
||||||
|
}
|
||||||
|
path {
|
||||||
|
opacity: 1;
|
||||||
|
transition:
|
||||||
|
transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s,
|
||||||
|
opacity 0.2s ease 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
.hamburger-menu svg path {
|
&.open {
|
||||||
@apply hx:opacity-100 hx:transition-all hx:duration-100 hx:ease-out hx:delay-100;
|
path {
|
||||||
}
|
transition:
|
||||||
|
transform 0.2s cubic-bezier(0.25, 1, 0.5, 1),
|
||||||
|
opacity 0s ease 0.2s;
|
||||||
|
}
|
||||||
|
g {
|
||||||
|
transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.hamburger-menu svg.open path {
|
&.open > {
|
||||||
@apply hx:transition-transform hx:duration-100 hx:ease-out hx:delay-0;
|
path {
|
||||||
}
|
@apply hx-opacity-0;
|
||||||
|
}
|
||||||
.hamburger-menu svg.open g {
|
g:nth-of-type(1) {
|
||||||
@apply hx:transition-transform hx:duration-100 hx:ease-out hx:delay-100;
|
@apply hx-rotate-45;
|
||||||
}
|
path {
|
||||||
|
transform: translate3d(0, 4px, 0);
|
||||||
.hamburger-menu svg.open > path {
|
}
|
||||||
@apply hx:opacity-0;
|
}
|
||||||
}
|
g:nth-of-type(2) {
|
||||||
|
@apply -hx-rotate-45;
|
||||||
.hamburger-menu svg.open > g:nth-of-type(1) {
|
path {
|
||||||
@apply hx:rotate-45;
|
transform: translate3d(0, -4px, 0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
.hamburger-menu svg.open > g:nth-of-type(1) path {
|
}
|
||||||
@apply hx:translate-y-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hamburger-menu svg.open > g:nth-of-type(2) {
|
|
||||||
@apply hx:-rotate-45;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hamburger-menu svg.open > g:nth-of-type(2) path {
|
|
||||||
@apply hx:-translate-y-1;
|
|
||||||
}
|
}
|
||||||
|
@ -4,18 +4,18 @@
|
|||||||
|
|
||||||
scrollbar-gutter: stable;
|
scrollbar-gutter: stable;
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
@apply hx:w-3 hx:h-3;
|
@apply hx-w-3 hx-h-3;
|
||||||
}
|
}
|
||||||
&::-webkit-scrollbar-track {
|
&::-webkit-scrollbar-track {
|
||||||
@apply hx:bg-transparent;
|
@apply hx-bg-transparent;
|
||||||
}
|
}
|
||||||
&::-webkit-scrollbar-thumb {
|
&::-webkit-scrollbar-thumb {
|
||||||
@apply hx:rounded-[10px];
|
@apply hx-rounded-[10px];
|
||||||
}
|
}
|
||||||
&:hover::-webkit-scrollbar-thumb {
|
&:hover::-webkit-scrollbar-thumb {
|
||||||
border: 3px solid transparent;
|
border: 3px solid transparent;
|
||||||
background-color: var(--tw-shadow-color);
|
background-color: var(--tw-shadow-color);
|
||||||
background-clip: content-box;
|
background-clip: content-box;
|
||||||
@apply hx:shadow-neutral-500/20 hx:hover:shadow-neutral-500/40;
|
@apply hx-shadow-neutral-500/20 hover:hx-shadow-neutral-500/40;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
.search-wrapper {
|
.search-wrapper {
|
||||||
li {
|
li {
|
||||||
@apply hx:mx-2.5 hx:break-words hx:rounded-md hx:contrast-more:border hx:text-gray-800 hx:contrast-more:border-transparent hx:dark:text-gray-300;
|
@apply hx-mx-2.5 hx-break-words hx-rounded-md contrast-more:hx-border hx-text-gray-800 contrast-more:hx-border-transparent dark:hx-text-gray-300;
|
||||||
a {
|
a {
|
||||||
@apply hx:block hx:scroll-m-12 hx:px-2.5 hx:py-2;
|
@apply hx-block hx-scroll-m-12 hx-px-2.5 hx-py-2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
@apply hx:text-base hx:font-semibold hx:leading-5;
|
@apply hx-text-base hx-font-semibold hx-leading-5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.active {
|
.active {
|
||||||
@apply hx:rounded-md hx:bg-primary-500/10 hx:contrast-more:border-primary-500;
|
@apply hx-rounded-md hx-bg-primary-500/10 contrast-more:hx-border-primary-500;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-result {
|
.no-result {
|
||||||
@apply hx:block hx:select-none hx:p-8 hx:text-center hx:text-sm hx:text-gray-400;
|
@apply hx-block hx-select-none hx-p-8 hx-text-center hx-text-sm hx-text-gray-400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.prefix {
|
.prefix {
|
||||||
@apply hx:mx-2.5 hx:mb-2 hx:mt-6 hx:select-none hx:border-b hx:border-black/10 hx:px-2.5 hx:pb-1.5 hx:text-xs hx:font-semibold
|
@apply hx-mx-2.5 hx-mb-2 hx-mt-6 hx-select-none hx-border-b hx-border-black/10 hx-px-2.5 hx-pb-1.5 hx-text-xs hx-font-semibold
|
||||||
hx:uppercase hx:text-gray-500 hx:first:mt-0 hx:dark:border-white/20 hx:dark:text-gray-300 hx:contrast-more:border-gray-600
|
hx-uppercase hx-text-gray-500 first:hx-mt-0 dark:hx-border-white/20 dark:hx-text-gray-300 contrast-more:hx-border-gray-600
|
||||||
hx:contrast-more:text-gray-900 hx:contrast-more:dark:border-gray-50 hx:contrast-more:dark:text-gray-50;
|
contrast-more:hx-text-gray-900 contrast-more:dark:hx-border-gray-50 contrast-more:dark:hx-text-gray-50;
|
||||||
}
|
}
|
||||||
|
|
||||||
.excerpt {
|
.excerpt {
|
||||||
@apply hx:overflow-hidden hx:text-ellipsis hx:mt-1 hx:text-sm hx:leading-[1.35rem] hx:text-gray-600 hx:dark:text-gray-400 hx:contrast-more:dark:text-gray-50;
|
@apply hx-overflow-hidden hx-text-ellipsis hx-mt-1 hx-text-sm hx-leading-[1.35rem] hx-text-gray-600 dark:hx-text-gray-400 contrast-more:dark:hx-text-gray-50;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
line-clamp: 1;
|
line-clamp: 1;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
@ -33,6 +33,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.match {
|
.match {
|
||||||
@apply hx:text-primary-600;
|
@apply hx-text-primary-600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
@media (max-width: 48rem) {
|
@media (max-width: 767px) {
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
@apply hx:fixed hx:pt-[calc(var(--navbar-height))] hx:top-0 hx:w-full hx:bottom-0 hx:z-[15] hx:overscroll-contain hx:bg-white hx:dark:bg-dark;
|
@apply hx-fixed hx-pt-[calc(var(--navbar-height))] hx-top-0 hx-w-full hx-bottom-0 hx-z-[15] hx-overscroll-contain hx-bg-white dark:hx-bg-dark;
|
||||||
transition: transform 0.4s cubic-bezier(0.52, 0.16, 0.04, 1);
|
transition: transform 0.8s cubic-bezier(0.52, 0.16, 0.04, 1);
|
||||||
will-change: transform, opacity;
|
will-change: transform, opacity;
|
||||||
contain: layout style;
|
contain: layout style;
|
||||||
backface-visibility: hidden;
|
backface-visibility: hidden;
|
||||||
@ -10,12 +10,12 @@
|
|||||||
|
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
li > div {
|
li > div {
|
||||||
@apply hx:h-0;
|
@apply hx-h-0;
|
||||||
}
|
}
|
||||||
li.open > div {
|
li.open > div {
|
||||||
@apply hx:h-auto hx:pt-1;
|
@apply hx-h-auto hx-pt-1;
|
||||||
}
|
}
|
||||||
li.open > a > span > svg > path {
|
li.open > a > span > svg > path {
|
||||||
@apply hx:rotate-90;
|
@apply hx-rotate-90;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,22 +1,17 @@
|
|||||||
.steps {
|
.steps h3 {
|
||||||
:where(h2, h3, h4, h5, h6):not(.no-step-marker) {
|
|
||||||
counter-increment: step;
|
counter-increment: step;
|
||||||
@apply hx:ltr:before:ml-[-41px] hx:rtl:before:mr-[-44px];
|
|
||||||
/* https://github.com/tailwindlabs/tailwindcss/issues/15597#issuecomment-2582673546 */
|
|
||||||
@apply hx:before:bg-gray-100 hx:dark:before:bg-neutral-800;
|
|
||||||
@apply hx:before:border-4 hx:before:border-white hx:dark:before:border-dark;
|
|
||||||
&:before {
|
&:before {
|
||||||
|
@apply hx-absolute hx-w-[33px] hx-h-[33px];
|
||||||
|
@apply hx-border-4 hx-border-white hx-bg-gray-100 dark:hx-border-dark dark:hx-bg-neutral-800;
|
||||||
|
@apply hx-rounded-full hx-text-neutral-400 hx-text-base hx-font-normal hx-text-center -hx-indent-px;
|
||||||
|
@apply hx-mt-[3px] ltr:hx-ml-[-41px] rtl:hx-mr-[-44px];
|
||||||
content: counter(step);
|
content: counter(step);
|
||||||
@apply hx:absolute hx:size-[33px];
|
|
||||||
@apply hx:rounded-full hx:text-neutral-400 hx:text-base hx:font-normal hx:text-center hx:-indent-px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:lang(fa) .steps {
|
:lang(fa) .steps h3 {
|
||||||
:where(h2, h3, h4, h5, h6):not(.no-step-marker) {
|
|
||||||
&:before {
|
&:before {
|
||||||
content: counter(step, persian);
|
content: counter(step, persian);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,53 +1,53 @@
|
|||||||
/* Code syntax highlight */
|
/* Code syntax highlight */
|
||||||
@import "./chroma/light.css";
|
@import "chroma/light.css";
|
||||||
@import "./chroma/dark.css";
|
@import "chroma/dark.css";
|
||||||
|
|
||||||
.hextra-code-block {
|
.hextra-code-block {
|
||||||
@apply hx:text-[.9em] hx:leading-5;
|
@apply hx-text-[.9em] hx-leading-5;
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
@apply hx:text-[.9em] hx:bg-primary-700/5 hx:overflow-x-auto hx:font-medium hx:subpixel-antialiased hx:dark:bg-primary-300/10 hx:contrast-more:border hx:contrast-more:border-primary-900/20 hx:contrast-more:contrast-150 hx:contrast-more:dark:border-primary-100/40;
|
@apply hx-text-[.9em] hx-bg-primary-700/5 hx-overflow-x-auto hx-font-medium hx-subpixel-antialiased dark:hx-bg-primary-300/10 contrast-more:hx-border contrast-more:hx-border-primary-900/20 contrast-more:hx-contrast-150 contrast-more:dark:hx-border-primary-100/40;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filename {
|
.filename {
|
||||||
@apply hx:absolute hx:top-0 hx:z-[1] hx:w-full hx:truncate hx:rounded-t-xl hx:bg-primary-700/5 hx:py-2 hx:px-4 hx:text-xs hx:text-gray-700 hx:dark:bg-primary-300/10 hx:dark:text-gray-200;
|
@apply hx-absolute hx-top-0 hx-z-[1] hx-w-full hx-truncate hx-rounded-t-xl hx-bg-primary-700/5 hx-py-2 hx-px-4 hx-text-xs hx-text-gray-700 dark:hx-bg-primary-300/10 dark:hx-text-gray-200;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filename + pre:not(.lntable pre) {
|
.filename + pre:not(.lntable pre) {
|
||||||
/* Override padding for code blocks with filename but no highlight */
|
/* Override padding for code blocks with filename but no highlight */
|
||||||
@apply hx:pt-12;
|
@apply hx-pt-12;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.hextra-code-block pre:not(.lntable pre) {
|
.hextra-code-block pre:not(.lntable pre) {
|
||||||
@apply hx:px-4 hx:mb-4 hx:py-4 hx:rounded-xl;
|
@apply hx-px-4 hx-mb-4 hx-py-4 hx-rounded-xl;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hextra-code-block div:nth-of-type(2) pre {
|
.hextra-code-block div:nth-of-type(2) pre {
|
||||||
@apply hx:pt-12 hx:pb-4;
|
@apply hx-pt-12 hx-pb-4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chroma {
|
.chroma {
|
||||||
.lntable {
|
.lntable {
|
||||||
@apply hx:m-0 hx:block hx:w-auto hx:overflow-auto hx:rounded-xl;
|
@apply hx-m-0 hx-block hx-w-auto hx-overflow-auto hx-rounded-xl;
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
@apply hx:pt-4 hx:pb-4;
|
@apply hx-pt-4 hx-pb-4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.ln,
|
.ln,
|
||||||
.lnt:not(.hl > .lnt),
|
.lnt:not(.hl > .lnt),
|
||||||
.hl:not(.line) {
|
.hl:not(.line) {
|
||||||
@apply hx:pl-4 hx:pr-4 hx:min-w-[2.6rem] hx:text-neutral-600 hx:dark:text-neutral-300;
|
@apply hx-pl-4 hx-pr-4 hx-min-w-[2.6rem] hx-text-neutral-600 dark:hx-text-neutral-300;
|
||||||
}
|
}
|
||||||
.lntd {
|
.lntd {
|
||||||
@apply hx:p-0 hx:align-top;
|
@apply hx-p-0 hx-align-top;
|
||||||
}
|
}
|
||||||
.lntd:last-of-type {
|
.lntd:last-of-type {
|
||||||
@apply hx:w-full;
|
@apply hx-w-full;
|
||||||
}
|
}
|
||||||
/* LineHighlight */
|
/* LineHighlight */
|
||||||
.hl {
|
.hl {
|
||||||
@apply hx:block hx:w-full hx:bg-primary-800/10;
|
@apply hx-block hx-w-full hx-bg-primary-800/10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
hx:max-w-full
|
|
@ -1,33 +1,29 @@
|
|||||||
@import "tailwindcss" prefix(hx);
|
@import "tailwind.css";
|
||||||
|
|
||||||
@custom-variant dark (&:where(.dark, .dark *));
|
@import "typography.css";
|
||||||
|
@import "highlight.css";
|
||||||
@theme {
|
@import "components/cards.css";
|
||||||
--color-primary-50: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 47));
|
@import "components/steps.css";
|
||||||
--color-primary-100: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 44));
|
@import "components/search.css";
|
||||||
--color-primary-200: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 36));
|
@import "components/sidebar.css";
|
||||||
--color-primary-300: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 27));
|
@import "components/navbar.css";
|
||||||
--color-primary-400: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 16));
|
@import "components/scrollbar.css";
|
||||||
--color-primary-500: hsl(var(--primary-hue) var(--primary-saturation) var(--primary-lightness));
|
@import "components/code-copy.css";
|
||||||
--color-primary-600: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45));
|
@import "components/jupyter.css";
|
||||||
--color-primary-700: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 39));
|
|
||||||
--color-primary-800: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 32));
|
|
||||||
--color-primary-900: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 24));
|
|
||||||
--color-dark: #111;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
@apply hx:text-base hx:antialiased;
|
@apply hx-text-base hx-antialiased;
|
||||||
|
font-feature-settings: "rlig" 1, "calt" 1, "ss01" 1;
|
||||||
|
-webkit-tap-highlight-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@apply hx:w-full hx:bg-white hx:dark:bg-dark hx:dark:text-gray-100;
|
@apply hx-w-full hx-bg-white dark:hx-bg-dark dark:hx-text-gray-100;
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--primary-hue: 212deg;
|
--primary-hue: 212deg;
|
||||||
--primary-saturation: 100%;
|
--primary-saturation: 100%;
|
||||||
--primary-lightness: 50%;
|
|
||||||
--navbar-height: 4rem;
|
--navbar-height: 4rem;
|
||||||
--menu-height: 3.75rem;
|
--menu-height: 3.75rem;
|
||||||
}
|
}
|
||||||
@ -35,18 +31,4 @@ body {
|
|||||||
.dark {
|
.dark {
|
||||||
--primary-hue: 204deg;
|
--primary-hue: 204deg;
|
||||||
--primary-saturation: 100%;
|
--primary-saturation: 100%;
|
||||||
--primary-lightness: 50%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@import "./typography.css";
|
|
||||||
@import "./highlight.css";
|
|
||||||
@import "./components/cards.css";
|
|
||||||
@import "./components/steps.css";
|
|
||||||
@import "./components/search.css";
|
|
||||||
@import "./components/sidebar.css";
|
|
||||||
@import "./components/navbar.css";
|
|
||||||
@import "./components/scrollbar.css";
|
|
||||||
@import "./components/code-copy.css";
|
|
||||||
@import "./components/hextra/feature-grid.css";
|
|
||||||
@import "./components/jupyter.css";
|
|
||||||
@import "./components/badge.css";
|
|
||||||
|
3
assets/css/tailwind.css
Normal file
3
assets/css/tailwind.css
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
@ -1,130 +1,117 @@
|
|||||||
.content {
|
.content {
|
||||||
:where(h1):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(h1):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:mt-2 hx:text-4xl hx:font-bold hx:tracking-tight hx:text-slate-900 hx:dark:text-slate-100;
|
@apply hx-mt-2 hx-text-4xl hx-font-bold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100;
|
||||||
}
|
}
|
||||||
:where(h2):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(h2):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:font-semibold hx:tracking-tight hx:text-slate-900 hx:dark:text-slate-100 hx:mt-10 hx:border-b hx:pb-1 hx:text-3xl hx:border-neutral-200/70 hx:contrast-more:border-neutral-400 hx:dark:border-primary-100/10 hx:contrast-more:dark:border-neutral-400;
|
@apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-10 hx-border-b hx-pb-1 hx-text-3xl hx-border-neutral-200/70 contrast-more:hx-border-neutral-400 dark:hx-border-primary-100/10 contrast-more:dark:hx-border-neutral-400;
|
||||||
}
|
}
|
||||||
:where(h3):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(h3):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:font-semibold hx:tracking-tight hx:text-slate-900 hx:dark:text-slate-100 hx:mt-8 hx:text-2xl;
|
@apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-2xl;
|
||||||
}
|
}
|
||||||
:where(h4):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(h4):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:font-semibold hx:tracking-tight hx:text-slate-900 hx:dark:text-slate-100 hx:mt-8 hx:text-xl;
|
@apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-xl;
|
||||||
}
|
}
|
||||||
:where(h5):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(h5):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:font-semibold hx:tracking-tight hx:text-slate-900 hx:dark:text-slate-100 hx:mt-8 hx:text-lg;
|
@apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-lg;
|
||||||
}
|
}
|
||||||
:where(h6):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(h6):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:font-semibold hx:tracking-tight hx:text-slate-900 hx:dark:text-slate-100 hx:mt-8 hx:text-base;
|
@apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-base;
|
||||||
}
|
}
|
||||||
:where(p):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(p):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:mt-6 hx:leading-7 hx:first:mt-0;
|
@apply hx-mt-6 hx-leading-7 first:hx-mt-0;
|
||||||
}
|
}
|
||||||
:where(a):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(a):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:text-primary-600 hx:underline hx:decoration-from-font;
|
@apply hx-text-primary-600 hx-underline hx-decoration-from-font [text-underline-position:from-font];
|
||||||
}
|
}
|
||||||
:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:mt-6 hx:border-gray-300 hx:italic hx:text-gray-700 hx:dark:border-gray-700 hx:dark:text-gray-400 hx:first:mt-0 hx:ltr:border-l-2 hx:ltr:pl-6 hx:rtl:border-r-2 hx:rtl:pr-6;
|
@apply hx-mt-6 hx-border-gray-300 hx-italic hx-text-gray-700 dark:hx-border-gray-700 dark:hx-text-gray-400 first:hx-mt-0 ltr:hx-border-l-2 ltr:hx-pl-6 rtl:hx-border-r-2 rtl:hx-pr-6;
|
||||||
}
|
}
|
||||||
:where(pre):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) {
|
:where(pre):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:bg-primary-700/5 hx:mb-4 hx:overflow-x-auto hx:rounded-xl hx:font-medium hx:subpixel-antialiased hx:dark:bg-primary-300/10 hx:text-[.9em] hx:contrast-more:border hx:contrast-more:border-primary-900/20 hx:contrast-more:contrast-150 hx:contrast-more:dark:border-primary-100/40 hx:py-4;
|
@apply hx-bg-primary-700/5 hx-mb-4 hx-overflow-x-auto hx-rounded-xl hx-font-medium hx-subpixel-antialiased dark:hx-bg-primary-300/10 hx-text-[.9em] contrast-more:hx-border contrast-more:hx-border-primary-900/20 contrast-more:hx-contrast-150 contrast-more:dark:hx-border-primary-100/40 hx-py-4;
|
||||||
}
|
}
|
||||||
:where(code):not(:where(.hextra-code-block code, [class~=not-prose],[class~=not-prose] *)) {
|
:where(code):not(:where(.hextra-code-block code, [class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:border-black/4 hx:bg-black/3 hx:break-words hx:rounded-md hx:border hx:py-0.5 hx:px-[.25em] hx:text-[.9em] hx:dark:border-white/10 hx:dark:bg-white/10;
|
@apply hx-border-black hx-border-opacity-[0.04] hx-bg-opacity-[0.03] hx-bg-black hx-break-words hx-rounded-md hx-border hx-py-0.5 hx-px-[.25em] hx-text-[.9em] dark:hx-border-white/10 dark:hx-bg-white/10;
|
||||||
}
|
}
|
||||||
:where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) {
|
:where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:block hx:overflow-x-auto hx:mt-6 hx:p-0 hx:first:mt-0;
|
@apply hx-block hx-overflow-x-auto hx-mt-6 hx-p-0 first:hx-mt-0;
|
||||||
|
|
||||||
tr {
|
tr {
|
||||||
@apply hx:m-0 hx:border-t hx:border-gray-300 hx:p-0 hx:dark:border-gray-600 hx:even:bg-gray-100 hx:even:dark:bg-gray-600/20;
|
@apply hx-m-0 hx-border-t hx-border-gray-300 hx-p-0 dark:hx-border-gray-600 even:hx-bg-gray-100 even:dark:hx-bg-gray-600/20;
|
||||||
}
|
}
|
||||||
th {
|
th {
|
||||||
@apply hx:m-0 hx:border hx:border-gray-300 hx:px-4 hx:py-2 hx:font-semibold hx:dark:border-gray-600;
|
@apply hx-m-0 hx-border hx-border-gray-300 hx-px-4 hx-py-2 hx-font-semibold dark:hx-border-gray-600;
|
||||||
}
|
}
|
||||||
td {
|
td {
|
||||||
@apply hx:m-0 hx:border hx:border-gray-300 hx:px-4 hx:py-2 hx:dark:border-gray-600;
|
@apply hx-m-0 hx-border hx-border-gray-300 hx-px-4 hx-py-2 dark:hx-border-gray-600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
:where(ol):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(ol):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:mt-6 hx:list-decimal hx:first:mt-0 hx:ltr:ml-6 hx:rtl:mr-6;
|
@apply hx-mt-6 hx-list-decimal first:hx-mt-0 ltr:hx-ml-6 rtl:hx-mr-6;
|
||||||
li {
|
li {
|
||||||
@apply hx:my-2;
|
@apply hx-my-2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
:where(ul):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(ul):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:mt-6 hx:list-disc hx:first:mt-0 hx:ltr:ml-6 hx:rtl:mr-6;
|
@apply hx-mt-6 hx-list-disc first:hx-mt-0 ltr:hx-ml-6 rtl:hx-mr-6;
|
||||||
li {
|
li {
|
||||||
@apply hx:my-2;
|
@apply hx-my-2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* This CSS rule targets the first nested unordered (ul) or ordered (ol) list
|
/* This CSS rule targets the first nested unordered (ul) or ordered (ol) list
|
||||||
inside the list item (li) of any parent ul or ol.
|
inside the list item (li) of any parent ul or ol.
|
||||||
The rule sets the top margin of the selected list to zero. */
|
The rule sets the top margin of the selected list to zero. */
|
||||||
:where(ul, ol) > li > :where(ul, ol):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(ul, ol) > li > :where(ul, ol):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:mt-0;
|
@apply hx-mt-0;
|
||||||
}
|
}
|
||||||
:where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:border-black/4 hx:bg-black/3 hx:break-words hx:rounded-md hx:border hx:py-0.5 hx:px-[.25em] hx:text-[.9em] hx:dark:border-white/10 hx:dark:bg-white/10;
|
@apply hx-border-black hx-border-opacity-[0.04] hx-bg-opacity-[0.03] hx-bg-black hx-break-words hx-rounded-md hx-border hx-py-0.5 hx-px-[.25em] hx-text-[.9em] dark:hx-border-white/10 dark:hx-bg-white/10;
|
||||||
}
|
}
|
||||||
:where(pre.mermaid):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) {
|
:where(pre.mermaid):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:bg-transparent hx:rounded-none hx:dark:bg-transparent;
|
@apply hx-bg-transparent hx-rounded-none dark:hx-bg-transparent;
|
||||||
}
|
}
|
||||||
:where(img):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(img):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
@apply hx:mx-auto hx:my-4 hx:rounded-md;
|
@apply hx-mx-auto hx-my-4 hx-rounded-md;
|
||||||
}
|
}
|
||||||
:where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
:where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
||||||
figcaption {
|
figcaption {
|
||||||
@apply hx:text-sm hx:text-gray-500 hx:dark:text-gray-400 hx:mt-2 hx:block hx:text-center;
|
@apply hx-text-sm hx-text-gray-500 dark:hx-text-gray-400 hx-mt-2 hx-block hx-text-center;
|
||||||
}
|
|
||||||
}
|
|
||||||
/* Definition list */
|
|
||||||
:where(dl):not(:where([class~=not-prose],[class~=not-prose] *)) {
|
|
||||||
dt {
|
|
||||||
@apply hx:mt-6 hx:font-semibold;
|
|
||||||
}
|
|
||||||
dd {
|
|
||||||
@apply hx:my-2 hx:ps-6;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.footnotes {
|
.footnotes {
|
||||||
@apply hx:mt-12 hx:text-sm;
|
@apply hx-mt-12 hx-text-sm;
|
||||||
|
|
||||||
hr {
|
|
||||||
@apply hx:border-gray-200 hx:dark:border-neutral-800;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.subheading-anchor {
|
.subheading-anchor {
|
||||||
@apply hx:opacity-0 hx:transition-opacity hx:ltr:ml-1 hx:rtl:mr-1;
|
@apply hx-opacity-0 hx-transition-opacity ltr:hx-ml-1 rtl:hx-mr-1;
|
||||||
|
|
||||||
span:target + &,
|
span:target + &,
|
||||||
:hover > &,
|
:hover > &,
|
||||||
&:focus {
|
&:focus {
|
||||||
@apply hx:opacity-100;
|
@apply hx-opacity-100;
|
||||||
}
|
}
|
||||||
|
|
||||||
span + &,
|
span + &,
|
||||||
:hover > & {
|
:hover > & {
|
||||||
@apply hx:no-underline!;
|
@apply !hx-no-underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
@apply hx:after:text-gray-300 hx:dark:after:text-neutral-700;
|
|
||||||
&:after {
|
&:after {
|
||||||
@apply hx:content-['#'] hx:px-1;
|
@apply hx-content-['#'] hx-px-1;
|
||||||
|
@apply hx-text-gray-300 dark:hx-text-neutral-700;
|
||||||
span:target + & {
|
span:target + & {
|
||||||
@apply hx:text-gray-400;
|
@apply hx-text-gray-400;
|
||||||
@apply hx:dark:text-neutral-500;
|
@apply dark:hx-text-neutral-500;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
article details > summary {
|
article details > summary {
|
||||||
&::-webkit-details-marker {
|
&::-webkit-details-marker {
|
||||||
@apply hx:hidden;
|
@apply hx-hidden;
|
||||||
}
|
}
|
||||||
&::before {
|
&::before {
|
||||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='hx:h-5 hx:w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E");
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='hx-h-5 hx-w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E");
|
||||||
height: 1.2em;
|
height: 1.2em;
|
||||||
width: 1.2em;
|
width: 1.2em;
|
||||||
vertical-align: -4px;
|
vertical-align: -4px;
|
||||||
|
@ -5,9 +5,9 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
if (backToTop) {
|
if (backToTop) {
|
||||||
document.addEventListener("scroll", (e) => {
|
document.addEventListener("scroll", (e) => {
|
||||||
if (window.scrollY > 300) {
|
if (window.scrollY > 300) {
|
||||||
backToTop.classList.remove("hx:opacity-0");
|
backToTop.classList.remove("hx-opacity-0");
|
||||||
} else {
|
} else {
|
||||||
backToTop.classList.add("hx:opacity-0");
|
backToTop.classList.add("hx-opacity-0");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
// select the kbd element under the .search-wrapper class
|
// select the kbd element under the .search-wrapper class
|
||||||
const keys = document.querySelectorAll(".search-wrapper kbd");
|
const keys = document.querySelectorAll(".search-wrapper kbd");
|
||||||
keys.forEach(key => {
|
keys.forEach(key => {
|
||||||
key.innerHTML = '<span class="hx:text-xs">⌘</span>K';
|
key.innerHTML = '<span class="hx-text-xs">⌘</span>K';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -27,20 +27,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
el.addEventListener('focus', init);
|
el.addEventListener('focus', init);
|
||||||
el.addEventListener('keyup', search);
|
el.addEventListener('keyup', search);
|
||||||
el.addEventListener('keydown', handleKeyDown);
|
el.addEventListener('keydown', handleKeyDown);
|
||||||
el.addEventListener('input', handleInputChange);
|
|
||||||
}
|
|
||||||
|
|
||||||
const shortcutElements = document.querySelectorAll('.search-wrapper kbd');
|
|
||||||
|
|
||||||
function setShortcutElementsOpacity(opacity) {
|
|
||||||
shortcutElements.forEach(el => {
|
|
||||||
el.style.opacity = opacity;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleInputChange(e) {
|
|
||||||
const opacity = e.target.value.length > 0 ? 0 : 100;
|
|
||||||
setShortcutElementsOpacity(opacity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the search wrapper, input, and results elements.
|
// Get the search wrapper, input, and results elements.
|
||||||
@ -93,7 +79,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
e.target !== resultsElement &&
|
e.target !== resultsElement &&
|
||||||
!resultsElement.contains(e.target)
|
!resultsElement.contains(e.target)
|
||||||
) {
|
) {
|
||||||
setShortcutElementsOpacity(100);
|
|
||||||
hideSearchResults();
|
hideSearchResults();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -143,7 +128,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
function hideSearchResults() {
|
function hideSearchResults() {
|
||||||
const { resultsElement } = getActiveSearchElement();
|
const { resultsElement } = getActiveSearchElement();
|
||||||
if (!resultsElement) return;
|
if (!resultsElement) return;
|
||||||
resultsElement.classList.add('hx:hidden');
|
resultsElement.classList.add('hx-hidden');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle keyboard events.
|
// Handle keyboard events.
|
||||||
@ -172,10 +157,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
case 'Escape':
|
case 'Escape':
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
hideSearchResults();
|
hideSearchResults();
|
||||||
// Clear the input when pressing escape
|
|
||||||
inputElement.value = '';
|
|
||||||
inputElement.dispatchEvent(new Event('input'));
|
|
||||||
// Remove focus from the input
|
|
||||||
inputElement.blur();
|
inputElement.blur();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -189,42 +170,27 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// Preload the search index.
|
||||||
* Preloads the search index by fetching data and adding it to the FlexSearch index.
|
|
||||||
* @returns {Promise<void>} A promise that resolves when the index is preloaded.
|
|
||||||
*/
|
|
||||||
async function preloadIndex() {
|
async function preloadIndex() {
|
||||||
const tokenize = '{{- site.Params.search.flexsearch.tokenize | default "forward" -}}';
|
const tokenize = '{{- site.Params.search.flexsearch.tokenize | default "forward" -}}';
|
||||||
|
|
||||||
// https://github.com/TryGhost/Ghost/pull/21148
|
|
||||||
const regex = new RegExp(
|
|
||||||
`[\u{4E00}-\u{9FFF}\u{3040}-\u{309F}\u{30A0}-\u{30FF}\u{AC00}-\u{D7A3}\u{3400}-\u{4DBF}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B73F}\u{2B740}-\u{2B81F}\u{2B820}-\u{2CEAF}\u{2CEB0}-\u{2EBEF}\u{30000}-\u{3134F}\u{31350}-\u{323AF}\u{2EBF0}-\u{2EE5F}\u{F900}-\u{FAFF}\u{2F800}-\u{2FA1F}]|[0-9A-Za-zа-я\u00C0-\u017F\u0400-\u04FF\u0600-\u06FF\u0980-\u09FF\u1E00-\u1EFF\u0590-\u05FF]+`,
|
|
||||||
'mug'
|
|
||||||
);
|
|
||||||
const encode = (str) => { return ('' + str).toLowerCase().match(regex) ?? []; }
|
|
||||||
|
|
||||||
window.pageIndex = new FlexSearch.Document({
|
window.pageIndex = new FlexSearch.Document({
|
||||||
tokenize,
|
tokenize,
|
||||||
encode,
|
|
||||||
cache: 100,
|
cache: 100,
|
||||||
document: {
|
document: {
|
||||||
id: 'id',
|
id: 'id',
|
||||||
store: ['title', 'crumb'],
|
store: ['title'],
|
||||||
index: "content"
|
index: "content"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
window.sectionIndex = new FlexSearch.Document({
|
window.sectionIndex = new FlexSearch.Document({
|
||||||
tokenize,
|
tokenize,
|
||||||
encode,
|
|
||||||
cache: 100,
|
cache: 100,
|
||||||
document: {
|
document: {
|
||||||
id: 'id',
|
id: 'id',
|
||||||
store: ['title', 'content', 'url', 'display', 'crumb'],
|
store: ['title', 'content', 'url', 'display'],
|
||||||
index: "content",
|
index: "content",
|
||||||
tag: [{
|
tag: 'pageId'
|
||||||
field: "pageId"
|
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -234,30 +200,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
for (const route in data) {
|
for (const route in data) {
|
||||||
let pageContent = '';
|
let pageContent = '';
|
||||||
++pageId;
|
++pageId;
|
||||||
const urlParts = route.split('/').filter(x => x != "" && !x.startsWith('#'));
|
|
||||||
|
|
||||||
let crumb = '';
|
|
||||||
let searchUrl = '/';
|
|
||||||
for (let i = 0; i < urlParts.length; i++) {
|
|
||||||
const urlPart = urlParts[i];
|
|
||||||
searchUrl += urlPart + '/'
|
|
||||||
|
|
||||||
const crumbData = data[searchUrl];
|
|
||||||
if (!crumbData) {
|
|
||||||
console.warn('Excluded page', searchUrl, '- will not be included for search result breadcrumb for', route);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
let title = data[searchUrl].title;
|
|
||||||
if (title == "_index") {
|
|
||||||
title = urlPart.split("-").map(x => x).join(" ");
|
|
||||||
}
|
|
||||||
crumb += title;
|
|
||||||
|
|
||||||
if (i < urlParts.length - 1) {
|
|
||||||
crumb += ' > ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const heading in data[route].data) {
|
for (const heading in data[route].data) {
|
||||||
const [hash, text] = heading.split('#');
|
const [hash, text] = heading.split('#');
|
||||||
@ -271,7 +213,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
id: url,
|
id: url,
|
||||||
url,
|
url,
|
||||||
title,
|
title,
|
||||||
crumb,
|
|
||||||
pageId: `page_${pageId}`,
|
pageId: `page_${pageId}`,
|
||||||
content: title,
|
content: title,
|
||||||
...(paragraphs[0] && { display: paragraphs[0] })
|
...(paragraphs[0] && { display: paragraphs[0] })
|
||||||
@ -282,7 +223,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
id: `${url}_${i}`,
|
id: `${url}_${i}`,
|
||||||
url,
|
url,
|
||||||
title,
|
title,
|
||||||
crumb,
|
|
||||||
pageId: `page_${pageId}`,
|
pageId: `page_${pageId}`,
|
||||||
content: paragraphs[i]
|
content: paragraphs[i]
|
||||||
});
|
});
|
||||||
@ -294,17 +234,12 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
window.pageIndex.add({
|
window.pageIndex.add({
|
||||||
id: pageId,
|
id: pageId,
|
||||||
title: data[route].title,
|
title: data[route].title,
|
||||||
crumb,
|
|
||||||
content: pageContent
|
content: pageContent
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Performs a search based on the provided query and displays the results.
|
|
||||||
* @param {Event} e - The event object.
|
|
||||||
*/
|
|
||||||
function search(e) {
|
function search(e) {
|
||||||
const query = e.target.value;
|
const query = e.target.value;
|
||||||
if (!e.target.value) {
|
if (!e.target.value) {
|
||||||
@ -316,7 +251,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
while (resultsElement.firstChild) {
|
while (resultsElement.firstChild) {
|
||||||
resultsElement.removeChild(resultsElement.firstChild);
|
resultsElement.removeChild(resultsElement.firstChild);
|
||||||
}
|
}
|
||||||
resultsElement.classList.remove('hx:hidden');
|
resultsElement.classList.remove('hx-hidden');
|
||||||
|
|
||||||
const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || [];
|
const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || [];
|
||||||
|
|
||||||
@ -328,7 +263,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
pageTitleMatches[i] = 0;
|
pageTitleMatches[i] = 0;
|
||||||
|
|
||||||
// Show the top 5 results for each page
|
// Show the top 5 results for each page
|
||||||
const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: { 'pageId': `page_${result.id}` } })[0]?.result || [];
|
const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: `page_${result.id}` })[0]?.result || [];
|
||||||
let isFirstItemOfPage = true
|
let isFirstItemOfPage = true
|
||||||
const occurred = {}
|
const occurred = {}
|
||||||
|
|
||||||
@ -347,7 +282,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
_page_rk: i,
|
_page_rk: i,
|
||||||
_section_rk: j,
|
_section_rk: j,
|
||||||
route: url,
|
route: url,
|
||||||
prefix: isFirstItemOfPage ? result.doc.crumb : undefined,
|
prefix: isFirstItemOfPage ? result.doc.title : undefined,
|
||||||
children: { title, content }
|
children: { title, content }
|
||||||
})
|
})
|
||||||
isFirstItemOfPage = false
|
isFirstItemOfPage = false
|
||||||
@ -373,12 +308,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
displayResults(sortedResults, query);
|
displayResults(sortedResults, query);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays the search results on the page.
|
|
||||||
*
|
|
||||||
* @param {Array} results - The array of search results.
|
|
||||||
* @param {string} query - The search query.
|
|
||||||
*/
|
|
||||||
function displayResults(results, query) {
|
function displayResults(results, query) {
|
||||||
const { resultsElement } = getActiveSearchElement();
|
const { resultsElement } = getActiveSearchElement();
|
||||||
if (!resultsElement) return;
|
if (!resultsElement) return;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
switcher.dataset.state = switcher.dataset.state === 'open' ? 'closed' : 'open';
|
switcher.dataset.state = switcher.dataset.state === 'open' ? 'closed' : 'open';
|
||||||
const optionsElement = switcher.nextElementSibling;
|
const optionsElement = switcher.nextElementSibling;
|
||||||
optionsElement.classList.toggle('hx:hidden');
|
optionsElement.classList.toggle('hx-hidden');
|
||||||
|
|
||||||
// Calculate position of language options element
|
// Calculate position of language options element
|
||||||
const switcherRect = switcher.getBoundingClientRect();
|
const switcherRect = switcher.getBoundingClientRect();
|
||||||
@ -21,7 +21,7 @@
|
|||||||
languageSwitchers.forEach((switcher) => {
|
languageSwitchers.forEach((switcher) => {
|
||||||
switcher.dataset.state = 'closed';
|
switcher.dataset.state = 'closed';
|
||||||
const optionsElement = switcher.nextElementSibling;
|
const optionsElement = switcher.nextElementSibling;
|
||||||
optionsElement.classList.add('hx:hidden');
|
optionsElement.classList.add('hx-hidden');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2,39 +2,48 @@
|
|||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
const menu = document.querySelector('.hamburger-menu');
|
const menu = document.querySelector('.hamburger-menu');
|
||||||
|
const overlay = document.querySelector('.mobile-menu-overlay');
|
||||||
const sidebarContainer = document.querySelector('.sidebar-container');
|
const sidebarContainer = document.querySelector('.sidebar-container');
|
||||||
|
|
||||||
|
// Initialize the overlay
|
||||||
|
const overlayClasses = ['hx-fixed', 'hx-inset-0', 'hx-z-10', 'hx-bg-black/80', 'dark:hx-bg-black/60'];
|
||||||
|
overlay.classList.add('hx-bg-transparent');
|
||||||
|
overlay.classList.remove("hx-hidden", ...overlayClasses);
|
||||||
|
|
||||||
function toggleMenu() {
|
function toggleMenu() {
|
||||||
// Toggle the hamburger menu
|
// Toggle the hamburger menu
|
||||||
menu.querySelector('svg').classList.toggle('open');
|
menu.querySelector('svg').classList.toggle('open');
|
||||||
|
|
||||||
// When the menu is open, we want to show the navigation sidebar
|
// When the menu is open, we want to show the navigation sidebar
|
||||||
sidebarContainer.classList.toggle('hx:max-md:[transform:translate3d(0,-100%,0)]');
|
sidebarContainer.classList.toggle('max-md:[transform:translate3d(0,-100%,0)]');
|
||||||
sidebarContainer.classList.toggle('hx:max-md:[transform:translate3d(0,0,0)]');
|
sidebarContainer.classList.toggle('max-md:[transform:translate3d(0,0,0)]');
|
||||||
|
|
||||||
// When the menu is open, we want to prevent the body from scrolling
|
// When the menu is open, we want to prevent the body from scrolling
|
||||||
document.body.classList.toggle('hx:overflow-hidden');
|
document.body.classList.toggle('hx-overflow-hidden');
|
||||||
document.body.classList.toggle('hx:md:overflow-auto');
|
document.body.classList.toggle('md:hx-overflow-auto');
|
||||||
}
|
}
|
||||||
|
|
||||||
menu.addEventListener('click', (e) => {
|
menu.addEventListener('click', (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
toggleMenu();
|
toggleMenu();
|
||||||
|
|
||||||
|
if (overlay.classList.contains('hx-bg-transparent')) {
|
||||||
|
// Show the overlay
|
||||||
|
overlay.classList.add(...overlayClasses);
|
||||||
|
overlay.classList.remove('hx-bg-transparent');
|
||||||
|
} else {
|
||||||
|
// Hide the overlay
|
||||||
|
overlay.classList.remove(...overlayClasses);
|
||||||
|
overlay.classList.add('hx-bg-transparent');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Select all anchor tags in the sidebar container
|
overlay.addEventListener('click', (e) => {
|
||||||
const sidebarLinks = sidebarContainer.querySelectorAll('a');
|
e.preventDefault();
|
||||||
|
|
||||||
// Add click event listener to each anchor tag
|
|
||||||
sidebarLinks.forEach(link => {
|
|
||||||
link.addEventListener('click', (e) => {
|
|
||||||
// Check if the href attribute contains a hash symbol (links to a heading)
|
|
||||||
if (link.getAttribute('href') && link.getAttribute('href').startsWith('#')) {
|
|
||||||
// Only dismiss overlay on mobile view
|
|
||||||
if (window.innerWidth < 768) {
|
|
||||||
toggleMenu();
|
toggleMenu();
|
||||||
}
|
|
||||||
}
|
// Hide the overlay
|
||||||
});
|
overlay.classList.remove(...overlayClasses);
|
||||||
|
overlay.classList.add('hx-bg-transparent');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
document.addEventListener("DOMContentLoaded", function () {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
scrollToActiveItem();
|
|
||||||
enableCollapsibles();
|
|
||||||
});
|
|
||||||
|
|
||||||
function enableCollapsibles() {
|
|
||||||
const buttons = document.querySelectorAll(".hextra-sidebar-collapsible-button");
|
const buttons = document.querySelectorAll(".hextra-sidebar-collapsible-button");
|
||||||
buttons.forEach(function (button) {
|
buttons.forEach(function (button) {
|
||||||
button.addEventListener("click", function (e) {
|
button.addEventListener("click", function (e) {
|
||||||
@ -14,23 +9,4 @@ function enableCollapsibles() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
|
|
||||||
function scrollToActiveItem() {
|
|
||||||
const sidebarScrollbar = document.querySelector("aside.sidebar-container > .hextra-scrollbar");
|
|
||||||
const activeItems = document.querySelectorAll(".sidebar-active-item");
|
|
||||||
const visibleActiveItem = Array.from(activeItems).find(function (activeItem) {
|
|
||||||
return activeItem.getBoundingClientRect().height > 0;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!visibleActiveItem) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const yOffset = visibleActiveItem.clientHeight;
|
|
||||||
const yDistance = visibleActiveItem.getBoundingClientRect().top - sidebarScrollbar.getBoundingClientRect().top;
|
|
||||||
sidebarScrollbar.scrollTo({
|
|
||||||
behavior: "instant",
|
|
||||||
top: yDistance - yOffset
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
document.querySelectorAll('.hextra-tabs-toggle').forEach(function (button) {
|
document.querySelectorAll('.tabs-toggle').forEach(function (button) {
|
||||||
button.addEventListener('click', function (e) {
|
button.addEventListener('click', function (e) {
|
||||||
// set parent tabs to unselected
|
// set parent tabs to unselected
|
||||||
const tabs = Array.from(e.target.parentElement.querySelectorAll('.hextra-tabs-toggle'));
|
const tabs = Array.from(e.target.parentElement.querySelectorAll('.tabs-toggle'));
|
||||||
tabs.map(tab => tab.dataset.state = '');
|
tabs.map(tab => tab.dataset.state = '');
|
||||||
|
|
||||||
// set current tab to selected
|
// set current tab to selected
|
||||||
e.target.dataset.state = 'selected';
|
e.target.dataset.state = 'selected';
|
||||||
|
|
||||||
// set all panels to unselected
|
// set all panels to unselected
|
||||||
const panelsContainer = e.target.parentElement.parentElement.nextElementSibling;
|
const panelsContainer = e.target.parentElement.nextElementSibling;
|
||||||
Array.from(panelsContainer.children).forEach(function (panel) {
|
Array.from(panelsContainer.children).forEach(function (panel) {
|
||||||
panel.dataset.state = '';
|
panel.dataset.state = '';
|
||||||
});
|
});
|
||||||
|
39
assets/lib/flexsearch/flexsearch.bundle.min.js
vendored
Normal file
39
assets/lib/flexsearch/flexsearch.bundle.min.js
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/**
|
||||||
|
* Skipped minification because the original files appears to be already minified.
|
||||||
|
* Original file: /npm/flexsearch@0.7.31/dist/flexsearch.bundle.js
|
||||||
|
*
|
||||||
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||||
|
*/
|
||||||
|
/**!
|
||||||
|
* FlexSearch.js v0.7.31 (Bundle)
|
||||||
|
* Copyright 2018-2022 Nextapps GmbH
|
||||||
|
* Author: Thomas Wilkerling
|
||||||
|
* Licence: Apache-2.0
|
||||||
|
* https://github.com/nextapps-de/flexsearch
|
||||||
|
*/
|
||||||
|
(function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;var t;function u(a){return"undefined"!==typeof a?a:!0}function aa(a){const b=Array(a);for(let c=0;c<a;c++)b[c]=v();return b}function v(){return Object.create(null)}function ba(a,b){return b.length-a.length}function x(a){return"string"===typeof a}function C(a){return"object"===typeof a}function D(a){return"function"===typeof a};function ca(a,b){var c=da;if(a&&(b&&(a=E(a,b)),this.H&&(a=E(a,this.H)),this.J&&1<a.length&&(a=E(a,this.J)),c||""===c)){a=a.split(c);if(this.filter){b=this.filter;c=a.length;const d=[];for(let e=0,f=0;e<c;e++){const g=a[e];g&&!b[g]&&(d[f++]=g)}a=d}return a}return a}const da=/[\p{Z}\p{S}\p{P}\p{C}]+/u,ea=/[\u0300-\u036f]/g;
|
||||||
|
function fa(a,b){const c=Object.keys(a),d=c.length,e=[];let f="",g=0;for(let h=0,k,m;h<d;h++)k=c[h],(m=a[k])?(e[g++]=F(b?"(?!\\b)"+k+"(\\b|_)":k),e[g++]=m):f+=(f?"|":"")+k;f&&(e[g++]=F(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),e[g]="");return e}function E(a,b){for(let c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function F(a){return new RegExp(a,"g")}function ha(a){let b="",c="";for(let d=0,e=a.length,f;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b};var ja={encode:ia,F:!1,G:""};function ia(a){return ca.call(this,(""+a).toLowerCase(),!1)};const ka={},G={};function la(a){I(a,"add");I(a,"append");I(a,"search");I(a,"update");I(a,"remove")}function I(a,b){a[b+"Async"]=function(){const c=this,d=arguments;var e=d[d.length-1];let f;D(e)&&(f=e,delete d[d.length-1]);e=new Promise(function(g){setTimeout(function(){c.async=!0;const h=c[b].apply(c,d);c.async=!1;g(h)})});return f?(e.then(f),this):e}};function ma(a,b,c,d){const e=a.length;let f=[],g,h,k=0;d&&(d=[]);for(let m=e-1;0<=m;m--){const n=a[m],w=n.length,q=v();let r=!g;for(let l=0;l<w;l++){const p=n[l],z=p.length;if(z)for(let B=0,A,y;B<z;B++)if(y=p[B],g){if(g[y]){if(!m)if(c)c--;else if(f[k++]=y,k===b)return f;if(m||d)q[y]=1;r=!0}if(d&&(A=(h[y]||0)+1,h[y]=A,A<e)){const H=d[A-2]||(d[A-2]=[]);H[H.length]=y}}else q[y]=1}if(d)g||(h=q);else if(!r)return[];g=q}if(d)for(let m=d.length-1,n,w;0<=m;m--){n=d[m];w=n.length;for(let q=0,r;q<w;q++)if(r=
|
||||||
|
n[q],!g[r]){if(c)c--;else if(f[k++]=r,k===b)return f;g[r]=1}}return f}function na(a,b){const c=v(),d=v(),e=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,g;f<b.length;f++){g=b[f];for(let h=0,k;h<g.length;h++)k=g[h],c[k]&&!d[k]&&(d[k]=1,e[e.length]=k)}return e};function J(a){this.l=!0!==a&&a;this.cache=v();this.h=[]}function oa(a,b,c){C(a)&&(a=a.query);let d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}J.prototype.set=function(a,b){if(!this.cache[a]){var c=this.h.length;c===this.l?delete this.cache[this.h[c-1]]:c++;for(--c;0<c;c--)this.h[c]=this.h[c-1];this.h[0]=a}this.cache[a]=b};J.prototype.get=function(a){const b=this.cache[a];if(this.l&&b&&(a=this.h.indexOf(a))){const c=this.h[a-1];this.h[a-1]=this.h[a];this.h[a]=c}return b};const qa={memory:{charset:"latin:extra",D:3,B:4,m:!1},performance:{D:3,B:3,s:!1,context:{depth:2,D:1}},match:{charset:"latin:extra",G:"reverse"},score:{charset:"latin:advanced",D:20,B:3,context:{depth:3,D:9}},"default":{}};function ra(a,b,c,d,e,f,g){setTimeout(function(){const h=a(c?c+"."+d:d,JSON.stringify(g));h&&h.then?h.then(function(){b.export(a,b,c,e,f+1)}):b.export(a,b,c,e,f+1)})};function K(a,b){if(!(this instanceof K))return new K(a);var c;if(a){x(a)?a=qa[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;x(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=G[c]);x(d)&&(d=ka[d])}else a={};let e,f,g=a.context||{};this.encode=a.encode||c&&c.encode||ia;this.register=b||v();this.D=e=a.resolution||9;this.G=b=c&&c.G||a.tokenize||"strict";this.depth="strict"===b&&g.depth;this.l=u(g.bidirectional);this.s=f=u(a.optimize);this.m=u(a.fastupdate);this.B=a.minlength||1;this.C=
|
||||||
|
a.boost;this.map=f?aa(e):v();this.A=e=g.resolution||1;this.h=f?aa(e):v();this.F=c&&c.F||a.rtl;this.H=(b=a.matcher||d&&d.H)&&fa(b,!1);this.J=(b=a.stemmer||d&&d.J)&&fa(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=v();for(let h=0,k=c.length;h<k;h++)d[c[h]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new J(b)}t=K.prototype;t.append=function(a,b){return this.add(a,b,!0)};
|
||||||
|
t.add=function(a,b,c,d){if(b&&(a||0===a)){if(!d&&!c&&this.register[a])return this.update(a,b);b=this.encode(b);if(d=b.length){const m=v(),n=v(),w=this.depth,q=this.D;for(let r=0;r<d;r++){let l=b[this.F?d-1-r:r];var e=l.length;if(l&&e>=this.B&&(w||!n[l])){var f=L(q,d,r),g="";switch(this.G){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;h--)if(h-f>=this.B){var k=L(q,d,r,e,f);g=l.substring(f,h);M(this,n,g,k,a,c)}break}case "reverse":if(1<e){for(h=e-1;0<h;h--)g=l[h]+g,g.length>=this.B&&M(this,n,
|
||||||
|
g,L(q,d,r,e,h),a,c);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=l[h],g.length>=this.B&&M(this,n,g,f,a,c);break}default:if(this.C&&(f=Math.min(f/this.C(b,l,r)|0,q-1)),M(this,n,l,f,a,c),w&&1<d&&r<d-1)for(e=v(),g=this.A,f=l,h=Math.min(w+1,d-r),e[f]=1,k=1;k<h;k++)if((l=b[this.F?d-1-r-k:r+k])&&l.length>=this.B&&!e[l]){e[l]=1;const p=this.l&&l>f;M(this,m,p?f:l,L(g+(d/2>g?0:1),d,r,h-1,k-1),a,c,p?l:f)}}}}this.m||(this.register[a]=1)}}return this};
|
||||||
|
function L(a,b,c,d,e){return c&&1<a?b+(d||0)<=a?c+(e||0):(a-1)/(b+(d||0))*(c+(e||0))+1|0:0}function M(a,b,c,d,e,f,g){let h=g?a.h:a.map;if(!b[c]||g&&!b[c][g])a.s&&(h=h[d]),g?(b=b[c]||(b[c]=v()),b[g]=1,h=h[g]||(h[g]=v())):b[c]=1,h=h[c]||(h[c]=[]),a.s||(h=h[d]||(h[d]=[])),f&&h.includes(e)||(h[h.length]=e,a.m&&(a=a.register[e]||(a.register[e]=[]),a[a.length]=h))}
|
||||||
|
t.search=function(a,b,c){c||(!b&&C(a)?(c=a,a=c.query):C(b)&&(c=b));let d=[],e;let f,g=0;if(c){a=c.query||a;b=c.limit;g=c.offset||0;var h=c.context;f=c.suggest}if(a&&(a=this.encode(""+a),e=a.length,1<e)){c=v();var k=[];for(let n=0,w=0,q;n<e;n++)if((q=a[n])&&q.length>=this.B&&!c[q])if(this.s||f||this.map[q])k[w++]=q,c[q]=1;else return d;a=k;e=a.length}if(!e)return d;b||(b=100);h=this.depth&&1<e&&!1!==h;c=0;let m;h?(m=a[0],c=1):1<e&&a.sort(ba);for(let n,w;c<e;c++){w=a[c];h?(n=sa(this,d,f,b,g,2===e,w,
|
||||||
|
m),f&&!1===n&&d.length||(m=w)):n=sa(this,d,f,b,g,1===e,w);if(n)return n;if(f&&c===e-1){k=d.length;if(!k){if(h){h=0;c=-1;continue}return d}if(1===k)return ta(d[0],b,g)}}return ma(d,b,g,f)};
|
||||||
|
function sa(a,b,c,d,e,f,g,h){let k=[],m=h?a.h:a.map;a.s||(m=ua(m,g,h,a.l));if(m){let n=0;const w=Math.min(m.length,h?a.A:a.D);for(let q=0,r=0,l,p;q<w;q++)if(l=m[q])if(a.s&&(l=ua(l,g,h,a.l)),e&&l&&f&&(p=l.length,p<=e?(e-=p,l=null):(l=l.slice(e),e=0)),l&&(k[n++]=l,f&&(r+=l.length,r>=d)))break;if(n){if(f)return ta(k,d,0);b[b.length]=k;return}}return!c&&k}function ta(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
|
||||||
|
function ua(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}t.contain=function(a){return!!this.register[a]};t.update=function(a,b){return this.remove(a).add(a,b)};
|
||||||
|
t.remove=function(a,b){const c=this.register[a];if(c){if(this.m)for(let d=0,e;d<c.length;d++)e=c[d],e.splice(e.indexOf(a),1);else N(this.map,a,this.D,this.s),this.depth&&N(this.h,a,this.A,this.s);b||delete this.register[a];if(this.cache){b=this.cache;for(let d=0,e,f;d<b.h.length;d++)f=b.h[d],e=b.cache[f],e.includes(a)&&(b.h.splice(d--,1),delete b.cache[f])}}return this};
|
||||||
|
function N(a,b,c,d,e){let f=0;if(a.constructor===Array)if(e)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{e=Math.min(a.length,c);for(let g=0,h;g<e;g++)if(h=a[g])f=N(h,b,c,d,e),d||f||delete a[g]}else for(let g in a)(f=N(a[g],b,c,d,e))||delete a[g];return f}t.searchCache=oa;
|
||||||
|
t.export=function(a,b,c,d,e){let f,g;switch(e||(e=0)){case 0:f="reg";if(this.m){g=v();for(let h in this.register)g[h]=1}else g=this.register;break;case 1:f="cfg";g={doc:0,opt:this.s?1:0};break;case 2:f="map";g=this.map;break;case 3:f="ctx";g=this.h;break;default:return}ra(a,b||this,c,f,d,e,g);return!0};t.import=function(a,b){if(b)switch(x(b)&&(b=JSON.parse(b)),a){case "cfg":this.s=!!b.opt;break;case "reg":this.m=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.h=b}};la(K.prototype);function va(a){a=a.data;var b=self._index;const c=a.args;var d=a.task;switch(d){case "init":d=a.options||{};a=a.factory;b=d.encode;d.cache=!1;b&&0===b.indexOf("function")&&(d.encode=Function("return "+b)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new K(d);break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};let wa=0;function O(a){if(!(this instanceof O))return new O(a);var b;a?D(b=a.encode)&&(a.encode=b.toString()):a={};(b=(self||window)._factory)&&(b=b.toString());const c="undefined"===typeof window&&self.exports,d=this;this.o=xa(b,c,a.worker);this.h=v();if(this.o){if(c)this.o.on("message",function(e){d.h[e.id](e.msg);delete d.h[e.id]});else this.o.onmessage=function(e){e=e.data;d.h[e.id](e.msg);delete d.h[e.id]};this.o.postMessage({task:"init",factory:b,options:a})}}P("add");P("append");P("search");
|
||||||
|
P("update");P("remove");function P(a){O.prototype[a]=O.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;D(d)&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){setTimeout(function(){b.h[++wa]=f;b.o.postMessage({task:a,id:wa,args:c})})});return e?(d.then(e),this):d}}
|
||||||
|
function xa(a,b,c){let d;try{d=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+va.toString()],{type:"text/javascript"}))):new Worker(x(c)?c:"worker/worker.js",{type:"module"})}catch(e){}return d};function Q(a){if(!(this instanceof Q))return new Q(a);var b=a.document||a.doc||a,c;this.K=[];this.h=[];this.A=[];this.register=v();this.key=(c=b.key||b.id)&&S(c,this.A)||"id";this.m=u(a.fastupdate);this.C=(c=b.store)&&!0!==c&&[];this.store=c&&v();this.I=(c=b.tag)&&S(c,this.A);this.l=c&&v();this.cache=(c=a.cache)&&new J(c);a.cache=!1;this.o=a.worker;this.async=!1;c=v();let d=b.index||b.field||b;x(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++)f=d[e],x(f)||(g=f,f=f.field),g=C(g)?Object.assign({},a,g):a,
|
||||||
|
this.o&&(c[f]=new O(g),c[f].o||(this.o=!1)),this.o||(c[f]=new K(g,this.register)),this.K[e]=S(f,this.A),this.h[e]=f;if(this.C)for(a=b.store,x(a)&&(a=[a]),b=0;b<a.length;b++)this.C[b]=S(a[b],this.A);this.index=c}function S(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}function T(a,b){if(x(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}
|
||||||
|
function U(a,b,c,d,e){a=a[e];if(d===c.length-1)b[e]=a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)U(a,b,c,d,e);else b=b[e]||(b[e]=v()),e=c[++d],U(a,b,c,d,e)}function V(a,b,c,d,e,f,g,h){if(a=a[g])if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(f,a[b],!0,!0);return}a=a.join(" ")}e.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)V(a,b,c,d,e,f,g,h);else g=b[++d],V(a,b,c,d,e,f,g,h)}t=Q.prototype;
|
||||||
|
t.add=function(a,b,c){C(a)&&(b=a,a=T(b,this.key));if(b&&(a||0===a)){if(!c&&this.register[a])return this.update(a,b);for(let d=0,e,f;d<this.h.length;d++)f=this.h[d],e=this.K[d],x(e)&&(e=[e]),V(b,e,this.A,0,this.index[f],a,e[0],c);if(this.I){let d=T(b,this.I),e=v();x(d)&&(d=[d]);for(let f=0,g,h;f<d.length;f++)if(g=d[f],!e[g]&&(e[g]=1,h=this.l[g]||(this.l[g]=[]),!c||!h.includes(a)))if(h[h.length]=a,this.m){const k=this.register[a]||(this.register[a]=[]);k[k.length]=h}}if(this.store&&(!c||!this.store[a])){let d;
|
||||||
|
if(this.C){d=v();for(let e=0,f;e<this.C.length;e++)f=this.C[e],x(f)?d[f]=b[f]:U(b,d,f,0,f[0])}this.store[a]=d||b}}return this};t.append=function(a,b){return this.add(a,b,!0)};t.update=function(a,b){return this.remove(a).add(a,b)};
|
||||||
|
t.remove=function(a){C(a)&&(a=T(a,this.key));if(this.register[a]){for(var b=0;b<this.h.length&&(this.index[this.h[b]].remove(a,!this.o),!this.m);b++);if(this.I&&!this.m)for(let c in this.l){b=this.l[c];const d=b.indexOf(a);-1!==d&&(1<b.length?b.splice(d,1):delete this.l[c])}this.store&&delete this.store[a];delete this.register[a]}return this};
|
||||||
|
t.search=function(a,b,c,d){c||(!b&&C(a)?(c=a,a=""):C(b)&&(c=b,b=0));let e=[],f=[],g,h,k,m,n,w,q=0;if(c)if(c.constructor===Array)k=c,c=null;else{a=c.query||a;k=(g=c.pluck)||c.index||c.field;m=c.tag;h=this.store&&c.enrich;n="and"===c.bool;b=c.limit||b||100;w=c.offset||0;if(m&&(x(m)&&(m=[m]),!a)){for(let l=0,p;l<m.length;l++)if(p=ya.call(this,m[l],b,w,h))e[e.length]=p,q++;return q?e:[]}x(k)&&(k=[k])}k||(k=this.h);n=n&&(1<k.length||m&&1<m.length);const r=!d&&(this.o||this.async)&&[];for(let l=0,p,z,B;l<
|
||||||
|
k.length;l++){let A;z=k[l];x(z)||(A=z,z=A.field,a=A.query||a,b=A.limit||b);if(r)r[l]=this.index[z].searchAsync(a,b,A||c);else{d?p=d[l]:p=this.index[z].search(a,b,A||c);B=p&&p.length;if(m&&B){const y=[];let H=0;n&&(y[0]=[p]);for(let X=0,pa,R;X<m.length;X++)if(pa=m[X],B=(R=this.l[pa])&&R.length)H++,y[y.length]=n?[R]:R;H&&(p=n?ma(y,b||100,w||0):na(p,y),B=p.length)}if(B)f[q]=z,e[q++]=p;else if(n)return[]}}if(r){const l=this;return new Promise(function(p){Promise.all(r).then(function(z){p(l.search(a,b,
|
||||||
|
c,z))})})}if(!q)return[];if(g&&(!h||!this.store))return e[0];for(let l=0,p;l<f.length;l++){p=e[l];p.length&&h&&(p=za.call(this,p));if(g)return p;e[l]={field:f[l],result:p}}return e};function ya(a,b,c,d){let e=this.l[a],f=e&&e.length-c;if(f&&0<f){if(f>b||c)e=e.slice(c,c+b);d&&(e=za.call(this,e));return{tag:a,result:e}}}function za(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={id:d,doc:this.store[d]};return b}t.contain=function(a){return!!this.register[a]};t.get=function(a){return this.store[a]};
|
||||||
|
t.set=function(a,b){this.store[a]=b;return this};t.searchCache=oa;t.export=function(a,b,c,d,e){e||(e=0);d||(d=0);if(d<this.h.length){const f=this.h[d],g=this.index[f];b=this;setTimeout(function(){g.export(a,b,e?f:"",d,e++)||(d++,e=1,b.export(a,b,f,d,e))})}else{let f,g;switch(e){case 1:f="tag";g=this.l;break;case 2:f="store";g=this.store;break;default:return}ra(a,this,c,f,d,e,g)}};
|
||||||
|
t.import=function(a,b){if(b)switch(x(b)&&(b=JSON.parse(b)),a){case "tag":this.l=b;break;case "reg":this.m=!1;this.register=b;for(let d=0,e;d<this.h.length;d++)e=this.index[this.h[d]],e.register=b,e.m=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};la(Q.prototype);var Ba={encode:Aa,F:!1,G:""};const Ca=[F("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",F("[\u00e8\u00e9\u00ea\u00eb]"),"e",F("[\u00ec\u00ed\u00ee\u00ef]"),"i",F("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",F("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",F("[\u00fd\u0177\u00ff]"),"y",F("\u00f1"),"n",F("[\u00e7c]"),"k",F("\u00df"),"s",F(" & ")," and "];function Aa(a){var b=a=""+a;b.normalize&&(b=b.normalize("NFD").replace(ea,""));return ca.call(this,b.toLowerCase(),!a.normalize&&Ca)};var Ea={encode:Da,F:!1,G:"strict"};const Fa=/[^a-z0-9]+/,Ga={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function Da(a){a=Aa.call(this,a).join(" ");const b=[];if(a){const c=a.split(Fa),d=c.length;for(let e=0,f,g=0;e<d;e++)if((a=c[e])&&(!this.filter||!this.filter[a])){f=a[0];let h=Ga[f]||f,k=h;for(let m=1;m<a.length;m++){f=a[m];const n=Ga[f]||f;n&&n!==k&&(h+=n,k=n)}b[g++]=h}}return b};var Ia={encode:Ha,F:!1,G:""};const Ja=[F("ae"),"a",F("oe"),"o",F("sh"),"s",F("th"),"t",F("ph"),"f",F("pf"),"f",F("(?![aeo])h(?![aeo])"),"",F("(?!^[aeo])h(?!^[aeo])"),""];function Ha(a,b){a&&(a=Da.call(this,a).join(" "),2<a.length&&(a=E(a,Ja)),b||(1<a.length&&(a=ha(a)),a&&(a=a.split(" "))));return a||[]};var La={encode:Ka,F:!1,G:""};const Ma=F("(?!\\b)[aeo]");function Ka(a){a&&(a=Ha.call(this,a,!0),1<a.length&&(a=a.replace(Ma,"")),1<a.length&&(a=ha(a)),a&&(a=a.split(" ")));return a||[]};G["latin:default"]=ja;G["latin:simple"]=Ba;G["latin:balance"]=Ea;G["latin:advanced"]=Ia;G["latin:extra"]=La;const W=self;let Y;const Z={Index:K,Document:Q,Worker:O,registerCharset:function(a,b){G[a]=b},registerLanguage:function(a,b){ka[a]=b}};(Y=W.define)&&Y.amd?Y([],function(){return Z}):W.exports?W.exports=Z:W.FlexSearch=Z;}(this));
|
1
assets/lib/katex/auto-render.min.js
vendored
Normal file
1
assets/lib/katex/auto-render.min.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var i={};return function(){n.d(i,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,i=0,a=e.length;n<t.length;){var o=t[n];if(i<=0&&t.slice(n,n+a)===e)return n;"\\"===o?n++:"{"===o?i++:"}"===o&&i--,n++}return-1},a=/^\\begin{/,o=function(e,t){for(var n,i=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(i.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=a.test(d)?d:e.slice(t[l].left.length,n);i.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&i.push({type:"text",data:e}),i},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var i=document.createDocumentFragment(),a=0;a<n.length;a++)if("text"===n[a].type)i.appendChild(document.createTextNode(n[a].data));else{var l=document.createElement("span"),d=n[a].data;r.displayMode=n[a].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[a].data+"` with ",e),i.appendChild(document.createTextNode(n[a].rawData));continue}i.appendChild(l)}return i},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var i=t.childNodes[n];if(3===i.nodeType){for(var a=i.textContent,o=i.nextSibling,d=0;o&&o.nodeType===Node.TEXT_NODE;)a+=o.textContent,o=o.nextSibling,d++;var s=l(a,r);if(s){for(var f=0;f<d;f++)i.nextSibling.remove();n+=s.childNodes.length-1,t.replaceChild(s,i)}else n+=d}else 1===i.nodeType&&function(){var t=" "+i.className+" ";-1===r.ignoredTags.indexOf(i.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(i,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),i=i.default}()}));
|
BIN
assets/lib/katex/fonts/KaTeX_AMS-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_AMS-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_AMS-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_AMS-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_AMS-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_AMS-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Bold.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Bold.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Bold.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Bold.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Bold.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Bold.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Italic.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Italic.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Italic.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Italic.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Italic.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Italic.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Main-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Main-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Math-Italic.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Math-Italic.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Math-Italic.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Math-Italic.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Math-Italic.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Math-Italic.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Script-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Script-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Script-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Script-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Script-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Script-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size1-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size1-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size1-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size1-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size1-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size1-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size2-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size2-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size2-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size2-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size2-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size2-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size3-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size3-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size3-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size3-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size3-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size3-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size4-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size4-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size4-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size4-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Size4-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Size4-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff
Normal file
Binary file not shown.
BIN
assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2
Normal file
BIN
assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2
Normal file
Binary file not shown.
1
assets/lib/katex/katex.min.css
vendored
Normal file
1
assets/lib/katex/katex.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/lib/katex/katex.min.js
vendored
Normal file
1
assets/lib/katex/katex.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/lib/katex/mhchem.min.js
vendored
Normal file
1
assets/lib/katex/mhchem.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1641
assets/lib/mermaid/mermaid.min.js
vendored
Normal file
1641
assets/lib/mermaid/mermaid.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
55
build.sh
55
build.sh
@ -1,55 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Specify the base URL
|
|
||||||
BASE_URL=${1:-"http://localhost:1313"}
|
|
||||||
|
|
||||||
echo "Using base URL: $BASE_URL"
|
|
||||||
|
|
||||||
# Version configuration - modify these arrays to specify versions to build
|
|
||||||
# Format: "ref:display_name" (ref can be tag, branch, or commit hash, display name is what will appear in URL)
|
|
||||||
MAIN_VERSION="v0.9.6:latest"
|
|
||||||
VERSIONS=(
|
|
||||||
"main:latest" # latest version always builds from main
|
|
||||||
"v0.9.6:v0.9"
|
|
||||||
"v0.8.6:v0.8"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Parse main version
|
|
||||||
IFS=':' read -r MAIN_REF MAIN_NAME <<< "$MAIN_VERSION"
|
|
||||||
|
|
||||||
# Ensure clean public directory
|
|
||||||
rm -rf public
|
|
||||||
mkdir -p public
|
|
||||||
mkdir -p public/versions
|
|
||||||
|
|
||||||
# Checkout and build main site
|
|
||||||
git checkout $MAIN_REF
|
|
||||||
GIT_HASH=$(git rev-parse --short HEAD)
|
|
||||||
echo "Building main site from $MAIN_REF (commit: $GIT_HASH)"
|
|
||||||
hugo \
|
|
||||||
--minify \
|
|
||||||
--themesDir=../.. --source=exampleSite \
|
|
||||||
--baseURL "$BASE_URL/" \
|
|
||||||
--destination=../public
|
|
||||||
|
|
||||||
# Build all versions
|
|
||||||
for VERSION in "${VERSIONS[@]}"; do
|
|
||||||
IFS=':' read -r REF NAME <<< "$VERSION"
|
|
||||||
|
|
||||||
git checkout $REF
|
|
||||||
GIT_HASH=$(git rev-parse --short HEAD)
|
|
||||||
echo "Building version $NAME from $REF (commit: $GIT_HASH)"
|
|
||||||
|
|
||||||
mkdir -p "public/versions/$NAME"
|
|
||||||
hugo \
|
|
||||||
--minify \
|
|
||||||
--themesDir=../.. --source=exampleSite \
|
|
||||||
--baseURL "$BASE_URL/versions/$NAME/" \
|
|
||||||
--destination="../public/versions/$NAME"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Return to main branch
|
|
||||||
git checkout main
|
|
||||||
|
|
||||||
echo "Build completed"
|
|
@ -9,13 +9,6 @@ github: >
|
|||||||
<path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path>
|
<path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
gitea: >
|
|
||||||
<svg fill="currentColor" viewBox="75 100 824 824">
|
|
||||||
<g transform="scale(1.25) translate(-90, -95)">
|
|
||||||
<path d="M762.2 350.3c-100.9 5.3-160.7 8-212 8.5v114.1l-16-7.9-.1-106.1c-58.9 0-110.7-3.1-209.1-8.6-12.3-.1-29.5-2.4-47.9-2.5-47.1-.1-110.2 33.5-106.7 118C175.8 597.6 296 609.9 344 610.9c5.3 24.7 61.8 110.1 103.6 114.6H631c109.9-8.2 192.3-373.8 131.2-375.2zm-546 117.3c-4.7-36.6 11.8-74.8 73.2-73.2C296.1 462 307 501.5 329 561.9c-56.2-7.4-104-25.7-112.8-94.3zm415.6 83.5-51.3 105.6c-6.5 13.4-22.7 19-36.2 12.5l-105.6-51.3c-13.4-6.5-19-22.7-12.5-36.2l51.3-105.6c6.5-13.4 22.7-19 36.2-12.5l105.6 51.3c13.4 6.6 19 22.8 12.5 36.2z M555 609.9c.1-.2.2-.3.2-.5 17.2-35.2 24.3-49.8 19.8-62.4-3.9-11.1-15.5-16.6-36.7-26.6-.8-.4-1.7-.8-2.5-1.2.2-2.3-.1-4.7-1-7-.8-2.3-2.1-4.3-3.7-6l13.6-27.8-11.9-5.8-13.7 28.4c-2 0-4.1.3-6.2 1-8.9 3.2-13.5 13-10.3 21.9.7 1.9 1.7 3.5 2.8 5l-23.6 48.4c-1.9 0-3.8.3-5.7 1-8.9 3.2-13.5 13-10.3 21.9 3.2 8.9 13 13.5 21.9 10.3 8.9-3.2 13.5-13 10.3-21.9-.9-2.5-2.3-4.6-4-6.3l23-47.2c2.5.2 5 0 7.5-.9 2.1-.8 3.9-1.9 5.5-3.3.9.4 1.9.9 2.7 1.3 17.4 8.2 27.9 13.2 30 19.1 2.6 7.5-5.1 23.4-19.3 52.3-.1.2-.2.5-.4.7-2.2-.1-4.4.2-6.5 1-8.9 3.2-13.5 13-10.3 21.9 3.2 8.9 13 13.5 21.9 10.3 8.9-3.2 13.5-13 10.3-21.9-.6-2-1.9-4-3.4-5.7z"></path>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
|
||||||
codeberg: >
|
codeberg: >
|
||||||
<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12 12 12 0 0 0-.045 0zm.375 6.467 4.416 16.553a12 12 0 0 0 5.137-4.213z"/>
|
<path d="M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12 12 12 0 0 0-.045 0zm.375 6.467 4.416 16.553a12 12 0 0 0 5.137-4.213z"/>
|
||||||
@ -43,8 +36,6 @@ hugo-full: >
|
|||||||
<path fill="#fff" d="M1320.72 89.15c58.79 0 106.52 47.73 106.52 106.51 0 58.8-47.73 106.52-106.52 106.52-58.78 0-106.52-47.73-106.52-106.52 0-58.78 47.74-106.51 106.52-106.51zm0 39.57c36.95 0 66.94 30 66.94 66.94a66.97 66.97 0 0 1-66.94 66.94c-36.95 0-66.94-29.99-66.94-66.94a66.97 66.97 0 0 1 66.93-66.94h.01zm-283.8 65.31c0 47.18-8.94 60.93-26.81 80.58-17.87 19.65-41.57 27.57-71.1 27.57-27 0-48.75-9.58-67.61-26.23-20.88-18.45-36.08-47.04-36.08-78.95 0-31.37 11.72-58.48 32.49-78.67 18.22-17.67 45.34-29.18 73.3-29.18 33.77 0 68.83 15.98 90.44 47.53l-31.73 26.82c-13.45-25.03-32.94-33.46-60.82-34.26-30.83-.88-64.77 28.53-62.25 67.75 1.4 21.94 11.65 59.65 60.96 66.57 25.9 3.63 55.36-24.02 55.36-39.04H944.4v-37.5h92.5V194l.02.03zm-562.6-94.65h42.29v112.17c0 17.8.49 29.33 1.47 34.61 1.69 8.48 4.81 14.37 11.17 19.5 6.37 5.13 13.8 6.59 24.84 6.59 11.2 0 14.96-1.74 20.66-6.6 5.69-4.85 9.12-9.46 10.28-16.53 1.15-7.07 3.07-18.8 3.07-35.18V99.38h42.28v108.78c0 24.86-1.07 42.43-3.21 52.69-2.14 10.27-6.08 18.93-11.82 26-5.74 7.06-13.42 12.69-23.03 16.88-9.62 4.19-22.16 6.28-37.65 6.28-18.7 0-32.87-2.28-42.52-6.85-9.66-4.57-17.3-10.5-22.9-17.8-5.61-7.3-9.3-14.95-11.08-22.96-2.58-11.86-3.88-29.38-3.88-52.55V99.38h.03zM93.91 299.92V92.7h43.35v75.48h71.92V92.7h43.48v207.22h-43.48v-90.61h-71.92v90.61z"/>
|
<path fill="#fff" d="M1320.72 89.15c58.79 0 106.52 47.73 106.52 106.51 0 58.8-47.73 106.52-106.52 106.52-58.78 0-106.52-47.73-106.52-106.52 0-58.78 47.74-106.51 106.52-106.51zm0 39.57c36.95 0 66.94 30 66.94 66.94a66.97 66.97 0 0 1-66.94 66.94c-36.95 0-66.94-29.99-66.94-66.94a66.97 66.97 0 0 1 66.93-66.94h.01zm-283.8 65.31c0 47.18-8.94 60.93-26.81 80.58-17.87 19.65-41.57 27.57-71.1 27.57-27 0-48.75-9.58-67.61-26.23-20.88-18.45-36.08-47.04-36.08-78.95 0-31.37 11.72-58.48 32.49-78.67 18.22-17.67 45.34-29.18 73.3-29.18 33.77 0 68.83 15.98 90.44 47.53l-31.73 26.82c-13.45-25.03-32.94-33.46-60.82-34.26-30.83-.88-64.77 28.53-62.25 67.75 1.4 21.94 11.65 59.65 60.96 66.57 25.9 3.63 55.36-24.02 55.36-39.04H944.4v-37.5h92.5V194l.02.03zm-562.6-94.65h42.29v112.17c0 17.8.49 29.33 1.47 34.61 1.69 8.48 4.81 14.37 11.17 19.5 6.37 5.13 13.8 6.59 24.84 6.59 11.2 0 14.96-1.74 20.66-6.6 5.69-4.85 9.12-9.46 10.28-16.53 1.15-7.07 3.07-18.8 3.07-35.18V99.38h42.28v108.78c0 24.86-1.07 42.43-3.21 52.69-2.14 10.27-6.08 18.93-11.82 26-5.74 7.06-13.42 12.69-23.03 16.88-9.62 4.19-22.16 6.28-37.65 6.28-18.7 0-32.87-2.28-42.52-6.85-9.66-4.57-17.3-10.5-22.9-17.8-5.61-7.3-9.3-14.95-11.08-22.96-2.58-11.86-3.88-29.38-3.88-52.55V99.38h.03zM93.91 299.92V92.7h43.35v75.48h71.92V92.7h43.48v207.22h-43.48v-90.61h-71.92v90.61z"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
jupyter: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M7.157 22.201A1.784 1.799 0 0 1 5.374 24a1.784 1.799 0 0 1-1.784-1.799a1.784 1.799 0 0 1 1.784-1.799a1.784 1.799 0 0 1 1.783 1.799M20.582 1.427a1.415 1.427 0 0 1-1.415 1.428a1.415 1.427 0 0 1-1.416-1.428A1.415 1.427 0 0 1 19.167 0a1.415 1.427 0 0 1 1.415 1.427M4.992 3.336A1.047 1.056 0 0 1 3.946 4.39a1.047 1.056 0 0 1-1.047-1.055A1.047 1.056 0 0 1 3.946 2.28a1.047 1.056 0 0 1 1.046 1.056m7.336 1.517c3.769 0 7.06 1.38 8.768 3.424a9.36 9.36 0 0 0-3.393-4.547a9.24 9.24 0 0 0-5.377-1.728A9.24 9.24 0 0 0 6.95 3.73a9.36 9.36 0 0 0-3.394 4.547c1.713-2.04 5.004-3.424 8.772-3.424m.001 13.295c-3.768 0-7.06-1.381-8.768-3.425a9.36 9.36 0 0 0 3.394 4.547A9.24 9.24 0 0 0 12.33 21a9.24 9.24 0 0 0 5.377-1.729a9.36 9.36 0 0 0 3.393-4.547c-1.712 2.044-5.003 3.425-8.772 3.425Z" /></svg>
|
|
||||||
|
|
||||||
warning: <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"></path></svg>
|
warning: <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"></path></svg>
|
||||||
one: <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="-1 0 19 19"><path d="M16.417 9.6A7.917 7.917 0 1 1 8.5 1.683 7.917 7.917 0 0 1 16.417 9.6zM9.666 6.508H8.248L6.09 8.09l.806 1.103 1.222-.945v4.816h1.547z"></path></svg>
|
one: <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="-1 0 19 19"><path d="M16.417 9.6A7.917 7.917 0 1 1 8.5 1.683 7.917 7.917 0 0 1 16.417 9.6zM9.666 6.508H8.248L6.09 8.09l.806 1.103 1.222-.945v4.816h1.547z"></path></svg>
|
||||||
cards: <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.246 2.246 0 0 0-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122"></path></svg>
|
cards: <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.246 2.246 0 0 0-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122"></path></svg>
|
||||||
@ -296,5 +287,3 @@ youtube: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill=
|
|||||||
x-twitter: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>
|
x-twitter: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>
|
||||||
linkedin: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
|
linkedin: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
|
||||||
slack: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52zm0 1.271a2.528 2.528 0 0 1 2.521 2.521a2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523z" /></svg>
|
slack: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52zm0 1.271a2.528 2.528 0 0 1 2.521 2.521a2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523z" /></svg>
|
||||||
bluesky: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 530"><path fill="currentColor" d="M136 44c66 50 138 151 164 205 26-54 98-155 164-205 48-36 126-64 126 25 0 18-10 149-16 170-21 74-96 93-163 81 117 20 147 86 82 153-122 125-176-32-189-72-3-8-4-11-4-8 0-3-1 0-4 8-13 40-67 197-189 72-65-67-35-133 82-153-67 12-142-7-163-81-6-21-16-152-16-170 0-89 78-61 126-25z"/></svg>
|
|
||||||
telegram: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M248 8C111.033 8 0 119.033 0 256s111.033 248 248 248 248-111.033 248-248S384.967 8 248 8m114.952 168.66c-3.732 39.215-19.881 134.378-28.1 178.3-3.476 18.584-10.322 24.816-16.948 25.425-14.4 1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25 5.342-39.5 3.652-3.793 67.107-61.51 68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608 69.142-14.845 10.194-26.894 9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7 18.45-13.7 108.446-47.248 144.628-62.3c68.872-28.647 83.183-33.623 92.511-33.789 2.052-.034 6.639.474 9.61 2.885a10.45 10.45 0 0 1 3.53 6.716 43.8 43.8 0 0 1 .417 9.769"/></svg>
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user