add Arkanum.dev site with docs (#97)
### 📖 Summary - adds vitepess based docs for Arkanum.dev - migrate arakanumm project from CodeServer org to arkanum org ### 📑 Test Plan ✅ CI pipeline tests (Default) ### 💬 Details _No response_ ### 📚 Additional Notes _No response_ Reviewed-on: #97
@ -1,5 +1,5 @@
|
||||
# The full repository name
|
||||
repo: CodeServer/arkanum
|
||||
repo: arkanum/arkanum
|
||||
|
||||
# Service type (gitea or github)
|
||||
service: gitea
|
||||
|
@ -1,8 +1,11 @@
|
||||
.gitea
|
||||
.vscode
|
||||
assets
|
||||
.editorconfig
|
||||
.gitatributes
|
||||
.gitattributes
|
||||
.gitea
|
||||
.gitignore
|
||||
.gitlocal
|
||||
.prettierrc
|
||||
.vscode
|
||||
LICENSE
|
||||
node_modules
|
||||
README.md
|
||||
renovate.json
|
||||
|
3
.gitignore
vendored
@ -13,6 +13,7 @@ data/*.csv
|
||||
coverage.xml
|
||||
testResults.xml
|
||||
|
||||
# Ignore NodeJS stuff
|
||||
# docs / vitepress related ignores
|
||||
node_modules
|
||||
docs/.vitepress/cache
|
||||
docs/.vitepress/dist
|
||||
|
10
.prettierrc
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"arrowParens": "always",
|
||||
"bracketSpacing": true,
|
||||
"editorconfig": true,
|
||||
"printWidth": 116,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all",
|
||||
"vueIndentScriptAndStyle": true
|
||||
}
|
8
.vscode/settings.json
vendored
@ -6,9 +6,7 @@
|
||||
"editor.renderWhitespace": "boundary",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.formatOnType": true,
|
||||
"editor.rulers": [
|
||||
116
|
||||
],
|
||||
"editor.rulers": [116],
|
||||
// powershell general
|
||||
"powershell.startAutomatically": true,
|
||||
"powershell.enableProfileLoading": true,
|
||||
@ -67,5 +65,9 @@
|
||||
"addWords": true
|
||||
},
|
||||
"custom": true
|
||||
},
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ when:
|
||||
variables:
|
||||
- &build_plugin 'woodpeckerci/plugin-docker-buildx:3.2.1'
|
||||
# deployment targets
|
||||
- &publish_repos 'ocram85/arkanum,gitea.ocram85.com/codeserver/arkanum,ghcr.io/ocram85/arkanum,codeberg.org/codeserver/arkanum'
|
||||
- &publish_repos 'ocram85/arkanum,gitea.ocram85.com/arkanum/arkanum,ghcr.io/ocram85/arkanum,codeberg.org/codeserver/arkanum'
|
||||
# logins for deployment targets
|
||||
- publish_logins: &publish_logins
|
||||
# Default DockerHub login
|
||||
@ -82,22 +82,11 @@ steps:
|
||||
when:
|
||||
event: [pull_request]
|
||||
|
||||
# disabled for Portainer-EE: Can handle image tag updates without manual redeploy
|
||||
#triggerPortainer:
|
||||
# image: ocram85/portainer-serviceupdate
|
||||
# settings:
|
||||
# VERBOSE: true
|
||||
# URI: "https://portainer.ocram85.com"
|
||||
# TOKEN:
|
||||
# from_secret: NEXT_TOKEN
|
||||
# when:
|
||||
# event: [pull_request]
|
||||
|
||||
gitea-release:
|
||||
image: plugins/gitea-release
|
||||
settings:
|
||||
api_key:
|
||||
from_secret: RENOVATE_TOKEN
|
||||
from_secret: ci_token
|
||||
base_url: https://gitea.ocram85.com
|
||||
title: ${CI_COMMIT_TAG}
|
||||
note: "> :bulb: **Note:** See [CHANGELOG.md](src/branch/master/CHANGELOG.md) for recent changes."
|
||||
|
69
.woodpecker/docs.yml
Normal file
@ -0,0 +1,69 @@
|
||||
when:
|
||||
- event: [pull_request, tag, cron]
|
||||
- event: push
|
||||
branch:
|
||||
- ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
variables:
|
||||
- &build_plugin 'woodpeckerci/plugin-docker-buildx:3.2.1'
|
||||
# deployment targets
|
||||
- &publish_repos 'ocram85/arkanum-docs,gitea.ocram85.com/arkanum/arkanum-docs'
|
||||
# logins for deployment targets
|
||||
- publish_logins: &publish_logins
|
||||
# Default DockerHub login
|
||||
- registry: https://index.docker.io/v1/
|
||||
username:
|
||||
from_secret: docker_user
|
||||
password:
|
||||
from_secret: docker_passwd
|
||||
# Additional Quay.IO login
|
||||
- registry: https://gitea.ocram85.com
|
||||
username:
|
||||
from_secret: gitea_user
|
||||
password:
|
||||
from_secret: gitea_passwd
|
||||
steps:
|
||||
test:
|
||||
image: *build_plugin
|
||||
settings:
|
||||
dry_run: true
|
||||
registry: gitea.ocram85.com
|
||||
repo: test
|
||||
dockerfile: Dockerfile.vitepress
|
||||
platforms: linux/amd64
|
||||
auto_tag: true
|
||||
build_args:
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: pull_request
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
publish:
|
||||
image: *build_plugin
|
||||
settings:
|
||||
repo: *publish_repos
|
||||
dockerfile: Dockerfile.vitepress
|
||||
platforms: linux/amd64
|
||||
auto_tag: true
|
||||
logins: *publish_logins
|
||||
build_args:
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: [push, tag, cron]
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
build-next:
|
||||
image: *build_plugin
|
||||
settings:
|
||||
repo: *publish_repos
|
||||
dockerfile: Dockerfile.vitepress
|
||||
platforms: linux/amd64
|
||||
tag: next
|
||||
logins: *publish_logins
|
||||
build_args:
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: [pull_request]
|
225
CHANGELOG.md
@ -1,134 +1,133 @@
|
||||
## [v1.5.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.5.0) - 2024-02-09
|
||||
## [v1.5.0](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v1.5.0) - 2024-02-09
|
||||
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Always install latest extension version (#85)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.20.1 (#88)
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.20.0 (#86)
|
||||
* ⚙️ META
|
||||
* Add more gitignore items (#89)
|
||||
- 🛠️ ENHANCEMENTS
|
||||
- Always install latest extension version (#85)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.20.1 (#88)
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.20.0 (#86)
|
||||
- ⚙️ META
|
||||
- Add more gitignore items (#89)
|
||||
|
||||
## [v1.0.2](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.0.2) - 2023-12-18
|
||||
## [v1.0.2](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v1.0.2) - 2023-12-18
|
||||
|
||||
* ✨ FEATURES
|
||||
* Add bun installer (#81)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Bump golang version (#80)
|
||||
* Bump default extensions version (#76)
|
||||
* 📦 BUILD
|
||||
* Upd/woodpeckerPluging (#79)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.19.1 (#77)
|
||||
* 📚 DOCS
|
||||
* Fix typo in arkanum cli help (#78)
|
||||
* ⚙️ META
|
||||
* Updatest gitea meta files (#75)
|
||||
- ✨ FEATURES
|
||||
- Add bun installer (#81)
|
||||
- 🛠️ ENHANCEMENTS
|
||||
- Bump golang version (#80)
|
||||
- Bump default extensions version (#76)
|
||||
- 📦 BUILD
|
||||
- Upd/woodpeckerPluging (#79)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.19.1 (#77)
|
||||
- 📚 DOCS
|
||||
- Fix typo in arkanum cli help (#78)
|
||||
- ⚙️ META
|
||||
- Updatest gitea meta files (#75)
|
||||
|
||||
## [v1.0.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.0.1) - 2023-11-12
|
||||
## [v1.0.1](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v1.0.1) - 2023-11-12
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* Fix pwsh install package (#72)
|
||||
* 📦 BUILD
|
||||
* Avoid duplicate ci runs (#73)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.18.0 (#70)
|
||||
- 🐛 BUGFIXES
|
||||
- Fix pwsh install package (#72)
|
||||
- 📦 BUILD
|
||||
- Avoid duplicate ci runs (#73)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.18.0 (#70)
|
||||
|
||||
## [v1.0.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.0.0) - 2023-09-15
|
||||
## [v1.0.0](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v1.0.0) - 2023-09-15
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* Fix git config arguments (#68)
|
||||
* Fix NodeJs install bug (#67)
|
||||
* Fix pwsh install when called as first command (#60)
|
||||
* Fix missing volta command (#58)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Extends arkanum command and option structure (#62)
|
||||
* 📦 BUILD
|
||||
* Add addiontal container image deployment targets (#63)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.16.1 (#59)
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.15.0 (#57)
|
||||
- 🐛 BUGFIXES
|
||||
- Fix git config arguments (#68)
|
||||
- Fix NodeJs install bug (#67)
|
||||
- Fix pwsh install when called as first command (#60)
|
||||
- Fix missing volta command (#58)
|
||||
- 🛠️ ENHANCEMENTS
|
||||
- Extends arkanum command and option structure (#62)
|
||||
- 📦 BUILD
|
||||
- Add addiontal container image deployment targets (#63)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.16.1 (#59)
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.15.0 (#57)
|
||||
|
||||
## [v0.4.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.4.0) - 2023-07-19
|
||||
## [v0.4.0](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v0.4.0) - 2023-07-19
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* Fix shellcheck issues (#55)
|
||||
* Disable starship python module (#52)
|
||||
* ✨ FEATURES
|
||||
* Add docker-cli (#54)
|
||||
* Adds Volta as default version manager for NodeJs (#53)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Bump go version (#49)
|
||||
- 🐛 BUGFIXES
|
||||
- Fix shellcheck issues (#55)
|
||||
- Disable starship python module (#52)
|
||||
- ✨ FEATURES
|
||||
- Add docker-cli (#54)
|
||||
- Adds Volta as default version manager for NodeJs (#53)
|
||||
- 🛠️ ENHANCEMENTS
|
||||
- Bump go version (#49)
|
||||
|
||||
## [v0.3.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.1) - 2023-07-04
|
||||
## [v0.3.1](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v0.3.1) - 2023-07-04
|
||||
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.14.1 (#47)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.14.1 (#47)
|
||||
|
||||
## [v0.3.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.0) - 2023-03-30
|
||||
## [v0.3.0](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v0.3.0) - 2023-03-30
|
||||
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Add tea cli in gitea block (#41)
|
||||
* 📦 BUILD
|
||||
* Remove repo defined renovate (#44)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.11.0 (#45)
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.10.0 (#43)
|
||||
- 🛠️ ENHANCEMENTS
|
||||
- Add tea cli in gitea block (#41)
|
||||
- 📦 BUILD
|
||||
- Remove repo defined renovate (#44)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.11.0 (#45)
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.10.0 (#43)
|
||||
|
||||
## [v0.2.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.2.0) - 2023-01-04
|
||||
## [v0.2.0](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v0.2.0) - 2023-01-04
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* fix typo (#39)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Add proxy support (#38)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update renovate/renovate Docker tag to v34.82 (#37)
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.9.1 (#31)
|
||||
- 🐛 BUGFIXES
|
||||
- fix typo (#39)
|
||||
- 🛠️ ENHANCEMENTS
|
||||
- Add proxy support (#38)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update renovate/renovate Docker tag to v34.82 (#37)
|
||||
- Update quay.io/linuxserver.io/code-server Docker tag to v4.9.1 (#31)
|
||||
|
||||
## [v0.1.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.1) - 2023-01-02
|
||||
## [v0.1.1](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v0.1.1) - 2023-01-02
|
||||
|
||||
* 📦 BUILD
|
||||
* fix woodpecker fileMatch regex (#30)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update renovate/renovate Docker tag to v34.77 (#35)
|
||||
* fix renovate config keys (#34)
|
||||
* Update renovate/renovate Docker tag to v34.62 (#33)
|
||||
* Update renovate/renovate Docker tag to v34.57 (#32)
|
||||
- 📦 BUILD
|
||||
- fix woodpecker fileMatch regex (#30)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Update renovate/renovate Docker tag to v34.77 (#35)
|
||||
- fix renovate config keys (#34)
|
||||
- Update renovate/renovate Docker tag to v34.62 (#33)
|
||||
- Update renovate/renovate Docker tag to v34.57 (#32)
|
||||
|
||||
## [v0.1.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.0) - 2022-11-25
|
||||
## [v0.1.0](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v0.1.0) - 2022-11-25
|
||||
|
||||
* 📦 BUILD
|
||||
* sync pipeline build args (#28)
|
||||
* 📚 DOCS
|
||||
* adds Readme content to prepare Github mirror (#26)
|
||||
- 📦 BUILD
|
||||
- sync pipeline build args (#28)
|
||||
- 📚 DOCS
|
||||
- adds Readme content to prepare Github mirror (#26)
|
||||
|
||||
## [v0.0.1](https://gitea.ocram85.com/arkanum/arkanum/releases/tag/v0.0.1) - 2022-11-22
|
||||
|
||||
## [v0.0.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.0.1) - 2022-11-22
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* fixes logo size (#22)
|
||||
* ✨ FEATURES
|
||||
* adds FiraCode NerdFont (#9)
|
||||
* adds setCode helper (#6)
|
||||
* add system gitconfig (#4)
|
||||
* add bash-completion and motd handling (#2)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Splits extension install into seperate function (#23)
|
||||
* Adds readme content (#21)
|
||||
* Rename install script to arkanum (#18)
|
||||
* adds missing packages required by dotnet (#3)
|
||||
* 📦 BUILD
|
||||
* set image labels (#24)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Adds renovate-bot (#11)
|
||||
* update baseimage 4.8.3 (#5)
|
||||
* 📚 DOCS
|
||||
* update refs in Readme (#17)
|
||||
* Updates Readme content (#7)
|
||||
* ⚙️ META
|
||||
* adds AGPLv3 license (#20)
|
||||
* Adds gitea changelog config (#19)
|
||||
* rename project to Arkanum (#16)
|
||||
* update PR template wording (#15)
|
||||
* Add woodpecker manager in renovate-bot (#14)
|
||||
* fixes logo file path (#8)
|
||||
* Adds basic container setup with pipeline (#1)
|
||||
- 🐛 BUGFIXES
|
||||
- fixes logo size (#22)
|
||||
- ✨ FEATURES
|
||||
- adds FiraCode NerdFont (#9)
|
||||
- adds setCode helper (#6)
|
||||
- add system gitconfig (#4)
|
||||
- add bash-completion and motd handling (#2)
|
||||
- 🛠️ ENHANCEMENTS
|
||||
- Splits extension install into seperate function (#23)
|
||||
- Adds readme content (#21)
|
||||
- Rename install script to arkanum (#18)
|
||||
- adds missing packages required by dotnet (#3)
|
||||
- 📦 BUILD
|
||||
- set image labels (#24)
|
||||
- 🤖 DEPENDENCIES
|
||||
- Adds renovate-bot (#11)
|
||||
- update baseimage 4.8.3 (#5)
|
||||
- 📚 DOCS
|
||||
- update refs in Readme (#17)
|
||||
- Updates Readme content (#7)
|
||||
- ⚙️ META
|
||||
- adds AGPLv3 license (#20)
|
||||
- Adds gitea changelog config (#19)
|
||||
- rename project to Arkanum (#16)
|
||||
- update PR template wording (#15)
|
||||
- Add woodpecker manager in renovate-bot (#14)
|
||||
- fixes logo file path (#8)
|
||||
- Adds basic container setup with pipeline (#1)
|
||||
|
7
Caddyfile
Normal file
@ -0,0 +1,7 @@
|
||||
:8080 {
|
||||
bind 0.0.0.0
|
||||
root * /arkanum-docs
|
||||
encode gzip zstd
|
||||
try_files {path}.html {path} /
|
||||
file_server
|
||||
}
|
17
Dockerfile
@ -13,10 +13,11 @@ LABEL org.opencontainers.image.licenses="AGPL-3.0"
|
||||
ARG TAG
|
||||
LABEL org.opencontainers.image.version="${TAG}"
|
||||
|
||||
LABEL org.opencontainers.image.url="https://gitea.ocram85.com/CodeServer/arkanum"
|
||||
LABEL org.opencontainers.image.source="https://gitea.ocram85.com/CodeServer/arkanum.git"
|
||||
LABEL org.opencontainers.image.documentation="https://gitea.ocram85.com/CodeServer/arkanum"
|
||||
LABEL org.opencontainers.image.url="https://gitea.ocram85.com/arkanum/arkanum"
|
||||
LABEL org.opencontainers.image.source="https://gitea.ocram85.com/arkanum/arkanum.git"
|
||||
LABEL org.opencontainers.image.documentation="https://gitea.ocram85.com/arkanum/arkanum"
|
||||
|
||||
#region starship
|
||||
RUN \
|
||||
echo "**** install starship prompt ****" && \
|
||||
curl -sS -o /tmp/install.sh https://starship.rs/install.sh && \
|
||||
@ -26,16 +27,17 @@ RUN \
|
||||
echo "eval \"\$(starship init bash)\"" >> /etc/bash.bashrc
|
||||
|
||||
ENV STARSHIP_CONFIG=/etc/starship.toml
|
||||
|
||||
COPY starship.toml /etc/starship.toml
|
||||
#endregion starship
|
||||
|
||||
#region git
|
||||
ADD gitconfig-system /etc/gitconfig
|
||||
RUN \
|
||||
echo "**** setup git ****" && \
|
||||
# using prepared systemwide config file instead.
|
||||
#git config --system credential.helper store && \
|
||||
echo 'source /usr/share/bash-completion/completions/git' >> /etc/bash.bashrc
|
||||
#endregion git
|
||||
|
||||
#region cli
|
||||
ADD arkanum /usr/bin/
|
||||
ADD arkanum-completion /etc/bash_completion.d/
|
||||
RUN \
|
||||
@ -46,8 +48,11 @@ RUN \
|
||||
echo "if [[ ! -e \"$HOME/data/User/settings.json\" ]]; then arkanum config install-extensions && arkanum config reset-codesettings && \
|
||||
echo -e \"🧙 \\e[32markanum\\e[0m: Please reload Arkanum to finalize the setup...\" && read foo; fi" >> /etc/bash.bashrc && \
|
||||
echo "if [[ -e \"$HOME/enable_motd\" ]]; then echo -e \"Use 🧙 \\e[32m'arkanum'\\e[0m to install missing runtimes like dotnet or NodeJs.\"; fi" >> /etc/bash.bashrc
|
||||
#endregion cli
|
||||
|
||||
#region firacode
|
||||
WORKDIR /app/code-server/lib/vscode/out/vs/workbench
|
||||
ADD FiraCode/fonts/* ./fonts/
|
||||
ADD FiraCode/fonts.css ./
|
||||
RUN cat fonts.css >> workbench.web.main.css
|
||||
#endregion firacode
|
||||
|
14
Dockerfile.vitepress
Normal file
@ -0,0 +1,14 @@
|
||||
FROM oven/bun:1 as builder
|
||||
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
ENV NODE_ENV=production
|
||||
RUN bun install --frozen-lockfile
|
||||
RUN bun run --vite docs:build
|
||||
|
||||
FROM caddy:2.7.6-alpine as prod
|
||||
|
||||
COPY --from=builder /app/docs/.vitepress/dist/ /arkanum-docs/
|
||||
COPY Caddyfile /etc/caddy
|
||||
HEALTHCHECK --interval=15s --timeout=3s \
|
||||
CMD wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1
|
53
README.md
@ -1,7 +1,7 @@
|
||||
<p align="center">
|
||||
<a href="https://gitea.ocram85.com/CodeServer/arkanum/">
|
||||
<a href="https://gitea.ocram85.com/arkanum/arkanum/">
|
||||
<img
|
||||
src="https://gitea.ocram85.com/CodeServer/arkanum/raw/branch/master/assets/social-logo.png"
|
||||
src="https://gitea.ocram85.com/arkanum/arkanum/raw/branch/master/assets/social-logo.png"
|
||||
alt="Container"
|
||||
>
|
||||
</a>
|
||||
@ -16,8 +16,8 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://ci.ocram85.com/CodeServer/arkanum">
|
||||
<img src="https://ci.ocram85.com/api/badges/CodeServer/arkanum/status.svg" alt="Master Branch Build Status">
|
||||
<a href="https://ci.ocram85.com/arkanum/arkanum">
|
||||
<img src="https://ci.ocram85.com/api/badges/arkanum/arkanum/status.svg" alt="Master Branch Build Status">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
@ -25,13 +25,13 @@
|
||||
|
||||
### 1. ⚡ Get the image 📦
|
||||
|
||||
You can download the image from the gitea embedded container registry: `gitea.ocram85.com/codeserver/arkanum` with these tags:
|
||||
You can download the image from the gitea embedded container registry: `gitea.ocram85.com/arkanum/arkanum` with these tags:
|
||||
|
||||
- `latest` - Is based on the lasted master branch commit.
|
||||
- `next` - Is a test build based on the pull request
|
||||
- `1`, `0.1`, `0.1.0`, `1.0.0` - tag based version.
|
||||
|
||||
> **💡 NOTE: See the [packages page](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) for latest version and all other available tags.**
|
||||
> **💡 NOTE: See the [packages page](https://gitea.ocram85.com/arkanum/-/packages/container/arkanum/latest) for latest version and all other available tags.**
|
||||
|
||||
The container images are also published to these registries:
|
||||
|
||||
@ -56,10 +56,10 @@ Therefore you need
|
||||
> a trusted + **secure https connection**.
|
||||
|
||||
```yaml
|
||||
version: "3.8"
|
||||
version: '3.8'
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:1.0.0
|
||||
image: gitea.ocram85.com/arkanum/arkanum:1
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
@ -73,11 +73,11 @@ services:
|
||||
deploy:
|
||||
replicas: 1
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-public"
|
||||
- "traefik.http.routers.arkanum.rule=Host(`vscode.mydomain.com`)"
|
||||
- "traefik.http.routers.arkanum.tls.certresolver=myresolver"
|
||||
- "traefik.http.services.arkanum-srv.loadbalancer.server.port=8443"
|
||||
- 'traefik.enable=true'
|
||||
- 'traefik.docker.network=traefik-public'
|
||||
- 'traefik.http.routers.arkanum.rule=Host(`vscode.mydomain.com`)'
|
||||
- 'traefik.http.routers.arkanum.tls.certresolver=myresolver'
|
||||
- 'traefik.http.services.arkanum-srv.loadbalancer.server.port=8443'
|
||||
volumes:
|
||||
# store workspace and use config in volume.
|
||||
- codedata:/config
|
||||
@ -100,6 +100,7 @@ networks:
|
||||
```
|
||||
|
||||
> 💡 NOTE: For advanced config with additional environment variables see [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) help.
|
||||
|
||||
### 2.b Use Docker-Compose
|
||||
|
||||
This is a basic example for a `docker-compose` file from the [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) project.
|
||||
@ -108,10 +109,10 @@ See their [docs](https://github.com/linuxserver/docker-code-server#parameters) a
|
||||
|
||||
```yaml
|
||||
---
|
||||
version: "3.8"
|
||||
version: '3.8'
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:1.0.0
|
||||
image: gitea.ocram85.com/arkanum/arkanum:1
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
@ -143,9 +144,9 @@ And that's it. Now you're ready use arkanum as your daily remote code editor.
|
||||
## 📖 Content
|
||||
|
||||
<p align="center">
|
||||
<a href="https://gitea.ocram85.com/CodeServer/arkanum/">
|
||||
<a href="https://gitea.ocram85.com/arkanum/arkanum/">
|
||||
<img
|
||||
src="https://gitea.ocram85.com/CodeServer/arkanum/raw/branch/master/assets/screen1.png"
|
||||
src="https://gitea.ocram85.com/arkanum/arkanum/raw/branch/master/assets/screen1.png"
|
||||
alt="Screenshot1"
|
||||
>
|
||||
</a>
|
||||
@ -208,6 +209,7 @@ This helps reducing the image size.
|
||||
Example 2: arkanum install golang
|
||||
Example 3: arkanum config disable-motd
|
||||
```
|
||||
|
||||
### 📝 Fira Code (NerdFont patched)
|
||||
|
||||
Added FiraCode as default font in editor and integrated terminal. The font files are embedded and can be used without local installation.
|
||||
@ -219,13 +221,13 @@ If your start the container or log in the first time, a default config file is d
|
||||
This user setting defines the following stuff:
|
||||
|
||||
- Use compact menu bar to avoid users with multiple menu bars.
|
||||
- Use *One Dark Pro Darker* theme
|
||||
- Use *vscode-icons* icon set
|
||||
- Use _One Dark Pro Darker_ theme
|
||||
- Use _vscode-icons_ icon set
|
||||
- Set FiraCode as default font in editor.
|
||||
- Tries to use alternate font names for FiraCode if its locally available.
|
||||
- Sets FiraCode mono variant in terminal to enable icons used by starship prompt.
|
||||
- Enables font ligatures
|
||||
- Enables *auto save* and *format on save*.
|
||||
- Enables _auto save_ and _format on save_.
|
||||
- Disables auto update for extension.
|
||||
- Disables VSCode telemetry
|
||||
- Disable confirm message for sync branches.
|
||||
@ -255,13 +257,14 @@ arkanum config install-extensions
|
||||
arkanum config reset-codesettings
|
||||
# Reload with command F1 + Developer: Reload Window
|
||||
```
|
||||
|
||||
## 😡 We're Using GitHub Under Protest
|
||||
|
||||
This project is currently **mirrored** to GitHub. This is not ideal; GitHub is a
|
||||
proprietary, trade-secret system that is not Free and Open Source Software
|
||||
(FOSS). We are deeply concerned about using a proprietary system like GitHub
|
||||
to develop our FOSS project. We have an
|
||||
[open Gitea repository ](https://gitea.ocram85.com/CodeServer/arkanum/issues) where the
|
||||
[open Gitea repository](https://gitea.ocram85.com/arkanum/arkanum/issues) where the
|
||||
project contributors are actively discussing how we can move away from GitHub
|
||||
in the long term. We urge you to read about the
|
||||
[Give up GitHub](https://GiveUpGitHub.org) campaign from
|
||||
@ -269,11 +272,11 @@ in the long term. We urge you to read about the
|
||||
some of the reasons why GitHub is not a good place to host FOSS projects.
|
||||
|
||||
If you are a contributor who personally has already quit using GitHub, please
|
||||
[check this resource](https://gitea.ocram85.com/CodeServer/arkanum) for how to send us contributions without
|
||||
[check this resource](https://gitea.ocram85.com/arkanum/arkanum) for how to send us contributions without
|
||||
using GitHub directly.
|
||||
|
||||
Any use of this project's code by GitHub Copilot, past or present, is done
|
||||
without our permission. We do not consent to GitHub's use of this project's
|
||||
without our permission. We do not consent to GitHub's use of this project's
|
||||
code in Copilot.
|
||||
|
||||

|
||||
@ -284,14 +287,14 @@ Akranum is based on the following projects and wouldn't be possible without them
|
||||
|
||||
- [microsoft/vscode](https://github.com/microsoft/vscode) - Visual Studio Code, OSS. `[MIT]`
|
||||
- [coder/code-server](https://github.com/coder/code-server) - VSCode on a remote server, accessible through the browser. `[MIT]`
|
||||
- [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) - docker image based for *coder/code-server*. `[GPL-3.0]`
|
||||
- [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) - docker image based for _coder/code-server_. `[GPL-3.0]`
|
||||
- A huge thanks to tuanpham for sharing his [code-server font patch](https://github.com/tuanpham-dev/code-server-font-patch).
|
||||
|
||||
## ⚖️ License (AGPLv3)
|
||||
|
||||

|
||||
|
||||
```
|
||||
```text
|
||||
Arkanum - Code-Server container optimized for daily use.
|
||||
Copyright (C) 2022 "OCram85 <me@ocram85.com>"
|
||||
|
||||
|
5
arkanum
@ -2,6 +2,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
# region usage
|
||||
function showHelp() {
|
||||
cat << HELP
|
||||
🧙 arkanum ✨🌌☄️💥 is used to install optional tools for developing in a
|
||||
@ -40,6 +41,7 @@ function showHelp() {
|
||||
Example 3: arkanum config disable-motd
|
||||
HELP
|
||||
}
|
||||
# endregion usage
|
||||
|
||||
function disableMotd() {
|
||||
if [[ -e "$HOME/enable_motd" ]]; then
|
||||
@ -227,7 +229,7 @@ function instCodeExtension() {
|
||||
|
||||
function setCodeSettings() {
|
||||
CODEFILE="$HOME/data/User/settings.json"
|
||||
|
||||
#region code-settings
|
||||
# VSCode user settings file
|
||||
say "Setting VScode base settings.($CODEFILE)" "VSCode"
|
||||
cat <<EOF | tee "$CODEFILE"
|
||||
@ -244,6 +246,7 @@ function setCodeSettings() {
|
||||
"telemetry.telemetryLevel": "off"
|
||||
}
|
||||
EOF
|
||||
#endregion code-settings
|
||||
say "done." "VSCode"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 106 KiB |
53
docs/.vitepress/config.mjs
Normal file
@ -0,0 +1,53 @@
|
||||
import { defineConfig } from 'vitepress'
|
||||
|
||||
import { devDependencies, version } from '../../package.json'
|
||||
import navbar from './navbar.mjs'
|
||||
import { SidebarItems } from './sidebar.mjs'
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
title: 'Arkanum',
|
||||
titleTemplate: '🧙 Arkanum',
|
||||
description: 'An opinionated Code-Server distribution.',
|
||||
lang: 'en-US',
|
||||
head: [
|
||||
['link', { rel: 'icon', href: '/favicon.png' }],
|
||||
[
|
||||
'script',
|
||||
{
|
||||
async: '',
|
||||
defer: '',
|
||||
src: 'https://umami.cafs.komm-one.net/script.js',
|
||||
'data-website-id': 'e76d99a0-a185-4151-8a68-0fb44c6f0dc0',
|
||||
'data-domains': 'arkanum.dev',
|
||||
'data-do-not-track': 'true',
|
||||
},
|
||||
],
|
||||
],
|
||||
cleanUrls: true,
|
||||
appearance: 'force-dark',
|
||||
markdown: {
|
||||
image: {
|
||||
lazyLoading: true,
|
||||
},
|
||||
},
|
||||
themeConfig: {
|
||||
logo: '/logo.png',
|
||||
outline: 'deep',
|
||||
search: {
|
||||
provider: 'local',
|
||||
},
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
nav: navbar.getItems(version),
|
||||
sidebar: SidebarItems,
|
||||
socialLinks: [{ icon: 'github', link: 'https://gitea.ocram85.com/arkanum/arkanum' }],
|
||||
footer: {
|
||||
message: 'Released under the AGPLv3 License.',
|
||||
copyright: 'Copyright © 2022-present OCram85 <me@ocram85.com>',
|
||||
},
|
||||
editLink: {
|
||||
pattern: 'https://gitea.ocram85.com/arkanum/arkanum/_edit/main/docs/:path',
|
||||
text: 'Edit this page on Gitea',
|
||||
},
|
||||
},
|
||||
})
|
27
docs/.vitepress/navbar.mjs
Normal file
@ -0,0 +1,27 @@
|
||||
function getItems(version) {
|
||||
const ci = process.env.ci
|
||||
const pr = process.env.CI_COMMIT_PULL_REQUEST
|
||||
|
||||
let nver = undefined
|
||||
|
||||
if (ci === 'woodpecker') {
|
||||
if (pr !== null) {
|
||||
nver = `${version}#${pr}`
|
||||
}
|
||||
} else {
|
||||
nver = version
|
||||
}
|
||||
|
||||
return [
|
||||
{ text: 'Home', link: '/' },
|
||||
{ text: 'Guide', link: '/guide/about' },
|
||||
{
|
||||
text: nver,
|
||||
items: [{ text: 'Changelog', link: '/changelog' }],
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
export default {
|
||||
getItems,
|
||||
}
|
30
docs/.vitepress/sidebar.mjs
Normal file
@ -0,0 +1,30 @@
|
||||
export const SidebarItems = {
|
||||
'/guide/': { base: '/guide/', items: getGuide() },
|
||||
}
|
||||
|
||||
function getGuide() {
|
||||
return [
|
||||
{
|
||||
text: 'Guide',
|
||||
//collapsed: false,
|
||||
items: [
|
||||
{ text: 'About', link: 'about' },
|
||||
{ text: 'Getting Started', link: 'getting-started' },
|
||||
{
|
||||
text: 'Components',
|
||||
items: [
|
||||
{ text: 'Base Images', link: 'components/base-images' },
|
||||
{ text: 'Included Packages', link: 'components/packages' },
|
||||
{ text: 'Starship Prompt', link: 'components/starship' },
|
||||
{ text: 'Git', link: 'components/git' },
|
||||
{ text: 'Arkanum CLI', link: 'components/arkanum-cli' },
|
||||
{ text: 'FiraCode Font', link: 'components/firacode' },
|
||||
{ text: 'VSCode', link: 'components/vscode' },
|
||||
],
|
||||
},
|
||||
{ text: 'Known Issues', link: 'known-issues' },
|
||||
{ text: 'FAQs', link: 'faq' },
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
17
docs/.vitepress/theme/index.js
Normal file
@ -0,0 +1,17 @@
|
||||
// https://vitepress.dev/guide/custom-theme
|
||||
import { h } from 'vue'
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import './style.css'
|
||||
|
||||
/** @type {import('vitepress').Theme} */
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
Layout: () => {
|
||||
return h(DefaultTheme.Layout, null, {
|
||||
// https://vitepress.dev/guide/extending-default-theme#layout-slots
|
||||
})
|
||||
},
|
||||
enhanceApp({ app, router, siteData }) {
|
||||
// ...
|
||||
}
|
||||
}
|
139
docs/.vitepress/theme/style.css
Normal file
@ -0,0 +1,139 @@
|
||||
/**
|
||||
* Customize default theme styling by overriding CSS variables:
|
||||
* https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
|
||||
*/
|
||||
|
||||
/**
|
||||
* Colors
|
||||
*
|
||||
* Each colors have exact same color scale system with 3 levels of solid
|
||||
* colors with different brightness, and 1 soft color.
|
||||
*
|
||||
* - `XXX-1`: The most solid color used mainly for colored text. It must
|
||||
* satisfy the contrast ratio against when used on top of `XXX-soft`.
|
||||
*
|
||||
* - `XXX-2`: The color used mainly for hover state of the button.
|
||||
*
|
||||
* - `XXX-3`: The color for solid background, such as bg color of the button.
|
||||
* It must satisfy the contrast ratio with pure white (#ffffff) text on
|
||||
* top of it.
|
||||
*
|
||||
* - `XXX-soft`: The color used for subtle background such as custom container
|
||||
* or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
|
||||
* on top of it.
|
||||
*
|
||||
* The soft color must be semi transparent alpha channel. This is crucial
|
||||
* because it allows adding multiple "soft" colors on top of each other
|
||||
* to create a accent, such as when having inline code block inside
|
||||
* custom containers.
|
||||
*
|
||||
* - `default`: The color used purely for subtle indication without any
|
||||
* special meanings attched to it such as bg color for menu hover state.
|
||||
*
|
||||
* - `brand`: Used for primary brand colors, such as link text, button with
|
||||
* brand theme, etc.
|
||||
*
|
||||
* - `tip`: Used to indicate useful information. The default theme uses the
|
||||
* brand color for this by default.
|
||||
*
|
||||
* - `warning`: Used to indicate warning to the users. Used in custom
|
||||
* container, badges, etc.
|
||||
*
|
||||
* - `danger`: Used to show error, or dangerous message to the users. Used
|
||||
* in custom container, badges, etc.
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-default-1: var(--vp-c-gray-1);
|
||||
--vp-c-default-2: var(--vp-c-gray-2);
|
||||
--vp-c-default-3: var(--vp-c-gray-3);
|
||||
--vp-c-default-soft: var(--vp-c-gray-soft);
|
||||
|
||||
--vp-c-brand-1: #10b981;
|
||||
--vp-c-brand-2: #0e9d6e;
|
||||
--vp-c-brand-3: #11bc84;
|
||||
--vp-c-brand-soft: rgba(16, 185, 129, 0.14);
|
||||
|
||||
--vp-c-tip-1: var(--vp-c-brand-1);
|
||||
--vp-c-tip-2: var(--vp-c-brand-2);
|
||||
--vp-c-tip-3: var(--vp-c-brand-3);
|
||||
--vp-c-tip-soft: var(--vp-c-brand-soft);
|
||||
|
||||
--vp-c-warning-1: var(--vp-c-yellow-1);
|
||||
--vp-c-warning-2: var(--vp-c-yellow-2);
|
||||
--vp-c-warning-3: var(--vp-c-yellow-3);
|
||||
--vp-c-warning-soft: var(--vp-c-yellow-soft);
|
||||
|
||||
--vp-c-danger-1: var(--vp-c-red-1);
|
||||
--vp-c-danger-2: var(--vp-c-red-2);
|
||||
--vp-c-danger-3: var(--vp-c-red-3);
|
||||
--vp-c-danger-soft: var(--vp-c-red-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Button
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-button-brand-border: transparent;
|
||||
--vp-button-brand-text: var(--vp-c-white);
|
||||
--vp-button-brand-bg: var(--vp-c-brand-3);
|
||||
--vp-button-brand-hover-border: transparent;
|
||||
--vp-button-brand-hover-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-2);
|
||||
--vp-button-brand-active-border: transparent;
|
||||
--vp-button-brand-active-text: var(--vp-c-white);
|
||||
--vp-button-brand-active-bg: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Home
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-home-hero-name-color: transparent;
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(
|
||||
120deg,
|
||||
#41d1ff 30%,
|
||||
#10b981
|
||||
);
|
||||
|
||||
--vp-home-hero-image-background-image: linear-gradient(
|
||||
-45deg,
|
||||
#47caff 50%,
|
||||
#10b981 50%
|
||||
);
|
||||
--vp-home-hero-image-filter: blur(44px);
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(56px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(68px);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Custom Block
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-custom-block-tip-border: transparent;
|
||||
--vp-custom-block-tip-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-tip-bg: var(--vp-c-brand-soft);
|
||||
--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Algolia
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
.DocSearch {
|
||||
--docsearch-primary-color: var(--vp-c-brand-1) !important;
|
||||
}
|
||||
|
571
docs/.vitepress/theme/vars.css
Normal file
@ -0,0 +1,571 @@
|
||||
/**
|
||||
* Colors: Solid
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-white: #ffffff;
|
||||
--vp-c-black: #000000;
|
||||
|
||||
--vp-c-neutral: var(--vp-c-black);
|
||||
--vp-c-neutral-inverse: var(--vp-c-white);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-neutral: var(--vp-c-white);
|
||||
--vp-c-neutral-inverse: var(--vp-c-black);
|
||||
}
|
||||
|
||||
/**
|
||||
* Colors: Palette
|
||||
*
|
||||
* The primitive colors used for accent colors. These colors are referenced
|
||||
* by functional colors such as "Text", "Background", or "Brand".
|
||||
*
|
||||
* Each colors have exact same color scale system with 3 levels of solid
|
||||
* colors with different brightness, and 1 soft color.
|
||||
*
|
||||
* - `XXX-1`: The most solid color used mainly for colored text. It must
|
||||
* satisfy the contrast ratio against when used on top of `XXX-soft`.
|
||||
*
|
||||
* - `XXX-2`: The color used mainly for hover state of the button.
|
||||
*
|
||||
* - `XXX-3`: The color for solid background, such as bg color of the button.
|
||||
* It must satisfy the contrast ratio with pure white (#ffffff) text on
|
||||
* top of it.
|
||||
*
|
||||
* - `XXX-soft`: The color used for subtle background such as custom container
|
||||
* or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
|
||||
* on top of it.
|
||||
*
|
||||
* The soft color must be semi transparent alpha channel. This is crucial
|
||||
* because it allows adding multiple "soft" colors on top of each other
|
||||
* to create a accent, such as when having inline code block inside
|
||||
* custom containers.
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-gray-1: #dddde3;
|
||||
--vp-c-gray-2: #e4e4e9;
|
||||
--vp-c-gray-3: #ebebef;
|
||||
--vp-c-gray-soft: rgba(142, 150, 170, 0.14);
|
||||
|
||||
--vp-c-indigo-1: #3451b2;
|
||||
--vp-c-indigo-2: #3a5ccc;
|
||||
--vp-c-indigo-3: #5672cd;
|
||||
--vp-c-indigo-soft: rgba(100, 108, 255, 0.14);
|
||||
|
||||
--vp-c-purple-1: #6f42c1;
|
||||
--vp-c-purple-2: #7e4cc9;
|
||||
--vp-c-purple-3: #8e5cd9;
|
||||
--vp-c-purple-soft: rgba(159, 122, 234, 0.14);
|
||||
|
||||
--vp-c-green-1: #18794e;
|
||||
--vp-c-green-2: #299764;
|
||||
--vp-c-green-3: #30a46c;
|
||||
--vp-c-green-soft: rgba(16, 185, 129, 0.14);
|
||||
|
||||
--vp-c-yellow-1: #915930;
|
||||
--vp-c-yellow-2: #946300;
|
||||
--vp-c-yellow-3: #9f6a00;
|
||||
--vp-c-yellow-soft: rgba(234, 179, 8, 0.14);
|
||||
|
||||
--vp-c-red-1: #b8272c;
|
||||
--vp-c-red-2: #d5393e;
|
||||
--vp-c-red-3: #e0575b;
|
||||
--vp-c-red-soft: rgba(244, 63, 94, 0.14);
|
||||
|
||||
--vp-c-sponsor: #db2777;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-gray-1: #515c67;
|
||||
--vp-c-gray-2: #414853;
|
||||
--vp-c-gray-3: #32363f;
|
||||
--vp-c-gray-soft: rgba(101, 117, 133, 0.16);
|
||||
|
||||
--vp-c-indigo-1: #a8b1ff;
|
||||
--vp-c-indigo-2: #5c73e7;
|
||||
--vp-c-indigo-3: #3e63dd;
|
||||
--vp-c-indigo-soft: rgba(100, 108, 255, 0.16);
|
||||
|
||||
--vp-c-purple-1: #c8abfa;
|
||||
--vp-c-purple-2: #a879e6;
|
||||
--vp-c-purple-3: #8e5cd9;
|
||||
--vp-c-purple-soft: rgba(159, 122, 234, 0.16);
|
||||
|
||||
--vp-c-green-1: #3dd68c;
|
||||
--vp-c-green-2: #30a46c;
|
||||
--vp-c-green-3: #298459;
|
||||
--vp-c-green-soft: rgba(16, 185, 129, 0.16);
|
||||
|
||||
--vp-c-yellow-1: #f9b44e;
|
||||
--vp-c-yellow-2: #da8b17;
|
||||
--vp-c-yellow-3: #a46a0a;
|
||||
--vp-c-yellow-soft: rgba(234, 179, 8, 0.16);
|
||||
|
||||
--vp-c-red-1: #f66f81;
|
||||
--vp-c-red-2: #f14158;
|
||||
--vp-c-red-3: #b62a3c;
|
||||
--vp-c-red-soft: rgba(244, 63, 94, 0.16);
|
||||
}
|
||||
|
||||
/**
|
||||
* Colors: Background
|
||||
*
|
||||
* - `bg`: The bg color used for main screen.
|
||||
*
|
||||
* - `bg-alt`: The alternative bg color used in places such as "sidebar",
|
||||
* or "code block".
|
||||
*
|
||||
* - `bg-elv`: The elevated bg color. This is used at parts where it "floats",
|
||||
* such as "dialog".
|
||||
*
|
||||
* - `bg-soft`: The bg color to slightly distinguish some components from
|
||||
* the page. Used for things like "carbon ads" or "table".
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-bg: #ffffff;
|
||||
--vp-c-bg-alt: #f6f6f7;
|
||||
--vp-c-bg-elv: #ffffff;
|
||||
--vp-c-bg-soft: #f6f6f7;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-bg: #1b1b1f;
|
||||
--vp-c-bg-alt: #161618;
|
||||
--vp-c-bg-elv: #202127;
|
||||
--vp-c-bg-soft: #202127;
|
||||
}
|
||||
|
||||
/**
|
||||
* Colors: Borders
|
||||
*
|
||||
* - `divider`: This is used for separators. This is used to divide sections
|
||||
* within the same components, such as having separator on "h2" heading.
|
||||
*
|
||||
* - `border`: This is designed for borders on interactive components.
|
||||
* For example this should be used for a button outline.
|
||||
*
|
||||
* - `gutter`: This is used to divide components in the page. For example
|
||||
* the header and the lest of the page.
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-border: #c2c2c4;
|
||||
--vp-c-divider: #e2e2e3;
|
||||
--vp-c-gutter: #e2e2e3;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-border: #3c3f44;
|
||||
--vp-c-divider: #2e2e32;
|
||||
--vp-c-gutter: #000000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Colors: Text
|
||||
*
|
||||
* - `text-1`: Used for primary text.
|
||||
*
|
||||
* - `text-2`: Used for muted texts, such as "inactive menu" or "info texts".
|
||||
*
|
||||
* - `text-3`: Used for subtle texts, such as "placeholders" or "caret icon".
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-text-1: rgba(60, 60, 67);
|
||||
--vp-c-text-2: rgba(60, 60, 67, 0.78);
|
||||
--vp-c-text-3: rgba(60, 60, 67, 0.56);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-text-1: rgba(255, 255, 245, 0.86);
|
||||
--vp-c-text-2: rgba(235, 235, 245, 0.6);
|
||||
--vp-c-text-3: rgba(235, 235, 245, 0.38);
|
||||
}
|
||||
|
||||
/**
|
||||
* Colors: Function
|
||||
*
|
||||
* - `default`: The color used purely for subtle indication without any
|
||||
* special meanings attached to it such as bg color for menu hover state.
|
||||
*
|
||||
* - `brand`: Used for primary brand colors, such as link text, button with
|
||||
* brand theme, etc.
|
||||
*
|
||||
* - `tip`: Used to indicate useful information. The default theme uses the
|
||||
* brand color for this by default.
|
||||
*
|
||||
* - `warning`: Used to indicate warning to the users. Used in custom
|
||||
* container, badges, etc.
|
||||
*
|
||||
* - `danger`: Used to show error, or dangerous message to the users. Used
|
||||
* in custom container, badges, etc.
|
||||
*
|
||||
* To understand the scaling system, refer to "Colors: Palette" section.
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-default-1: var(--vp-c-gray-1);
|
||||
--vp-c-default-2: var(--vp-c-gray-2);
|
||||
--vp-c-default-3: var(--vp-c-gray-3);
|
||||
--vp-c-default-soft: var(--vp-c-gray-soft);
|
||||
|
||||
--vp-c-brand-1: var(--vp-c-indigo-1);
|
||||
--vp-c-brand-2: var(--vp-c-indigo-2);
|
||||
--vp-c-brand-3: var(--vp-c-indigo-3);
|
||||
--vp-c-brand-soft: var(--vp-c-indigo-soft);
|
||||
|
||||
/* DEPRECATED: Use `--vp-c-brand-1` instead. */
|
||||
--vp-c-brand: var(--vp-c-brand-1);
|
||||
|
||||
--vp-c-tip-1: var(--vp-c-brand-1);
|
||||
--vp-c-tip-2: var(--vp-c-brand-2);
|
||||
--vp-c-tip-3: var(--vp-c-brand-3);
|
||||
--vp-c-tip-soft: var(--vp-c-brand-soft);
|
||||
|
||||
--vp-c-note-1: var(--vp-c-brand-1);
|
||||
--vp-c-note-2: var(--vp-c-brand-2);
|
||||
--vp-c-note-3: var(--vp-c-brand-3);
|
||||
--vp-c-note-soft: var(--vp-c-brand-soft);
|
||||
|
||||
--vp-c-success-1: var(--vp-c-green-1);
|
||||
--vp-c-success-2: var(--vp-c-green-2);
|
||||
--vp-c-success-3: var(--vp-c-green-3);
|
||||
--vp-c-success-soft: var(--vp-c-green-soft);
|
||||
|
||||
--vp-c-important-1: var(--vp-c-purple-1);
|
||||
--vp-c-important-2: var(--vp-c-purple-2);
|
||||
--vp-c-important-3: var(--vp-c-purple-3);
|
||||
--vp-c-important-soft: var(--vp-c-purple-soft);
|
||||
|
||||
--vp-c-warning-1: var(--vp-c-yellow-1);
|
||||
--vp-c-warning-2: var(--vp-c-yellow-2);
|
||||
--vp-c-warning-3: var(--vp-c-yellow-3);
|
||||
--vp-c-warning-soft: var(--vp-c-yellow-soft);
|
||||
|
||||
--vp-c-danger-1: var(--vp-c-red-1);
|
||||
--vp-c-danger-2: var(--vp-c-red-2);
|
||||
--vp-c-danger-3: var(--vp-c-red-3);
|
||||
--vp-c-danger-soft: var(--vp-c-red-soft);
|
||||
|
||||
--vp-c-caution-1: var(--vp-c-red-1);
|
||||
--vp-c-caution-2: var(--vp-c-red-2);
|
||||
--vp-c-caution-3: var(--vp-c-red-3);
|
||||
--vp-c-caution-soft: var(--vp-c-red-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Typography
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-font-family-base: 'Chinese Quotes', 'Inter var', 'Inter', ui-sans-serif,
|
||||
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
||||
'Helvetica Neue', Helvetica, Arial, 'Noto Sans', sans-serif,
|
||||
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
||||
--vp-font-family-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco,
|
||||
Consolas, 'Liberation Mono', 'Courier New', monospace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shadows
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
|
||||
--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.07);
|
||||
--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08);
|
||||
--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, 0.12), 0 3px 9px rgba(0, 0, 0, 0.12);
|
||||
--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.16);
|
||||
}
|
||||
|
||||
/**
|
||||
* Z-indexes
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-z-index-footer: 10;
|
||||
--vp-z-index-local-nav: 20;
|
||||
--vp-z-index-nav: 30;
|
||||
--vp-z-index-layout-top: 40;
|
||||
--vp-z-index-backdrop: 50;
|
||||
--vp-z-index-sidebar: 60;
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
:root {
|
||||
--vp-z-index-sidebar: 25;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Icons
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");
|
||||
--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/**
|
||||
* Layouts
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-layout-max-width: 1440px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Header Anchor
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-header-anchor-symbol: '#';
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Code
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-code-line-height: 1.7;
|
||||
--vp-code-font-size: 0.875em;
|
||||
--vp-code-color: var(--vp-c-brand-1);
|
||||
--vp-code-link-color: var(--vp-c-brand-1);
|
||||
--vp-code-link-hover-color: var(--vp-c-brand-2);
|
||||
--vp-code-bg: var(--vp-c-default-soft);
|
||||
|
||||
--vp-code-block-color: var(--vp-c-text-2);
|
||||
--vp-code-block-bg: var(--vp-c-bg-alt);
|
||||
--vp-code-block-divider-color: var(--vp-c-gutter);
|
||||
|
||||
--vp-code-lang-color: var(--vp-c-text-3);
|
||||
|
||||
--vp-code-line-highlight-color: var(--vp-c-default-soft);
|
||||
--vp-code-line-number-color: var(--vp-c-text-3);
|
||||
|
||||
--vp-code-line-diff-add-color: var(--vp-c-success-soft);
|
||||
--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);
|
||||
|
||||
--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);
|
||||
--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);
|
||||
|
||||
--vp-code-line-warning-color: var(--vp-c-warning-soft);
|
||||
--vp-code-line-error-color: var(--vp-c-danger-soft);
|
||||
|
||||
--vp-code-copy-code-border-color: var(--vp-c-divider);
|
||||
--vp-code-copy-code-bg: var(--vp-c-bg-soft);
|
||||
--vp-code-copy-code-hover-border-color: var(--vp-c-divider);
|
||||
--vp-code-copy-code-hover-bg: var(--vp-c-bg);
|
||||
--vp-code-copy-code-active-text: var(--vp-c-text-2);
|
||||
--vp-code-copy-copied-text-content: 'Copied';
|
||||
|
||||
--vp-code-tab-divider: var(--vp-code-block-divider-color);
|
||||
--vp-code-tab-text-color: var(--vp-c-text-2);
|
||||
--vp-code-tab-bg: var(--vp-code-block-bg);
|
||||
--vp-code-tab-hover-text-color: var(--vp-c-text-1);
|
||||
--vp-code-tab-active-text-color: var(--vp-c-text-1);
|
||||
--vp-code-tab-active-bar-color: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Button
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-button-brand-border: transparent;
|
||||
--vp-button-brand-text: var(--vp-c-white);
|
||||
--vp-button-brand-bg: var(--vp-c-brand-3);
|
||||
--vp-button-brand-hover-border: transparent;
|
||||
--vp-button-brand-hover-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-2);
|
||||
--vp-button-brand-active-border: transparent;
|
||||
--vp-button-brand-active-text: var(--vp-c-white);
|
||||
--vp-button-brand-active-bg: var(--vp-c-brand-1);
|
||||
|
||||
--vp-button-alt-border: transparent;
|
||||
--vp-button-alt-text: var(--vp-c-text-1);
|
||||
--vp-button-alt-bg: var(--vp-c-default-3);
|
||||
--vp-button-alt-hover-border: transparent;
|
||||
--vp-button-alt-hover-text: var(--vp-c-text-1);
|
||||
--vp-button-alt-hover-bg: var(--vp-c-default-2);
|
||||
--vp-button-alt-active-border: transparent;
|
||||
--vp-button-alt-active-text: var(--vp-c-text-1);
|
||||
--vp-button-alt-active-bg: var(--vp-c-default-1);
|
||||
|
||||
--vp-button-sponsor-border: var(--vp-c-text-2);
|
||||
--vp-button-sponsor-text: var(--vp-c-text-2);
|
||||
--vp-button-sponsor-bg: transparent;
|
||||
--vp-button-sponsor-hover-border: var(--vp-c-sponsor);
|
||||
--vp-button-sponsor-hover-text: var(--vp-c-sponsor);
|
||||
--vp-button-sponsor-hover-bg: transparent;
|
||||
--vp-button-sponsor-active-border: var(--vp-c-sponsor);
|
||||
--vp-button-sponsor-active-text: var(--vp-c-sponsor);
|
||||
--vp-button-sponsor-active-bg: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Custom Block
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-custom-block-font-size: 14px;
|
||||
--vp-custom-block-code-font-size: 13px;
|
||||
|
||||
--vp-custom-block-info-border: transparent;
|
||||
--vp-custom-block-info-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-info-bg: var(--vp-c-default-soft);
|
||||
--vp-custom-block-info-code-bg: var(--vp-c-default-soft);
|
||||
|
||||
--vp-custom-block-note-border: transparent;
|
||||
--vp-custom-block-note-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-note-bg: var(--vp-c-default-soft);
|
||||
--vp-custom-block-note-code-bg: var(--vp-c-default-soft);
|
||||
|
||||
--vp-custom-block-tip-border: transparent;
|
||||
--vp-custom-block-tip-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-tip-bg: var(--vp-c-tip-soft);
|
||||
--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);
|
||||
|
||||
--vp-custom-block-important-border: transparent;
|
||||
--vp-custom-block-important-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-important-bg: var(--vp-c-important-soft);
|
||||
--vp-custom-block-important-code-bg: var(--vp-c-important-soft);
|
||||
|
||||
--vp-custom-block-warning-border: transparent;
|
||||
--vp-custom-block-warning-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-warning-bg: var(--vp-c-warning-soft);
|
||||
--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);
|
||||
|
||||
--vp-custom-block-danger-border: transparent;
|
||||
--vp-custom-block-danger-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-danger-bg: var(--vp-c-danger-soft);
|
||||
--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);
|
||||
|
||||
--vp-custom-block-caution-border: transparent;
|
||||
--vp-custom-block-caution-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-caution-bg: var(--vp-c-caution-soft);
|
||||
--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);
|
||||
|
||||
--vp-custom-block-details-border: var(--vp-custom-block-info-border);
|
||||
--vp-custom-block-details-text: var(--vp-custom-block-info-text);
|
||||
--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);
|
||||
--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Input
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-input-border-color: var(--vp-c-border);
|
||||
--vp-input-bg-color: var(--vp-c-bg-alt);
|
||||
|
||||
--vp-input-switch-bg-color: var(--vp-c-default-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Nav
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-nav-height: 64px;
|
||||
--vp-nav-bg-color: var(--vp-c-bg);
|
||||
--vp-nav-screen-bg-color: var(--vp-c-bg);
|
||||
--vp-nav-logo-height: 24px;
|
||||
}
|
||||
|
||||
.hide-nav {
|
||||
--vp-nav-height: 0px;
|
||||
}
|
||||
|
||||
.hide-nav .VPSidebar {
|
||||
--vp-nav-height: 22px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Local Nav
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-local-nav-bg-color: var(--vp-c-bg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Sidebar
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-sidebar-width: 272px;
|
||||
--vp-sidebar-bg-color: var(--vp-c-bg-alt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Colors Backdrop
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-backdrop-bg-color: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Home
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-home-hero-name-color: var(--vp-c-brand-1);
|
||||
--vp-home-hero-name-background: transparent;
|
||||
|
||||
--vp-home-hero-image-background-image: none;
|
||||
--vp-home-hero-image-filter: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Badge
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-badge-info-border: transparent;
|
||||
--vp-badge-info-text: var(--vp-c-text-2);
|
||||
--vp-badge-info-bg: var(--vp-c-default-soft);
|
||||
|
||||
--vp-badge-tip-border: transparent;
|
||||
--vp-badge-tip-text: var(--vp-c-tip-1);
|
||||
--vp-badge-tip-bg: var(--vp-c-tip-soft);
|
||||
|
||||
--vp-badge-warning-border: transparent;
|
||||
--vp-badge-warning-text: var(--vp-c-warning-1);
|
||||
--vp-badge-warning-bg: var(--vp-c-warning-soft);
|
||||
|
||||
--vp-badge-danger-border: transparent;
|
||||
--vp-badge-danger-text: var(--vp-c-danger-1);
|
||||
--vp-badge-danger-bg: var(--vp-c-danger-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Carbon Ads
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-carbon-ads-text-color: var(--vp-c-text-1);
|
||||
--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);
|
||||
--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);
|
||||
--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);
|
||||
--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Local Search
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-local-search-bg: var(--vp-c-bg);
|
||||
--vp-local-search-result-bg: var(--vp-c-bg);
|
||||
--vp-local-search-result-border: var(--vp-c-divider);
|
||||
--vp-local-search-result-selected-bg: var(--vp-c-bg);
|
||||
--vp-local-search-result-selected-border: var(--vp-c-brand-1);
|
||||
--vp-local-search-highlight-bg: var(--vp-c-brand-1);
|
||||
--vp-local-search-highlight-text: var(--vp-c-neutral-inverse);
|
||||
}
|
15
docs/changelog.md
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
title: 'Changelog'
|
||||
description: 'Project changelog'
|
||||
layout: doc
|
||||
sidebar: false
|
||||
aside: right
|
||||
navbar: true
|
||||
editLink: false
|
||||
---
|
||||
|
||||
::: details
|
||||
Sourced from automatically generated CHANGELOG.md project file.
|
||||
:::
|
||||
|
||||
<!--@include: ../CHANGELOG.md-->
|
36
docs/guide/about.md
Normal file
@ -0,0 +1,36 @@
|
||||
# What is Arkanum ?
|
||||
|
||||
## 🙏 Mantra
|
||||
|
||||
Arkanum pursues the following principles to achieve its goals:
|
||||
|
||||
### 🥕 Principles
|
||||
|
||||
- Reduce the setup + configuration complexity by
|
||||
- Completing existing VSCode remote development solutions *(like `Coder/code-server` or `gitpod-io/openvscode-server`)* with an
|
||||
opinionated tool set and configuration.
|
||||
|
||||
### 🏁 Goals
|
||||
|
||||
- Deliver a fully featured remote development environment.
|
||||
- Provide the best possible user experience for daily VS Code remote usage.
|
||||
|
||||
And most important:
|
||||
|
||||
> [!TIP] ⭐ Help people to stay focused on their primary task:
|
||||
> Develop awesome stuff without wasting time with setting up *DEV* environments.
|
||||
|
||||
## 📆 History
|
||||
|
||||
The Arkanum project started when I was challenged to work on multiple projects from different locations
|
||||
and devices. Setting up VSCode based *DEV* environments can be hard and takes a minute. Especially when
|
||||
you think about all the tools, extensions and setup needed to work efficiently. On top of this,
|
||||
you also want to keep the environments up to date to avoid version problems.
|
||||
|
||||
Another motivation was the fact that I needed to find a way reducing the time for onboarding, supporting, and debugging the environments from other teammates.
|
||||
|
||||
So I started searching for existing solutions. I didn't wan't to go the traditional way of packaging and deploying
|
||||
a software solution. Luckily there was already a way to use VS Code remotely and I started working with [coder/code-server](https://github.com/coder/code-server)
|
||||
and [gitpod-io/openvscode-server](https://github.com/gitpod-io/openvscode-server).
|
||||
|
||||
In late 2022 I decided to customize these project and so I started `Arkanum` as open-source project.
|
38
docs/guide/components/arkanum-cli.md
Normal file
@ -0,0 +1,38 @@
|
||||
# Arkanum-cli
|
||||
|
||||
## About
|
||||
|
||||
The `arkanum` container image includes the `arkanum-cli` to manage the current instance and be able to install
|
||||
additional resources. To keep the base image as small as possible we decided not ot include all possible frameworks. This decision also helps to give the use the ability to manage the needed framework versions like for
|
||||
NodeJS or Golang.
|
||||
|
||||
For now the arkanum-cli is made with a simple bash script. But this could change whenever the complexity increases
|
||||
significantly.
|
||||
|
||||
## Usage
|
||||
|
||||
To use the cli just open a terminal and call the `arkanum` command. We also added a bash-completion
|
||||
script for the cli.
|
||||
|
||||
<<< @/../arkanum#usage{34-36 bash:line-numbers}
|
||||
|
||||
The first thing you normally after starting your Arkanum instance is setting the git user and email:
|
||||
|
||||
`arkanum git setup "foobar" "foobar@arkanum.dev"`
|
||||
|
||||
Now you can simple add your needed tools and frameworks:
|
||||
|
||||
```bash
|
||||
arkanum install golang
|
||||
arkanum install nodejs
|
||||
```
|
||||
|
||||
## Referenced Source Files
|
||||
|
||||
::: code-group
|
||||
<<< @/../Dockerfile#cli{Dockerfile}
|
||||
|
||||
<<< @/../arkanum{bash}
|
||||
|
||||
<<< @/../arkanum-completion{bash}
|
||||
:::
|
19
docs/guide/components/base-images.md
Normal file
@ -0,0 +1,19 @@
|
||||
# Base Images
|
||||
|
||||
## Coder/code-server
|
||||
|
||||
Arkanum is build on top of the [code-server](https://github.com/coder/code-server) project. This project
|
||||
provides the base ability to run VS Code remotely and accessible by any browser instead of the need for a local
|
||||
installation.
|
||||
|
||||
The folks from [linuxserver.io](https://www.linuxserver.io/) build and maintainer super reliable container images
|
||||
for all kind of software. And so they also did for the code-server project.
|
||||
|
||||
We also took their [code-server image](https://hub.docker.com/r/linuxserver/code-server) as our base for further
|
||||
customizing and tailoring arkanum.
|
||||
|
||||
## gitpod-io/openvscode-server <Badge type="info" text="planned for arkanum v2++" />
|
||||
|
||||
> [!NOTE] 💬 NOTE
|
||||
> We plan to also build Arkanum with the openvscode-server base. This could enable us to install Arkanum as
|
||||
> PWA with our own branding like the product logo.
|
12
docs/guide/components/firacode.md
Normal file
@ -0,0 +1,12 @@
|
||||
# FiraCode
|
||||
|
||||
## Referenced Source Files
|
||||
|
||||
::: code-group
|
||||
<<< @/../Dockerfile#firacode{Dockerfile}
|
||||
<<< @/../FiraCode/fonts.css{css}
|
||||
:::
|
||||
|
||||
We add custom fonts on build time to the Arkanum docker image. Therefore we copy the font files and patch the
|
||||
_CodeServer / Openvscode-server_ `workbench.css` files. So we can use host and consume additional fonts without
|
||||
relying on external CDNs.
|
53
docs/guide/components/git.md
Normal file
@ -0,0 +1,53 @@
|
||||
# Git
|
||||
|
||||
## 🔱 About Git Config files
|
||||
|
||||
The git configuration is usually done in these 3 different contexts:
|
||||
|
||||
- system wide config
|
||||
- `/etc/gitconfig`
|
||||
- global _(per user)_ config
|
||||
- `~/.gitconfig`
|
||||
- local _(per repository)_
|
||||
- `<repo-root>/.git/config`
|
||||
|
||||
The final config will be merged in this order.
|
||||
|
||||
> [!TIP] 💡 TIP
|
||||
> You can display the final values with `git config --list`
|
||||
|
||||
## 📄 Included Config
|
||||
|
||||
We already modified the default system config file:
|
||||
|
||||
| Key | Section | Description |
|
||||
| --------------- | ---------------- | ------------------------------------------------------------------------------------ |
|
||||
| `editor` | **[core]** | Defines code-server as git edit to open files. |
|
||||
| `autcrlf` | **[core]** | Disables automatic line ending conversion. Should be handeled by the editor |
|
||||
| `helper` | **[credential]** | Enables saving plain credentials for git remotes. |
|
||||
| `filesEncoding` | **[i18n]** | Sets _utf-8_ as default encoding. |
|
||||
| `default` | **[push]** | Uses _simple_ branch name matching strategy. |
|
||||
| `lg1` | **[alias]** | Adds alternate log output layout in graph style |
|
||||
| `lg2` | **[alias]** | Adds extended graph log layout. |
|
||||
| `cfetch` | **[alias]** | Adds alias for fetch with _--prune_ and _--tags_ . _cfetch_ stands for _clean fetch_ |
|
||||
|
||||
There are also some [Phabricator](https://en.wikipedia.org/wiki/Phabricator) workflow inspired helpers:
|
||||
|
||||
| Key | Section | Description |
|
||||
| ------------------ | ----------- | ------------------------------------------------------------------------------ |
|
||||
| `feature <branch>` | **[alias]** | Starts a new feature branch from updates master and checks out the new branch. |
|
||||
| `wip` | **[alias]** | Stages all current changes and creates a wip _(work in progress)_ commit. |
|
||||
| `squish` | **[alias]** | Takes all open workdir changes and add them to the latest commit. |
|
||||
| `pod` | **[alias]** | Tries to push current branch to _origin/dev_. |
|
||||
| `poc <branch>` | **[alias]** | Takes current branch and tries to push it to a new remote one. |
|
||||
|
||||
## Git bash Completion
|
||||
|
||||
Git bash completion is already enabled in the arkanum image.
|
||||
|
||||
## Referenced Source Files
|
||||
|
||||
::: code-group
|
||||
<<< @/../Dockerfile#git{Dockerfile:line-numbers}
|
||||
<<< @/../gitconfig-system{ini:line-numbers}
|
||||
:::
|
7
docs/guide/components/packages.md
Normal file
@ -0,0 +1,7 @@
|
||||
# Packages
|
||||
|
||||
We already include the following packages while building the Arkanum image:
|
||||
|
||||
| Name | Description |
|
||||
| ----- | ----------- |
|
||||
| `git` | Git VCS |
|
BIN
docs/guide/components/prompts/prompt1.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
docs/guide/components/prompts/prompt2.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
docs/guide/components/prompts/prompt3.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
docs/guide/components/prompts/prompt4.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
docs/guide/components/prompts/prompt5.png
Normal file
After Width: | Height: | Size: 153 KiB |
29
docs/guide/components/starship.md
Normal file
@ -0,0 +1,29 @@
|
||||
# :rocket: Starship Prompt
|
||||
|
||||
## About
|
||||
|
||||
Starship prompt is a powerful addon to modify the shell prompt dynamically based on the current location and state.
|
||||
Therefore we already install the latest version while building the Arkanum image.
|
||||
Additionally we use starship as default prompt in bash.
|
||||
|
||||
The included default setup uses the system wide installed [NerdFont](https://www.nerdfonts.com/) patched [FiraCode](https://github.com/tonsky/FiraCode) Font with its symbols, ligatures and emojis.
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Referenced Source Files
|
||||
|
||||
::: code-group
|
||||
<<< @/../Dockerfile#starship{Dockerfile:line-numbers}
|
||||
|
||||
<<< @/../starship.toml{toml:line-numbers}
|
||||
:::
|
43
docs/guide/components/vscode.md
Normal file
@ -0,0 +1,43 @@
|
||||
# VSCode
|
||||
|
||||
## Default Settings
|
||||
|
||||
Arkanum tests for existing VSCode user config. If not preset, it sets the default config with these values:
|
||||
|
||||
| Key | Value | Description |
|
||||
| :------------------------------: | :-------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `window.menuBarVisibility` | **compact** | Uses compact main menu bar in hamburger style. |
|
||||
| `workbench.colorTheme` | **One Dark Pro Darker** | Enables default color theme. |
|
||||
| `workbench.iconTheme` | **vscode-icons** | Enables default icon theme for file tree. |
|
||||
| `editor.fontFamily` | **'FiraCode', 'FiraCode Nerd Font', 'FiraCode NF', Consolas, 'Courier New', monospace** | Enables included FiraCode font for all possible variations in the file editor. |
|
||||
| `terminal.integrated.fontFamily` | **'FiraCode Mono', 'FiraCode Nerd Font Mono', 'FiraCode NFM', Consolas, monospace** | Enables included FiraCode fonts in terminal views. Uses mono variation to enable showing icons. |
|
||||
| `editor.fontLigatures` | **true** | Enables font ligatures supported in FiraCode: `->`, `---`, `!=` ... |
|
||||
| `editor.formatOnSave` | **true** | Enables format on save features based on language config. |
|
||||
| `extensions.autoUpdate` | **false** | Disables automatic update for installed extensions. Prevents running into VSCode compatibility problems. |
|
||||
| `git.confirmSync` | **false** | Disables notification popup for git sync action. |
|
||||
| `telemetry.telemetryLevel` | **off** | Disables sending telemetry data for VSCode and GitLense Extension. |
|
||||
|
||||
## Extensions
|
||||
|
||||
Arkanum includes the following VSCode extensions from the Open VSX Registry:
|
||||
|
||||
### GitLense
|
||||
|
||||
Adds advanced git features with the [GitLense](https://open-vsx.org/extension/eamodio/gitlens) extension.
|
||||
|
||||
### One Dark Pro
|
||||
|
||||
Adds [One Dark Pro](https://open-vsx.org/extension/zhuangtongfa/material-theme) theme as default color theme.
|
||||
|
||||
### vscode-icons
|
||||
|
||||
Adds [vscode-icons](https://open-vsx.org/extension/vscode-icons-team/vscode-icons) extension as default icon theme.
|
||||
|
||||
## Referenced Source Filesq
|
||||
|
||||
::: code-group
|
||||
|
||||
<<< @/../Dockerfile#cli{Dockerfile}
|
||||
|
||||
<<< @/../arkanum#code-settings{4-15 bash:line-numbers}
|
||||
:::
|
1
docs/guide/faq.md
Normal file
@ -0,0 +1 @@
|
||||
# 🤔 FAQs
|
134
docs/guide/getting-started.md
Normal file
@ -0,0 +1,134 @@
|
||||
# Getting Started
|
||||
|
||||
## 🚧 Prerequisites
|
||||
|
||||
### ⚙️ Container Runtime
|
||||
|
||||
You need any host with either
|
||||
|
||||
- Docker CE / EE running
|
||||
- or Docker-CE and configured 'swarm' mode.
|
||||
|
||||
### 📦 Get the image
|
||||
|
||||
You can download the image from Gitea's embedded container registry: `gitea.ocram85.com/arkanum/arkanum` with these tags:
|
||||
|
||||
- `latest` - Is based on the lasted master branch commit.
|
||||
- `next` - Is a test build based on the pull request
|
||||
- `1`, `0.1`, `0.1.0`, `1.0.0` - tag based version.
|
||||
|
||||
> **💡 NOTE: See the [packages page](https://gitea.ocram85.com/arkanum/-/packages/container/arkanum/latest) for latest version and all other available tags.**
|
||||
|
||||
The container images are also published to these registries:
|
||||
|
||||
- [Docker Hub](https://hub.docker.com/r/ocram85/arkanum)
|
||||
- Pull Endpoint: `ocram85/arkanum`
|
||||
- [GitHub Container Registry](https://github.com/OCram85/arkanum/pkgs/container/arkanum)
|
||||
- Pull Endpoint: `ghcr.io/ocram85/arkanum`
|
||||
- [Codeberg Packages](https://codeberg.org/codeserver/-/packages/container/arkanum/next)
|
||||
- Pull Endpoint: `codeberg.org/codeserver/arkanum`
|
||||
|
||||
## 🏗️ Installation
|
||||
|
||||
### Run as Docker Swarm Stack
|
||||
|
||||
This example shows how to run arkanum as an additional swarm stack.
|
||||
|
||||
Therefore you need
|
||||
|
||||
- an already running docker swarm cluster,
|
||||
- a running traefik instance handling the http and https routes,
|
||||
- configured to expose services in the a ingress overlay network called `traefik-public`.
|
||||
|
||||
> ❗ **Warning:** Make sure to secure the access to arkanum with proper **authentication method** and use
|
||||
> a trusted + **secure https connection**.
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/arkanum/arkanum:1.0.0
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Berlin
|
||||
- PASSWORD=foo #optional
|
||||
#- HASHED_PASSWORD= #optional
|
||||
- SUDO_PASSWORD=foobar #optional
|
||||
#- SUDO_PASSWORD_HASH= #optional
|
||||
#- PROXY_DOMAIN=code-server.my.domain #optional
|
||||
- DEFAULT_WORKSPACE=/config/workspace
|
||||
deploy:
|
||||
replicas: 1
|
||||
labels:
|
||||
- 'traefik.enable=true'
|
||||
- 'traefik.docker.network=traefik-public'
|
||||
- 'traefik.http.routers.arkanum.rule=Host(`vscode.mydomain.com`)'
|
||||
- 'traefik.http.routers.arkanum.tls.certresolver=myresolver'
|
||||
- 'traefik.http.services.arkanum-srv.loadbalancer.server.port=8443'
|
||||
volumes:
|
||||
# store workspace and use config in volume.
|
||||
- codedata:/config
|
||||
# mount docker socket to manage host docker
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
# no need to expose the port. traefik acts as reverse proxy and handles the https access.
|
||||
#ports:
|
||||
# - 8443:8443
|
||||
networks:
|
||||
- arkanum-sphere
|
||||
- traefik-public
|
||||
|
||||
volumes:
|
||||
codedata:
|
||||
|
||||
networks:
|
||||
arkanum-sphere:
|
||||
traefik-public:
|
||||
external: true
|
||||
```
|
||||
|
||||
> 💡 NOTE: For advanced config with additional environment variables see [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) help.
|
||||
|
||||
### Use Docker-Compose
|
||||
|
||||
This is a basic example for a `docker-compose` file from the [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) project.
|
||||
|
||||
See their [docs](https://github.com/linuxserver/docker-code-server#parameters) about a detailed help for advanced config parameters.
|
||||
|
||||
```yaml
|
||||
---
|
||||
version: '3.8'
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/arkanum/arkanum:1
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/London
|
||||
- PASSWORD=password #optional
|
||||
- HASHED_PASSWORD= #optional
|
||||
- SUDO_PASSWORD=password #optional
|
||||
- SUDO_PASSWORD_HASH= #optional
|
||||
- PROXY_DOMAIN=code-server.my.domain #optional
|
||||
- DEFAULT_WORKSPACE=/config/workspace #optional
|
||||
volumes:
|
||||
- /path/to/appdata/config:/config
|
||||
ports:
|
||||
- 8443:8443
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
## 🦶 First Steps
|
||||
|
||||
After summon Arkanum your first steps should be to set your username and email in the git config:
|
||||
|
||||
```bash
|
||||
arkanum git setup "my-name" "my-email"
|
||||
```
|
||||
|
||||
And that's it. Now you're ready use arkanum as your daily remote code editor. 😄
|
||||
|
||||
## 🖼️ Screenshots
|
||||
|
||||

|
19
docs/guide/known-issues.md
Normal file
@ -0,0 +1,19 @@
|
||||
# 💣 Known Issues + Limitations
|
||||
|
||||
## 🐛 Starship.rs
|
||||
|
||||
Starship detects workspaces as active python projects. It always appends the prompt
|
||||
fragment `via 🐍 (lsiopy)`. For now I disabled the python module in starship.
|
||||
|
||||
## 🐛 Default extensions installation timing error
|
||||
|
||||
If the automatic installation of the default extension fails, you can always retry he installation with the
|
||||
following command:
|
||||
|
||||
```bash
|
||||
# restart the installation
|
||||
arkanum config install-extensions
|
||||
# Optional: reset the vscode user setting
|
||||
arkanum config reset-codesettings
|
||||
# Reload with command F1 + Developer: Reload Window
|
||||
```
|
33
docs/index.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
# https://vitepress.dev/reference/default-theme-home-page
|
||||
layout: home
|
||||
|
||||
hero:
|
||||
name: 'Arkanum'
|
||||
text: 'An opinionated VS Code distribution'
|
||||
tagline: 'Start coding remotely with a containerized editor.'
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: Arkanum
|
||||
actions:
|
||||
- theme: brand
|
||||
text: 🧙 Get Started
|
||||
link: /guide/about
|
||||
- theme: alt
|
||||
text: Show Sources
|
||||
link: https://gitea.ocram85.com/arkanum/arkanum
|
||||
|
||||
features:
|
||||
- title: Beginner Friendly
|
||||
icon: ✨
|
||||
details: Trying to provide the best user experience! - Especially for beginners.
|
||||
- title: Access Anywhere
|
||||
icon: 🌎
|
||||
details: Access your dev environment from anywhere.
|
||||
- title: Arkanum CLI
|
||||
icon: 🧙
|
||||
details: Includes <code>Arkanum CLI</code> to install additional languages and frameworks.
|
||||
- title: Gitea + CI/CD
|
||||
icon: 🚧
|
||||
details: Optimized tooling for Gitea + Woodpecker-CI workflows.
|
||||
---
|
BIN
docs/public/favicon.png
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
docs/public/logo.png
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
docs/public/screens/screen1.png
Normal file
After Width: | Height: | Size: 304 KiB |
24
package.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "arkanum-docs",
|
||||
"version": "1.5.1",
|
||||
"type": "module",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://gitea.ocram85.com/arkanum/arkanum.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bun": "latest",
|
||||
"prettier": "^3.2.5",
|
||||
"rimraf": "^5.0.5",
|
||||
"vitepress": "^1.1.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "^5.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"docs:clean": "rimraf docs/.vitepress/dist docs/.vitepress/dist",
|
||||
"docs:dev": "bun run docs:clean && vitepress dev docs --host --port 1313",
|
||||
"docs:build": "vitepress build docs",
|
||||
"docs:preview": "vitepress preview docs --host --port 1313"
|
||||
}
|
||||
}
|
22
tsconfig.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"lib": ["ESNext"],
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
"moduleDetection": "force",
|
||||
"jsx": "react-jsx",
|
||||
"allowJs": true,
|
||||
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"noEmit": true,
|
||||
|
||||
/* Linting */
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
}
|
||||
}
|