From ee75fe764645603cfa866137c48f6e3890c4d6a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 07:04:26 +0000 Subject: [PATCH] deploy: 94e439a294cbb93cc10353e0ec650d1a386b198b --- 404.html | 4 +- assets/js/043e14d3.628200c5.js | 1 - assets/js/043e14d3.a2136bc9.js | 1 + assets/js/66ee5a7d.3cbe2cce.js | 1 - assets/js/66ee5a7d.ca3d4d14.js | 1 + assets/js/89ebda57.4d8ffb27.js | 1 - assets/js/89ebda57.ed80bc3b.js | 1 + assets/js/935f2afb.8e93d90e.js | 1 - assets/js/935f2afb.e7197ae2.js | 1 + assets/js/96b21efb.28b4e516.js | 1 + assets/js/96b21efb.afdc6461.js | 1 - assets/js/9dcbbb0d.6cd21299.js | 1 - assets/js/9dcbbb0d.7df03a5a.js | 1 + assets/js/a6f8198f.870e6635.js | 1 + assets/js/ec3de22d.4cbbe302.js | 1 - assets/js/ec3de22d.f1320b06.js | 1 + assets/js/main.1d438779.js | 2 - assets/js/main.ec610993.js | 2 + ...CENSE.txt => main.ec610993.js.LICENSE.txt} | 0 assets/js/runtime~main.65d45247.js | 1 - assets/js/runtime~main.afa11dc9.js | 1 + before_installation/imporatnt_notes.html | 6 +- before_installation/internet_connection.html | 6 +- before_installation/system_requirements.html | 6 +- blog.html | 4 +- blog/archive.html | 4 +- blog/effective_bug_report.html | 4 +- blog/tags.html | 4 +- blog/tags/bug.html | 4 +- category/before-installation.html | 6 +- category/developers-guide.html | 6 +- category/installation.html | 6 +- category/introduction.html | 6 +- category/packages.html | 6 +- category/post-installation.html | 6 +- category/tools.html | 6 +- category/troubleshoot.html | 6 +- category/user-guide.html | 6 +- cookie-consent.html | 4 +- dev_guide/build_source.html | 8 +- dev_guide/deploy_packages.html | 6 +- dev_guide/gpg_key.html | 8 +- dev_guide/install_keyring.html | 6 +- dev_guide/pkgbuild.html | 8 +- dev_guide/upload_gog_key.html | 82 +++++++++++++++++++ dev_guide/write.html | 8 +- index.html | 6 +- installation/download_snigdha_os.html | 6 +- installation/live_env.html | 6 +- installation/making_bootable_usb.html | 6 +- installation/offline_install.html | 6 +- installation/online_install.html | 6 +- installation/start_installation.html | 6 +- installation/virtualbox_installation.html | 6 +- introduction/code_of_conduct.html | 6 +- introduction/coding-standard.html | 6 +- introduction/contributing.html | 6 +- introduction/faqs.html | 8 +- introduction/motivation.html | 6 +- introduction/name_and_story.html | 6 +- introduction/release_notes.html | 6 +- introduction/reporting_bugs.html | 6 +- markdown-page.html | 4 +- packages/snigdhaos_blackbox.html | 6 +- packages/snigdhaos_welcome.html | 6 +- post_installation/customization.html | 6 +- post_installation/install_packages.html | 6 +- post_installation/language.html | 6 +- post_installation/update.html | 6 +- privacy_policy.html | 4 +- sitemap.xml | 2 +- tools/dns.html | 6 +- troubleshoot/bluetooth.html | 6 +- troubleshoot/display.html | 6 +- troubleshoot/sound.html | 6 +- troubleshoot/wifi.html | 6 +- user_guide/aur.html | 6 +- user_guide/cheetsheet.html | 6 +- 78 files changed, 258 insertions(+), 175 deletions(-) delete mode 100644 assets/js/043e14d3.628200c5.js create mode 100644 assets/js/043e14d3.a2136bc9.js delete mode 100644 assets/js/66ee5a7d.3cbe2cce.js create mode 100644 assets/js/66ee5a7d.ca3d4d14.js delete mode 100644 assets/js/89ebda57.4d8ffb27.js create mode 100644 assets/js/89ebda57.ed80bc3b.js delete mode 100644 assets/js/935f2afb.8e93d90e.js create mode 100644 assets/js/935f2afb.e7197ae2.js create mode 100644 assets/js/96b21efb.28b4e516.js delete mode 100644 assets/js/96b21efb.afdc6461.js delete mode 100644 assets/js/9dcbbb0d.6cd21299.js create mode 100644 assets/js/9dcbbb0d.7df03a5a.js create mode 100644 assets/js/a6f8198f.870e6635.js delete mode 100644 assets/js/ec3de22d.4cbbe302.js create mode 100644 assets/js/ec3de22d.f1320b06.js delete mode 100644 assets/js/main.1d438779.js create mode 100644 assets/js/main.ec610993.js rename assets/js/{main.1d438779.js.LICENSE.txt => main.ec610993.js.LICENSE.txt} (100%) delete mode 100644 assets/js/runtime~main.65d45247.js create mode 100644 assets/js/runtime~main.afa11dc9.js create mode 100644 dev_guide/upload_gog_key.html diff --git a/404.html b/404.html index 4ac620e8..c1f45d5a 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@ SNIGDHA OS - DOCS - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/043e14d3.628200c5.js b/assets/js/043e14d3.628200c5.js deleted file mode 100644 index 2ab239a5..00000000 --- a/assets/js/043e14d3.628200c5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8731],{7388:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>p,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var o=n(4848),a=n(8453);const i={sidebar_position:4},s="Upload & Deploy Packages",d={id:"dev_guide/deploy_packages",title:"Upload & Deploy Packages",description:"",source:"@site/docs/dev_guide/deploy_packages.md",sourceDirName:"dev_guide",slug:"/dev_guide/deploy_packages",permalink:"/documentation/dev_guide/deploy_packages",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/deploy_packages.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Generate GPG Key",permalink:"/documentation/dev_guide/gpg_key"},next:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"}},r={},c=[];function u(e){const t={h1:"h1",...(0,a.R)(),...e.components};return(0,o.jsx)(t.h1,{id:"upload--deploy-packages",children:"Upload & Deploy Packages"})}function p(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>d});var o=n(6540);const a={},i=o.createContext(a);function s(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/043e14d3.a2136bc9.js b/assets/js/043e14d3.a2136bc9.js new file mode 100644 index 00000000..7dee406b --- /dev/null +++ b/assets/js/043e14d3.a2136bc9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8731],{7388:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>p,frontMatter:()=>d,metadata:()=>s,toc:()=>c});var o=n(4848),a=n(8453);const d={sidebar_position:4},i="Upload & Deploy Packages",s={id:"dev_guide/deploy_packages",title:"Upload & Deploy Packages",description:"",source:"@site/docs/dev_guide/deploy_packages.md",sourceDirName:"dev_guide",slug:"/dev_guide/deploy_packages",permalink:"/documentation/dev_guide/deploy_packages",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/deploy_packages.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Upload Key => Server",permalink:"/documentation/dev_guide/upload_gog_key"},next:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"}},r={},c=[];function u(e){const t={h1:"h1",...(0,a.R)(),...e.components};return(0,o.jsx)(t.h1,{id:"upload--deploy-packages",children:"Upload & Deploy Packages"})}function p(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>s});var o=n(6540);const a={},d=o.createContext(a);function i(e){const t=o.useContext(d);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),o.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/66ee5a7d.3cbe2cce.js b/assets/js/66ee5a7d.3cbe2cce.js deleted file mode 100644 index c70b3f79..00000000 --- a/assets/js/66ee5a7d.3cbe2cce.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5890],{5843:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var t=i(4848),a=i(8453);const s={sidebar_position:2},o="PKGBUILD Template",c={id:"dev_guide/pkgbuild",title:"PKGBUILD Template",description:"Snigdha OS has it's own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template.",source:"@site/docs/dev_guide/pkgbuild.md",sourceDirName:"dev_guide",slug:"/dev_guide/pkgbuild",permalink:"/documentation/dev_guide/pkgbuild",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/pkgbuild.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Build From Source",permalink:"/documentation/dev_guide/build_source"},next:{title:"Generate GPG Key",permalink:"/documentation/dev_guide/gpg_key"}},r={},l=[{value:"What is PKGBUILD?",id:"what-is-pkgbuild",level:2},{value:"A simple PKGBUILD",id:"a-simple-pkgbuild",level:2},{value:"Snigdha OS PKGBUILD",id:"snigdha-os-pkgbuild",level:2}];function d(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"pkgbuild-template",children:"PKGBUILD Template"}),"\n",(0,t.jsxs)(n.p,{children:["Snigdha OS has it's own ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," template."]}),"\n",(0,t.jsx)(n.h2,{id:"what-is-pkgbuild",children:"What is PKGBUILD?"}),"\n",(0,t.jsxs)(n.p,{children:["In Arch Linux or Snigdha OS, ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," is a script used to build packages. It contains metadata about the package as well as instructions on how to compile or otherwise obtain the necessary files to create a package. ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," scripts are used with the ",(0,t.jsx)(n.code,{children:"makepkg"})," utility to create packages in the Arch Linux package format (",(0,t.jsx)(n.code,{children:".pkg.tar.xz"}),"). But in ",(0,t.jsx)(n.strong,{children:"Snigdha OS"})," our package format will be ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:".pkg.tar.zst"})}),"."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"PKGBUILD"})," typically includes information such as the package name, version, dependencies, build instructions, and optional parameters. They allow users to easily create custom packages from source code or other files, which can then be installed using the package manager (",(0,t.jsx)(n.code,{children:"pacman"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:["Using ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," scripts provides a standardized and reproducible way to create packages, ensuring consistency across the Arch Linux ecosystem. Additionally, the Arch User Repository (AUR) relies heavily on ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," scripts submitted by users to build and distribute packages that are not available in the official repositories. Since ",(0,t.jsx)(n.strong,{children:"Snigdha OS"})," also comes in ",(0,t.jsx)(n.strong,{children:"Arch Linux"})," ecosystem, we also rely on Arch User Repository for packages."]}),"\n",(0,t.jsx)(n.h2,{id:"a-simple-pkgbuild",children:"A simple PKGBUILD"}),"\n",(0,t.jsxs)(n.p,{children:["Writing a ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," for Arch Linux and Snigdha OS involves several key steps. Below is a basic example of a ",(0,t.jsx)(n.code,{children:"PKGBUILD"}),' for a fictitious application called "exampleapp." This example assumes that "exampleapp" is a simple Python application with a ',(0,t.jsx)(n.code,{children:"setup.py"})," file for installation."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-PKGBUILD",children:'# Maintainer: Your Name \npkgname=exampleapp\npkgver=1.0\npkgrel=1\npkgdesc="A simple example application"\narch=(\'any\')\nurl="https://example.com/exampleapp"\nlicense=(\'MIT\')\ndepends=(\'python\')\n\nsource=("https://example.com/exampleapp/exampleapp-${pkgver}.tar.gz")\n\nbuild() {\n cd "${srcdir}/exampleapp-${pkgver}"\n python setup.py build\n}\n\npackage() {\n cd "${srcdir}/exampleapp-${pkgver}"\n python setup.py install --root="${pkgdir}/" --optimize=1\n}\n\n# Checksums, uncomment these lines and provide the correct checksums:\n# sha256sums=(\'SKIP\')\n\n'})}),"\n",(0,t.jsx)(n.p,{children:"Here's a breakdown of the sections:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Metadata"}),": This section defines metadata about the package, including its name (",(0,t.jsx)(n.code,{children:"pkgname"}),"), version (",(0,t.jsx)(n.code,{children:"pkgver"}),"), release number (",(0,t.jsx)(n.code,{children:"pkgrel"}),"), description (",(0,t.jsx)(n.code,{children:"pkgdesc"}),"), architecture (",(0,t.jsx)(n.code,{children:"arch"}),"), URL (",(0,t.jsx)(n.code,{children:"url"}),"), and license (",(0,t.jsx)(n.code,{children:"license"}),"). These fields are essential for identifying and describing the package."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Dependencies"}),": The ",(0,t.jsx)(n.code,{children:"depends"})," array lists the runtime dependencies required for the package to function correctly. You should include any libraries or packages that your application relies on."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Source"}),": The ",(0,t.jsx)(n.code,{children:"source"})," array specifies where to download the source code for the application. In this example, the source is assumed to be a tarball available at a URL. You may need to adjust this section based on the source code's location and format."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Build() function"}),": This function contains the commands needed to build the package. It typically involves navigating to the source directory (",(0,t.jsx)(n.code,{children:"${srcdir}"}),") and running build commands specific to your application. In this example, we're assuming a Python application with a ",(0,t.jsx)(n.code,{children:"setup.py"})," file, so we use ",(0,t.jsx)(n.code,{children:"python setup.py build"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Package() function"}),": This function contains the commands needed to install the package into the package directory (",(0,t.jsx)(n.code,{children:"${pkgdir}"}),"). It typically involves navigating to the source directory and running installation commands. Here, we're assuming a Python application with a ",(0,t.jsx)(n.code,{children:"setup.py"})," file, so we use ",(0,t.jsx)(n.code,{children:"python setup.py install"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Checksums"}),": Uncomment the ",(0,t.jsx)(n.code,{children:"sha256sums"})," array and provide the correct checksum for the source tarball. This ensures that the source hasn't been tampered with."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Once you've written the ",(0,t.jsx)(n.code,{children:"PKGBUILD"}),", save it to a file named ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," and place it in a directory with the same name as the package. You can then use the ",(0,t.jsx)(n.code,{children:"makepkg"})," command to build the package:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"$ makepkg\n"})}),"\n",(0,t.jsxs)(n.p,{children:["This command will generate a ",(0,t.jsx)(n.code,{children:".pkg.tar.zst"})," file containing the built package, which you can then install using ",(0,t.jsx)(n.code,{children:"pacman"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"snigdha-os-pkgbuild",children:"Snigdha OS PKGBUILD"}),"\n",(0,t.jsx)(n.p,{children:"Here is the PKGBUILD Template we follow specifically for Snigdha OS."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# Maintainer: Your Name \npkgname=\norg=Snigdha-OS # The username/organization username where you upload the Source Code. \nbranch=master # Your GitHub/GitLab/Gitea repository branch. Possible values: master, main, devlopment\npkgver= # Initiate it with 1.\npkgrel= # Initiate it with 1.\npkgdesc='' # A short description of your package.\narch=('') # Possible options: any,x86_64, arm64 etc.\nurl=\"\" # Your package source code URL \nlicense=('') # Possible options: MIT, GPL, AGPL, custom\nmakedepends=('') # Dependency it install or run the package\nsource=(\"\") # The source of the package \nsha256sums=('') # checksums\ninstall=$pkgname.install # Further instuction after installing/building the package.\n\npkgver() {\n\tprintf \"r%s.%s\" \"$(git rev-list --count HEAD)\" \"$(git rev-parse --short HEAD)\"\n}\n\n# Since we maintain the package version with the github repository commit count an the last commit, we use pkgver() function.\n# It is a good option the maintain the package version. Somtimes I forgot to change the version.\n\npackage() {\n\t# Your package function goes here with instructions to build the package. \n}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var t=i(6540);const a={},s=t.createContext(a);function o(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/66ee5a7d.ca3d4d14.js b/assets/js/66ee5a7d.ca3d4d14.js new file mode 100644 index 00000000..0cedd9ab --- /dev/null +++ b/assets/js/66ee5a7d.ca3d4d14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5890],{5843:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var t=i(4848),a=i(8453);const s={sidebar_position:7},o="PKGBUILD Template",c={id:"dev_guide/pkgbuild",title:"PKGBUILD Template",description:"Snigdha OS has it's own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template.",source:"@site/docs/dev_guide/pkgbuild.md",sourceDirName:"dev_guide",slug:"/dev_guide/pkgbuild",permalink:"/documentation/dev_guide/pkgbuild",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/pkgbuild.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Writing Documentation",permalink:"/documentation/dev_guide/write"},next:{title:"Tools",permalink:"/documentation/category/tools"}},r={},l=[{value:"What is PKGBUILD?",id:"what-is-pkgbuild",level:2},{value:"A simple PKGBUILD",id:"a-simple-pkgbuild",level:2},{value:"Snigdha OS PKGBUILD",id:"snigdha-os-pkgbuild",level:2}];function d(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"pkgbuild-template",children:"PKGBUILD Template"}),"\n",(0,t.jsxs)(n.p,{children:["Snigdha OS has it's own ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," template."]}),"\n",(0,t.jsx)(n.h2,{id:"what-is-pkgbuild",children:"What is PKGBUILD?"}),"\n",(0,t.jsxs)(n.p,{children:["In Arch Linux or Snigdha OS, ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," is a script used to build packages. It contains metadata about the package as well as instructions on how to compile or otherwise obtain the necessary files to create a package. ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," scripts are used with the ",(0,t.jsx)(n.code,{children:"makepkg"})," utility to create packages in the Arch Linux package format (",(0,t.jsx)(n.code,{children:".pkg.tar.xz"}),"). But in ",(0,t.jsx)(n.strong,{children:"Snigdha OS"})," our package format will be ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:".pkg.tar.zst"})}),"."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"PKGBUILD"})," typically includes information such as the package name, version, dependencies, build instructions, and optional parameters. They allow users to easily create custom packages from source code or other files, which can then be installed using the package manager (",(0,t.jsx)(n.code,{children:"pacman"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:["Using ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," scripts provides a standardized and reproducible way to create packages, ensuring consistency across the Arch Linux ecosystem. Additionally, the Arch User Repository (AUR) relies heavily on ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," scripts submitted by users to build and distribute packages that are not available in the official repositories. Since ",(0,t.jsx)(n.strong,{children:"Snigdha OS"})," also comes in ",(0,t.jsx)(n.strong,{children:"Arch Linux"})," ecosystem, we also rely on Arch User Repository for packages."]}),"\n",(0,t.jsx)(n.h2,{id:"a-simple-pkgbuild",children:"A simple PKGBUILD"}),"\n",(0,t.jsxs)(n.p,{children:["Writing a ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," for Arch Linux and Snigdha OS involves several key steps. Below is a basic example of a ",(0,t.jsx)(n.code,{children:"PKGBUILD"}),' for a fictitious application called "exampleapp." This example assumes that "exampleapp" is a simple Python application with a ',(0,t.jsx)(n.code,{children:"setup.py"})," file for installation."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-PKGBUILD",children:'# Maintainer: Your Name \npkgname=exampleapp\npkgver=1.0\npkgrel=1\npkgdesc="A simple example application"\narch=(\'any\')\nurl="https://example.com/exampleapp"\nlicense=(\'MIT\')\ndepends=(\'python\')\n\nsource=("https://example.com/exampleapp/exampleapp-${pkgver}.tar.gz")\n\nbuild() {\n cd "${srcdir}/exampleapp-${pkgver}"\n python setup.py build\n}\n\npackage() {\n cd "${srcdir}/exampleapp-${pkgver}"\n python setup.py install --root="${pkgdir}/" --optimize=1\n}\n\n# Checksums, uncomment these lines and provide the correct checksums:\n# sha256sums=(\'SKIP\')\n\n'})}),"\n",(0,t.jsx)(n.p,{children:"Here's a breakdown of the sections:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Metadata"}),": This section defines metadata about the package, including its name (",(0,t.jsx)(n.code,{children:"pkgname"}),"), version (",(0,t.jsx)(n.code,{children:"pkgver"}),"), release number (",(0,t.jsx)(n.code,{children:"pkgrel"}),"), description (",(0,t.jsx)(n.code,{children:"pkgdesc"}),"), architecture (",(0,t.jsx)(n.code,{children:"arch"}),"), URL (",(0,t.jsx)(n.code,{children:"url"}),"), and license (",(0,t.jsx)(n.code,{children:"license"}),"). These fields are essential for identifying and describing the package."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Dependencies"}),": The ",(0,t.jsx)(n.code,{children:"depends"})," array lists the runtime dependencies required for the package to function correctly. You should include any libraries or packages that your application relies on."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Source"}),": The ",(0,t.jsx)(n.code,{children:"source"})," array specifies where to download the source code for the application. In this example, the source is assumed to be a tarball available at a URL. You may need to adjust this section based on the source code's location and format."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Build() function"}),": This function contains the commands needed to build the package. It typically involves navigating to the source directory (",(0,t.jsx)(n.code,{children:"${srcdir}"}),") and running build commands specific to your application. In this example, we're assuming a Python application with a ",(0,t.jsx)(n.code,{children:"setup.py"})," file, so we use ",(0,t.jsx)(n.code,{children:"python setup.py build"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Package() function"}),": This function contains the commands needed to install the package into the package directory (",(0,t.jsx)(n.code,{children:"${pkgdir}"}),"). It typically involves navigating to the source directory and running installation commands. Here, we're assuming a Python application with a ",(0,t.jsx)(n.code,{children:"setup.py"})," file, so we use ",(0,t.jsx)(n.code,{children:"python setup.py install"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Checksums"}),": Uncomment the ",(0,t.jsx)(n.code,{children:"sha256sums"})," array and provide the correct checksum for the source tarball. This ensures that the source hasn't been tampered with."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Once you've written the ",(0,t.jsx)(n.code,{children:"PKGBUILD"}),", save it to a file named ",(0,t.jsx)(n.code,{children:"PKGBUILD"})," and place it in a directory with the same name as the package. You can then use the ",(0,t.jsx)(n.code,{children:"makepkg"})," command to build the package:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"$ makepkg\n"})}),"\n",(0,t.jsxs)(n.p,{children:["This command will generate a ",(0,t.jsx)(n.code,{children:".pkg.tar.zst"})," file containing the built package, which you can then install using ",(0,t.jsx)(n.code,{children:"pacman"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"snigdha-os-pkgbuild",children:"Snigdha OS PKGBUILD"}),"\n",(0,t.jsx)(n.p,{children:"Here is the PKGBUILD Template we follow specifically for Snigdha OS."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# Maintainer: Your Name \npkgname=\norg=Snigdha-OS # The username/organization username where you upload the Source Code. \nbranch=master # Your GitHub/GitLab/Gitea repository branch. Possible values: master, main, devlopment\npkgver= # Initiate it with 1.\npkgrel= # Initiate it with 1.\npkgdesc='' # A short description of your package.\narch=('') # Possible options: any,x86_64, arm64 etc.\nurl=\"\" # Your package source code URL \nlicense=('') # Possible options: MIT, GPL, AGPL, custom\nmakedepends=('') # Dependency it install or run the package\nsource=(\"\") # The source of the package \nsha256sums=('') # checksums\ninstall=$pkgname.install # Further instuction after installing/building the package.\n\npkgver() {\n\tprintf \"r%s.%s\" \"$(git rev-list --count HEAD)\" \"$(git rev-parse --short HEAD)\"\n}\n\n# Since we maintain the package version with the github repository commit count an the last commit, we use pkgver() function.\n# It is a good option the maintain the package version. Somtimes I forgot to change the version.\n\npackage() {\n\t# Your package function goes here with instructions to build the package. \n}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var t=i(6540);const a={},s=t.createContext(a);function o(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/89ebda57.4d8ffb27.js b/assets/js/89ebda57.4d8ffb27.js deleted file mode 100644 index d0a101a9..00000000 --- a/assets/js/89ebda57.4d8ffb27.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5766],{8521:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>o,toc:()=>c});var r=s(4848),i=s(8453);const t={sidebar_position:3},l="Generate GPG Key",o={id:"dev_guide/gpg_key",title:"Generate GPG Key",description:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",source:"@site/docs/dev_guide/gpg_key.md",sourceDirName:"dev_guide",slug:"/dev_guide/gpg_key",permalink:"/documentation/dev_guide/gpg_key",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/gpg_key.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"PKGBUILD Template",permalink:"/documentation/dev_guide/pkgbuild"},next:{title:"Upload & Deploy Packages",permalink:"/documentation/dev_guide/deploy_packages"}},a={},c=[{value:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",id:"-how-to-generate-a-gpg-key-on-snigdha-os",level:3},{value:"\ud83d\udee0\ufe0f Step 1: Install GPG",id:"\ufe0f-step-1-install-gpg",level:3},{value:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair",id:"\ufe0f-step-2-create-a-new-gpg-key-pair",level:3},{value:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key",id:"\ufe0f-step-3-verify-the-generated-key",level:3},{value:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key",id:"\ufe0f-step-4-export-your-public-key",level:3},{value:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption",id:"\ufe0f-step-5-test-encryption-and-decryption",level:3},{value:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys",id:"\ufe0f-step-6-back-up-your-keys",level:3},{value:"\ud83d\ude80 Final Tips",id:"-final-tips",level:3}];function d(e){const n={code:"code",h1:"h1",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"generate-gpg-key",children:"Generate GPG Key"}),"\n",(0,r.jsx)(n.h3,{id:"-how-to-generate-a-gpg-key-on-snigdha-os",children:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS"}),"\n",(0,r.jsx)(n.p,{children:"GPG (GNU Privacy Guard) is a tool for secure communication and data encryption. It allows you to create and manage public and private keys, encrypt files, and sign documents. Here\u2019s how you can generate a GPG key on Snigdha OS, step by step, with examples."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-1-install-gpg",children:"\ud83d\udee0\ufe0f Step 1: Install GPG"}),"\n",(0,r.jsx)(n.p,{children:"Most Snigdha OS installations come with GPG pre-installed. If it\u2019s not installed, use the following command to install it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo pacman -S gnupg\n"})}),"\n",(0,r.jsx)(n.p,{children:"To verify the installation, check the version:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --version\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-2-create-a-new-gpg-key-pair",children:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Start the key generation process"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Run the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --full-generate-key\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Select the key type"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll see a prompt to choose the type of key. Options typically include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"(1) RSA and RSA (default)"})}),"\n",(0,r.jsx)(n.li,{children:"(2) DSA and Elgamal"}),"\n",(0,r.jsx)(n.li,{children:"(3) DSA (sign only)"}),"\n",(0,r.jsx)(n.li,{children:"(4) RSA (sign only)"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Press ",(0,r.jsx)(n.code,{children:"1"})," and hit Enter to select the default ",(0,r.jsx)(n.strong,{children:"RSA and RSA"})," type."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the key length"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["You\u2019ll be prompted to specify the key size. A common recommendation is ",(0,r.jsx)(n.strong,{children:"4096 bits"})," for strong encryption. Type ",(0,r.jsx)(n.code,{children:"4096"})," and press Enter."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the expiration date"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You can define how long the key should be valid. Options include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"0"})," for no expiration"]}),"\n",(0,r.jsxs)(n.li,{children:["Specify a duration, e.g., ",(0,r.jsx)(n.code,{children:"1y"})," for one year, ",(0,r.jsx)(n.code,{children:"2y"})," for two years, or ",(0,r.jsx)(n.code,{children:"1m"})," for one month."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For this example, type ",(0,r.jsx)(n.code,{children:"0"})," (no expiration) and press Enter. When prompted, confirm your choice."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Enter your details"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll be asked for:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your real name"}),": Enter your full name."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your email address"}),": Enter a valid email address."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A comment (optional)"}),": Add a description or leave it blank."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"Real name: John Doe\nEmail address: johndoe@example.com\nComment: Snigdha OS User\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Review the details and confirm by typing ",(0,r.jsx)(n.code,{children:"O"})," (for OK)."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set a passphrase"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Choose a strong passphrase to protect your private key. This passphrase will be required whenever you use your private key for encryption or signing."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-3-verify-the-generated-key",children:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key"}),"\n",(0,r.jsx)(n.p,{children:"Once the key is generated, you can list your keys with:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,r.jsx)(n.p,{children:"Output:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"/home/username/.gnupg/pubring.kbx\n---------------------------------\npub rsa4096 2023-12-05 [SC] [expires: 2025-12-05]\n ABCD1234EFGH5678IJKL9012MNOP3456QRST7890\nuid [ultimate] John Doe \nsub rsa4096 2023-12-05 [E] [expires: 2025-12-05]\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"pub"}),": Your primary key (for signing and certification)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"sub"}),": Subkey (for encryption)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[SC]"}),": Key capabilities: Sign and Certify."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[E]"}),": Encryption."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-4-export-your-public-key",children:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key"}),"\n",(0,r.jsx)(n.p,{children:"To share your public key with others, export it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This creates a file ",(0,r.jsx)(n.code,{children:"public_key.asc"})," with your public key in ASCII format."]}),"\n",(0,r.jsx)(n.p,{children:"To display the key in the terminal:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-5-test-encryption-and-decryption",children:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Encrypt a file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Create a sample file to encrypt:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'echo "Hello, this is a test message!" > message.txt\n'})}),"\n",(0,r.jsx)(n.p,{children:"Encrypt the file with your public key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output message.txt.gpg --encrypt --recipient johndoe@example.com message.txt\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This generates an encrypted file ",(0,r.jsx)(n.code,{children:"message.txt.gpg"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Decrypt the file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Decrypt the file using your private key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output decrypted_message.txt --decrypt message.txt.gpg\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Enter your passphrase when prompted. The decrypted content will be saved in ",(0,r.jsx)(n.code,{children:"decrypted_message.txt"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-6-back-up-your-keys",children:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys"}),"\n",(0,r.jsx)(n.p,{children:"Always back up your keys to prevent losing access:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your private key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export-secret-keys johndoe@example.com > private_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your public key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Store these files (",(0,r.jsx)(n.code,{children:"private_key.asc"})," and ",(0,r.jsx)(n.code,{children:"public_key.asc"}),") in a safe place."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"-final-tips",children:"\ud83d\ude80 Final Tips"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Keep your private key secure. Never share it."}),"\n",(0,r.jsx)(n.li,{children:"Regularly update your passphrase for added security."}),"\n",(0,r.jsxs)(n.li,{children:["Use tools like ",(0,r.jsx)(n.strong,{children:"gpg-agent"})," for easier key management."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"That\u2019s it! You now have a functional GPG key pair set up on Snigdha OS. \ud83c\udf89"})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>o});var r=s(6540);const i={},t=r.createContext(i);function l(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/89ebda57.ed80bc3b.js b/assets/js/89ebda57.ed80bc3b.js new file mode 100644 index 00000000..8baa34a0 --- /dev/null +++ b/assets/js/89ebda57.ed80bc3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5766],{8521:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var r=s(4848),i=s(8453);const t={sidebar_position:2},l="Generate GPG Key",o={id:"dev_guide/gpg_key",title:"Generate GPG Key",description:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",source:"@site/docs/dev_guide/gpg_key.md",sourceDirName:"dev_guide",slug:"/dev_guide/gpg_key",permalink:"/documentation/dev_guide/gpg_key",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/gpg_key.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Build From Source",permalink:"/documentation/dev_guide/build_source"},next:{title:"Upload Key => Server",permalink:"/documentation/dev_guide/upload_gog_key"}},c={},d=[{value:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",id:"-how-to-generate-a-gpg-key-on-snigdha-os",level:3},{value:"\ud83d\udee0\ufe0f Step 1: Install GPG",id:"\ufe0f-step-1-install-gpg",level:3},{value:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair",id:"\ufe0f-step-2-create-a-new-gpg-key-pair",level:3},{value:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key",id:"\ufe0f-step-3-verify-the-generated-key",level:3},{value:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key",id:"\ufe0f-step-4-export-your-public-key",level:3},{value:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption",id:"\ufe0f-step-5-test-encryption-and-decryption",level:3},{value:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys",id:"\ufe0f-step-6-back-up-your-keys",level:3},{value:"\ud83d\ude80 Final Tips",id:"-final-tips",level:3}];function a(e){const n={code:"code",h1:"h1",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"generate-gpg-key",children:"Generate GPG Key"}),"\n",(0,r.jsx)(n.h3,{id:"-how-to-generate-a-gpg-key-on-snigdha-os",children:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS"}),"\n",(0,r.jsx)(n.p,{children:"GPG (GNU Privacy Guard) is a tool for secure communication and data encryption. It allows you to create and manage public and private keys, encrypt files, and sign documents. Here\u2019s how you can generate a GPG key on Snigdha OS, step by step, with examples."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-1-install-gpg",children:"\ud83d\udee0\ufe0f Step 1: Install GPG"}),"\n",(0,r.jsx)(n.p,{children:"Most Snigdha OS installations come with GPG pre-installed. If it\u2019s not installed, use the following command to install it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo pacman -S gnupg\n"})}),"\n",(0,r.jsx)(n.p,{children:"To verify the installation, check the version:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --version\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-2-create-a-new-gpg-key-pair",children:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Start the key generation process"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Run the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --full-generate-key\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Select the key type"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll see a prompt to choose the type of key. Options typically include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"(1) RSA and RSA (default)"})}),"\n",(0,r.jsx)(n.li,{children:"(2) DSA and Elgamal"}),"\n",(0,r.jsx)(n.li,{children:"(3) DSA (sign only)"}),"\n",(0,r.jsx)(n.li,{children:"(4) RSA (sign only)"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Press ",(0,r.jsx)(n.code,{children:"1"})," and hit Enter to select the default ",(0,r.jsx)(n.strong,{children:"RSA and RSA"})," type."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the key length"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["You\u2019ll be prompted to specify the key size. A common recommendation is ",(0,r.jsx)(n.strong,{children:"4096 bits"})," for strong encryption. Type ",(0,r.jsx)(n.code,{children:"4096"})," and press Enter."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the expiration date"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You can define how long the key should be valid. Options include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"0"})," for no expiration"]}),"\n",(0,r.jsxs)(n.li,{children:["Specify a duration, e.g., ",(0,r.jsx)(n.code,{children:"1y"})," for one year, ",(0,r.jsx)(n.code,{children:"2y"})," for two years, or ",(0,r.jsx)(n.code,{children:"1m"})," for one month."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For this example, type ",(0,r.jsx)(n.code,{children:"0"})," (no expiration) and press Enter. When prompted, confirm your choice."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Enter your details"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll be asked for:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your real name"}),": Enter your full name."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your email address"}),": Enter a valid email address."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A comment (optional)"}),": Add a description or leave it blank."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"Real name: John Doe\nEmail address: johndoe@example.com\nComment: Snigdha OS User\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Review the details and confirm by typing ",(0,r.jsx)(n.code,{children:"O"})," (for OK)."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set a passphrase"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Choose a strong passphrase to protect your private key. This passphrase will be required whenever you use your private key for encryption or signing."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-3-verify-the-generated-key",children:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key"}),"\n",(0,r.jsx)(n.p,{children:"Once the key is generated, you can list your keys with:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,r.jsx)(n.p,{children:"Output:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"/home/username/.gnupg/pubring.kbx\n---------------------------------\npub rsa4096 2023-12-05 [SC] [expires: 2025-12-05]\n ABCD1234EFGH5678IJKL9012MNOP3456QRST7890\nuid [ultimate] John Doe \nsub rsa4096 2023-12-05 [E] [expires: 2025-12-05]\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"pub"}),": Your primary key (for signing and certification)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"sub"}),": Subkey (for encryption)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[SC]"}),": Key capabilities: Sign and Certify."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[E]"}),": Encryption."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-4-export-your-public-key",children:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key"}),"\n",(0,r.jsx)(n.p,{children:"To share your public key with others, export it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This creates a file ",(0,r.jsx)(n.code,{children:"public_key.asc"})," with your public key in ASCII format."]}),"\n",(0,r.jsx)(n.p,{children:"To display the key in the terminal:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-5-test-encryption-and-decryption",children:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Encrypt a file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Create a sample file to encrypt:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'echo "Hello, this is a test message!" > message.txt\n'})}),"\n",(0,r.jsx)(n.p,{children:"Encrypt the file with your public key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output message.txt.gpg --encrypt --recipient johndoe@example.com message.txt\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This generates an encrypted file ",(0,r.jsx)(n.code,{children:"message.txt.gpg"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Decrypt the file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Decrypt the file using your private key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output decrypted_message.txt --decrypt message.txt.gpg\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Enter your passphrase when prompted. The decrypted content will be saved in ",(0,r.jsx)(n.code,{children:"decrypted_message.txt"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-6-back-up-your-keys",children:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys"}),"\n",(0,r.jsx)(n.p,{children:"Always back up your keys to prevent losing access:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your private key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export-secret-keys johndoe@example.com > private_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your public key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Store these files (",(0,r.jsx)(n.code,{children:"private_key.asc"})," and ",(0,r.jsx)(n.code,{children:"public_key.asc"}),") in a safe place."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"-final-tips",children:"\ud83d\ude80 Final Tips"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Keep your private key secure. Never share it."}),"\n",(0,r.jsx)(n.li,{children:"Regularly update your passphrase for added security."}),"\n",(0,r.jsxs)(n.li,{children:["Use tools like ",(0,r.jsx)(n.strong,{children:"gpg-agent"})," for easier key management."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"That\u2019s it! You now have a functional GPG key pair set up on Snigdha OS. \ud83c\udf89"})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>o});var r=s(6540);const i={},t=r.createContext(i);function l(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.8e93d90e.js b/assets/js/935f2afb.8e93d90e.js deleted file mode 100644 index 77e56952..00000000 --- a/assets/js/935f2afb.8e93d90e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/documentation/","docId":"introduction/overview","unlisted":false},{"type":"link","label":"Story & Name","href":"/documentation/introduction/name_and_story","docId":"introduction/name_and_story","unlisted":false},{"type":"link","label":"Code of Conduct","href":"/documentation/introduction/code_of_conduct","docId":"introduction/code_of_conduct","unlisted":false},{"type":"link","label":"Release Notes","href":"/documentation/introduction/release_notes","docId":"introduction/release_notes","unlisted":false},{"type":"link","label":"Reporting Bugs","href":"/documentation/introduction/reporting_bugs","docId":"introduction/reporting_bugs","unlisted":false},{"type":"link","label":"Frequently Asked","href":"/documentation/introduction/faqs","docId":"introduction/faqs","unlisted":false},{"type":"link","label":"Contribution Guidelines","href":"/documentation/introduction/contributing","docId":"introduction/contributing","unlisted":false},{"type":"link","label":"Coding Standard","href":"/documentation/introduction/coding-standard","docId":"introduction/coding-standard","unlisted":false},{"type":"link","label":"Aim & Motivation","href":"/documentation/introduction/motivation","docId":"introduction/motivation","unlisted":false}],"href":"/documentation/category/introduction"},{"type":"category","label":"Before Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"System Requirements","href":"/documentation/before_installation/system_requirements","docId":"before_installation/system_requirements","unlisted":false},{"type":"link","label":"Important Notes","href":"/documentation/before_installation/imporatnt_notes","docId":"before_installation/imporatnt_notes","unlisted":false},{"type":"link","label":"Internet Connection","href":"/documentation/before_installation/internet_connection","docId":"before_installation/internet_connection","unlisted":false}],"href":"/documentation/category/before-installation"},{"type":"category","label":"Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Download Snigdha OS","href":"/documentation/installation/download_snigdha_os","docId":"installation/download_snigdha_os","unlisted":false},{"type":"link","label":"Make Bootable USB","href":"/documentation/installation/making_bootable_usb","docId":"installation/making_bootable_usb","unlisted":false},{"type":"link","label":"Live Environment","href":"/documentation/installation/live_env","docId":"installation/live_env","unlisted":false},{"type":"link","label":"Offline Installation","href":"/documentation/installation/offline_install","docId":"installation/offline_install","unlisted":false},{"type":"link","label":"Online Installation","href":"/documentation/installation/online_install","docId":"installation/online_install","unlisted":false},{"type":"link","label":"Install Snigdha OS","href":"/documentation/installation/start_installation","docId":"installation/start_installation","unlisted":false},{"type":"link","label":"Virtualbox","href":"/documentation/installation/virtualbox_installation","docId":"installation/virtualbox_installation","unlisted":false}],"href":"/documentation/category/installation"},{"type":"category","label":"Post Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Language","href":"/documentation/post_installation/language","docId":"post_installation/language","unlisted":false},{"type":"link","label":"Update Snigdha OS","href":"/documentation/post_installation/update","docId":"post_installation/update","unlisted":false},{"type":"link","label":"Customize Snigdha OS","href":"/documentation/post_installation/customization","docId":"post_installation/customization","unlisted":false},{"type":"link","label":"Install Packages","href":"/documentation/post_installation/install_packages","docId":"post_installation/install_packages","unlisted":false}],"href":"/documentation/category/post-installation"},{"type":"category","label":"User Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Cheetsheet/Shortcuts","href":"/documentation/user_guide/cheetsheet","docId":"user_guide/cheetsheet","unlisted":false},{"type":"link","label":"Installing with AUR","href":"/documentation/user_guide/aur","docId":"user_guide/aur","unlisted":false}],"href":"/documentation/category/user-guide"},{"type":"category","label":"Troubleshoot","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Troubleshoot: Wifi","href":"/documentation/troubleshoot/wifi","docId":"troubleshoot/wifi","unlisted":false},{"type":"link","label":"Troubleshoot: Bluetooth","href":"/documentation/troubleshoot/bluetooth","docId":"troubleshoot/bluetooth","unlisted":false},{"type":"link","label":"Troubleshoot: Sound","href":"/documentation/troubleshoot/sound","docId":"troubleshoot/sound","unlisted":false},{"type":"link","label":"Troubleshoot: Display","href":"/documentation/troubleshoot/display","docId":"troubleshoot/display","unlisted":false}],"href":"/documentation/category/troubleshoot"},{"type":"category","label":"Packages","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Welcome","href":"/documentation/packages/snigdhaos_welcome","docId":"packages/snigdhaos_welcome","unlisted":false},{"type":"link","label":"Blackbox","href":"/documentation/packages/snigdhaos_blackbox","docId":"packages/snigdhaos_blackbox","unlisted":false}],"href":"/documentation/category/packages"},{"type":"category","label":"Developers Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Build From Source","href":"/documentation/dev_guide/build_source","docId":"dev_guide/build_source","unlisted":false},{"type":"link","label":"PKGBUILD Template","href":"/documentation/dev_guide/pkgbuild","docId":"dev_guide/pkgbuild","unlisted":false},{"type":"link","label":"Generate GPG Key","href":"/documentation/dev_guide/gpg_key","docId":"dev_guide/gpg_key","unlisted":false},{"type":"link","label":"Upload & Deploy Packages","href":"/documentation/dev_guide/deploy_packages","docId":"dev_guide/deploy_packages","unlisted":false},{"type":"link","label":"Install Keyrings","href":"/documentation/dev_guide/install_keyring","docId":"dev_guide/install_keyring","unlisted":false},{"type":"link","label":"Writing Documentation","href":"/documentation/dev_guide/write","docId":"dev_guide/write","unlisted":false}],"href":"/documentation/category/developers-guide"},{"type":"category","label":"Tools","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Tool: DNS Enum","href":"/documentation/tools/dns","docId":"tools/dns","unlisted":false}],"href":"/documentation/category/tools"}]},"docs":{"before_installation/imporatnt_notes":{"id":"before_installation/imporatnt_notes","title":"Important Notes","description":"\ud83d\udccc We do not recommended you to install Snigdha OS via VM (\'Virtual Machine\' = virtual machine), as it is optimized for use on real hardware or physical machine.","sidebar":"tutorialSidebar"},"before_installation/internet_connection":{"id":"before_installation/internet_connection","title":"Internet Connection","description":"","sidebar":"tutorialSidebar"},"before_installation/system_requirements":{"id":"before_installation/system_requirements","title":"System Requirements","description":"Minimum Requirements","sidebar":"tutorialSidebar"},"dev_guide/build_source":{"id":"dev_guide/build_source","title":"Build From Source","description":"Overview","sidebar":"tutorialSidebar"},"dev_guide/deploy_packages":{"id":"dev_guide/deploy_packages","title":"Upload & Deploy Packages","description":"","sidebar":"tutorialSidebar"},"dev_guide/gpg_key":{"id":"dev_guide/gpg_key","title":"Generate GPG Key","description":"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS","sidebar":"tutorialSidebar"},"dev_guide/install_keyring":{"id":"dev_guide/install_keyring","title":"Install Keyrings","description":"","sidebar":"tutorialSidebar"},"dev_guide/pkgbuild":{"id":"dev_guide/pkgbuild","title":"PKGBUILD Template","description":"Snigdha OS has it\'s own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template.","sidebar":"tutorialSidebar"},"dev_guide/write":{"id":"dev_guide/write","title":"Writing Documentation","description":"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:","sidebar":"tutorialSidebar"},"installation/download_snigdha_os":{"id":"installation/download_snigdha_os","title":"Download Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/live_env":{"id":"installation/live_env","title":"Live Environment","description":"","sidebar":"tutorialSidebar"},"installation/making_bootable_usb":{"id":"installation/making_bootable_usb","title":"Make Bootable USB","description":"","sidebar":"tutorialSidebar"},"installation/offline_install":{"id":"installation/offline_install","title":"Offline Installation","description":"","sidebar":"tutorialSidebar"},"installation/online_install":{"id":"installation/online_install","title":"Online Installation","description":"","sidebar":"tutorialSidebar"},"installation/start_installation":{"id":"installation/start_installation","title":"Install Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/virtualbox_installation":{"id":"installation/virtualbox_installation","title":"Virtualbox","description":"","sidebar":"tutorialSidebar"},"introduction/code_of_conduct":{"id":"introduction/code_of_conduct","title":"Code of Conduct","description":"A code of conduct outlines expected behavior and guidelines for individuals within a specific community, organization, or group.","sidebar":"tutorialSidebar"},"introduction/coding-standard":{"id":"introduction/coding-standard","title":"Coding Standard","description":"1. Consistent Naming Conventions:","sidebar":"tutorialSidebar"},"introduction/contributing":{"id":"introduction/contributing","title":"Contribution Guidelines","description":"Thank you for considering contributing to Snigdha OS! We welcome contributions from everyone.","sidebar":"tutorialSidebar"},"introduction/faqs":{"id":"introduction/faqs","title":"Frequently Asked","description":"Here are some frequently asked questions (FAQs) about Snigdha OS (penetration distribution):","sidebar":"tutorialSidebar"},"introduction/motivation":{"id":"introduction/motivation","title":"Aim & Motivation","description":"The motivation behind Snigdha OS is to create a lightweight, efficient, and customizable Linux distribution that caters to specific use cases, particularly in the realm of penetration testing and ethical hacking. The OS is designed to be resource-efficient, making it suitable for use on a wide range of hardware, including older systems, mobile devices, and virtual environments.","sidebar":"tutorialSidebar"},"introduction/name_and_story":{"id":"introduction/name_and_story","title":"Story & Name","description":"Eshan Roy, widely known as eshanized, is the founder, lead maintainer, and developer of Snigdha OS.","sidebar":"tutorialSidebar"},"introduction/overview":{"id":"introduction/overview","title":"Overview","description":"Snigdha OS is a lightweight and highly customizable Linux distribution based on Arch and Linux Zen Kernel, minimalism, and focus on user-centric design. We are also working on penetration distribution and blackbox.","sidebar":"tutorialSidebar"},"introduction/release_notes":{"id":"introduction/release_notes","title":"Release Notes","description":"FOR IMMEDIATE RELEASE","sidebar":"tutorialSidebar"},"introduction/reporting_bugs":{"id":"introduction/reporting_bugs","title":"Reporting Bugs","description":"If you discover a security vulnerability within Snigdha OS as well as any packages and tools, please follow our security policy so we can address it promptly.","sidebar":"tutorialSidebar"},"packages/snigdhaos_blackbox":{"id":"packages/snigdhaos_blackbox","title":"Blackbox","description":"","sidebar":"tutorialSidebar"},"packages/snigdhaos_welcome":{"id":"packages/snigdhaos_welcome","title":"Welcome","description":"","sidebar":"tutorialSidebar"},"post_installation/customization":{"id":"post_installation/customization","title":"Customize Snigdha OS","description":"","sidebar":"tutorialSidebar"},"post_installation/install_packages":{"id":"post_installation/install_packages","title":"Install Packages","description":"","sidebar":"tutorialSidebar"},"post_installation/language":{"id":"post_installation/language","title":"Language","description":"","sidebar":"tutorialSidebar"},"post_installation/update":{"id":"post_installation/update","title":"Update Snigdha OS","description":"","sidebar":"tutorialSidebar"},"tools/dns":{"id":"tools/dns","title":"Tool: DNS Enum","description":"","sidebar":"tutorialSidebar"},"troubleshoot/bluetooth":{"id":"troubleshoot/bluetooth","title":"Troubleshoot: Bluetooth","description":"Troubleshooting Bluetooth on Snigdha OS involves several steps. Here\'s the common practice:","sidebar":"tutorialSidebar"},"troubleshoot/display":{"id":"troubleshoot/display","title":"Troubleshoot: Display","description":"","sidebar":"tutorialSidebar"},"troubleshoot/sound":{"id":"troubleshoot/sound","title":"Troubleshoot: Sound","description":"","sidebar":"tutorialSidebar"},"troubleshoot/wifi":{"id":"troubleshoot/wifi","title":"Troubleshoot: Wifi","description":"","sidebar":"tutorialSidebar"},"user_guide/aur":{"id":"user_guide/aur","title":"Installing with AUR","description":"","sidebar":"tutorialSidebar"},"user_guide/cheetsheet":{"id":"user_guide/cheetsheet","title":"Cheetsheet/Shortcuts","description":"","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.e7197ae2.js b/assets/js/935f2afb.e7197ae2.js new file mode 100644 index 00000000..4724ec96 --- /dev/null +++ b/assets/js/935f2afb.e7197ae2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/documentation/","docId":"introduction/overview","unlisted":false},{"type":"link","label":"Story & Name","href":"/documentation/introduction/name_and_story","docId":"introduction/name_and_story","unlisted":false},{"type":"link","label":"Code of Conduct","href":"/documentation/introduction/code_of_conduct","docId":"introduction/code_of_conduct","unlisted":false},{"type":"link","label":"Release Notes","href":"/documentation/introduction/release_notes","docId":"introduction/release_notes","unlisted":false},{"type":"link","label":"Reporting Bugs","href":"/documentation/introduction/reporting_bugs","docId":"introduction/reporting_bugs","unlisted":false},{"type":"link","label":"Frequently Asked","href":"/documentation/introduction/faqs","docId":"introduction/faqs","unlisted":false},{"type":"link","label":"Contribution Guidelines","href":"/documentation/introduction/contributing","docId":"introduction/contributing","unlisted":false},{"type":"link","label":"Coding Standard","href":"/documentation/introduction/coding-standard","docId":"introduction/coding-standard","unlisted":false},{"type":"link","label":"Aim & Motivation","href":"/documentation/introduction/motivation","docId":"introduction/motivation","unlisted":false}],"href":"/documentation/category/introduction"},{"type":"category","label":"Before Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"System Requirements","href":"/documentation/before_installation/system_requirements","docId":"before_installation/system_requirements","unlisted":false},{"type":"link","label":"Important Notes","href":"/documentation/before_installation/imporatnt_notes","docId":"before_installation/imporatnt_notes","unlisted":false},{"type":"link","label":"Internet Connection","href":"/documentation/before_installation/internet_connection","docId":"before_installation/internet_connection","unlisted":false}],"href":"/documentation/category/before-installation"},{"type":"category","label":"Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Download Snigdha OS","href":"/documentation/installation/download_snigdha_os","docId":"installation/download_snigdha_os","unlisted":false},{"type":"link","label":"Make Bootable USB","href":"/documentation/installation/making_bootable_usb","docId":"installation/making_bootable_usb","unlisted":false},{"type":"link","label":"Live Environment","href":"/documentation/installation/live_env","docId":"installation/live_env","unlisted":false},{"type":"link","label":"Offline Installation","href":"/documentation/installation/offline_install","docId":"installation/offline_install","unlisted":false},{"type":"link","label":"Online Installation","href":"/documentation/installation/online_install","docId":"installation/online_install","unlisted":false},{"type":"link","label":"Install Snigdha OS","href":"/documentation/installation/start_installation","docId":"installation/start_installation","unlisted":false},{"type":"link","label":"Virtualbox","href":"/documentation/installation/virtualbox_installation","docId":"installation/virtualbox_installation","unlisted":false}],"href":"/documentation/category/installation"},{"type":"category","label":"Post Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Language","href":"/documentation/post_installation/language","docId":"post_installation/language","unlisted":false},{"type":"link","label":"Update Snigdha OS","href":"/documentation/post_installation/update","docId":"post_installation/update","unlisted":false},{"type":"link","label":"Customize Snigdha OS","href":"/documentation/post_installation/customization","docId":"post_installation/customization","unlisted":false},{"type":"link","label":"Install Packages","href":"/documentation/post_installation/install_packages","docId":"post_installation/install_packages","unlisted":false}],"href":"/documentation/category/post-installation"},{"type":"category","label":"User Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Cheetsheet/Shortcuts","href":"/documentation/user_guide/cheetsheet","docId":"user_guide/cheetsheet","unlisted":false},{"type":"link","label":"Installing with AUR","href":"/documentation/user_guide/aur","docId":"user_guide/aur","unlisted":false}],"href":"/documentation/category/user-guide"},{"type":"category","label":"Troubleshoot","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Troubleshoot: Wifi","href":"/documentation/troubleshoot/wifi","docId":"troubleshoot/wifi","unlisted":false},{"type":"link","label":"Troubleshoot: Bluetooth","href":"/documentation/troubleshoot/bluetooth","docId":"troubleshoot/bluetooth","unlisted":false},{"type":"link","label":"Troubleshoot: Sound","href":"/documentation/troubleshoot/sound","docId":"troubleshoot/sound","unlisted":false},{"type":"link","label":"Troubleshoot: Display","href":"/documentation/troubleshoot/display","docId":"troubleshoot/display","unlisted":false}],"href":"/documentation/category/troubleshoot"},{"type":"category","label":"Packages","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Welcome","href":"/documentation/packages/snigdhaos_welcome","docId":"packages/snigdhaos_welcome","unlisted":false},{"type":"link","label":"Blackbox","href":"/documentation/packages/snigdhaos_blackbox","docId":"packages/snigdhaos_blackbox","unlisted":false}],"href":"/documentation/category/packages"},{"type":"category","label":"Developers Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Build From Source","href":"/documentation/dev_guide/build_source","docId":"dev_guide/build_source","unlisted":false},{"type":"link","label":"Generate GPG Key","href":"/documentation/dev_guide/gpg_key","docId":"dev_guide/gpg_key","unlisted":false},{"type":"link","label":"Upload Key => Server","href":"/documentation/dev_guide/upload_gog_key","docId":"dev_guide/upload_gog_key","unlisted":false},{"type":"link","label":"Upload & Deploy Packages","href":"/documentation/dev_guide/deploy_packages","docId":"dev_guide/deploy_packages","unlisted":false},{"type":"link","label":"Install Keyrings","href":"/documentation/dev_guide/install_keyring","docId":"dev_guide/install_keyring","unlisted":false},{"type":"link","label":"Writing Documentation","href":"/documentation/dev_guide/write","docId":"dev_guide/write","unlisted":false},{"type":"link","label":"PKGBUILD Template","href":"/documentation/dev_guide/pkgbuild","docId":"dev_guide/pkgbuild","unlisted":false}],"href":"/documentation/category/developers-guide"},{"type":"category","label":"Tools","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Tool: DNS Enum","href":"/documentation/tools/dns","docId":"tools/dns","unlisted":false}],"href":"/documentation/category/tools"}]},"docs":{"before_installation/imporatnt_notes":{"id":"before_installation/imporatnt_notes","title":"Important Notes","description":"\ud83d\udccc We do not recommended you to install Snigdha OS via VM (\'Virtual Machine\' = virtual machine), as it is optimized for use on real hardware or physical machine.","sidebar":"tutorialSidebar"},"before_installation/internet_connection":{"id":"before_installation/internet_connection","title":"Internet Connection","description":"","sidebar":"tutorialSidebar"},"before_installation/system_requirements":{"id":"before_installation/system_requirements","title":"System Requirements","description":"Minimum Requirements","sidebar":"tutorialSidebar"},"dev_guide/build_source":{"id":"dev_guide/build_source","title":"Build From Source","description":"Overview","sidebar":"tutorialSidebar"},"dev_guide/deploy_packages":{"id":"dev_guide/deploy_packages","title":"Upload & Deploy Packages","description":"","sidebar":"tutorialSidebar"},"dev_guide/gpg_key":{"id":"dev_guide/gpg_key","title":"Generate GPG Key","description":"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS","sidebar":"tutorialSidebar"},"dev_guide/install_keyring":{"id":"dev_guide/install_keyring","title":"Install Keyrings","description":"","sidebar":"tutorialSidebar"},"dev_guide/pkgbuild":{"id":"dev_guide/pkgbuild","title":"PKGBUILD Template","description":"Snigdha OS has it\'s own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template.","sidebar":"tutorialSidebar"},"dev_guide/upload_gog_key":{"id":"dev_guide/upload_gog_key","title":"Upload Key => Server","description":"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server","sidebar":"tutorialSidebar"},"dev_guide/write":{"id":"dev_guide/write","title":"Writing Documentation","description":"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:","sidebar":"tutorialSidebar"},"installation/download_snigdha_os":{"id":"installation/download_snigdha_os","title":"Download Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/live_env":{"id":"installation/live_env","title":"Live Environment","description":"","sidebar":"tutorialSidebar"},"installation/making_bootable_usb":{"id":"installation/making_bootable_usb","title":"Make Bootable USB","description":"","sidebar":"tutorialSidebar"},"installation/offline_install":{"id":"installation/offline_install","title":"Offline Installation","description":"","sidebar":"tutorialSidebar"},"installation/online_install":{"id":"installation/online_install","title":"Online Installation","description":"","sidebar":"tutorialSidebar"},"installation/start_installation":{"id":"installation/start_installation","title":"Install Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/virtualbox_installation":{"id":"installation/virtualbox_installation","title":"Virtualbox","description":"","sidebar":"tutorialSidebar"},"introduction/code_of_conduct":{"id":"introduction/code_of_conduct","title":"Code of Conduct","description":"A code of conduct outlines expected behavior and guidelines for individuals within a specific community, organization, or group.","sidebar":"tutorialSidebar"},"introduction/coding-standard":{"id":"introduction/coding-standard","title":"Coding Standard","description":"1. Consistent Naming Conventions:","sidebar":"tutorialSidebar"},"introduction/contributing":{"id":"introduction/contributing","title":"Contribution Guidelines","description":"Thank you for considering contributing to Snigdha OS! We welcome contributions from everyone.","sidebar":"tutorialSidebar"},"introduction/faqs":{"id":"introduction/faqs","title":"Frequently Asked","description":"Here are some frequently asked questions (FAQs) about Snigdha OS (penetration distribution):","sidebar":"tutorialSidebar"},"introduction/motivation":{"id":"introduction/motivation","title":"Aim & Motivation","description":"The motivation behind Snigdha OS is to create a lightweight, efficient, and customizable Linux distribution that caters to specific use cases, particularly in the realm of penetration testing and ethical hacking. The OS is designed to be resource-efficient, making it suitable for use on a wide range of hardware, including older systems, mobile devices, and virtual environments.","sidebar":"tutorialSidebar"},"introduction/name_and_story":{"id":"introduction/name_and_story","title":"Story & Name","description":"Eshan Roy, widely known as eshanized, is the founder, lead maintainer, and developer of Snigdha OS.","sidebar":"tutorialSidebar"},"introduction/overview":{"id":"introduction/overview","title":"Overview","description":"Snigdha OS is a lightweight and highly customizable Linux distribution based on Arch and Linux Zen Kernel, minimalism, and focus on user-centric design. We are also working on penetration distribution and blackbox.","sidebar":"tutorialSidebar"},"introduction/release_notes":{"id":"introduction/release_notes","title":"Release Notes","description":"FOR IMMEDIATE RELEASE","sidebar":"tutorialSidebar"},"introduction/reporting_bugs":{"id":"introduction/reporting_bugs","title":"Reporting Bugs","description":"If you discover a security vulnerability within Snigdha OS as well as any packages and tools, please follow our security policy so we can address it promptly.","sidebar":"tutorialSidebar"},"packages/snigdhaos_blackbox":{"id":"packages/snigdhaos_blackbox","title":"Blackbox","description":"","sidebar":"tutorialSidebar"},"packages/snigdhaos_welcome":{"id":"packages/snigdhaos_welcome","title":"Welcome","description":"","sidebar":"tutorialSidebar"},"post_installation/customization":{"id":"post_installation/customization","title":"Customize Snigdha OS","description":"","sidebar":"tutorialSidebar"},"post_installation/install_packages":{"id":"post_installation/install_packages","title":"Install Packages","description":"","sidebar":"tutorialSidebar"},"post_installation/language":{"id":"post_installation/language","title":"Language","description":"","sidebar":"tutorialSidebar"},"post_installation/update":{"id":"post_installation/update","title":"Update Snigdha OS","description":"","sidebar":"tutorialSidebar"},"tools/dns":{"id":"tools/dns","title":"Tool: DNS Enum","description":"","sidebar":"tutorialSidebar"},"troubleshoot/bluetooth":{"id":"troubleshoot/bluetooth","title":"Troubleshoot: Bluetooth","description":"Troubleshooting Bluetooth on Snigdha OS involves several steps. Here\'s the common practice:","sidebar":"tutorialSidebar"},"troubleshoot/display":{"id":"troubleshoot/display","title":"Troubleshoot: Display","description":"","sidebar":"tutorialSidebar"},"troubleshoot/sound":{"id":"troubleshoot/sound","title":"Troubleshoot: Sound","description":"","sidebar":"tutorialSidebar"},"troubleshoot/wifi":{"id":"troubleshoot/wifi","title":"Troubleshoot: Wifi","description":"","sidebar":"tutorialSidebar"},"user_guide/aur":{"id":"user_guide/aur","title":"Installing with AUR","description":"","sidebar":"tutorialSidebar"},"user_guide/cheetsheet":{"id":"user_guide/cheetsheet","title":"Cheetsheet/Shortcuts","description":"","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/96b21efb.28b4e516.js b/assets/js/96b21efb.28b4e516.js new file mode 100644 index 00000000..343d4e55 --- /dev/null +++ b/assets/js/96b21efb.28b4e516.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[6540],{1937:e=>{e.exports=JSON.parse('{"title":"Tools","description":"Troubleshoot","slug":"/category/tools","permalink":"/documentation/category/tools","navigation":{"previous":{"title":"PKGBUILD Template","permalink":"/documentation/dev_guide/pkgbuild"},"next":{"title":"Tool: DNS Enum","permalink":"/documentation/tools/dns"}}}')}}]); \ No newline at end of file diff --git a/assets/js/96b21efb.afdc6461.js b/assets/js/96b21efb.afdc6461.js deleted file mode 100644 index 12d01f30..00000000 --- a/assets/js/96b21efb.afdc6461.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[6540],{1937:t=>{t.exports=JSON.parse('{"title":"Tools","description":"Troubleshoot","slug":"/category/tools","permalink":"/documentation/category/tools","navigation":{"previous":{"title":"Writing Documentation","permalink":"/documentation/dev_guide/write"},"next":{"title":"Tool: DNS Enum","permalink":"/documentation/tools/dns"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9dcbbb0d.6cd21299.js b/assets/js/9dcbbb0d.6cd21299.js deleted file mode 100644 index 003a7711..00000000 --- a/assets/js/9dcbbb0d.6cd21299.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[3327],{949:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>d});var r=i(4848),o=i(8453);const t={sidebar_position:1},s="Build From Source",a={id:"dev_guide/build_source",title:"Build From Source",description:"Overview",source:"@site/docs/dev_guide/build_source.md",sourceDirName:"dev_guide",slug:"/dev_guide/build_source",permalink:"/documentation/dev_guide/build_source",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/build_source.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Developers Guide",permalink:"/documentation/category/developers-guide"},next:{title:"PKGBUILD Template",permalink:"/documentation/dev_guide/pkgbuild"}},c={},d=[{value:"Overview",id:"overview",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Adding Repository",id:"adding-repository",level:2},{value:"Cloning Source from GitHub",id:"cloning-source-from-github",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"build-from-source",children:"Build From Source"}),"\n",(0,r.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,r.jsxs)(n.p,{children:["Building ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," from the source code is very easy. In this documentation, I am going to guide you on how to build ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," from the source. And customizing it."]}),"\n",(0,r.jsx)(n.admonition,{title:"Caution",type:"danger",children:(0,r.jsxs)(n.p,{children:["Before running or customizing any script, first examine. Remember, you are running all the scripts produced by ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," at your own risk!"]})}),"\n",(0,r.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(n.p,{children:["To build ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," from the source, we need some packages which are hosted on ",(0,r.jsx)(n.a,{href:"https://github.com/snosmirror/snigdhaos-core",children:"SNIGDHA OS CORE"})," repository and ",(0,r.jsx)(n.a,{href:"https://github.com/snosmirror/snigdhaos-extra",children:"SNIGDHA OS EXTRA"})," repository. ",(0,r.jsx)(n.a,{href:"https://github.com/snosmirror/snigdhaos-testing",children:"SNIGDHA OS TESTING"})," is an optional repository. You also need ",(0,r.jsx)(n.strong,{children:"Chaotic-AUR"})," because some packages come from the chaotic-aur. e.g : github-desktop."]}),"\n",(0,r.jsx)(n.admonition,{title:"NOTE",type:"info",children:(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Make sure you have internet connection."}),"\n",(0,r.jsxs)(n.li,{children:["If you are on ",(0,r.jsx)(n.strong,{children:"Snigdha OS"}),", you need not add any repository! By default all the repositories are added and enabled."]}),"\n"]})}),"\n",(0,r.jsx)(n.h2,{id:"adding-repository",children:"Adding Repository"}),"\n",(0,r.jsxs)(n.p,{children:["First of all we will add ",(0,r.jsx)(n.strong,{children:"Snigdha OS Core"})," and ",(0,r.jsx)(n.strong,{children:"Snigdha OS Extra"})," repository in our pacman configuration. to edit ",(0,r.jsx)(n.code,{children:"pacman.conf"}),", execute the following on your terminal. [I am using nano, you are free to use anything]"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo nano /etc/pacman.conf\n"})}),"\n",(0,r.jsxs)(n.admonition,{title:"Archlinux",type:"tip",children:[(0,r.jsxs)(n.p,{children:["If you are using ",(0,r.jsx)(n.strong,{children:"Arch Linux"})," then you can copy and paste the following."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"#\n# /etc/pacman.conf\n#\n# See the pacman.conf(5) manpage for option and repository directives\n\n#\n# GENERAL OPTIONS\n#\n[options]\n# The following paths are commented out with their default values listed.\n# If you wish to use different paths, uncomment and update the paths.\n#RootDir = /\n#DBPath = /var/lib/pacman/\n#CacheDir = /var/cache/pacman/pkg/\n#LogFile = /var/log/pacman.log\n#GPGDir = /etc/pacman.d/gnupg/\n#HookDir = /etc/pacman.d/hooks/\nHoldPkg = pacman glibc\n#XferCommand = /usr/bin/curl -L -C - -f -o %o %u\n#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u\n#CleanMethod = KeepInstalled\nArchitecture = auto\n\n# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup\n#IgnorePkg =\n#IgnoreGroup =\n\n#NoUpgrade =\n#NoExtract =\n\n# Misc options\n#UseSyslog\n#Color\n#NoProgressBar\nCheckSpace\n#VerbosePkgLists\n#ParallelDownloads = 5\n\n# By default, pacman accepts packages signed by keys that its local keyring\n# trusts (see pacman-key and its man page), as well as unsigned packages.\nSigLevel = Required DatabaseOptional\nLocalFileSigLevel = Optional\n#RemoteFileSigLevel = Required\n\n# NOTE: You must run `pacman-key --init` before first using pacman; the local\n# keyring can then be populated with the keys of all official Arch Linux\n# packagers with `pacman-key --populate archlinux`.\n\n#\n# REPOSITORIES\n# - can be defined here or included from another file\n# - pacman will search repositories in the order defined here\n# - local/custom mirrors can be added here or in separate files\n# - repositories listed first will take precedence when packages\n# have identical names, regardless of version number\n# - URLs will have $repo replaced by the name of the current repo\n# - URLs will have $arch replaced by the name of the architecture\n#\n# Repository entries are of the format:\n# [repo-name]\n# Server = ServerName\n# Include = IncludePath\n#\n# The header [repo-name] is crucial - it must be present and\n# uncommented to enable the repo.\n#\n\n# The testing repositories are disabled by default. To enable, uncomment the\n# repo name header and Include lines. You can add preferred servers immediately\n# after the header, and they will be used before the default mirrors.\n\n#[core-testing]\n#Include = /etc/pacman.d/mirrorlist\n\n[core]\nInclude = /etc/pacman.d/mirrorlist\n\n[snigdhaos-core]\nSigLevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n\n#[extra-testing]\n#Include = /etc/pacman.d/mirrorlist\n\n[extra]\nInclude = /etc/pacman.d/mirrorlist\n\n[snigdhaos-extra]\nSiglevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n\n# If you want to run 32 bit applications on your x86_64 system,\n# enable the multilib repositories as required here.\n\n#[multilib-testing]\n#Include = /etc/pacman.d/mirrorlist\n\n[multilib]\nInclude = /etc/pacman.d/mirrorlist\n\n# An example of a custom package repository. See the pacman manpage for\n# tips on creating your own repositories.\n#[custom]\n#SigLevel = Optional TrustAll\n#Server = file:///home/custompkgs\n"})})]}),"\n",(0,r.jsx)(n.p,{children:"After executing, paste the following at the end of the file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"\n[snigdhaos-core]\nSigLevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n\n[snigdhaos-extra]\nSiglevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"SigLevel",type:"info",children:(0,r.jsxs)(n.p,{children:["If you have ",(0,r.jsx)(n.code,{children:"SnigdhaOS-keyring"})," installed on the machine or you want to ",(0,r.jsx)(n.a,{href:"/dev_guide/install_keyring",children:"install"})," then you can set the ",(0,r.jsx)(n.strong,{children:"SigLevel = Required DatabaseOptional"}),"."]})}),"\n",(0,r.jsx)(n.p,{children:"You are ready to build Snigdha OS!"}),"\n",(0,r.jsx)(n.h2,{id:"cloning-source-from-github",children:"Cloning Source from GitHub"}),"\n",(0,r.jsxs)(n.p,{children:["Now, clone the ",(0,r.jsx)(n.code,{children:"snigdhaos-arctic"})," github repository. In addition, you can make a separate directory to do that. Go to your specified/choosen directory, execute the following on terminal."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/Snigdha-OS/snigdhaos-arctic.git\n"})}),"\n",(0,r.jsx)(n.p,{children:"then,"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd snigdhaos-arctic/scripts\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"SET EXECUTABLE",type:"info",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"chmod +x ./01-online-build\n"})})}),"\n",(0,r.jsx)(n.p,{children:"Now run the script by executing,"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"./01-online-build\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The script will start building ",(0,r.jsx)(n.strong,{children:"Snigdha OS Arctic"}),". You can have a coffee break while building. The building depends on ",(0,r.jsx)(n.strong,{children:"Internet Connection"})," and machine's ",(0,r.jsx)(n.strong,{children:"Performance"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["After completing, you will find a directory with name ",(0,r.jsx)(n.strong,{children:"Output"})," containing the iso file."]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>a});var r=i(6540);const o={},t=r.createContext(o);function s(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9dcbbb0d.7df03a5a.js b/assets/js/9dcbbb0d.7df03a5a.js new file mode 100644 index 00000000..b49c0171 --- /dev/null +++ b/assets/js/9dcbbb0d.7df03a5a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[3327],{949:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>d});var r=i(4848),o=i(8453);const t={sidebar_position:1},s="Build From Source",a={id:"dev_guide/build_source",title:"Build From Source",description:"Overview",source:"@site/docs/dev_guide/build_source.md",sourceDirName:"dev_guide",slug:"/dev_guide/build_source",permalink:"/documentation/dev_guide/build_source",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/build_source.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Developers Guide",permalink:"/documentation/category/developers-guide"},next:{title:"Generate GPG Key",permalink:"/documentation/dev_guide/gpg_key"}},c={},d=[{value:"Overview",id:"overview",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Adding Repository",id:"adding-repository",level:2},{value:"Cloning Source from GitHub",id:"cloning-source-from-github",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"build-from-source",children:"Build From Source"}),"\n",(0,r.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,r.jsxs)(n.p,{children:["Building ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," from the source code is very easy. In this documentation, I am going to guide you on how to build ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," from the source. And customizing it."]}),"\n",(0,r.jsx)(n.admonition,{title:"Caution",type:"danger",children:(0,r.jsxs)(n.p,{children:["Before running or customizing any script, first examine. Remember, you are running all the scripts produced by ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," at your own risk!"]})}),"\n",(0,r.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(n.p,{children:["To build ",(0,r.jsx)(n.strong,{children:"Snigdha OS"})," from the source, we need some packages which are hosted on ",(0,r.jsx)(n.a,{href:"https://github.com/snosmirror/snigdhaos-core",children:"SNIGDHA OS CORE"})," repository and ",(0,r.jsx)(n.a,{href:"https://github.com/snosmirror/snigdhaos-extra",children:"SNIGDHA OS EXTRA"})," repository. ",(0,r.jsx)(n.a,{href:"https://github.com/snosmirror/snigdhaos-testing",children:"SNIGDHA OS TESTING"})," is an optional repository. You also need ",(0,r.jsx)(n.strong,{children:"Chaotic-AUR"})," because some packages come from the chaotic-aur. e.g : github-desktop."]}),"\n",(0,r.jsx)(n.admonition,{title:"NOTE",type:"info",children:(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Make sure you have internet connection."}),"\n",(0,r.jsxs)(n.li,{children:["If you are on ",(0,r.jsx)(n.strong,{children:"Snigdha OS"}),", you need not add any repository! By default all the repositories are added and enabled."]}),"\n"]})}),"\n",(0,r.jsx)(n.h2,{id:"adding-repository",children:"Adding Repository"}),"\n",(0,r.jsxs)(n.p,{children:["First of all we will add ",(0,r.jsx)(n.strong,{children:"Snigdha OS Core"})," and ",(0,r.jsx)(n.strong,{children:"Snigdha OS Extra"})," repository in our pacman configuration. to edit ",(0,r.jsx)(n.code,{children:"pacman.conf"}),", execute the following on your terminal. [I am using nano, you are free to use anything]"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo nano /etc/pacman.conf\n"})}),"\n",(0,r.jsxs)(n.admonition,{title:"Archlinux",type:"tip",children:[(0,r.jsxs)(n.p,{children:["If you are using ",(0,r.jsx)(n.strong,{children:"Arch Linux"})," then you can copy and paste the following."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"#\n# /etc/pacman.conf\n#\n# See the pacman.conf(5) manpage for option and repository directives\n\n#\n# GENERAL OPTIONS\n#\n[options]\n# The following paths are commented out with their default values listed.\n# If you wish to use different paths, uncomment and update the paths.\n#RootDir = /\n#DBPath = /var/lib/pacman/\n#CacheDir = /var/cache/pacman/pkg/\n#LogFile = /var/log/pacman.log\n#GPGDir = /etc/pacman.d/gnupg/\n#HookDir = /etc/pacman.d/hooks/\nHoldPkg = pacman glibc\n#XferCommand = /usr/bin/curl -L -C - -f -o %o %u\n#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u\n#CleanMethod = KeepInstalled\nArchitecture = auto\n\n# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup\n#IgnorePkg =\n#IgnoreGroup =\n\n#NoUpgrade =\n#NoExtract =\n\n# Misc options\n#UseSyslog\n#Color\n#NoProgressBar\nCheckSpace\n#VerbosePkgLists\n#ParallelDownloads = 5\n\n# By default, pacman accepts packages signed by keys that its local keyring\n# trusts (see pacman-key and its man page), as well as unsigned packages.\nSigLevel = Required DatabaseOptional\nLocalFileSigLevel = Optional\n#RemoteFileSigLevel = Required\n\n# NOTE: You must run `pacman-key --init` before first using pacman; the local\n# keyring can then be populated with the keys of all official Arch Linux\n# packagers with `pacman-key --populate archlinux`.\n\n#\n# REPOSITORIES\n# - can be defined here or included from another file\n# - pacman will search repositories in the order defined here\n# - local/custom mirrors can be added here or in separate files\n# - repositories listed first will take precedence when packages\n# have identical names, regardless of version number\n# - URLs will have $repo replaced by the name of the current repo\n# - URLs will have $arch replaced by the name of the architecture\n#\n# Repository entries are of the format:\n# [repo-name]\n# Server = ServerName\n# Include = IncludePath\n#\n# The header [repo-name] is crucial - it must be present and\n# uncommented to enable the repo.\n#\n\n# The testing repositories are disabled by default. To enable, uncomment the\n# repo name header and Include lines. You can add preferred servers immediately\n# after the header, and they will be used before the default mirrors.\n\n#[core-testing]\n#Include = /etc/pacman.d/mirrorlist\n\n[core]\nInclude = /etc/pacman.d/mirrorlist\n\n[snigdhaos-core]\nSigLevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n\n#[extra-testing]\n#Include = /etc/pacman.d/mirrorlist\n\n[extra]\nInclude = /etc/pacman.d/mirrorlist\n\n[snigdhaos-extra]\nSiglevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n\n# If you want to run 32 bit applications on your x86_64 system,\n# enable the multilib repositories as required here.\n\n#[multilib-testing]\n#Include = /etc/pacman.d/mirrorlist\n\n[multilib]\nInclude = /etc/pacman.d/mirrorlist\n\n# An example of a custom package repository. See the pacman manpage for\n# tips on creating your own repositories.\n#[custom]\n#SigLevel = Optional TrustAll\n#Server = file:///home/custompkgs\n"})})]}),"\n",(0,r.jsx)(n.p,{children:"After executing, paste the following at the end of the file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"\n[snigdhaos-core]\nSigLevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n\n[snigdhaos-extra]\nSiglevel = Never\nServer = https://snosmirror.github.io/$repo/$arch\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"SigLevel",type:"info",children:(0,r.jsxs)(n.p,{children:["If you have ",(0,r.jsx)(n.code,{children:"SnigdhaOS-keyring"})," installed on the machine or you want to ",(0,r.jsx)(n.a,{href:"/dev_guide/install_keyring",children:"install"})," then you can set the ",(0,r.jsx)(n.strong,{children:"SigLevel = Required DatabaseOptional"}),"."]})}),"\n",(0,r.jsx)(n.p,{children:"You are ready to build Snigdha OS!"}),"\n",(0,r.jsx)(n.h2,{id:"cloning-source-from-github",children:"Cloning Source from GitHub"}),"\n",(0,r.jsxs)(n.p,{children:["Now, clone the ",(0,r.jsx)(n.code,{children:"snigdhaos-arctic"})," github repository. In addition, you can make a separate directory to do that. Go to your specified/choosen directory, execute the following on terminal."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/Snigdha-OS/snigdhaos-arctic.git\n"})}),"\n",(0,r.jsx)(n.p,{children:"then,"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd snigdhaos-arctic/scripts\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"SET EXECUTABLE",type:"info",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"chmod +x ./01-online-build\n"})})}),"\n",(0,r.jsx)(n.p,{children:"Now run the script by executing,"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"./01-online-build\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The script will start building ",(0,r.jsx)(n.strong,{children:"Snigdha OS Arctic"}),". You can have a coffee break while building. The building depends on ",(0,r.jsx)(n.strong,{children:"Internet Connection"})," and machine's ",(0,r.jsx)(n.strong,{children:"Performance"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["After completing, you will find a directory with name ",(0,r.jsx)(n.strong,{children:"Output"})," containing the iso file."]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>a});var r=i(6540);const o={},t=r.createContext(o);function s(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a6f8198f.870e6635.js b/assets/js/a6f8198f.870e6635.js new file mode 100644 index 00000000..56c305b9 --- /dev/null +++ b/assets/js/a6f8198f.870e6635.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[4084],{7772:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>a});var s=n(4848),i=n(8453);const o={sidebar_position:3},d="Upload Key => Server",t={id:"dev_guide/upload_gog_key",title:"Upload Key => Server",description:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server",source:"@site/docs/dev_guide/upload_gog_key.md",sourceDirName:"dev_guide",slug:"/dev_guide/upload_gog_key",permalink:"/documentation/dev_guide/upload_gog_key",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/upload_gog_key.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Generate GPG Key",permalink:"/documentation/dev_guide/gpg_key"},next:{title:"Upload & Deploy Packages",permalink:"/documentation/dev_guide/deploy_packages"}},l={},a=[{value:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server",id:"-sending-and-receiving-gpg-keys-using-a-key-server",level:3},{value:"1\ufe0f\u20e3 Send (Upload) Your Public Key to a Key Server",id:"1\ufe0f\u20e3-send-upload-your-public-key-to-a-key-server",level:3},{value:"A. Export Your Key's Fingerprint",id:"a-export-your-keys-fingerprint",level:4},{value:"B. Send the Key to a Key Server",id:"b-send-the-key-to-a-key-server",level:4},{value:"2\ufe0f\u20e3 Receive (Download) a Public Key from a Key Server",id:"2\ufe0f\u20e3-receive-download-a-public-key-from-a-key-server",level:3},{value:"A. Search for a Key by Email or Key ID",id:"a-search-for-a-key-by-email-or-key-id",level:4},{value:"B. Receive the Key Directly by Key ID",id:"b-receive-the-key-directly-by-key-id",level:4},{value:"3\ufe0f\u20e3 Verify the Downloaded Key",id:"3\ufe0f\u20e3-verify-the-downloaded-key",level:3},{value:"4\ufe0f\u20e3 Sign a Received Key (Optional)",id:"4\ufe0f\u20e3-sign-a-received-key-optional",level:3},{value:"5\ufe0f\u20e3 Synchronize Keys with a Key Server",id:"5\ufe0f\u20e3-synchronize-keys-with-a-key-server",level:3},{value:"6\ufe0f\u20e3 Tips for Key Server Usage",id:"6\ufe0f\u20e3-tips-for-key-server-usage",level:3}];function c(e){const r={code:"code",h1:"h1",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.h1,{id:"upload-key--server",children:"Upload Key => Server"}),"\n",(0,s.jsx)(r.h3,{id:"-sending-and-receiving-gpg-keys-using-a-key-server",children:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server"}),"\n",(0,s.jsx)(r.p,{children:"Key servers are repositories for sharing and retrieving GPG public keys. They make it easy to distribute your public key and fetch others\u2019 keys for verifying signatures or encrypted communications. Here's how to send and receive GPG keys to/from a key server."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"1\ufe0f\u20e3-send-upload-your-public-key-to-a-key-server",children:["1\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Send (Upload) Your Public Key to a Key Server"})]}),"\n",(0,s.jsxs)(r.h4,{id:"a-export-your-keys-fingerprint",children:["A. ",(0,s.jsx)(r.strong,{children:"Export Your Key's Fingerprint"})]}),"\n",(0,s.jsx)(r.p,{children:"First, identify your key by its fingerprint. List your GPG keys:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,s.jsx)(r.p,{children:"Example output:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-plaintext",children:"pub rsa4096 2023-12-05 [SC]\n A41886F639658CA1A5519426E1415F19F21171F2\nuid [ultimate] Eshan Roy \nsub rsa4096 2023-12-05 [E]\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Copy the key ID or fingerprint (e.g., ",(0,s.jsx)(r.code,{children:"A41886F639658CA1A5519426E1415F19F21171F2"}),")."]}),"\n",(0,s.jsxs)(r.h4,{id:"b-send-the-key-to-a-key-server",children:["B. ",(0,s.jsx)(r.strong,{children:"Send the Key to a Key Server"})]}),"\n",(0,s.jsx)(r.p,{children:"Use the following command to upload your public key to a key server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --send-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Replace ",(0,s.jsx)(r.code,{children:"hkp://keyserver.ubuntu.com"})," with your preferred key server (e.g., ",(0,s.jsx)(r.code,{children:"keys.openpgp.org"}),")."]}),"\n",(0,s.jsx)(r.li,{children:"Replace the key ID with your actual key ID or fingerprint."}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"If successful, your public key is now available on the key server for others to retrieve."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"2\ufe0f\u20e3-receive-download-a-public-key-from-a-key-server",children:["2\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Receive (Download) a Public Key from a Key Server"})]}),"\n",(0,s.jsxs)(r.h4,{id:"a-search-for-a-key-by-email-or-key-id",children:["A. ",(0,s.jsx)(r.strong,{children:"Search for a Key by Email or Key ID"})]}),"\n",(0,s.jsx)(r.p,{children:"If you know the email address or key ID of the person whose key you need, search for it:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --search-keys eshanized@example.com\n"})}),"\n",(0,s.jsx)(r.p,{children:"You\u2019ll see a list of matching keys. Example:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-plaintext",children:"(1) Eshan Roy \n A41886F639658CA1A5519426E1415F19F21171F2\n(2) John X. Doe \n 1234EFGH5678IJKL9012MNOP3456QRST7890ABCD\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Choose the appropriate key by typing its number (e.g., ",(0,s.jsx)(r.code,{children:"1"}),") and pressing Enter."]}),"\n",(0,s.jsxs)(r.h4,{id:"b-receive-the-key-directly-by-key-id",children:["B. ",(0,s.jsx)(r.strong,{children:"Receive the Key Directly by Key ID"})]}),"\n",(0,s.jsx)(r.p,{children:"If you already know the key ID or fingerprint:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsx)(r.p,{children:"The public key will be downloaded and added to your keyring."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"3\ufe0f\u20e3-verify-the-downloaded-key",children:["3\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Verify the Downloaded Key"})]}),"\n",(0,s.jsx)(r.p,{children:"After receiving a key, verify its details to ensure it belongs to the correct person:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Check the ",(0,s.jsx)(r.code,{children:"uid"})," (user ID) and ensure it matches the expected email or name."]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"4\ufe0f\u20e3-sign-a-received-key-optional",children:["4\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Sign a Received Key (Optional)"})]}),"\n",(0,s.jsx)(r.p,{children:"If you trust the key\u2019s owner, you can sign the key to indicate trust:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --sign-key A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsx)(r.p,{children:"This adds your signature to their key and shows others you vouch for its authenticity."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"5\ufe0f\u20e3-synchronize-keys-with-a-key-server",children:["5\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Synchronize Keys with a Key Server"})]}),"\n",(0,s.jsx)(r.p,{children:"If the key is updated (e.g., new subkeys added), synchronize it with the server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --refresh-keys\n"})}),"\n",(0,s.jsx)(r.p,{children:"This ensures you have the latest version of all keys in your keyring."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"6\ufe0f\u20e3-tips-for-key-server-usage",children:["6\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Tips for Key Server Usage"})]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Choose a Reliable Key Server"}),": Common servers include:"]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://keyserver.ubuntu.com"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://keys.openpgp.org"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://pgp.mit.edu"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Use TLS for Security"}),":\nSome key servers support HTTPS for secure communication:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkps://keys.openpgp.org --send-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Update Regularly"}),":\nSynchronize your keyring periodically to stay current with any changes or revocations."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.p,{children:"By following these steps, you can efficiently share your GPG public key and fetch others' keys for secure communication and verification. \ud83c\udf89"})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>t});var s=n(6540);const i={},o=s.createContext(i);function d(e){const r=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec3de22d.4cbbe302.js b/assets/js/ec3de22d.4cbbe302.js deleted file mode 100644 index 4d59883c..00000000 --- a/assets/js/ec3de22d.4cbbe302.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[4893],{5877:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>d,toc:()=>u});var o=n(4848),i=n(8453);const r={sidebar_position:6},s="Writing Documentation",d={id:"dev_guide/write",title:"Writing Documentation",description:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:",source:"@site/docs/dev_guide/write.md",sourceDirName:"dev_guide",slug:"/dev_guide/write",permalink:"/documentation/dev_guide/write",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/write.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"},next:{title:"Tools",permalink:"/documentation/category/tools"}},a={},u=[];function c(e){const t={a:"a",h1:"h1",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"writing-documentation",children:"Writing Documentation"}),"\n",(0,o.jsx)(t.p,{children:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"User guides to help Snigdha OS end users with some advanced features."}),"\n",(0,o.jsxs)(t.li,{children:["More ",(0,o.jsx)(t.a,{href:"/introduction/faqs",children:"frequently asked questions"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Expanded ",(0,o.jsx)(t.a,{href:"/category/troubleshoot",children:"troubleshooting"})," steps."]}),"\n",(0,o.jsxs)(t.li,{children:["Step-by-step tutorials for Snigdha OS ",(0,o.jsx)(t.a,{href:"/category/developers-guide",children:"development"})," or ",(0,o.jsx)(t.a,{href:"/category/installation",children:"installation"}),"."]}),"\n",(0,o.jsx)(t.li,{children:"Improving literally anything else you think we should elaborate on or explain better."}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["A good way to find topics to write about is to look for common questions in the ",(0,o.jsx)(t.a,{href:"https://forum.snigdhaos.org/t/support",children:"support tag"})," of our community."]})]})}function l(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>d});var o=n(6540);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec3de22d.f1320b06.js b/assets/js/ec3de22d.f1320b06.js new file mode 100644 index 00000000..834750e4 --- /dev/null +++ b/assets/js/ec3de22d.f1320b06.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[4893],{5877:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>d,toc:()=>u});var i=n(4848),o=n(8453);const r={sidebar_position:6},s="Writing Documentation",d={id:"dev_guide/write",title:"Writing Documentation",description:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:",source:"@site/docs/dev_guide/write.md",sourceDirName:"dev_guide",slug:"/dev_guide/write",permalink:"/documentation/dev_guide/write",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/write.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"},next:{title:"PKGBUILD Template",permalink:"/documentation/dev_guide/pkgbuild"}},a={},u=[];function l(e){const t={a:"a",h1:"h1",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"writing-documentation",children:"Writing Documentation"}),"\n",(0,i.jsx)(t.p,{children:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"User guides to help Snigdha OS end users with some advanced features."}),"\n",(0,i.jsxs)(t.li,{children:["More ",(0,i.jsx)(t.a,{href:"/introduction/faqs",children:"frequently asked questions"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:["Expanded ",(0,i.jsx)(t.a,{href:"/category/troubleshoot",children:"troubleshooting"})," steps."]}),"\n",(0,i.jsxs)(t.li,{children:["Step-by-step tutorials for Snigdha OS ",(0,i.jsx)(t.a,{href:"/category/developers-guide",children:"development"})," or ",(0,i.jsx)(t.a,{href:"/category/installation",children:"installation"}),"."]}),"\n",(0,i.jsx)(t.li,{children:"Improving literally anything else you think we should elaborate on or explain better."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["A good way to find topics to write about is to look for common questions in the ",(0,i.jsx)(t.a,{href:"https://forum.snigdhaos.org/t/support",children:"support tag"})," of our community."]})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>d});var i=n(6540);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.1d438779.js b/assets/js/main.1d438779.js deleted file mode 100644 index b8b73f4e..00000000 --- a/assets/js/main.1d438779.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.1d438779.js.LICENSE.txt */ -(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9158)),"@theme/BlogTagsListPage",9158],"043e14d3":[()=>n.e(8731).then(n.bind(n,7388)),"@site/docs/dev_guide/deploy_packages.md",7388],"06ee4edd":[()=>n.e(9886).then(n.t.bind(n,1472,19)),"~docs/default/category-documentation-tutorialsidebar-category-developers-guide-ae5.json",1472],"0b3ceb4d":[()=>n.e(858).then(n.t.bind(n,1966,19)),"/home/runner/work/documentation/documentation/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],"0b7de297":[()=>n.e(6793).then(n.bind(n,4083)),"@site/docs/troubleshoot/bluetooth.md",4083],"0e1f2be5":[()=>n.e(9489).then(n.bind(n,8799)),"@site/docs/introduction/coding-standard.md",8799],"143ddb83":[()=>n.e(7152).then(n.bind(n,4647)),"@site/docs/before_installation/system_requirements.md",4647],"14e72bca":[()=>n.e(3324).then(n.t.bind(n,3391,19)),"~blog/default/documentation-blog-d20.json",3391],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,4136)),"@theme/DocCategoryGeneratedIndexPage",4136],"151aa183":[()=>n.e(5990).then(n.bind(n,8244)),"@site/docs/installation/online_install.md",8244],"16a4261c":[()=>n.e(5305).then(n.bind(n,6443)),"@site/docs/introduction/motivation.md",6443],17896441:[()=>Promise.all([n.e(1869),n.e(5533),n.e(8401)]).then(n.bind(n,4799)),"@theme/DocItem",4799],"1b1ff061":[()=>n.e(8758).then(n.bind(n,4e3)),"@site/docs/introduction/release_notes.md",4e3],"1c0d73a2":[()=>n.e(5564).then(n.t.bind(n,1783,19)),"~blog/default/documentation-blog-tags-bug-b05-list.json",1783],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(5533),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"1f9d4574":[()=>n.e(3865).then(n.bind(n,9726)),"@site/docs/installation/start_installation.md",9726],"21abdd8f":[()=>n.e(155).then(n.bind(n,24)),"@site/src/pages/cookie-consent.md",24],"24e7cd5a":[()=>n.e(5678).then(n.bind(n,1546)),"@site/docs/installation/virtualbox_installation.md",1546],"34e267cb":[()=>n.e(1809).then(n.bind(n,4245)),"@site/docs/installation/download_snigdha_os.md",4245],"36717f71":[()=>n.e(467).then(n.bind(n,1044)),"@site/docs/troubleshoot/wifi.md",1044],"374f080d":[()=>n.e(6227).then(n.bind(n,9535)),"@site/docs/before_installation/internet_connection.md",9535],"393be207":[()=>n.e(4134).then(n.bind(n,6602)),"@site/src/pages/markdown-page.md",6602],"3f32b921":[()=>n.e(3459).then(n.bind(n,1360)),"@site/docs/installation/offline_install.md",1360],"400546c3":[()=>n.e(2246).then(n.bind(n,47)),"@site/docs/packages/snigdhaos_welcome.md",47],"404ec107":[()=>n.e(5473).then(n.bind(n,60)),"@site/docs/dev_guide/install_keyring.md",60],"556b5122":[()=>n.e(5715).then(n.bind(n,6131)),"@site/docs/introduction/contributing.md",6131],"5d63bb5c":[()=>n.e(6301).then(n.t.bind(n,8155,19)),"~docs/default/category-documentation-tutorialsidebar-category-before-installation-bbf.json",8155],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"66ee5a7d":[()=>n.e(5890).then(n.bind(n,5843)),"@site/docs/dev_guide/pkgbuild.md",5843],"67391c37":[()=>n.e(7220).then(n.t.bind(n,1959,19)),"~blog/default/documentation-blog-tags-tags-271.json",1959],"6875c492":[()=>Promise.all([n.e(1869),n.e(5533),n.e(8747),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"69817ecd":[()=>n.e(3236).then(n.t.bind(n,1231,19)),"~docs/default/category-documentation-tutorialsidebar-category-user-guide-b31.json",1231],"7616f23a":[()=>n.e(6769).then(n.bind(n,8360)),"@site/docs/introduction/overview.md",8360],"7909fc73":[()=>n.e(4925).then(n.t.bind(n,2885,19)),"~blog/default/documentation-blog-tags-bug-b05.json",2885],"795cfaa5":[()=>n.e(9250).then(n.bind(n,2621)),"@site/docs/installation/live_env.md",2621],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"89ebda57":[()=>n.e(5766).then(n.bind(n,8521)),"@site/docs/dev_guide/gpg_key.md",8521],"904c2b3c":[()=>n.e(8989).then(n.bind(n,4389)),"@site/docs/post_installation/install_packages.md",4389],"9096837d":[()=>n.e(1255).then(n.t.bind(n,5091,19)),"~docs/default/category-documentation-tutorialsidebar-category-packages-eea.json",5091],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"96b21efb":[()=>n.e(6540).then(n.t.bind(n,1937,19)),"~docs/default/category-documentation-tutorialsidebar-category-tools-82a.json",1937],"9cb882f2":[()=>n.e(2523).then(n.bind(n,3687)),"@site/docs/post_installation/customization.md",3687],"9dc2651c":[()=>n.e(9040).then(n.bind(n,6034)),"@site/docs/troubleshoot/sound.md",6034],"9dcbbb0d":[()=>n.e(3327).then(n.bind(n,949)),"@site/docs/dev_guide/build_source.md",949],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],a193a73b:[()=>n.e(58).then(n.t.bind(n,4061,19)),"/home/runner/work/documentation/documentation/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(5533),n.e(8747),n.e(7643)]).then(n.bind(n,7785)),"@theme/BlogListPage",7785],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],ad749202:[()=>n.e(7590).then(n.bind(n,262)),"@site/docs/post_installation/language.md",262],b19634de:[()=>n.e(3117).then(n.bind(n,4102)),"@site/docs/introduction/faqs.md",4102],b20c3152:[()=>n.e(5713).then(n.t.bind(n,856,19)),"~docs/default/category-documentation-tutorialsidebar-category-installation-da6.json",856],b85d3565:[()=>n.e(6213).then(n.bind(n,6456)),"@site/docs/installation/making_bootable_usb.md",6456],b9c524af:[()=>n.e(6731).then(n.bind(n,3547)),"@site/docs/before_installation/imporatnt_notes.md",3547],bbd9b434:[()=>n.e(3925).then(n.bind(n,3155)),"@site/docs/packages/snigdhaos_blackbox.md",3155],ca54887a:[()=>n.e(4612).then(n.bind(n,2096)),"@site/docs/introduction/name_and_story.md",2096],ccc49370:[()=>Promise.all([n.e(1869),n.e(5533),n.e(8747),n.e(3249)]).then(n.bind(n,4029)),"@theme/BlogPostPage",4029],ccd1ff3c:[()=>n.e(4434).then(n.t.bind(n,7770,19)),"~docs/default/category-documentation-tutorialsidebar-category-introduction-344.json",7770],ce85b788:[()=>n.e(7979).then(n.bind(n,2693)),"@site/docs/tools/dns.md",2693],d68f1e45:[()=>n.e(3244).then(n.bind(n,7911)),"@site/docs/user_guide/aur.md",7911],d773f089:[()=>n.e(8121).then(n.t.bind(n,2945,19)),"/home/runner/work/documentation/documentation/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",2945],dc87ea58:[()=>n.e(5634).then(n.bind(n,8723)),"@site/docs/introduction/reporting_bugs.md",8723],de6c38e6:[()=>n.e(1703).then(n.t.bind(n,7652,19)),"~docs/default/category-documentation-tutorialsidebar-category-troubleshoot-a4b.json",7652],e2e7c0ac:[()=>n.e(4347).then(n.bind(n,6543)),"@site/docs/troubleshoot/display.md",6543],e541c1c2:[()=>n.e(1339).then(n.t.bind(n,2351,19)),"~docs/default/category-documentation-tutorialsidebar-category-post-installation-06e.json",2351],e89f4dea:[()=>n.e(3527).then(n.bind(n,4279)),"@site/docs/introduction/code_of_conduct.md",4279],ec3de22d:[()=>n.e(4893).then(n.bind(n,5877)),"@site/docs/dev_guide/write.md",5877],ec4024f9:[()=>n.e(8262).then(n.bind(n,2662)),"@site/blog/effetive_bug_report.md?truncated=true",2662],eda3af29:[()=>n.e(4474).then(n.t.bind(n,2489,19)),"~blog/default/documentation-blog-archive-ece.json",2489],f7392c07:[()=>n.e(7904).then(n.bind(n,8226)),"@site/blog/effetive_bug_report.md",8226],f7a81d3a:[()=>n.e(2966).then(n.bind(n,8921)),"@site/docs/user_guide/cheetsheet.md",8921],fbb85ca9:[()=>n.e(6183).then(n.bind(n,8698)),"@site/src/pages/privacy_policy.md",8698],ffa2682b:[()=>n.e(2056).then(n.bind(n,1081)),"@site/docs/post_installation/update.md",1081]};var l=n(4848);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(6921),c=n(3102);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,u.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(a,{...o,...n})})}})}const p=[{path:"/documentation/blog",component:d("/documentation/blog","6c7"),exact:!0},{path:"/documentation/blog/archive",component:d("/documentation/blog/archive","36a"),exact:!0},{path:"/documentation/blog/effective_bug_report",component:d("/documentation/blog/effective_bug_report","d13"),exact:!0},{path:"/documentation/blog/tags",component:d("/documentation/blog/tags","592"),exact:!0},{path:"/documentation/blog/tags/bug",component:d("/documentation/blog/tags/bug","8e1"),exact:!0},{path:"/documentation/cookie-consent",component:d("/documentation/cookie-consent","c46"),exact:!0},{path:"/documentation/markdown-page",component:d("/documentation/markdown-page","ca0"),exact:!0},{path:"/documentation/privacy_policy",component:d("/documentation/privacy_policy","0c9"),exact:!0},{path:"/documentation/",component:d("/documentation/","ef5"),routes:[{path:"/documentation/",component:d("/documentation/","7bb"),routes:[{path:"/documentation/",component:d("/documentation/","b4c"),routes:[{path:"/documentation/before_installation/imporatnt_notes",component:d("/documentation/before_installation/imporatnt_notes","89a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/before_installation/internet_connection",component:d("/documentation/before_installation/internet_connection","fae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/before_installation/system_requirements",component:d("/documentation/before_installation/system_requirements","65d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/before-installation",component:d("/documentation/category/before-installation","3ba"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/developers-guide",component:d("/documentation/category/developers-guide","73b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/installation",component:d("/documentation/category/installation","665"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/introduction",component:d("/documentation/category/introduction","2cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/packages",component:d("/documentation/category/packages","0e6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/post-installation",component:d("/documentation/category/post-installation","ee0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/tools",component:d("/documentation/category/tools","a35"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/troubleshoot",component:d("/documentation/category/troubleshoot","11b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/user-guide",component:d("/documentation/category/user-guide","d5c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/build_source",component:d("/documentation/dev_guide/build_source","81a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/deploy_packages",component:d("/documentation/dev_guide/deploy_packages","61f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/gpg_key",component:d("/documentation/dev_guide/gpg_key","d30"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/install_keyring",component:d("/documentation/dev_guide/install_keyring","6ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/pkgbuild",component:d("/documentation/dev_guide/pkgbuild","393"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/write",component:d("/documentation/dev_guide/write","856"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/download_snigdha_os",component:d("/documentation/installation/download_snigdha_os","369"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/live_env",component:d("/documentation/installation/live_env","d25"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/making_bootable_usb",component:d("/documentation/installation/making_bootable_usb","298"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/offline_install",component:d("/documentation/installation/offline_install","274"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/online_install",component:d("/documentation/installation/online_install","c8a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/start_installation",component:d("/documentation/installation/start_installation","0d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/virtualbox_installation",component:d("/documentation/installation/virtualbox_installation","f71"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/code_of_conduct",component:d("/documentation/introduction/code_of_conduct","1f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/coding-standard",component:d("/documentation/introduction/coding-standard","105"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/contributing",component:d("/documentation/introduction/contributing","2c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/faqs",component:d("/documentation/introduction/faqs","7af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/motivation",component:d("/documentation/introduction/motivation","0bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/name_and_story",component:d("/documentation/introduction/name_and_story","d3c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/release_notes",component:d("/documentation/introduction/release_notes","590"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/reporting_bugs",component:d("/documentation/introduction/reporting_bugs","974"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/packages/snigdhaos_blackbox",component:d("/documentation/packages/snigdhaos_blackbox","3e9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/packages/snigdhaos_welcome",component:d("/documentation/packages/snigdhaos_welcome","e46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/customization",component:d("/documentation/post_installation/customization","35c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/install_packages",component:d("/documentation/post_installation/install_packages","557"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/language",component:d("/documentation/post_installation/language","861"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/update",component:d("/documentation/post_installation/update","bd0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/tools/dns",component:d("/documentation/tools/dns","2cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/bluetooth",component:d("/documentation/troubleshoot/bluetooth","269"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/display",component:d("/documentation/troubleshoot/display","9c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/sound",component:d("/documentation/troubleshoot/sound","004"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/wifi",component:d("/documentation/troubleshoot/wifi","8fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/user_guide/aur",component:d("/documentation/user_guide/aur","9b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/user_guide/cheetsheet",component:d("/documentation/user_guide/cheetsheet","1e9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/",component:d("/documentation/","dd9"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(4625),i=n(545),l=n(8193);const s=[n(119),n(6134),n(6294),n(1043)];var u=n(8328),c=n(6347),d=n(2831),p=n(4848);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5260),g=n(4586),h=n(6025),b=n(6342),y=n(1003),v=n(2131),w=n(4090),k=n(2967),x=n(440),S=n(1463);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.A)(),r=(0,v.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.A)(),{pathname:r}=(0,c.zy)();return e+(0,x.applyTrailingSlash)((0,h.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,g.A)(),{metadata:t,image:n}=(0,b.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(y.be,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.A,{tag:k.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const A=new Map;function T(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(u.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var j=n(6125),N=n(6988),L=n(205);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(u.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(c.qh,{location:t,render:()=>e})})}}const I=D,M="__docusaurus-base-url-issue-banner-suggestion-container";function F(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Q=n(6921);const K=new Set,Y=new Set,Z=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,X={prefetch(e){if(!(e=>!Z()&&!Y.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(V).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Q.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Z()&&!Y.has(e))(e)&&(Y.add(e),O(e))},J=Object.freeze(X),ee=Boolean(!0);if(l.A.canUseDOM){window.docusaurus=J;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(a.Kd,{children:(0,p.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ee)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};O(window.location.pathname).then(l)}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/documentation/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/documentation/","mainDocId":"introduction/overview","docs":[{"id":"before_installation/imporatnt_notes","path":"/documentation/before_installation/imporatnt_notes","sidebar":"tutorialSidebar"},{"id":"before_installation/internet_connection","path":"/documentation/before_installation/internet_connection","sidebar":"tutorialSidebar"},{"id":"before_installation/system_requirements","path":"/documentation/before_installation/system_requirements","sidebar":"tutorialSidebar"},{"id":"dev_guide/build_source","path":"/documentation/dev_guide/build_source","sidebar":"tutorialSidebar"},{"id":"dev_guide/deploy_packages","path":"/documentation/dev_guide/deploy_packages","sidebar":"tutorialSidebar"},{"id":"dev_guide/gpg_key","path":"/documentation/dev_guide/gpg_key","sidebar":"tutorialSidebar"},{"id":"dev_guide/install_keyring","path":"/documentation/dev_guide/install_keyring","sidebar":"tutorialSidebar"},{"id":"dev_guide/pkgbuild","path":"/documentation/dev_guide/pkgbuild","sidebar":"tutorialSidebar"},{"id":"dev_guide/write","path":"/documentation/dev_guide/write","sidebar":"tutorialSidebar"},{"id":"installation/download_snigdha_os","path":"/documentation/installation/download_snigdha_os","sidebar":"tutorialSidebar"},{"id":"installation/live_env","path":"/documentation/installation/live_env","sidebar":"tutorialSidebar"},{"id":"installation/making_bootable_usb","path":"/documentation/installation/making_bootable_usb","sidebar":"tutorialSidebar"},{"id":"installation/offline_install","path":"/documentation/installation/offline_install","sidebar":"tutorialSidebar"},{"id":"installation/online_install","path":"/documentation/installation/online_install","sidebar":"tutorialSidebar"},{"id":"installation/start_installation","path":"/documentation/installation/start_installation","sidebar":"tutorialSidebar"},{"id":"installation/virtualbox_installation","path":"/documentation/installation/virtualbox_installation","sidebar":"tutorialSidebar"},{"id":"introduction/code_of_conduct","path":"/documentation/introduction/code_of_conduct","sidebar":"tutorialSidebar"},{"id":"introduction/coding-standard","path":"/documentation/introduction/coding-standard","sidebar":"tutorialSidebar"},{"id":"introduction/contributing","path":"/documentation/introduction/contributing","sidebar":"tutorialSidebar"},{"id":"introduction/faqs","path":"/documentation/introduction/faqs","sidebar":"tutorialSidebar"},{"id":"introduction/motivation","path":"/documentation/introduction/motivation","sidebar":"tutorialSidebar"},{"id":"introduction/name_and_story","path":"/documentation/introduction/name_and_story","sidebar":"tutorialSidebar"},{"id":"introduction/overview","path":"/documentation/","sidebar":"tutorialSidebar"},{"id":"introduction/release_notes","path":"/documentation/introduction/release_notes","sidebar":"tutorialSidebar"},{"id":"introduction/reporting_bugs","path":"/documentation/introduction/reporting_bugs","sidebar":"tutorialSidebar"},{"id":"packages/snigdhaos_blackbox","path":"/documentation/packages/snigdhaos_blackbox","sidebar":"tutorialSidebar"},{"id":"packages/snigdhaos_welcome","path":"/documentation/packages/snigdhaos_welcome","sidebar":"tutorialSidebar"},{"id":"post_installation/customization","path":"/documentation/post_installation/customization","sidebar":"tutorialSidebar"},{"id":"post_installation/install_packages","path":"/documentation/post_installation/install_packages","sidebar":"tutorialSidebar"},{"id":"post_installation/language","path":"/documentation/post_installation/language","sidebar":"tutorialSidebar"},{"id":"post_installation/update","path":"/documentation/post_installation/update","sidebar":"tutorialSidebar"},{"id":"tools/dns","path":"/documentation/tools/dns","sidebar":"tutorialSidebar"},{"id":"troubleshoot/bluetooth","path":"/documentation/troubleshoot/bluetooth","sidebar":"tutorialSidebar"},{"id":"troubleshoot/display","path":"/documentation/troubleshoot/display","sidebar":"tutorialSidebar"},{"id":"troubleshoot/sound","path":"/documentation/troubleshoot/sound","sidebar":"tutorialSidebar"},{"id":"troubleshoot/wifi","path":"/documentation/troubleshoot/wifi","sidebar":"tutorialSidebar"},{"id":"user_guide/aur","path":"/documentation/user_guide/aur","sidebar":"tutorialSidebar"},{"id":"user_guide/cheetsheet","path":"/documentation/user_guide/cheetsheet","sidebar":"tutorialSidebar"},{"id":"/category/introduction","path":"/documentation/category/introduction","sidebar":"tutorialSidebar"},{"id":"/category/before-installation","path":"/documentation/category/before-installation","sidebar":"tutorialSidebar"},{"id":"/category/installation","path":"/documentation/category/installation","sidebar":"tutorialSidebar"},{"id":"/category/post-installation","path":"/documentation/category/post-installation","sidebar":"tutorialSidebar"},{"id":"/category/user-guide","path":"/documentation/category/user-guide","sidebar":"tutorialSidebar"},{"id":"/category/troubleshoot","path":"/documentation/category/troubleshoot","sidebar":"tutorialSidebar"},{"id":"/category/packages","path":"/documentation/category/packages","sidebar":"tutorialSidebar"},{"id":"/category/developers-guide","path":"/documentation/category/developers-guide","sidebar":"tutorialSidebar"},{"id":"/category/tools","path":"/documentation/category/tools","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/documentation/category/introduction","label":"Introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"}}}');var u=n(4848);const c={siteConfig:o.A,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(8193),a=n(5260),i=n(440),l=n(1129),s=n(4848);function u(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,s.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,s.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,s.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)(f,{fallback:()=>(0,s.jsx)(u,{error:t,tryAgain:n}),children:[(0,s.jsx)(a.A,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.A,{children:(0,s.jsx)(u,{error:t,tryAgain:n})})]})}const p=e=>(0,s.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(4625),a=n(440),i=n(4586),l=n(6654),s=n(8193),u=n(3427),c=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,c.h)(),x=(0,u.A)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const E=(0,l.A)(_),C=_?.replace("pathname://","");let A=void 0!==C?(T=C,b&&(e=>e.startsWith("/"))(T)?k(T):T):void 0;var T;A&&E&&(A=(0,a.applyTrailingSlash)(A,{trailingSlash:v,baseUrl:w}));const j=(0,r.useRef)(!1),N=n?o.k2:o.N_,L=s.A.canUseIntersectionObserver,R=(0,r.useRef)(),P=()=>{j.current||null==A||(window.docusaurus.preload(A),j.current=!0)};(0,r.useEffect)((()=>(!L&&E&&null!=A&&window.docusaurus.prefetch(A),()=>{L&&R.current&&R.current.disconnect()})),[R,A,L,E]);const O=A?.startsWith("#")??!1,D=!y.target||"_self"===y.target,I=!A||!E||!D||O;return h||!O&&I||x.collectLink(A),y.id&&x.collectAnchor(y.id),I?(0,d.jsx)("a",{ref:S,href:A,..._&&!E&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(N,{...y,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,L&&e&&E&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),R.current.observe(e))},to:A,...n&&{isActive:g,activeClassName:m}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(6540),o=n(4848);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=l({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{A:()=>l,h:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:l,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>g,vT:()=>p,Gy:()=>c,HW:()=>h,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(6347),o=n(4586),a=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},6134:(e,t,n)=>{"use strict";var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.A,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),o=n(1312),a=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(4848);function c(e){let{as:t,id:n,...c}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},1129:(e,t,n)=>{"use strict";n.d(t,{A:()=>mt});var r=n(6540),o=n(4164),a=n(7489),i=n(1003),l=n(6347),s=n(1312),u=n(5062),c=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7559),b=n(4090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(g,{className:y.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:o,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,o.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,c.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,c.jsx)("div",{className:A.announcementBarPlaceholder}),(0,c.jsx)(C,{className:A.announcementBarContent}),a&&(0,c.jsx)(_,{onClick:n,className:A.announcementBarClose})]})}var j=n(9876),N=n(3104);var L=n(9532),R=n(5600);const P=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,R.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,L.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,c.jsx)(P.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(P);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(5293),z=n(2303);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,o.A)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,o.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,o.A)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,o.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,F.G)();return r?null:(0,c.jsx)(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(3465);function Q(){return(0,c.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(Q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.A)(r),p=(0,X.A)(t),f=(0,X.A)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.A)(o),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[a,m&&(0,c.jsx)(te.A,{...l&&{width:12,height:12}})]})};return o?(0,c.jsx)(Z.A,{href:s?f:o,...u,...g}):(0,c.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,c.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,c.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),le=n(9169),se=n(4586);const ue="dropdownNavbarItemMobile_S0Fm";function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.A)("navbar__link",a),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ce,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),(0,c.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsx)(ne,{role:"button",className:(0,o.A)(ue,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,c.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ce,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var me=n(2131);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var be=n(418);function ye(e){return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(be.A,{...e})})}const ve={navbarSearchContainer:"navbarSearchContainer_Bca1"};function we(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,o.A)(n,ve.navbarSearchContainer),children:t})}var ke=n(4070),xe=n(1754);var Se=n(5597);const _e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,l.zy)(),g=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...a,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ge,{className:he}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(we,{className:n,children:(0,c.jsx)(ye,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,c.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ke.zK)(r),i=(0,xe.QB)(t,r),l=a?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(ae,{exact:!0,...o,isActive:()=>l||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ke.zK)(r),i=(0,xe.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,xe.Vd)(r)[0],i=t??a.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,c.jsx)(ae,{...o,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:u,hash:d}=(0,l.zy)(),p=(0,ke.zK)(n),f=(0,ke.jh)(n),{savePreferredVersionName:m}=(0,Se.g1)(n),g=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??_e(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],h=(0,xe.Vd)(n)[0],b=t&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&g.length>1?void 0:_e(h).path;return g.length<=1?(0,c.jsx)(ae,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:b,to:y,items:g,isActive:r?()=>!1:void 0})}};function Ce(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ee[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(o,{...n})}function Ae(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ce,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Te(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function je(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Te,{onClick:()=>t.hide()}),t.content]})}function Ne(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(M,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(Ae,{}),secondaryMenu:(0,c.jsx)(je,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Re(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Pe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,N.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Re,{onClick:i.toggle}),(0,c.jsx)(Ne,{})]})}var Oe=n(440);const De={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Ie(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Me(e){let{error:t}=e;const n=(0,Oe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:De.errorBoundaryError,children:n})}class Fe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const ze="right";function Be(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function $e(){const{toggle:e,shown:t}=(0,j.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(Be,{})})}const Ue={colorModeToggle:"colorModeToggle_DEke"};function qe(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(Fe,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(Ce,{...e})},t)))})}function He(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ge(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??ze)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,c.jsx)(He,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)($e,{}),(0,c.jsx)(Q,{}),(0,c.jsx)(qe,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(qe,{items:r}),(0,c.jsx)(V,{className:Ue.colorModeToggle}),!o&&(0,c.jsx)(we,{children:(0,c.jsx)(ye,{})})]})})}function Ve(){return(0,c.jsx)(Pe,{children:(0,c.jsx)(Ge,{})})}function We(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,l=(0,X.A)(n),s=(0,X.A)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?s:r}:{to:l},...i,children:[o,r&&!(0,J.A)(r)&&(0,c.jsx)(te.A,{})]})}function Qe(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(We,{item:t})},t.href??t.to)}function Ke(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(Qe,{item:e},t)))})]})}function Ye(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(Ke,{column:e},t)))})}function Ze(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Xe(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(We,{item:t})}function Je(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(Xe,{item:e}),t.length!==n+1&&(0,c.jsx)(Ze,{})]},n)))})})}function et(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(Ye,{columns:t}):(0,c.jsx)(Je,{links:t})}var tt=n(1122);const nt="footerLogoLink_BH7S";function rt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(tt.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function ot(e){let{logo:t}=e;return t.href?(0,c.jsx)(Z.A,{href:t.href,className:nt,target:t.target,children:(0,c.jsx)(rt,{logo:t})}):(0,c.jsx)(rt,{logo:t})}function at(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function it(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,c.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function lt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,c.jsx)(it,{style:o,links:n&&n.length>0&&(0,c.jsx)(et,{links:n}),logo:r&&(0,c.jsx)(ot,{logo:r}),copyright:t&&(0,c.jsx)(at,{copyright:t})})}const st=r.memo(lt),ut=(0,L.fM)([F.a,k.oq,N.Tv,Se.VQ,i.Jx,function(e){let{children:t}=e;return(0,c.jsx)(R.y_,{children:(0,c.jsx)(j.e,{children:(0,c.jsx)(O,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,c.jsx)(ut,{children:t})}var dt=n(1107);function pt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(dt.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Ie,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Me,{error:t})})]})})})}const ft={mainWrapper:"mainWrapper_z2l0"};function mt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.J)(),(0,c.jsxs)(ct,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(T,{}),(0,c.jsx)(Ve,{}),(0,c.jsx)("div",{id:d,className:(0,o.A)(h.G.wrapper.main,ft.mainWrapper,r),children:(0,c.jsx)(a.A,{fallback:e=>(0,c.jsx)(pt,{...e}),children:t})}),!n&&(0,c.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(8774),o=n(6025),a=n(4586),i=n(6342),l=n(1122),s=n(4848);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,o.A)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.A,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:g,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(5260),o=n(4848);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(6540),o=n(4164),a=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function u(e){let{className:t,children:n}=e;const u=(0,a.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:a},e)}))})}function c(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>u});var r=n(6540),o=n(8193),a=n(205),i=n(3109),l=n(4848);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.A.canUseDOM)return e?c:d}function g(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:a}),(0,l.jsx)(t,{ref:c,style:u?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),i?.(n))},className:s,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&u(t)}),[o,t]),o?(0,l.jsx)(g,{...n,collapsed:s}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,l.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>g,oq:()=>m});var r=n(6540),o=n(2303),a=n(9466),i=n(9532),l=n(6342),s=n(4848);const u=(0,a.Wf)("docusaurus.announcement.dismiss"),c=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>h});var r=n(6540),o=n(8193),a=n(9532),i=n(9466),l=n(6342),s=n(4848);const u=r.createContext(void 0),c="theme",d=(0,i.Wf)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&g(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(u);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,g1:()=>v});var r=n(6540),o=n(4070),a=n(7065),i=n(6342),l=n(1754),s=n(9532),u=n(9466),c=n(4848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,u.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function g(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,c.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return l.C5?(0,c.jsx)(h,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(6540),o=n(9532),a=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>m});var r=n(6540),o=n(5600),a=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6342),c=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,u.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,l]=a,s=(0,o.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(6540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),o=n(8193);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,l]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){l(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{d1:()=>A,Nr:()=>m,w8:()=>y,C5:()=>p,$S:()=>g,cC:()=>f,B5:()=>C,Vd:()=>S,QB:()=>E,fW:()=>_,OF:()=>x,Y:()=>w});var r=n(6540),o=n(6347),a=n(2831),i=n(4070),l=n(5597),s=n(2252),u=n(6588);function c(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){const t=(0,s.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function g(){const{pathname:e}=(0,o.zy)(),t=(0,u.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const h=(e,t)=>void 0!==e&&(0,d.ys)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,u.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,l.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>c([t,n,o].filter(Boolean))),[t,n,o])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,s.r)(),i=t.routes,l=i.find((e=>(0,o.B6)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,a.v)(i),sidebarName:u,sidebarItems:c}}function A(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(6540),o=n(4164),a=n(5260),i=n(3102);function l(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(6025),u=n(4586);var c=n(4848);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const l=function(e){const{siteConfig:t}=(0,u.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.h)(),p=o?d(o,{absolute:!0}):void 0;return(0,c.jsxs)(a.A,{children:[t&&(0,c.jsx)("title",{children:l}),t&&(0,c.jsx)("meta",{property:"og:title",content:l}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),l=(0,o.A)(i,t);return(0,c.jsxs)(p.Provider,{value:l,children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("html",{className:l})}),n]})}function m(e){let{children:t}=e;const n=l(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(f,{className:(0,o.A)(r,a),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(6540),o=n(205),a=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),o=n(8328),a=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>u,gk:()=>f});var r=n(6540),o=n(8193),a=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>o});n(4586);const r="default";function o(e,t){return`docs-${e}-${t}`}},9466:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>s});n(6540);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),o=n(6347),a=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,o.zy)(),u=(0,a.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),o=n(6347),a=n(9532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(4586);function o(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,g(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(4363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},5302:(e,t,n)=>{var r=n(4634);e.exports=m,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,l=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(l,f),l=f+d.length,p)s+=p[1];else{var m=e[l],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,_=g||u,E=b||y,C=g||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:h||a++,prefix:g||"",delimiter:_,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:E?c(E):w?".*":i(_,C)})}}return l-1?"[^"+u(e)+"]+?":u(t)+"|(?:(?!"+u(t)+")[^"+u(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),o=0;o{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),o=n(8380),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),a.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++o;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];g&&y.push.apply(y,i([g])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8692},3157:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;o(m);){for(var g in p={},m){var h=s[g];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var y in f(b))if(y in c){p[b]=!0;break}for(var v in m=p)c[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n