diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..9bc21e1 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,48 @@ +name: Deploy VitePress site to Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + pages: write + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + fetch-depth: 0 + persist-credentials: false + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 20 + cache: npm + - uses: actions/configure-pages@1f0c5cde4bc74cd7e1254d0cb4de8d49e9068c7d # v4 + - run: npm ci + - run: npm run docs:build + - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3 + with: + path: .vitepress/dist + + deploy: + needs: build + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/.gitignore b/.gitignore index 730aa1c..13b3095 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,4 @@ -_site -.sass-cache -.jekyll-metadata +node_modules/ +.vitepress/dist/ +.vitepress/cache/ .DS_Store -.swp -*~ diff --git a/.readthedocs.yml b/.readthedocs.yml index d189b33..d084eac 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,20 +1,18 @@ -# .readthedocs.yml # Read the Docs configuration file -# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details +# See https://docs.readthedocs.com/platform/stable/build-customization.html +# RTD configures the VitePress base URL automatically at build time. -# Required version: 2 -# Set the version of Python and other tools you might need build: - os: ubuntu-24.04 - + os: ubuntu-lts-latest tools: - ruby: "3.4" - - commands: - - bundle install - - > - JEKYLL_ENV=production bundle exec jekyll build --destination - _readthedocs/html --baseurl $(echo -n "$READTHEDOCS_CANONICAL_URL" | cut - -d '/' -f 4-) + nodejs: "latest" + jobs: + install: + - npm ci + build: + html: + - npm run docs:build + - mkdir -p $READTHEDOCS_OUTPUT/ + - mv .vitepress/dist $READTHEDOCS_OUTPUT/html diff --git a/.vitepress/config.mts b/.vitepress/config.mts new file mode 100644 index 0000000..db5eaa5 --- /dev/null +++ b/.vitepress/config.mts @@ -0,0 +1,100 @@ +import { defineConfig } from 'vitepress' +import { redirectsPlugin, defaultPluginOptions } from './plugins/redirects' + +// Read the path prefix from RTD's canonical URL env var when present +// (e.g. https://.readthedocs.build/en/171/ → /en/171/), so all +// asset URLs resolve correctly under the PR-preview subpath. Defaults +// to '/' for the GitHub Pages build at zarr.dev. +const rtdUrl = process.env.READTHEDOCS_CANONICAL_URL +const base = rtdUrl ? new URL(rtdUrl).pathname : '/' + +export default defineConfig({ + base, + title: 'Zarr', + description: 'Zarr is a community project to develop specifications and software for storage of large N-dimensional typed arrays, also commonly known as tensors.', + cleanUrls: true, + lastUpdated: true, + sitemap: { hostname: 'https://zarr.dev' }, + head: [ + ['link', { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }], + ['link', { rel: 'icon', type: 'image/png', sizes: '16x16', href: '/favicon-16x16.png' }], + ['link', { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/favicon-32x32.png' }], + ['link', { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }], + ['link', { rel: 'manifest', href: '/site.webmanifest' }], + ['link', { rel: 'mask-icon', href: '/safari-pinned-tab.svg', color: '#5bbad5' }], + ['meta', { name: 'apple-mobile-web-app-title', content: 'Zarr' }], + ['meta', { name: 'application-name', content: 'Zarr' }], + ['meta', { name: 'theme-color', content: '#ffffff' }], + ['meta', { property: 'og:type', content: 'website' }], + ['meta', { property: 'og:site_name', content: 'Zarr' }], + ['meta', { property: 'og:title', content: 'Zarr' }], + ['meta', { property: 'og:description', content: 'An open, community-driven format for storing large arrays in any key-value store, including cloud object storage.' }], + ['meta', { property: 'og:image', content: 'https://zarr.dev/android-chrome-512x512.png' }], + ['meta', { property: 'og:url', content: 'https://zarr.dev/' }], + ['meta', { name: 'twitter:card', content: 'summary' }], + ['meta', { name: 'twitter:title', content: 'Zarr' }], + ['meta', { name: 'twitter:description', content: 'An open, community-driven format for storing large arrays in any key-value store, including cloud object storage.' }], + ['meta', { name: 'twitter:image', content: 'https://zarr.dev/android-chrome-512x512.png' }], + ['script', { async: '', src: 'https://www.googletagmanager.com/gtag/js?id=G-BCRR9QE7Z0' }], + ['script', {}, `window.dataLayer = window.dataLayer || []; +function gtag(){dataLayer.push(arguments);} +gtag('js', new Date()); +gtag('config', 'G-BCRR9QE7Z0');`], + ], + srcExclude: [ + 'docs/**', + 'README.md', + 'NOTICE.md', + ], + vite: { + plugins: [redirectsPlugin(defaultPluginOptions(process.cwd()))], + }, + themeConfig: { + logo: '/android-chrome-192x192.png', + search: { provider: 'local' }, + nav: [ + { text: 'Adopters', link: '/adopters' }, + { text: 'Community', link: '/community' }, + { text: 'Conventions', link: '/conventions' }, + { text: 'Datasets', link: '/datasets' }, + { text: 'Implementations', link: '/implementations' }, + { text: 'Office Hours', link: '/office-hours' }, + { text: 'Slides', link: '/slides' }, + { + text: 'External', + items: [ + { text: 'Blog', link: 'https://zarr.dev/blog/' }, + { text: 'Specification', link: 'https://zarr-specs.readthedocs.io/' }, + { text: 'ZEPs', link: 'https://zarr.dev/zeps/' }, + { text: 'Documentation', link: 'https://zarr.readthedocs.io/en/stable/' }, + ], + }, + ], + socialLinks: [ + { + icon: { + svg: '', + }, + link: 'https://bsky.app/profile/zarr.dev', + ariaLabel: 'Bluesky', + }, + { icon: 'mastodon', link: 'https://fosstodon.org/@zarr' }, + { icon: 'github', link: 'https://github.com/zarr-developers' }, + { + icon: { + svg: '', + }, + link: 'https://ossci.zulipchat.com/', + ariaLabel: 'Zulip', + }, + ], + editLink: { + pattern: 'https://github.com/zarr-developers/zarr-developers.github.io/edit/main/:path', + text: 'Edit this page on GitHub', + }, + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © Zarr contributors', + }, + }, +}) diff --git a/.vitepress/plugins/redirects.ts b/.vitepress/plugins/redirects.ts new file mode 100644 index 0000000..9fdc84e --- /dev/null +++ b/.vitepress/plugins/redirects.ts @@ -0,0 +1,102 @@ +import { readFileSync, mkdirSync, writeFileSync, existsSync } from 'node:fs' +import { dirname, join, resolve } from 'node:path' +import yaml from 'js-yaml' +import type { Plugin } from 'vite' + +interface RedirectEntry { + from: string + to: string +} + +const escapeHtml = (s: string): string => + s.replace(/&/g, '&') + .replace(/"/g, '"') + .replace(//g, '>') + +const renderRedirectHtml = (to: string): string => { + const target = escapeHtml(to) + return ` + + + + Redirecting... + + + + + +

Redirecting to ${target}...

+ + + +` +} + +const parseRedirectsYaml = (source: string): RedirectEntry[] => { + const parsed = yaml.load(source) + if (parsed === null || parsed === undefined) return [] + if (typeof parsed !== 'object' || Array.isArray(parsed)) { + throw new Error('redirects.yml must be a YAML mapping at the top level') + } + const entries: RedirectEntry[] = [] + for (const [from, to] of Object.entries(parsed as Record)) { + if (typeof to !== 'string') { + throw new Error(`redirect target for "${from}" must be a string, got ${typeof to}`) + } + if (!from.startsWith('/')) { + throw new Error(`redirect source "${from}" must start with a leading slash`) + } + entries.push({ from, to }) + } + return entries +} + +const stripLeadingSlash = (p: string): string => (p.startsWith('/') ? p.slice(1) : p) +const stripTrailingSlash = (p: string): string => (p.endsWith('/') ? p.slice(0, -1) : p) + +interface RedirectsPluginOptions { + yamlPath: string + outDir: string +} + +export const redirectsPlugin = (options: RedirectsPluginOptions): Plugin => { + // VitePress emits both SSR and client bundles, so closeBundle fires twice. + // Only emit stubs on the first call. + let written = false + return { + name: 'zarr-redirects', + apply: 'build', + closeBundle() { + if (written) return + written = true + + const yamlSource = readFileSync(options.yamlPath, 'utf8') + const entries = parseRedirectsYaml(yamlSource) + + for (const { from, to } of entries) { + const cleaned = stripTrailingSlash(stripLeadingSlash(from)) + const outPath = cleaned === '' + ? join(options.outDir, 'index.html') + : join(options.outDir, cleaned, 'index.html') + + if (existsSync(outPath)) { + throw new Error( + `Redirect "${from}" collides with an existing build output at ${outPath}. ` + + `Either remove the redirect or rename the page that produced ${outPath}.`, + ) + } + + mkdirSync(dirname(outPath), { recursive: true }) + writeFileSync(outPath, renderRedirectHtml(to), 'utf8') + } + + console.log(`[zarr-redirects] wrote ${entries.length} redirect stubs`) + }, + } +} + +export const defaultPluginOptions = (rootDir: string): RedirectsPluginOptions => ({ + yamlPath: resolve(rootDir, '.vitepress/redirects.yml'), + outDir: resolve(rootDir, '.vitepress/dist'), +}) diff --git a/.vitepress/redirects.yml b/.vitepress/redirects.yml new file mode 100644 index 0000000..710f35a --- /dev/null +++ b/.vitepress/redirects.yml @@ -0,0 +1,36 @@ +# Each entry maps a path on zarr.dev to an absolute or relative target URL. +# A buildEnd hook turns this into static meta-refresh stub HTML files +# under .vitepress/dist//index.html. + +# numcodecs codec docs (mirrors the deleted numcodecs_redirects/ verbatim) +/numcodecs/adler32: https://numcodecs.readthedocs.io/en/stable/checksum32.html#adler32 +/numcodecs/astype: https://numcodecs.readthedocs.io/en/stable/astype.html +/numcodecs/bitround: https://numcodecs.readthedocs.io/en/stable/bitround.html +/numcodecs/blosc: https://numcodecs.readthedocs.io/en/stable/blosc.html +/numcodecs/bz2: https://numcodecs.readthedocs.io/en/stable/bz2.html +/numcodecs/crc32: https://numcodecs.readthedocs.io/en/stable/checksum32.html#crc32 +/numcodecs/delta: https://numcodecs.readthedocs.io/en/stable/delta.html +/numcodecs/fixedscaleoffset: https://numcodecs.readthedocs.io/en/stable/fixedscaleoffset.html +/numcodecs/fletcher32: https://numcodecs.readthedocs.io/en/stable/checksum32.html#fletcher32 +/numcodecs/gzip: https://numcodecs.readthedocs.io/en/stable/gzip.html +/numcodecs/jenkins_lookup3: https://numcodecs.readthedocs.io/en/stable/checksum32.html#jenkinslookup3 +/numcodecs/lz4: https://numcodecs.readthedocs.io/en/stable/lz4.html +/numcodecs/lzma: https://numcodecs.readthedocs.io/en/stable/lzma.html +/numcodecs: https://numcodecs.readthedocs.io/en/stable/ +/numcodecs/packbits: https://numcodecs.readthedocs.io/en/stable/packbits.html +/numcodecs/pcodec: https://numcodecs.readthedocs.io/en/stable/pcodec.html +/numcodecs/quantize: https://numcodecs.readthedocs.io/en/stable/quantize.html +/numcodecs/shuffle: https://numcodecs.readthedocs.io/en/stable/shuffle.html +/numcodecs/zfpy: https://numcodecs.readthedocs.io/en/stable/zfpy.html +/numcodecs/zlib: https://numcodecs.readthedocs.io/en/stable/zlib.html +/numcodecs/zstd: https://numcodecs.readthedocs.io/en/stable/zstd.html + +# URL hygiene: catch any external link to /office_hours/ +/office_hours/: /office-hours/ + +# Restored behavior of the deleted about/index.html stub +/about: / + +# Vestigial 2019 blog posts -> blog repo +/2019/05/02/zarr-2.3-release/: https://zarr.dev/blog/release-23/ +/2019/06/19/zarr-v3-update/: https://zarr.dev/blog/v3-update/ diff --git a/.vitepress/theme/custom.css b/.vitepress/theme/custom.css new file mode 100644 index 0000000..1032454 --- /dev/null +++ b/.vitepress/theme/custom.css @@ -0,0 +1,82 @@ +:root { + --vp-c-brand-1: #952f7c; + --vp-c-brand-2: #c93d80; + --vp-c-brand-3: #c93d80; + --vp-c-brand-soft: rgba(201, 61, 128, 0.14); + + --vp-home-hero-image-background-image: linear-gradient(-45deg, #d97e6a 20%, #c93d80 80%); + --vp-home-hero-image-filter: blur(56px); +} + +.dark { + --vp-c-brand-1: #f1a8c8; + --vp-c-brand-2: #e57aa9; + --vp-c-brand-3: #e57aa9; + --vp-c-brand-soft: rgba(229, 122, 169, 0.16); +} + +.VPHero .VPImage { + border-radius: 14px; + box-shadow: 0 24px 64px -16px rgba(149, 47, 124, 0.45), + 0 8px 24px -8px rgba(149, 47, 124, 0.25); +} + +@media (min-width: 960px) { + .VPHero .image-container { + width: 420px; + height: 420px; + } + .VPHero .image-src { + max-width: 100%; + max-height: 100%; + } +} + +.adopters-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 20px; + margin: 32px 0; +} + +.adopter-card { + display: flex; + flex-direction: column; + gap: 16px; + padding: 24px; + border: 1px solid var(--vp-c-divider); + border-radius: 12px; + background: var(--vp-c-bg-soft); + transition: border-color 0.25s ease, transform 0.25s ease; +} + +.adopter-card:hover { + border-color: var(--vp-c-brand-1); + transform: translateY(-2px); +} + +.adopter-card > p:first-child { + display: flex; + align-items: center; + justify-content: center; + height: 80px; + margin: 0; +} + +.adopter-card > p:first-child a { + display: inline-flex; + text-decoration: none; +} + +.adopter-logo { + height: 80px; + max-width: 100%; + width: auto; + object-fit: contain; +} + +.adopter-card p { + font-size: 0.95em; + line-height: 1.6; + margin: 0; +} diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts new file mode 100644 index 0000000..42fe9a9 --- /dev/null +++ b/.vitepress/theme/index.ts @@ -0,0 +1,4 @@ +import DefaultTheme from 'vitepress/theme' +import './custom.css' + +export default DefaultTheme diff --git a/404.html b/404.html deleted file mode 100644 index c472b4e..0000000 --- a/404.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default ---- - - - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index fcc4994..0000000 --- a/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM ruby:3.4-slim - -RUN gem install bundler - -COPY . /src -WORKDIR /src - -RUN apt-get update -y -RUN apt-get install ruby-dev -y -RUN apt-get install make gcc g++ -y -RUN bundle install -RUN cat Gemfile.lock -ENTRYPOINT bundle exec jekyll serve diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 0838a70..0000000 --- a/Gemfile +++ /dev/null @@ -1,34 +0,0 @@ -source "https://rubygems.org" - -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! - -gem "kramdown-parser-gfm" - -# If you want to use GitHub Pages, remove the "gem "jekyll"" above and -# uncomment the line below. To upgrade, run `bundle update github-pages`. -gem "github-pages", group: :jekyll_plugins - -# If you have any plugins, put them here! -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.17" - gem "jekyll-include-cache", "~> 0.2" - gem "jekyll-sitemap", "~> 1.4" -end - -# Windows does not include zoneinfo files, so bundle the tzinfo-data gem -gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] - -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.2.0" if Gem.win_platform? - - -gem "webrick", "~> 1.8" - -gem "jekyll-redirect-from" diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 91c6721..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,316 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (8.0.2) - base64 - benchmark (>= 0.3) - bigdecimal - concurrent-ruby (~> 1.0, >= 1.3.1) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - logger (>= 1.4.2) - minitest (>= 5.1) - securerandom (>= 0.3) - tzinfo (~> 2.0, >= 2.0.5) - uri (>= 0.13.1) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - base64 (0.2.0) - benchmark (0.4.0) - bigdecimal (3.1.9) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) - colorator (1.1.0) - commonmarker (0.23.11) - concurrent-ruby (1.3.5) - connection_pool (2.5.1) - csv (3.3.4) - dnsruby (1.72.4) - base64 (~> 0.2.0) - logger (~> 1.6.5) - simpleidn (~> 0.2.1) - drb (2.2.1) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - ethon (0.16.0) - ffi (>= 1.15.0) - eventmachine (1.2.7) - execjs (2.10.0) - faraday (2.13.0) - faraday-net_http (>= 2.0, < 3.5) - json - logger - faraday-net_http (3.4.0) - net-http (>= 0.5.0) - ffi (1.17.2-aarch64-linux-gnu) - ffi (1.17.2-aarch64-linux-musl) - ffi (1.17.2-arm-linux-gnu) - ffi (1.17.2-arm-linux-musl) - ffi (1.17.2-arm64-darwin) - ffi (1.17.2-x86_64-darwin) - ffi (1.17.2-x86_64-linux-gnu) - ffi (1.17.2-x86_64-linux-musl) - forwardable-extended (2.6.0) - gemoji (4.1.0) - github-pages (232) - github-pages-health-check (= 1.18.2) - jekyll (= 3.10.0) - jekyll-avatar (= 0.8.0) - jekyll-coffeescript (= 1.2.2) - jekyll-commonmark-ghpages (= 0.5.1) - jekyll-default-layout (= 0.1.5) - jekyll-feed (= 0.17.0) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.16.1) - jekyll-include-cache (= 0.2.1) - jekyll-mentions (= 1.6.0) - jekyll-optional-front-matter (= 0.3.2) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.16.0) - jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.3) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.8.0) - jekyll-sitemap (= 1.4.0) - jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.2.0) - jekyll-theme-cayman (= 0.2.0) - jekyll-theme-dinky (= 0.2.0) - jekyll-theme-hacker (= 0.2.0) - jekyll-theme-leap-day (= 0.2.0) - jekyll-theme-merlot (= 0.2.0) - jekyll-theme-midnight (= 0.2.0) - jekyll-theme-minimal (= 0.2.0) - jekyll-theme-modernist (= 0.2.0) - jekyll-theme-primer (= 0.6.0) - jekyll-theme-slate (= 0.2.0) - jekyll-theme-tactile (= 0.2.0) - jekyll-theme-time-machine (= 0.2.0) - jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.13.0) - kramdown (= 2.4.0) - kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.4) - mercenary (~> 0.3) - minima (= 2.5.1) - nokogiri (>= 1.16.2, < 2.0) - rouge (= 3.30.0) - terminal-table (~> 1.4) - webrick (~> 1.8) - github-pages-health-check (1.18.2) - addressable (~> 2.3) - dnsruby (~> 1.60) - octokit (>= 4, < 8) - public_suffix (>= 3.0, < 6.0) - typhoeus (~> 1.3) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (1.14.7) - concurrent-ruby (~> 1.0) - jekyll (3.10.0) - addressable (~> 2.4) - colorator (~> 1.0) - csv (~> 3.0) - em-websocket (~> 0.5) - i18n (>= 0.7, < 2) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 2.0) - kramdown (>= 1.17, < 3) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 4) - safe_yaml (~> 1.0) - webrick (>= 1.0) - jekyll-avatar (0.8.0) - jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.2.2) - coffee-script (~> 2.2) - coffee-script-source (~> 1.12) - jekyll-commonmark (1.4.0) - commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.5.1) - commonmarker (>= 0.23.7, < 1.1.0) - jekyll (>= 3.9, < 4.0) - jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 5.0) - jekyll-default-layout (0.1.5) - jekyll (>= 3.0, < 5.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-gist (1.5.0) - octokit (~> 4.2) - jekyll-github-metadata (2.16.1) - jekyll (>= 3.4, < 5.0) - octokit (>= 4, < 7, != 4.4.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-mentions (1.6.0) - html-pipeline (~> 2.3) - jekyll (>= 3.7, < 5.0) - jekyll-optional-front-matter (0.3.2) - jekyll (>= 3.0, < 5.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.3.0) - jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.16.0) - jekyll (>= 3.3, < 5.0) - jekyll-relative-links (0.6.1) - jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.3) - addressable (~> 2.0) - jekyll (>= 3.5, < 5.0) - jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) - rubyzip (>= 1.3.0, < 3.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-swiss (1.0.0) - jekyll-theme-architect (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.6.0) - jekyll (> 3.5, < 5.0) - jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.3) - jekyll (>= 3.3, < 5.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - jemoji (0.13.0) - gemoji (>= 3, < 5) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - json (2.10.2) - kramdown (2.4.0) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.4) - listen (3.9.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.6) - mercenary (0.3.6) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - minitest (5.25.5) - net-http (0.6.0) - uri - nokogiri (1.18.8-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.8-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.18.8-arm-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.8-arm-linux-musl) - racc (~> 1.4) - nokogiri (1.18.8-arm64-darwin) - racc (~> 1.4) - nokogiri (1.18.8-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.18.8-x86_64-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.8-x86_64-linux-musl) - racc (~> 1.4) - octokit (4.25.1) - faraday (>= 1, < 3) - sawyer (~> 0.9) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (5.1.1) - racc (1.8.1) - rb-fsevent (0.11.2) - rb-inotify (0.11.1) - ffi (~> 1.0) - rexml (3.4.1) - rouge (3.30.0) - rubyzip (2.4.1) - safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) - addressable (>= 2.3.5) - faraday (>= 0.17.3, < 3) - securerandom (0.4.1) - simpleidn (0.2.3) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - typhoeus (1.4.1) - ethon (>= 0.9.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (1.8.0) - uri (1.0.3) - webrick (1.9.1) - -PLATFORMS - aarch64-linux-gnu - aarch64-linux-musl - arm-linux-gnu - arm-linux-musl - arm64-darwin - x86_64-darwin - x86_64-linux-gnu - x86_64-linux-musl - -DEPENDENCIES - github-pages - jekyll-feed (~> 0.17) - jekyll-include-cache (~> 0.2) - jekyll-redirect-from - jekyll-sitemap (~> 1.4) - kramdown-parser-gfm - tzinfo-data - webrick (~> 1.8) - -BUNDLED WITH - 2.6.8 diff --git a/slides/LICENSE b/NOTICE.md similarity index 67% rename from slides/LICENSE rename to NOTICE.md index 697d156..ff185ab 100644 --- a/slides/LICENSE +++ b/NOTICE.md @@ -1,4 +1,15 @@ -Copyright (C) 2019 Hakim El Hattab, http://hakim.se, and reveal.js contributors +# Third-Party Notices + +This site bundles third-party assets that are governed by their own licenses. + +## Hero animation (`public/images/zarr-hero.gif`) + +Adapted from `dynamical-zarr-ecmwf.gif` in the [developmentseed/deck.gl-raster](https://github.com/developmentseed/deck.gl-raster) repository (MIT License). + +``` +MIT License + +Copyright (c) 2025 Development Seed Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -7,13 +18,14 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` diff --git a/README.md b/README.md index 7f9ba1f..199e22e 100644 --- a/README.md +++ b/README.md @@ -2,63 +2,23 @@ Main Zarr website hosted at https://zarr.dev -## Building +## Local development -### Option 1: Using Pixi (Recommended) +This site is built with [VitePress](https://vitepress.dev/). Requires Node.js 20+. -The easiest way to build and serve the site is using [Pixi](https://pixi.sh), which manages all dependencies automatically. - -1. Install Pixi: -```bash -curl -fsSL https://pixi.sh/install.sh | bash -``` - -2. Start the development server: ```bash -pixi run dev -``` - -The site will be available at http://localhost:4000 with live reload enabled. Pixi will automatically install all dependencies on first run. - -Additional commands: -- `pixi run build` - Build the site for production -- `pixi run install` - Install/update Ruby gems (if needed manually) - -### Option 2: Manual Ruby Installation - -To build the webpage manually, you will need a working Ruby installation. - -If you are on Ubuntu and want to install the requirements locally, -follow the steps below as root. Alternatively, see the Dockerfile -for an alternative. - -1. Install `rvm`. - +npm ci +npm run docs:dev # dev server at http://localhost:5173/ +npm run docs:build # production build into .vitepress/dist/ +npm run docs:preview # preview the production build ``` -gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409b6b1796c275462a1703113804bb82d39dc0e3 7d2baf1cf37b13e2069d6956105bd0e739499bdb && curl -sSL https://get.rvm.io | bash -s stable -``` - -2. Install Ruby -``` -rvm autolibs disable && rvm install ruby 3.4.3 -``` - -Note that if the above fails, you may need to specify the path for the `rvm` command in your system. - -3. Install `bundler` -``` -gem install bundler -``` +## Deployment -4. In the root of the repository, run: +The site deploys to GitHub Pages via `.github/workflows/deploy.yml` on every push to `main`. The custom domain `zarr.dev` is preserved by `public/CNAME`, which VitePress copies into the build output. -``` -bundle install -``` +## Redirects -5. Build and serve the site locally: +Site-wide redirects (e.g. `/numcodecs/blosc` → `numcodecs.readthedocs.io`) are defined as a single YAML map at `.vitepress/redirects.yml`. The build hook in `.vitepress/plugins/redirects.ts` generates one static `/index.html` meta-refresh stub per entry into the build output. -``` -bundle exec jekyll serve -``` +To add a redirect: append an entry to `.vitepress/redirects.yml` (`/path: target-url`) and rebuild. diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 7c3dfa3..0000000 --- a/_config.yml +++ /dev/null @@ -1,89 +0,0 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole blog, values -# which you are expected to set up once and rarely edit after that. If you find -# yourself editing this file very often, consider using Jekyll's data files -# feature for the data you need to update frequently. -# -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'bundle exec jekyll serve'. If you change this file, please restart the server process. - -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. - -title: Zarr -subtitle: chunked, compressed, N-dimensional arrays - -description: >- # this means to ignore newlines until "baseurl:" - - Zarr is an open source project developing specifications and - software libraries for storage of data that is structured as - N-dimensional typed arrays (also known as tensors) in a way that is - compatible with parallel and distributed computing applications. - -baseurl: "" # the subpath of your site, e.g. /blog - -url: "" # the base hostname & protocol for your site, e.g. http://example.com - -analytics: - provider: "google" - google: - tracking_id: "G-BCRR9QE7Z0" - anonymize_ip: true - -github_username: zarr-developers -gitter_url: https://gitter.im/zarr-developers/community - -# Build settings -markdown: kramdown -remote_theme: "mmistakes/minimal-mistakes@4.26.2" -minimal_mistakes_skin: "dirt" - -plugins: - - jekyll-feed - - jekyll-include-cache - - jekyll-sitemap - - jekyll-redirect-from - - -# Exclude from processing. -# The following items will not be processed, by default. Create a custom list -# to override the default setting. -exclude: - - .pixi/ - - Gemfile - - Gemfile.lock - - node_modules - - vendor/bundle/ - - vendor/cache/ - - vendor/gems/ - - vendor/ruby/ - -# https://github.com/mmistakes/minimal-mistakes/blob/641ca6f3d8cd8fb0ae24e4f77b2e62a44a65e53b/_config.yml -logo: android-chrome-512x512.png -search: true -search_full_content: true -social: - type: Organization - name: Zarr - links: - - "https://bsky.app/profile/zarr.dev" - - "https://github.com/zarr-developers" - -footer: - links: - - label: "Bluesky" - icon: "fab fa-fw fa-bluesky" - url: "https://bsky.app/profile/zarr.dev" - - label: "Mastodon" - icon: "fab fa-fw fa-mastodon" - url: "https://fosstodon.org/@zarr" - - label: "GitHub" - icon: "fab fa-fw fa-github" - url: "https://github.com/zarr-developers" - - label: "Zulip" - icon: "fas fa-comments" - url: "https://ossci.zulipchat.com/" diff --git a/_data/navigation.yml b/_data/navigation.yml deleted file mode 100644 index 1eaf5d1..0000000 --- a/_data/navigation.yml +++ /dev/null @@ -1,43 +0,0 @@ -main: - - title: "Documentation" - url: "https://zarr.readthedocs.io/en/stable/" - - title: "Contribute" - url: "https://zarr.readthedocs.io/en/stable/developers/contributing.html" - - title: "Python Quickstart" - url: "https://zarr.readthedocs.io/en/stable/quickstart.html" - -sidebar: - - title: About - children: - - title: "Description" - url: '#description' - - title: "Applications" - url: '#applications' - - title: "Features" - url: '#features' - - title: "Sponsorship" - url: "#sponsorship" - - title: "Videos" - url: "#videos" - - title: Subpages - children: - - title: "Adopters" - url: "/adopters" - - title: "Blog" - url: '/blog' - - title: "Community" - url: '/community' - - title: "Conventions" - url: '/conventions' - - title: "Datasets" - url: '/datasets' - - title: "Implementations" - url: '/implementations' - - title: "Office Hours" - url: "/office-hours" - - title: "Slides" - url: "/slides" - - title: "Specification" - url: https://zarr-specs.readthedocs.io/ - - title: "ZEPs" - url: '/zeps' diff --git a/_includes/head/custom.html b/_includes/head/custom.html deleted file mode 100644 index 694c641..0000000 --- a/_includes/head/custom.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/_includes/masthead.html b/_includes/masthead.html deleted file mode 100644 index 23b956c..0000000 --- a/_includes/masthead.html +++ /dev/null @@ -1,40 +0,0 @@ -{% capture logo_path %}{{ site.logo }}{% endcapture %} - -
-
-
- -
-
-
\ No newline at end of file diff --git a/_posts/2019-05-02-zarr-2.3-release.md b/_posts/2019-05-02-zarr-2.3-release.md deleted file mode 100644 index d7c62cf..0000000 --- a/_posts/2019-05-02-zarr-2.3-release.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: "Zarr Python 2.3 release" -date: 2019-05-23 -categories: zarr python release - -layout: home -author_profile: false -sidebar: - title: "Content" - nav: sidebar ---- - -Recently we released version 2.3 of the [Python Zarr -package](https://zarr.readthedocs.io/en/stable/), which implements the -Zarr protocol for storing N-dimensional typed arrays, and is designed -for use in distributed and parallel computing. This post provides an -overview of new features in this release, and some information about -future directions for Zarr. - -## New storage options for distributed and cloud computing - -A key feature of the Zarr protocol is that the underlying storage -system is decoupled from other components via a simple key/value -interface. In Python, this interface corresponds to the -[`MutableMapping` -interface](https://docs.python.org/3/glossary.html#term-mapping), -which is the interface that Python -[`dict`](https://docs.python.org/3/library/stdtypes.html#dict) -implements. I.e., anything `dict`-like can be used to store Zarr -data. The simplicity of this interface means it is relatively -straightforward to add support for a range of different storage -systems. The 2.3 release adds support for storage using [SQLite]( -https://zarr.readthedocs.io/en/stable/api/storage.html#zarr.storage.SQLiteStore -), [Redis]( -https://zarr.readthedocs.io/en/stable/api/storage.html#zarr.storage.RedisStore -), [MongoDB]( -https://zarr.readthedocs.io/en/stable/api/storage.html#zarr.storage.MongoDBStore -) and [Azure Blob Storage]( -https://zarr.readthedocs.io/en/stable/api/storage.html#zarr.storage.ABSStore -). - -For example, here's code that creates an array using MongoDB: - -{% highlight python %} -import zarr -store = zarr.MongoDBStore('localhost') -root = zarr.group(store=store, overwrite=True) -foo = bar.create_group('foo') -bar = foo.create_dataset('bar', shape=(10000, 1000), chunks=(1000, 100)) -bar[:] = 42 -store.close() -{% endhighlight %} - -To do the same thing but storing the data in the cloud via Azure -Blob Storage, replace the instantiation of the `store` object with: - -{% highlight python %} -store = zarr.ABSStore(container='test', account_name='foo', account_key='bar') -{% endhighlight %} - -Support for other cloud object storage storage services was already -available via other packages, with Amazon S3 supported via the [s3fs]( -http://s3fs.readthedocs.io/en/latest/ ) package, and Google Cloud -Storage supported via the [gcsfs]( -https://gcsfs.readthedocs.io/en/latest/ ) package. Further notes on -using cloud storage are available from the [Zarr -tutorial](https://zarr.readthedocs.io/en/stable/tutorial.html#distributed-cloud-storage). - -The attraction of cloud storage is that total I/O bandwidth scales -linearly with the size of a computing cluster, so there are no -technical limits to the size of the data or computation you can scale -up to. Here's a slide from a recent presentation by [Ryan -Abernathey](https://github.com/rabernat) showing how I/O scales when -using Zarr over Google Cloud Storage: - - - -## Optimisations for cloud storage: consolidated metadata - -One issue with using cloud object storage is that, although total I/O -throughput can be high, the latency involved in each request to read -the contents of an object can be >100 ms, even when reading from -compute nodes within the same data centre. This latency can add up -when reading metadata from many arrays, because in Zarr each array has -its own metadata stored in a separate object. - -To work around this, the 2.3 release adds an experimental feature to -consolidate metadata for all arrays and groups within a hierarchy into -a single object, which can be read once via a single request. Although -this is not suitable for rapidly changing datasets, it can be good for -large datasets which are relatively static. - -To use this feature, two new convenience functions have been -added. The -[`consolidate_metadata()`](https://zarr.readthedocs.io/en/stable/api/convenience.html#zarr.convenience.consolidate_metadata) -function performs the initial consolidation, reading all metadata and -combining them into a single object. Once you have done that and -deployed the data to a cloud object store, the -[`open_consolidated()`](https://zarr.readthedocs.io/en/stable/api/convenience.html#zarr.convenience.open_consolidated) -function can be used to read data, making use of the consolidated -metadata. - -Support for the new consolidated metadata feature is also now -available via -[xarray](http://xarray.pydata.org/en/stable/generated/xarray.open_zarr.html) -and -[intake-xarray](https://intake-xarray.readthedocs.io/en/latest/index.html) -(see [this blog -post](https://www.anaconda.com/intake-taking-the-pain-out-of-data-access/) -for an introduction to intake), and many of the datasets in [Pangeo's -cloud data catalog](https://pangeo-data.github.io/pangeo-datastore/) -use Zarr with consolidated metadata. - -Here's an example of how to open a Zarr dataset from Pangeo's data -catalog via intake: - -{% highlight python %} -import intake -cat_url = 'https://raw.githubusercontent.com/pangeo-data/pangeo-datastore/master/intake-catalogs/master.yaml' -cat = intake.Catalog(cat_url) -ds = cat.atmosphere.gmet_v1.to_dask() -{% endhighlight %} - -...and [here's the underlying catalog -entry](https://github.com/pangeo-data/pangeo-datastore/blob/aa3f12bcc3be9584c1a9071235874c9d6af94a4e/intake-catalogs/atmosphere.yaml#L6). - - -## Compatibility with N5 - -Around the same time that development on Zarr was getting started, a -separate team led by [Stephan Saafeld](https://github.com/axtimwalde) -at the Janelia research campus was experiencing similar challenges -storing and computing with large amounts of neural imaging data, and -developed a software library called -[N5](https://github.com/saalfeldlab/n5). N5 is implemented in Java but -is very similar to Zarr in the approach it takes to storing both -metadata and data chunks, and to decoupling the storage backend to -enable efficient use of cloud storage. - -There is a lot of commonality between Zarr and N5 and we are working -jointly to bring the two approaches together. As a first experimental -step towards that goal, the Zarr 2.3 release includes an [N5 storage -adapter](https://zarr.readthedocs.io/en/stable/api/n5.html#zarr.n5.N5Store) -which allows reading and writing of data on disk in the N5 -format. - - -## Support for the buffer protocol - -Zarr is intended to work efficiently across a range of different -storage systems with different latencies and bandwidth, from cloud -object stores to local disk and memory. In many of these settings, -making efficient use of local memory, and avoiding memory copies -wherever possible, can make a substantial difference to -performance. This is particularly true within the -[Numcodecs](http://numcodecs.rtfd.io) package, which is a companion to -Zarr and provides implementations of compression and filter codecs -such as Blosc and Zstandard. A key aspect of achieving fewer memory -copies has been to leverage the Python buffer protocol. - -The [Python buffer -protocol](https://docs.python.org/3/c-api/buffer.html) is a -specification for how to share large blocks of memory between -different libraries without copying. This protocol has evolved over -time from its original introduction in Python 2 and later revamped -implementation added in Python 3 (with backports to Python 2.6 and -2.7). Due to the changes in its behavior from Python 2 to Python 3 and -what objects supported which implementation of the buffer protocol, it -was a bit challenging to leverage effectively in Zarr. - -Thanks to some under-the-hood changes in Zarr 2.3 and Numcodecs 0.6, -the buffer protocol is now cleanly supported for Python 2/3 in both -libraries when working with data. In addition to improved memory -handling and performance, this should make it easier for users -developing their own stores, compressors, and filters to use with -Zarr. Also it has cutdown on the amount of code specialized for -handling different Python versions. - - -## Future developments - -There is a growing community of interest around new approaches to -storage of array-like data, particularly in the cloud. For example, -[Theo McCaie](https://github.com/tam203) from the UK Met Office -Informatics Lab recently wrote a series of blog posts about the -challenges involved in [storing 200TB of "high momentum" weather model -data every -day](https://medium.com/informatics-lab/creating-a-data-format-for-high-momentum-datasets-a394fa48b671). This -is an exciting space to be working in and we'd like to do what we can -to build connections and share knowledge and ideas between -communities. We've started a [regular -teleconference](https://github.com/zarr-developers/zarr/issues/315) -which is open to anyone to join, and there is a new [gitter -channel](https://gitter.im/zarr-developers/community) for general -discussion. - -The main focus of our conversations so far has been setting up work -towards development of a new set of specifications that support the -features of both Zarr and N5, and provide a platform for exploration -and development of new features, while also identifying a minimal core -protocol that can be implemented in a range of different programming -languages. It is still relatively early days and there are lots of -open questions to work through, both on the technical side and in -terms of how we organise and coordinate efforts. However, the -community is very friendly and supportive, and anyone is welcome to -participate, so if you have an interest please do consider getting -involved. - -If you would like to stay in touch with or contribute to new -developments, keep an eye on the -[zarr](https://github.com/zarr-developers/zarr) and -[zarr-specs](https://github.com/zarr-developers/zarr-specs) GitHub -repositories, and please feel free to raise issues or add comments if -you have any questions or ideas. - - -## And finally... SciPy! - -If you're coming to SciPy this year, we're very pleased to be giving a -talk on Zarr on [day 1 of the conference (Wednesday 10 -July)](https://www.eiseverywhere.com/ehome/381993). Several members of -the Zarr community will be at the conference, and there are sprints -going on after the conference in a number of related areas, including -an Xarray sprint on the Saturday. Please do say hi or [drop us a -comment on this -issue](https://github.com/zarr-developers/zarr/issues/396) if you'd -like to connect and discuss anything. - ----- - -Blog post written by [Alistair Miles](https://github.com/alimanfoo) -and [John Kirkham](https://github.com/jakirkham). diff --git a/_posts/2019-06-19-zarr-v3-update.md b/_posts/2019-06-19-zarr-v3-update.md deleted file mode 100644 index 53f2122..0000000 --- a/_posts/2019-06-19-zarr-v3-update.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Zarr protocol v3 design update" -date: 2019-06-19 -categories: zarr specs - -layout: home -author_profile: false -sidebar: - title: "Content" - nav: sidebar ---- - -Today I put together some [slides summarising the current state of -exploratory work on the Zarr v3 protocol -spec](https://zarr-developers.github.io/slides/v3-update-20190619.html). The -purpose of this blog post is to share those slides more widely, and to -provide some context explaining why work has started on a v3 spec. - -## Why work on a v3 spec? - -The [current (v2) Zarr -spec](https://zarr.readthedocs.io/en/stable/spec/v2.html) is -implemented in a number of software libraries, and is a stable and -robust protocol that is used in production in a number of different -scientific communities. If you need to store and compute in parallel -against large array-like data, it's a good solution. So why start -thinking about a new protocol version? - -### Language-agnostic - -One reason is that the v2 protocol is somewhat Python-centric, and -includes some features which are not straightforward to implement in -other languages. This has meant that implementations do not all -support the same feature set. It would be good to have a minimal v3 -protocol spec that could be fully implemented in any language, so all -implementations have parity around a core feature set. - -### Unifying Zarr and N5 - -Another reason is that we would like to merge development efforts -between the Zarr and N5 communities, and so a goal for the v3 spec is -to unify the two approaches and provide a common implementation -target. - -### Extensibility - -A third reason is that a number of different groups have started -experimenting and extending the Zarr protocol in interesting ways, but -it's not always clear how to extend the v2 protocol to support new -features. It would be good if the v3 spec provided a variety of clear -extension points and extension mechanisms. - -### Cloud storage - -Finally, while the v2 spec can be used very effectively with -distributed storage systems like Amazon S3 or Google Cloud Storage, -there is room for improvement, particularly regarding how metadata is -stored and organised. - -## Zarr v3 design update - -I you are interested in knowing more about the current status of work -on the v3 spec, please take a look at the [v3 design update -slides](https://zarr-developers.github.io/slides/v3-update-20190619.html). The -slides use reveal.js and have both horizontal and vertical -navigation - if you haven't seen that before, then navigate downwards -first wherever you can, before navigating to the right. - -As I mention in the slides, the current v3 spec is just a straw man, -meant to illustrate some ideas and potential solutions, but everything -is up for discussion. So if you have any comments or ideas, please do -get in touch, anyone is welcome to participate. - ----- - -Blog post written by [Alistair Miles](https://github.com/alimanfoo). diff --git a/about/index.html b/about/index.html deleted file mode 100644 index f0ce6c0..0000000 --- a/about/index.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/adopters/index.md b/adopters/index.md index 98ee847..796c3e1 100644 --- a/adopters/index.md +++ b/adopters/index.md @@ -1,104 +1,135 @@ --- -layout: single -author_profile: false title: Zarr Adopters -sidebar: - title: "Content" - nav: sidebar --- -

💡 If you're using Zarr in any way and would like to be added on this page, please drop your logo and blurb here.

+💡 If you're using Zarr in any way and would like to be added on this page, please drop your logo and blurb [here](https://github.com/zarr-developers/community/issues/60). -

Thanks to the amazing community, Zarr is widely adopted and used by these groups. Here are the logos (in alphabetical order):

+Thanks to the amazing community, Zarr is widely adopted and used by these groups: -Carbonplan +
-→ Zarr is used by CarbonPlan as a storage format for analysis and visualization of climate data. +
---- + -Columbia +Zarr is used by [CarbonPlan](https://carbonplan.org/) as a storage format for analysis and visualization of climate data. ---- +
-LDEO +
---- + -DANDI +Zarr is currently used by DANDI for lightsheet microscopy and some ex vivo MRI datasets, and is being considered as a backend for Neurodata Without Borders (NWB) neurophysiology datasets. -→ Zarr is currently used by DANDI for lightsheet microscopy and some ex vivo MRI datasets, and is being considered as a backend for Neurodata Without Borders (NWB) neurophysiology datasets. +
---- +
-ESA + -→ ESA is introducing Zarr for the management of the Copernicus Sentinel data and the future Copernicus Expansion missions under the name of EOPF (Earth observation processing Framework). An initial set of data can be accessed through the Sample Service. +ESA is introducing Zarr for the management of the Copernicus Sentinel data and the future Copernicus Expansion missions under the name of [EOPF (Earth observation processing Framework)](https://eopf.copernicus.eu/). An initial set of data can be accessed through the [Sample Service](https://zarr.eopf.copernicus.eu/). ---- +
-Google Research +
-→ Google Research has released a number of open source projects for working with Zarr data (including Neuroglancer, TensorStore, Xarray-Beam, and Xarray-TensorStore) and uses Zarr for distributing large-scale weather datasets. + ---- +Google Research has released a number of open source projects for working with Zarr data (including [Neuroglancer](https://github.com/google/neuroglancer/), [TensorStore](https://github.com/google/tensorstore/), [Xarray-Beam](https://github.com/google/xarray-beam/), and [Xarray-TensorStore](https://github.com/google/xarray-tensorstore/)) and uses Zarr for distributing [large-scale weather datasets](https://github.com/google-research/arco-era5/). -HHMI +
-→ Zarr is used extensively within Janelia Research Campus for efficiently storing and accessing large imaging datasets +
---- + -LEAP +Zarr is used extensively within Janelia Research Campus for efficiently storing and accessing large imaging datasets. -→ Zarr is used by the LEAP Project (Learning the Earth with Artificial Intelligence and Physics) at Columbia University as the data format for the LEAP-Pangeo data library. LEAP researchers use Zarr to perform data analytics and machine learning for climate modeling. +
---- +
-Microsoft + -→ Zarr is used by the Microsoft Planetary Computer as a cloud-native storage format for chunked, N-dimensional arrays of geospatial data. +Zarr is used by the [LEAP Project](https://leap.columbia.edu/) (Learning the Earth with Artificial Intelligence and Physics) at Columbia University as the data format for the LEAP-Pangeo data library. LEAP researchers use Zarr to perform data analytics and machine learning for climate modeling. ---- +
-NASA +
-→ Zarr is used by NASA as an analysis-ready data store for chunked, N-dimensional arrays of geospatial data. + ---- +Zarr is used by the [Microsoft Planetary Computer](https://planetarycomputer.microsoft.com/) as a cloud-native storage format for chunked, N-dimensional arrays of geospatial data. -NCAR +
---- +
-OME + -→ The Open Microscopy Environment (OME) community is developing a format, OME-Zarr, using Zarr to store large, n-dimensional biological images as part of the Next-generation file format (NGFF) effort." +Zarr is used by NASA as an analysis-ready data store for chunked, N-dimensional arrays of geospatial data. -OME logo used by permission, trademarked Glencoe Software, Inc. +
---- +
-Pangeo + -→ Zarr is used extensively within the Pangeo Project as a cloud native storage format for ocean, weather, climate, and geospatial data. +The [Open Microscopy Environment (OME)](https://www.openmicroscopy.org/) community is developing a format, OME-Zarr, using Zarr to store large, n-dimensional biological images as part of the [Next-generation file format (NGFF)](https://ngff.openmicroscopy.org/) effort. ---- +OME logo used by [permission](https://www.openmicroscopy.org/artwork/), trademarked [Glencoe Software, Inc.](https://www.glencoesoftware.com/) -scalableminds +
-→ scalable minds uses Zarr to store and process peta-scale 3D images of brain tissue for Connectomics analyses. +
---- + -Unidata +Zarr is used extensively within the [Pangeo Project](https://pangeo.io/) as a cloud native storage format for ocean, weather, climate, and geospatial data. -Unidata is developing its netCDF libaries to support Zarr datasets amongst the atmospheric and geoscientific community. +
---- +
-Webknossos + -→ WEBKNOSSOS is a web-based platform for visualizing, collaboratively annotating and sharing large 3D images. Zarr is used for accessing remotely stored images as well as securely streaming annotation data to client applications. +scalable minds uses Zarr to store and process peta-scale 3D images of brain tissue for Connectomics analyses. ---- +
+ +
+ + + +[Unidata](https://www.unidata.ucar.edu/) is developing its netCDF libraries to support Zarr datasets amongst the atmospheric and geoscientific community. + +
+ +
+ + + +WEBKNOSSOS is a web-based platform for visualizing, collaboratively annotating and sharing large 3D images. Zarr is used for accessing remotely stored images as well as securely streaming annotation data to client applications. + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
diff --git a/browserconfig.xml b/browserconfig.xml deleted file mode 100644 index 98e3ee9..0000000 --- a/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #ffffff - - - diff --git a/community/index.md b/community/index.md index 552d685..b1724bf 100644 --- a/community/index.md +++ b/community/index.md @@ -1,10 +1,5 @@ --- -layout: single -author_profile: false title: Zarr Community -sidebar: - title: "Content" - nav: sidebar --- Zarr is a community-driven open-source data format specification developed and maintained by diverse [contributors](https://github.com/orgs/zarr-developers/teams). The Zarr contributors aim to maintain an open, equal, diverse, and inclusive community. Please read the [Zarr Code of Conduct](https://github.com/zarr-developers/.github/blob/main/CODE_OF_CONDUCT.md) for the appropriate way to interact with the community and help each other. diff --git a/conventions/index.md b/conventions/index.md index 7946eab..9714f94 100644 --- a/conventions/index.md +++ b/conventions/index.md @@ -1,28 +1,16 @@ --- -layout: single -author_profile: false title: Zarr Conventions -sidebar: - title: "Content" - nav: sidebar --- - -The Zarr storage format is used in various domains and has active communities -for each field. These communities have established several conventions on top -of Zarr.

+The Zarr storage format is used in various domains and has active communities for each field. These communities have established several conventions on top of Zarr. -Here are some of the conventions that are currently in use:
+Here are some of the conventions that are currently in use: - +- [Anndata](https://anndata.readthedocs.io/en/latest/) +- [BDZ](https://github.com/openssbd/bdz) +- [GeoZarr](https://github.com/zarr-developers/geozarr-spec) +- [NCZarr](https://docs.unidata.ucar.edu/nug/current/nczarr_head.html) +- [OME-Zarr](https://github.com/ome/ome-zarr-py) +- [Xarray](https://docs.xarray.dev/en/stable/internals/zarr-encoding-spec.html) -If you're working on/know a new convention and want to add it to the list, feel free -to send a PR to the website repository. -
+If you're working on or know of a new convention and want to add it to the list, feel free to send a PR to the website [repository](https://github.com/zarr-developers/zarr-developers.github.io/). diff --git a/datasets/index.md b/datasets/index.md index a367793..8a2bf6c 100644 --- a/datasets/index.md +++ b/datasets/index.md @@ -1,17 +1,8 @@ --- -layout: single -author_profile: false title: Zarr Datasets -sidebar: - title: "Content" - nav: sidebar --- - -Zarr has been adopted by a variety of -research groups, universities, organisations, and open-source communities.
-Below is a list of a few examples of public datasets.

-
+Zarr has been [adopted](https://zarr.dev/adopters/) by a variety of research groups, universities, organisations, and open-source communities. Below is a list of a few examples of public datasets. | Dataset | Hosting | Size | | ----------------------------------------------------------------------------------------------------------------- | --------------------- | ----- | @@ -23,13 +14,8 @@ Below is a list of a few examples of public datasets.

| [National Water Model](https://discourse.pangeo.io/t/the-national-water-model-reanalysis-zarr-dataset-on-aws/1449)| Amazon AWS | 5 TB | | [webKnossos](https://zarr.webknossos.org/) | scalableminds GmbH | 70 TB | - -
If you think your dataset would be a useful example to add to the list, -feel free to send a PR to the website repository.

+If you think your dataset would be a useful example to add to the list, feel free to send a PR to the website [repository](https://github.com/zarr-developers/zarr-developers.github.io/). -Please ensure the dataset you're adding to the list is public, free to use, -documented, and illustrate the application of Zarr within a specific domain.

+Please ensure the dataset you're adding to the list is public, free to use, documented, and illustrates the application of Zarr within a specific domain. -Please only include URLs that you expect to be stable and maintained in the -foreseeable future. -
+Please only include URLs that you expect to be stable and maintained in the foreseeable future. diff --git a/implementations/index.md b/implementations/index.md index 4f0cf62..8c51007 100644 --- a/implementations/index.md +++ b/implementations/index.md @@ -1,20 +1,10 @@ --- -layout: single -author_profile: false title: Zarr Implementations -sidebar: - title: "Content" - nav: sidebar --- - -Zarr is a data storage format based on an open-source specification, making -implementations across several languages possible. It is used in various -domains, including geospatial, bio-imaging, genomics, data science, and HPC. 🌏🔬🧬

+Zarr is a data storage format based on an open-source [specification](https://zarr-specs.readthedocs.io/), making implementations across several languages possible. It is used in various domains, including geospatial, bio-imaging, genomics, data science, and HPC. 🌏🔬🧬 -Zarr version 2 and 3 implementations are listed (in alphabetical order per language) as follows:

-
+Zarr version 2 and 3 implementations are listed (in alphabetical order per language) as follows: | Language | Implementation | V2| V3| Latest Release/Commit | |------------------------|------------------------|---|---|------------------------------| @@ -100,9 +90,6 @@ Zarr version 2 and 3 implementations are listed (in alphabetical order per langu [ExZarr-lu]: https://img.shields.io/github/last-commit/saalfeldlab/n5-zarr - -→ Feel free to add any missing implementations by sending a PR to the website repository. 🤝🏻

+→ Feel free to add any missing implementations by sending a PR to the website [repository](https://github.com/zarr-developers/zarr-developers.github.io/). 🤝🏻 -→ Get involved in various Zarr implementations by fixing bugs, resolving issues, improving documentation, or contributing to the codebase. -If you've been doing any of these activities recently, we invite you to join our community meetings and share your work with us. We'd be delighted to showcase your efforts. 💪🏻 -
+→ Get involved in various Zarr implementations by fixing bugs, resolving issues, improving documentation, or contributing to the codebase. If you've been doing any of these activities recently, we invite you to join our [community meetings](https://zarr.dev/community-calls/) and share your work with us. We'd be delighted to showcase your efforts. 💪🏻 diff --git a/index.md b/index.md index 1a1b7d5..d340595 100644 --- a/index.md +++ b/index.md @@ -1,59 +1,65 @@ --- -# You don't need to edit this file, it's empty on purpose. -# Edit theme's home layout instead if you wanna make some changes -# See: https://jekyllrb.com/docs/themes/#overriding-theme-defaults -layout: single -author_profile: false -sidebar: - title: "Content" - nav: sidebar -excerpt: "Have beautiful data in Zarr? Show us on Bluesky!" -header: - overlay_image: /images/llc4320_sst.png - overlay_filter: 0.5 # same as adding an opacity of 0.5 to a black background - caption: "Credit: Ryan Abernathey" +layout: home + +hero: + name: Zarr + text: Chunked, compressed, N-dimensional arrays + tagline: An open, community-driven format for storing large arrays in any key-value store, including cloud object storage. + image: + src: /images/zarr-hero.gif + alt: Animated ECMWF temperature forecast rendered from a Zarr store, credit Development Seed (deck.gl-raster) actions: - - label: "Share here!" - url: "https://bsky.app/intent/compose?text=@zarr.dev%20%23beautifuldata" ---- + - theme: brand + text: Implementations + link: /implementations + - theme: alt + text: Specification + link: https://zarr-specs.readthedocs.io/ + - theme: alt + text: Share on Bluesky + link: https://bsky.app/intent/compose?text=@zarr.dev%20%23beautifuldata -Zarr is a community project to develop specifications and software for -storage of large N-dimensional typed arrays, also commonly known as -tensors. A particular focus of Zarr is to provide support for storage -using distributed systems like cloud object stores, and to enable -efficient I/O for parallel computing applications. +features: + - title: Implementations + details: Zarr libraries in Python, C, C++, Rust, JavaScript, Java, Julia, and more. + link: /implementations + - title: Conventions + details: Domain conventions like OME-Zarr, GeoZarr, and Anndata layered on top of Zarr. + link: /conventions + - title: Community + details: Office hours, ZEPs, community calls, and chat. Everyone is welcome. + link: /community + - title: Datasets + details: Public Zarr datasets across climate, bio-imaging, genomics, and more. + link: /datasets +--- ## Description -Zarr is motivated by the need for a simple, transparent, open, and -community-driven format that supports high-throughput distributed I/O on -different storage systems. Zarr data can be stored in any storage system that -can be represented as a key-value store, including most commonly POSIX file -systems and cloud object storage but also zip files as well as relational and -document databases. +Zarr is motivated by the need for a simple, transparent, open, and community-driven format that supports high-throughput distributed I/O on different storage systems. Zarr data can be stored in any storage system that can be represented as a key-value store, including most commonly POSIX file systems and cloud object storage but also zip files as well as relational and document databases. See the following GitHub repositories for more information: -* [Zarr Python](https://github.com/zarr-developers/zarr) -* [Zarr Specs](https://github.com/zarr-developers/zarr-specs) -* [Numcodecs](https://github.com/zarr-developers/numcodecs) -* [Z5](https://github.com/constantinpape/z5) -* [N5](https://github.com/saalfeldlab/n5) -* [Zarr.jl](https://github.com/JuliaIO/Zarr.jl) -* [ndarray.scala](https://github.com/lasersonlab/ndarray.scala) +- [Zarr Python](https://github.com/zarr-developers/zarr) +- [Zarr Specs](https://github.com/zarr-developers/zarr-specs) +- [Numcodecs](https://github.com/zarr-developers/numcodecs) +- [Z5](https://github.com/constantinpape/z5) +- [N5](https://github.com/saalfeldlab/n5) +- [Zarr.jl](https://github.com/JuliaIO/Zarr.jl) +- [ndarray.scala](https://github.com/lasersonlab/ndarray.scala) ## Applications -* Simple and fast serialization of NumPy-like arrays, accessible from languages including Python, C, C++, Rust, Javascript, Java and Julia -* Multi-scale n-dimensional image storage, e.g. in light and electron microscopy -* Geospatial rasters, e.g. following the NetCDF / CF metadata conventions +- Simple and fast serialization of NumPy-like arrays, accessible from languages including Python, C, C++, Rust, Javascript, Java and Julia +- Multi-scale n-dimensional image storage, e.g. in light and electron microscopy +- Geospatial rasters, e.g. following the NetCDF / CF metadata conventions ## Features -* Chunk multi-dimensional arrays along any dimension. -* Store arrays in memory, on disk, inside a Zip file, on S3, etc. -* Read and write arrays concurrently from multiple threads or processes. -* Organize arrays into hierarchies via annotatable groups. +- Chunk multi-dimensional arrays along any dimension. +- Store arrays in memory, on disk, inside a Zip file, on S3, etc. +- Read and write arrays concurrently from multiple threads or processes. +- Organize arrays into hierarchies via annotatable groups. ## Sponsorship @@ -63,13 +69,10 @@ NumFOCUS Sponsored Projects rely on the generous support of corporate sponsors, ## Videos -[Videos](https://www.youtube.com/playlist?list=PLvkeNUPrCU04Xvcph4ErxsRkZq28Oucr7) -of community members talking about Zarr. If you have a video you'd like us to share, let us know! +[Videos](https://www.youtube.com/playlist?list=PLvkeNUPrCU04Xvcph4ErxsRkZq28Oucr7) of community members talking about Zarr. If you have a video you'd like us to share, let us know! + + + +## Acknowledgements -
-
- -
-
+Hero animation adapted from [`dynamical-zarr-ecmwf`](https://github.com/developmentseed/deck.gl-raster/tree/main/examples/dynamical-zarr-ecmwf) in [developmentseed/deck.gl-raster](https://github.com/developmentseed/deck.gl-raster) diff --git a/mstile-150x150.png b/mstile-150x150.png deleted file mode 100644 index d3a353c..0000000 Binary files a/mstile-150x150.png and /dev/null differ diff --git a/numcodecs_redirects/adler32.md b/numcodecs_redirects/adler32.md deleted file mode 100644 index 3d6195a..0000000 --- a/numcodecs_redirects/adler32.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/adler32 -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/checksum32.html#adler32 ---- diff --git a/numcodecs_redirects/astype.md b/numcodecs_redirects/astype.md deleted file mode 100644 index fadef65..0000000 --- a/numcodecs_redirects/astype.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/astype -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/astype.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/bitround.md b/numcodecs_redirects/bitround.md deleted file mode 100644 index 783c5b8..0000000 --- a/numcodecs_redirects/bitround.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/bitround -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/bitround.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/blosc.md b/numcodecs_redirects/blosc.md deleted file mode 100644 index f6a28f3..0000000 --- a/numcodecs_redirects/blosc.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -permalink: /numcodecs/blosc -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/blosc.html ---- - diff --git a/numcodecs_redirects/bz2.md b/numcodecs_redirects/bz2.md deleted file mode 100644 index 79c9be7..0000000 --- a/numcodecs_redirects/bz2.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/bz2 -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/bz2.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/crc32.md b/numcodecs_redirects/crc32.md deleted file mode 100644 index 4743a96..0000000 --- a/numcodecs_redirects/crc32.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/crc32 -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/checksum32.html#crc32 ---- diff --git a/numcodecs_redirects/delta.md b/numcodecs_redirects/delta.md deleted file mode 100644 index 16bf396..0000000 --- a/numcodecs_redirects/delta.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/delta -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/delta.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/fixedscaleoffset.md b/numcodecs_redirects/fixedscaleoffset.md deleted file mode 100644 index da033db..0000000 --- a/numcodecs_redirects/fixedscaleoffset.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/fixedscaleoffset -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/fixedscaleoffset.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/fletcher32.md b/numcodecs_redirects/fletcher32.md deleted file mode 100644 index 6a315f5..0000000 --- a/numcodecs_redirects/fletcher32.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/fletcher32 -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/checksum32.html#fletcher32 ---- diff --git a/numcodecs_redirects/gzip.md b/numcodecs_redirects/gzip.md deleted file mode 100644 index d0d9e63..0000000 --- a/numcodecs_redirects/gzip.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/gzip -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/gzip.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/jenkins_lookup3.md b/numcodecs_redirects/jenkins_lookup3.md deleted file mode 100644 index 7480225..0000000 --- a/numcodecs_redirects/jenkins_lookup3.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/jenkins_lookup3 -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/checksum32.html#jenkinslookup3 ---- diff --git a/numcodecs_redirects/lz4.md b/numcodecs_redirects/lz4.md deleted file mode 100644 index 9247316..0000000 --- a/numcodecs_redirects/lz4.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/lz4 -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/lz4.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/lzma.md b/numcodecs_redirects/lzma.md deleted file mode 100644 index 87a9f72..0000000 --- a/numcodecs_redirects/lzma.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/lzma -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/lzma.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/numcodecs.md b/numcodecs_redirects/numcodecs.md deleted file mode 100644 index 9b75cc5..0000000 --- a/numcodecs_redirects/numcodecs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/ ---- diff --git a/numcodecs_redirects/packbits.md b/numcodecs_redirects/packbits.md deleted file mode 100644 index e818443..0000000 --- a/numcodecs_redirects/packbits.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/packbits -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/packbits.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/pcodec.md b/numcodecs_redirects/pcodec.md deleted file mode 100644 index 8dff3b3..0000000 --- a/numcodecs_redirects/pcodec.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/pcodec -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/pcodec.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/quantize.md b/numcodecs_redirects/quantize.md deleted file mode 100644 index bb63162..0000000 --- a/numcodecs_redirects/quantize.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/quantize -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/quantize.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/shuffle.md b/numcodecs_redirects/shuffle.md deleted file mode 100644 index f1abb3e..0000000 --- a/numcodecs_redirects/shuffle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/shuffle -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/shuffle.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/zfpy.md b/numcodecs_redirects/zfpy.md deleted file mode 100644 index 1c5ac4c..0000000 --- a/numcodecs_redirects/zfpy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/zfpy -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/zfpy.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/zlib.md b/numcodecs_redirects/zlib.md deleted file mode 100644 index a3b52a0..0000000 --- a/numcodecs_redirects/zlib.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/zlib -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/zlib.html ---- \ No newline at end of file diff --git a/numcodecs_redirects/zstd.md b/numcodecs_redirects/zstd.md deleted file mode 100644 index 8cee879..0000000 --- a/numcodecs_redirects/zstd.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -permalink: /numcodecs/zstd -redirect_to: - - https://numcodecs.readthedocs.io/en/stable/zstd.html ---- \ No newline at end of file diff --git a/office-hours/index.md b/office-hours/index.md new file mode 100644 index 0000000..cc2f9dc --- /dev/null +++ b/office-hours/index.md @@ -0,0 +1,25 @@ +--- +title: Zarr Office Hours +--- + + + + + +We're hosting office hours on Wednesdays every two weeks. Please join us if you have questions about Zarr and want to learn more about the storage format. We'll discuss the specification, the implementations, what's new in the Zarr ecosystem, how you can get involved in the community and much more. + +Office hours are a great place to go if you want to start using Zarr and have questions about whether it suits your data storage needs. We'll have a few items on the agenda to kickstart the meeting, but the overall agenda and structure of the office hours will be shaped according to the attendees' and community's needs. + +Please see the Zarr community calendar for exact timings: + + + +Download the [.ics file](https://calendar.google.com/calendar/ical/c_ba2k79i3u0lkf49vo0jre27j14%40group.calendar.google.com/public/basic.ics) and add it to your calendar so you won't miss any of our meetings! diff --git a/office_hours/index.md b/office_hours/index.md deleted file mode 100644 index a1616ea..0000000 --- a/office_hours/index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: single -author_profile: false -title: Zarr Office Hours -permalink: /office-hours/ -sidebar: - title: "Content" - nav: sidebar ---- - - - -

We’re hosting office hours on Wednesdays every two weeks. Please join us if you have questions about Zarr and want to learn more about the storage format. We’ll discuss the specification, the implementations, what’s new in the Zarr ecosystem, how you can get involved in the community and much more.

- -

Office hours are a great place to go if you want to start using Zarr and have questions about whether it suits your data storage needs. We’ll have a few items on the agenda to kickstart the meeting, but the overall agenda and structure of the office hours will be shaped according to the attendees’ and community’s needs.

- -

Please see the Zarr community calendar for exact timings:

- - - -Download the .ics file and add it to your calendar so won't miss any of our meetings! diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f0c99e1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2322 @@ +{ + "name": "zarr-developers.github.io", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "zarr-developers.github.io", + "devDependencies": { + "js-yaml": "4.1.1", + "vitepress": "1.6.4" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.17.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.17.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.17.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.17.7", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/ingestion": { + "version": "1.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.8.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "3.8.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/react": "3.8.2", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.8.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.17.7", + "@algolia/autocomplete-preset-algolia": "1.17.7", + "@docsearch/css": "3.8.2", + "algoliasearch": "^5.14.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.80", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.2", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@shikijs/core": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.4" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^3.1.0" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/transformers": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.5.0", + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/types": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/shared": "3.5.33", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/compiler-core": "3.5.33", + "@vue/compiler-dom": "3.5.33", + "@vue/compiler-ssr": "3.5.33", + "@vue/shared": "3.5.33", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.10", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.9" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.9", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.9", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.33", + "@vue/runtime-core": "3.5.33", + "@vue/shared": "3.5.33", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.33", + "@vue/shared": "3.5.33" + }, + "peerDependencies": { + "vue": "3.5.33" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.33", + "dev": true, + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "12.8.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations": { + "version": "12.8.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@vueuse/core": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "12.8.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "12.8.2", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/algoliasearch": { + "version": "5.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.17.0", + "@algolia/client-abtesting": "5.51.0", + "@algolia/client-analytics": "5.51.0", + "@algolia/client-common": "5.51.0", + "@algolia/client-insights": "5.51.0", + "@algolia/client-personalization": "5.51.0", + "@algolia/client-query-suggestions": "5.51.0", + "@algolia/client-search": "5.51.0", + "@algolia/ingestion": "1.51.0", + "@algolia/monitoring": "1.51.0", + "@algolia/recommend": "5.51.0", + "@algolia/requester-browser-xhr": "5.51.0", + "@algolia/requester-fetch": "5.51.0", + "@algolia/requester-node-http": "5.51.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/birpc": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/copy-anything": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^5.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.1", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" + } + }, + "node_modules/focus-trap": { + "version": "7.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tabbable": "^6.4.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "dev": true, + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-what": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mark.js": { + "version": "8.11.1", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/minisearch": { + "version": "7.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/mitt": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/oniguruma-to-es": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex-xs": "^1.0.0", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.12", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/preact": { + "version": "10.29.1", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rfdc": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.60.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/search-insights": { + "version": "2.17.3", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/shiki": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.5.0", + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/langs": "2.5.0", + "@shikijs/themes": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/superjson": { + "version": "2.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tabbable": { + "version": "6.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitepress": { + "version": "1.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/css": "3.8.2", + "@docsearch/js": "3.8.2", + "@iconify-json/simple-icons": "^1.2.21", + "@shikijs/core": "^2.1.0", + "@shikijs/transformers": "^2.1.0", + "@shikijs/types": "^2.1.0", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/devtools-api": "^7.7.0", + "@vue/shared": "^3.5.13", + "@vueuse/core": "^12.4.0", + "@vueuse/integrations": "^12.4.0", + "focus-trap": "^7.6.4", + "mark.js": "8.11.1", + "minisearch": "^7.1.1", + "shiki": "^2.1.0", + "vite": "^5.4.14", + "vue": "^3.5.13" + }, + "bin": { + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "postcss": "^8" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true + }, + "postcss": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.33", + "@vue/compiler-sfc": "3.5.33", + "@vue/runtime-dom": "3.5.33", + "@vue/server-renderer": "3.5.33", + "@vue/shared": "3.5.33" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..0f987d0 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "zarr-developers.github.io", + "private": true, + "type": "module", + "scripts": { + "docs:dev": "vitepress dev", + "docs:build": "vitepress build", + "docs:preview": "vitepress preview" + }, + "devDependencies": { + "js-yaml": "4.1.1", + "vitepress": "1.6.4" + }, + "overrides": { + "esbuild": "0.25.0" + } +} diff --git a/pixi.lock b/pixi.lock deleted file mode 100644 index 332a254..0000000 --- a/pixi.lock +++ /dev/null @@ -1,2002 +0,0 @@ -version: 6 -environments: - default: - channels: - - url: https://conda.anaconda.org/conda-forge/ - packages: - linux-64: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.44-h4852527_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.44-h4bf12b8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.44-h4852527_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.11.0-h4d9bdce_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-hb991d5c_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.11.0-hfcd1e18_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-14.3.0-h76bdaa0_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.3.0-hd9e9e21_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-14.3.0-h1382650_11.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gdbm-1.18-h0a1914f_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-14.3.0-he448592_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-14.3.0-he663afc_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-14.3.0-ha7acb78_11.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.3.0-h85bb3a7_105.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.3.0-hd08acf3_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-14.3.0-h85bb3a7_105.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/make-4.4.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.3-h26f9b46_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pkg-config-0.29.2-h4bc722e_1009.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruby-3.4.5-hd8161a3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_8.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - osx-64: - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.11.0-h7a00415_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1024.3-h67a6458_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1024.3-haa85c18_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19-19.1.7-default_hc369343_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19.1.7-default_h1323312_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-19.1.7-hc73cdc9_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-19.1.7-h7e5c614_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-19.1.7-default_h1c12a56_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-19.1.7-hb295874_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-19.1.7-h7e5c614_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-19.1.7-he914875_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-19.1.7-h138dee1_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.11.0-h307afc9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gdbm-1.18-h8a0c380_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/gettext-0.25.1-he52a196_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gettext-tools-0.25.1-h3184127_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-955.13-hc3792c1_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-955.13-hf1c22e8_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libasprintf-0.25.1-h3184127_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libasprintf-devel-0.25.1-h3184127_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_hc369343_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.1-h3d58e20_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-19.1.7-h7c275be_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.6-h281671d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgettextpo-0.25.1-h3184127_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgettextpo-devel-0.25.1-h3184127_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-devel-0.25.1-h3184127_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm19-19.1.7-h56e7563_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.0-ha1d9b0f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.0-h7b7ecba_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.0-hf4e0ed4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19-19.1.7-h879f4bc_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19.1.7-hb0207f0_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/make-4.4.1-h00291cd_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.5.3-h230baf5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pkg-config-0.29.2-hf7e621a_1009.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruby-3.4.5-h7b51872_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/tapi-1300.6.5-h390ca13_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h8210216_2.conda - osx-arm64: - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-compiler-1.11.0-h61f9b84_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools-1024.3-hd01ab73_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1024.3-haeb51d2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19-19.1.7-default_h73dfc95_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19.1.7-default_hf9bcbb7_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_impl_osx-arm64-19.1.7-h76e6a08_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-19.1.7-h07b0088_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-19.1.7-default_h36137df_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_impl_osx-arm64-19.1.7-h276745f_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_osx-arm64-19.1.7-h07b0088_25.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-19.1.7-h855ad52_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-19.1.7-he32a8d3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cxx-compiler-1.11.0-h88570a1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gettext-0.25.1-h3dcc1bd_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gettext-tools-0.25.1-h493aca8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64-955.13-he86490a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-955.13-hc42d924_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-0.25.1-h493aca8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-devel-0.25.1-h493aca8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp19.1-19.1.7-default_h73dfc95_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.1-hf598326_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-19.1.7-h6dc3340_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-0.25.1-h493aca8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-devel-0.25.1-h493aca8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.0-h1bb475b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-devel-0.25.1-h493aca8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm19-19.1.7-h8e0c9ce_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.0-h8eac4d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.0-hba2cd1d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.0-hbb9b287_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19-19.1.7-h91fd4e7_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19.1.7-h855ad52_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/make-4.4.1-hc9fafa5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.3-h5503f6c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.46-h7125dd6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pkg-config-0.29.2-hde07d2e_1009.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruby-3.4.5-h18f8826_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1300.6.5-h03f4b80_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-h6491c7d_2.conda - win-64: - - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.11.0-h528c1b4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.11.0-h1c1089f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.0-h5f26cbf_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/make-4.4.1-h0e40799_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.3-h725018a_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pkg-config-0.29.2-h88c491f_1009.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruby-3.4.5-h2bd11ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_31.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.44.35207-ha74f236_31.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/vswhere-3.1.7-h40126e0_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h6a83c73_3.conda -packages: -- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 - md5: d7c89558ba9fa0495403155b64376d81 - license: None - size: 2562 - timestamp: 1578324546067 -- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - build_number: 16 - sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 - md5: 73aaf86a425cc6e73fcf236a5a46396d - depends: - - _libgcc_mutex 0.1 conda_forge - - libgomp >=7.5.0 - constrains: - - openmp_impl 9999 - license: BSD-3-Clause - license_family: BSD - size: 23621 - timestamp: 1650670423406 -- conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - build_number: 8 - sha256: 1a62cd1f215fe0902e7004089693a78347a30ad687781dfda2289cab000e652d - md5: 37e16618af5c4851a3f3d66dd0e11141 - depends: - - libgomp >=7.5.0 - - libwinpthread >=12.0.0.r2.ggc561118da - constrains: - - openmp_impl 9999 - - msys2-conda-epoch <0.0a0 - license: BSD-3-Clause - license_family: BSD - size: 49468 - timestamp: 1718213032772 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.44-h4852527_1.conda - sha256: 3feccd1dd61bc18e41548d015e65f731400aa3ffe65802bc22ad772052d5326c - md5: 0fab3ce18775aba71131028a04c20dfe - depends: - - binutils_impl_linux-64 >=2.44,<2.45.0a0 - license: GPL-3.0-only - license_family: GPL - size: 34998 - timestamp: 1752032786202 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.44-h4bf12b8_1.conda - sha256: 8556847f91a85c31ef65b05b7e9182a52775616d5d4e550dfb48cdee5fd35687 - md5: e45cfedc8ca5630e02c106ea36d2c5c6 - depends: - - ld_impl_linux-64 2.44 h1423503_1 - - sysroot_linux-64 - license: GPL-3.0-only - license_family: GPL - size: 3781716 - timestamp: 1752032761608 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.44-h4852527_1.conda - sha256: fbd94448d099a8c5fe7d9ec8c67171ab6e2f4221f453fe327de9b5aaf507f992 - md5: 38e0be090e3af56e44a9cac46101f6cd - depends: - - binutils_impl_linux-64 2.44 h4bf12b8_1 - license: GPL-3.0-only - license_family: GPL - size: 36046 - timestamp: 1752032788780 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda - sha256: b456200636bd5fecb2bec63f7e0985ad2097cf1b83d60ce0b6968dffa6d02aa1 - md5: 58fd217444c2a5701a44244faf518206 - depends: - - __osx >=11.0 - license: bzip2-1.0.6 - license_family: BSD - size: 125061 - timestamp: 1757437486465 -- conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda - sha256: d882712855624641f48aa9dc3f5feea2ed6b4e6004585d3616386a18186fe692 - md5: 1077e9333c41ff0be8edd1a5ec0ddace - depends: - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - license: bzip2-1.0.6 - license_family: BSD - size: 55977 - timestamp: 1757437738856 -- conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.11.0-h4d9bdce_0.conda - sha256: 8e7a40f16400d7839c82581410aa05c1f8324a693c9d50079f8c50dc9fb241f0 - md5: abd85120de1187b0d1ec305c2173c71b - depends: - - binutils - - gcc - - gcc_linux-64 14.* - license: BSD-3-Clause - license_family: BSD - size: 6693 - timestamp: 1753098721814 -- conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.11.0-h7a00415_0.conda - sha256: 2bd1cf3d26789b7e1d04e914ccd169bd618fceed68abf7b6a305266b88dcf861 - md5: 2b23ec416cef348192a5a17737ddee60 - depends: - - cctools >=949.0.1 - - clang_osx-64 19.* - - ld64 >=530 - - llvm-openmp - license: BSD-3-Clause - license_family: BSD - size: 6695 - timestamp: 1753098825695 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-compiler-1.11.0-h61f9b84_0.conda - sha256: b51bd1551cfdf41500f732b4bd1e4e70fb1e74557165804a648f32fa9c671eec - md5: 148516e0c9edf4e9331a4d53ae806a9b - depends: - - cctools >=949.0.1 - - clang_osx-arm64 19.* - - ld64 >=530 - - llvm-openmp - license: BSD-3-Clause - license_family: BSD - size: 6697 - timestamp: 1753098737760 -- conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.11.0-h528c1b4_0.conda - sha256: 55e04bd4af61500cb8cae064386be57d18fbfdf676655ff1c97c7e5d146c6e34 - md5: 6d994ff9ab924ba11c2c07e93afbe485 - depends: - - vs2022_win-64 - license: BSD-3-Clause - license_family: BSD - size: 6938 - timestamp: 1753098808371 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda - sha256: 3b82f62baad3fd33827b01b0426e8203a2786c8f452f633740868296bcbe8485 - md5: c9e0c0f82f6e63323827db462b40ede8 - depends: - - __win - license: ISC - size: 154489 - timestamp: 1754210967212 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - sha256: 837b795a2bb39b75694ba910c13c15fa4998d4bb2a622c214a6a5174b2ae53d1 - md5: 74784ee3d225fc3dca89edb635b4e5cc - depends: - - __unix - license: ISC - size: 154402 - timestamp: 1754210968730 -- conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1024.3-h67a6458_1.conda - sha256: 8894b5099e15e9d8b0a5e5e43cb6b9be7a6a9907137da329befdbca6f4093052 - md5: 48d590ccb16a79c28ded853fc540a684 - depends: - - cctools_osx-64 1024.3 haa85c18_1 - - ld64 955.13 hc3792c1_1 - - libllvm19 >=19.1.7,<19.2.0a0 - license: APSL-2.0 - license_family: Other - size: 20655 - timestamp: 1756645161521 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools-1024.3-hd01ab73_1.conda - sha256: 5f155c8ef4e2b1a3a9a0cf9544defb439f94e032147e515464732cc027f842ba - md5: 50f17681b331bc28cf1d55df2b2414dd - depends: - - cctools_osx-arm64 1024.3 haeb51d2_1 - - ld64 955.13 he86490a_1 - - libllvm19 >=19.1.7,<19.2.0a0 - license: APSL-2.0 - license_family: Other - size: 20699 - timestamp: 1756645577110 -- conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1024.3-haa85c18_1.conda - sha256: 7875872059ac3fd240c161c5033f64499eda735027de5bd40b37a07ea3f10655 - md5: 4ff8a1bb1d4b50cd68832f6fd00d9d02 - depends: - - __osx >=10.13 - - ld64_osx-64 >=955.13,<955.14.0a0 - - libcxx - - libllvm19 >=19.1.7,<19.2.0a0 - - libzlib >=1.3.1,<2.0a0 - - llvm-tools 19.1.* - - sigtool - constrains: - - cctools 1024.3.* - - ld64 955.13.* - - clang 19.1.* - license: APSL-2.0 - license_family: Other - size: 741120 - timestamp: 1756645129446 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1024.3-haeb51d2_1.conda - sha256: ea77d8790feb469a1440a330bca1641194b5de21ba8ccdf9c7a05e355e1f153e - md5: bdecbcc574c1ae36f164346368404f63 - depends: - - __osx >=11.0 - - ld64_osx-arm64 >=955.13,<955.14.0a0 - - libcxx - - libllvm19 >=19.1.7,<19.2.0a0 - - libzlib >=1.3.1,<2.0a0 - - llvm-tools 19.1.* - - sigtool - constrains: - - clang 19.1.* - - ld64 955.13.* - - cctools 1024.3.* - license: APSL-2.0 - license_family: Other - size: 745606 - timestamp: 1756645518758 -- conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19.1.7-default_h1323312_4.conda - sha256: 47f829929adc49eb947f523ed047d140f3024f500203bf3fd468746c20a25f4c - md5: a86c87d68fbeef92fb78f5d8dcadf84b - depends: - - clang-19 19.1.7 default_hc369343_4 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 24395 - timestamp: 1757394049342 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19.1.7-default_hf9bcbb7_4.conda - sha256: 9b9046ae12782ac2123bb002e1528c8a4442213d1e3450791244ffc36776d0de - md5: f84d1c56fb6e26c7faeb1fbe00d9fcda - depends: - - clang-19 19.1.7 default_h73dfc95_4 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 24477 - timestamp: 1757396345230 -- conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19-19.1.7-default_hc369343_4.conda - sha256: 5bc81f3a5b2b8c8320b6045056239ed54dec0aff1f6a5ad892b082b790bbc449 - md5: 08400f0580d3a0f2c7cb04a2b5362437 - depends: - - __osx >=10.13 - - libclang-cpp19.1 19.1.7 default_hc369343_4 - - libcxx >=19.1.7 - - libllvm19 >=19.1.7,<19.2.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 763992 - timestamp: 1757393934104 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19-19.1.7-default_h73dfc95_4.conda - sha256: 1ab9cc9da212166dfb81e9b32f5b4d74dc2155a171f0516839b8a53dc864a5d3 - md5: e30a31ab65bd2b1c399aa3247f6ea559 - depends: - - __osx >=11.0 - - libclang-cpp19.1 19.1.7 default_h73dfc95_4 - - libcxx >=19.1.7 - - libllvm19 >=19.1.7,<19.2.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 763232 - timestamp: 1757396115383 -- conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-19.1.7-hc73cdc9_25.conda - sha256: 88edc0b34affbfffcec5ffea59b432ee3dd114124fd4d5f992db6935421f4a64 - md5: 76954503be09430fb7f4683a61ffb7b0 - depends: - - cctools_osx-64 - - clang 19.1.7.* - - compiler-rt 19.1.7.* - - ld64_osx-64 - - llvm-tools 19.1.7.* - license: BSD-3-Clause - license_family: BSD - size: 18175 - timestamp: 1748575764900 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_impl_osx-arm64-19.1.7-h76e6a08_25.conda - sha256: ee3c0976bde0ac19f84d29213ea3d9c3fd9c56d56c33ee471a8680cf69307ce1 - md5: a4e2f211f7c3cf582a6cb447bee2cad9 - depends: - - cctools_osx-arm64 - - clang 19.1.7.* - - compiler-rt 19.1.7.* - - ld64_osx-arm64 - - llvm-tools 19.1.7.* - license: BSD-3-Clause - license_family: BSD - size: 18159 - timestamp: 1748575942374 -- conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-19.1.7-h7e5c614_25.conda - sha256: 6435fdeae76f72109bc9c7b41596104075a2a8a9df3ee533bd98bb06548bbc83 - md5: a526ba9df7e7d5448d57b33941614dae - depends: - - clang_impl_osx-64 19.1.7 hc73cdc9_25 - license: BSD-3-Clause - license_family: BSD - size: 21473 - timestamp: 1748575768567 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-19.1.7-h07b0088_25.conda - sha256: 92a45a972af5eba3b7fca66880c3d5bdf73d0c69a3e21d1b3999fb9b5be1b323 - md5: 1b53cb5305ae53b5aeba20e58c625d96 - depends: - - clang_impl_osx-arm64 19.1.7 h76e6a08_25 - license: BSD-3-Clause - license_family: BSD - size: 21337 - timestamp: 1748575949016 -- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-19.1.7-default_h1c12a56_4.conda - sha256: b844767393ba104a826fc31deb12f4eac6605613b9c062d5fbe726cdbe4846bb - md5: 89b108a529dc2845d9e7ee52e55b1ea5 - depends: - - clang 19.1.7 default_h1323312_4 - - libcxx-devel 19.1.* - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 24507 - timestamp: 1757394067686 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-19.1.7-default_h36137df_4.conda - sha256: 1178a7edbc033601df6621b4c6fcd294b97faa373656660df511ebaada76e576 - md5: 78db7179f398d0bf9cec588f7d0c42c9 - depends: - - clang 19.1.7 default_hf9bcbb7_4 - - libcxx-devel 19.1.* - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 24553 - timestamp: 1757396368233 -- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-19.1.7-hb295874_25.conda - sha256: 8a2571da4bd90e3fc4523e962d6562607df133694a409959ec9c7ac4292bd676 - md5: 9fe0247ba2650f90c650001f88a87076 - depends: - - clang_osx-64 19.1.7 h7e5c614_25 - - clangxx 19.1.7.* - - libcxx >=19 - - libllvm19 >=19.1.7,<19.2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 18289 - timestamp: 1748575802444 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_impl_osx-arm64-19.1.7-h276745f_25.conda - sha256: b997d325da6ca60e71937b9e28f114893401ca7cf94c4007d744e402a25c2c52 - md5: 5eeaa7b2dd32f62eb3beb0d6ba1e664f - depends: - - clang_osx-arm64 19.1.7 h07b0088_25 - - clangxx 19.1.7.* - - libcxx >=19 - - libllvm19 >=19.1.7,<19.2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 18297 - timestamp: 1748576000726 -- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-19.1.7-h7e5c614_25.conda - sha256: 81365d98e1bb5f98a7acd1bde86ccf534b36c78bfae601e2c26a73d8de52da1e - md5: d0b5d9264d40ae1420e31c9066a1dcf0 - depends: - - clang_osx-64 19.1.7 h7e5c614_25 - - clangxx_impl_osx-64 19.1.7 hb295874_25 - license: BSD-3-Clause - license_family: BSD - size: 19873 - timestamp: 1748575806458 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_osx-arm64-19.1.7-h07b0088_25.conda - sha256: 93801e6e821ae703d03629b1b993dbae1920b80012818edd5fcd18a9055897ce - md5: 4e09188aa8def7d8b3ae149aa856c0e5 - depends: - - clang_osx-arm64 19.1.7 h07b0088_25 - - clangxx_impl_osx-arm64 19.1.7 h276745f_25 - license: BSD-3-Clause - license_family: BSD - size: 19709 - timestamp: 1748576006669 -- conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-19.1.7-he914875_1.conda - sha256: 28e5f0a6293acba68ebc54694a2fc40b1897202735e8e8cbaaa0e975ba7b235b - md5: e6b9e71e5cb08f9ed0185d31d33a074b - depends: - - __osx >=10.13 - - clang 19.1.7.* - - compiler-rt_osx-64 19.1.7.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - size: 96722 - timestamp: 1757412473400 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-19.1.7-h855ad52_1.conda - sha256: b58a481828aee699db7f28bfcbbe72fb133277ac60831dfe70ee2465541bcb93 - md5: 39451684370ae65667fa5c11222e43f7 - depends: - - __osx >=11.0 - - clang 19.1.7.* - - compiler-rt_osx-arm64 19.1.7.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - size: 97085 - timestamp: 1757411887557 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-19.1.7-h138dee1_1.conda - sha256: e6effe89523fc6143819f7a68372b28bf0c176af5b050fe6cf75b62e9f6c6157 - md5: 32deecb68e11352deaa3235b709ddab2 - depends: - - clang 19.1.7.* - constrains: - - compiler-rt 19.1.7 - - clangxx 19.1.7 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - size: 10425780 - timestamp: 1757412396490 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-19.1.7-he32a8d3_1.conda - sha256: 8c32a3db8adf18ed58197e8895ce4f24a83ed63c817512b9a26724753b116f2a - md5: 8d99c82e0f5fed6cc36fcf66a11e03f0 - depends: - - clang 19.1.7.* - constrains: - - compiler-rt 19.1.7 - - clangxx 19.1.7 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - size: 10490535 - timestamp: 1757411851093 -- conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-hb991d5c_5.conda - sha256: 88393820c3f6766be892fc1fe3443176340fc7ec40d5d2b95a54653df8dc8412 - md5: 084b74ba4cd799a4636da3c7686fc75e - depends: - - gcc_impl_linux-64 >=14.3.0,<14.3.1.0a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 33254 - timestamp: 1757039288773 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.11.0-hfcd1e18_0.conda - sha256: 3fcc97ae3e89c150401a50a4de58794ffc67b1ed0e1851468fcc376980201e25 - md5: 5da8c935dca9186673987f79cef0b2a5 - depends: - - c-compiler 1.11.0 h4d9bdce_0 - - gxx - - gxx_linux-64 14.* - license: BSD-3-Clause - license_family: BSD - size: 6635 - timestamp: 1753098722177 -- conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.11.0-h307afc9_0.conda - sha256: d6976f8d8b51486072abfe1e76a733688380dcbd1a8e993a43d59b80f7288478 - md5: 463bb03bb27f9edc167fb3be224efe96 - depends: - - c-compiler 1.11.0 h7a00415_0 - - clangxx_osx-64 19.* - license: BSD-3-Clause - license_family: BSD - size: 6732 - timestamp: 1753098827160 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cxx-compiler-1.11.0-h88570a1_0.conda - sha256: 99800d97a3a2ee9920dfc697b6d4c64e46dc7296c78b1b6c746ff1c24dea5e6c - md5: 043afed05ca5a0f2c18252ae4378bdee - depends: - - c-compiler 1.11.0 h61f9b84_0 - - clangxx_osx-arm64 19.* - license: BSD-3-Clause - license_family: BSD - size: 6715 - timestamp: 1753098739952 -- conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.11.0-h1c1089f_0.conda - sha256: c888f4fe9ec117c1c01bfaa4c722ca475ebbb341c92d1718afa088bb0d710619 - md5: 4d94d3c01add44dc9d24359edf447507 - depends: - - vs2022_win-64 - license: BSD-3-Clause - license_family: BSD - size: 6957 - timestamp: 1753098809481 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-14.3.0-h76bdaa0_5.conda - sha256: 0311c74a0c0c68ed64b1ad829ad88996b4e29f0c492f73e0c5dff1313af53530 - md5: 177c3c1f234f4fc0a82c56d5062ca720 - depends: - - conda-gcc-specs - - gcc_impl_linux-64 14.3.0.* - license: BSD-3-Clause - license_family: BSD - size: 31031 - timestamp: 1757039421021 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.3.0-hd9e9e21_5.conda - sha256: df1fcaa8a38f9e823b817718b8e41af2f09b420ba71c92f7de32212673ef921a - md5: 2a6e4f3e29eadca634a0dc28bb7d96d0 - depends: - - binutils_impl_linux-64 >=2.40 - - libgcc >=14.3.0 - - libgcc-devel_linux-64 14.3.0 h85bb3a7_105 - - libgomp >=14.3.0 - - libsanitizer 14.3.0 hd08acf3_5 - - libstdcxx >=14.3.0 - - sysroot_linux-64 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 71625160 - timestamp: 1757039160514 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-14.3.0-h1382650_11.conda - sha256: 0d7fe52c578ef99f03defe8cab5308124b388c694e88f5494716d11532a6d12a - md5: 2e650506e6371ac4289c9bf7fc207f3b - depends: - - binutils_linux-64 - - gcc_impl_linux-64 14.3.0.* - - sysroot_linux-64 - license: BSD-3-Clause - license_family: BSD - size: 32512 - timestamp: 1748905876846 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gdbm-1.18-h0a1914f_2.tar.bz2 - sha256: 8b9606dc896bd9262d09ab2ef1cb55c4ee43f352473209b58b37a9289dd7b00c - md5: b77bc399b07a19c00fe12fdc95ee0297 - depends: - - libgcc-ng >=7.5.0 - - readline >=8.0,<9.0a0 - license: GPL-3.0 - license_family: GPL - size: 194790 - timestamp: 1597622040785 -- conda: https://conda.anaconda.org/conda-forge/osx-64/gdbm-1.18-h8a0c380_2.tar.bz2 - sha256: babcb995c2771c5f7ea6b4dea92556fa211b06674669d8d14e5e5513ad8fcba9 - md5: bcef512adfef490486e0ac10e24a6bff - depends: - - readline >=8.0,<9.0a0 - license: GPL-3.0 - license_family: GPL - size: 134183 - timestamp: 1597622089595 -- conda: https://conda.anaconda.org/conda-forge/osx-64/gettext-0.25.1-he52a196_1.conda - sha256: 35df6e3bb6d01b4ae484dcdd139ee5b6c262ba73a2397768d572f92440686677 - md5: ba2b97161ad76af9f9304c56de6bdf7d - depends: - - __osx >=10.13 - - gettext-tools 0.25.1 h3184127_1 - - libasprintf 0.25.1 h3184127_1 - - libasprintf-devel 0.25.1 h3184127_1 - - libcxx >=19 - - libgettextpo 0.25.1 h3184127_1 - - libgettextpo-devel 0.25.1 h3184127_1 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h3184127_1 - - libintl-devel 0.25.1 h3184127_1 - license: LGPL-2.1-or-later AND GPL-3.0-or-later - size: 543610 - timestamp: 1753344194087 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/gettext-0.25.1-h3dcc1bd_0.conda - sha256: 129a81e9da9f60ae6955b49938447e7faeb7e1be815b2db99e76956dddf8c392 - md5: 7059ba83fd98707b2cd9a5f06f589dd4 - depends: - - __osx >=11.0 - - gettext-tools 0.25.1 h493aca8_0 - - libasprintf 0.25.1 h493aca8_0 - - libasprintf-devel 0.25.1 h493aca8_0 - - libcxx >=18 - - libgettextpo 0.25.1 h493aca8_0 - - libgettextpo-devel 0.25.1 h493aca8_0 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h493aca8_0 - - libintl-devel 0.25.1 h493aca8_0 - license: LGPL-2.1-or-later AND GPL-3.0-or-later - size: 543276 - timestamp: 1751558682952 -- conda: https://conda.anaconda.org/conda-forge/osx-64/gettext-tools-0.25.1-h3184127_1.conda - sha256: 69d25b31bcbd1b9697a1c09e13d8881480245e0f3f4f75715be7ef9abd3b5dea - md5: f5e576c441a30c3be7184013c24445ea - depends: - - __osx >=10.13 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h3184127_1 - license: GPL-3.0-or-later - license_family: GPL - size: 3662245 - timestamp: 1753344133123 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/gettext-tools-0.25.1-h493aca8_0.conda - sha256: e8dd68706676d5b6f6ee09240936a0ecd1ae12b87dbb37e4c4be263e332ab125 - md5: 817042c017930497931da6aa04a47f09 - depends: - - __osx >=11.0 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h493aca8_0 - license: GPL-3.0-or-later - license_family: GPL - size: 3748044 - timestamp: 1751558602508 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - sha256: 309cf4f04fec0c31b6771a5809a1909b4b3154a2208f52351e1ada006f4c750c - md5: c94a5994ef49749880a8139cf9afcbe1 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: GPL-2.0-or-later OR LGPL-3.0-or-later - size: 460055 - timestamp: 1718980856608 -- conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - sha256: 75aa5e7a875afdcf4903b7dc98577672a3dc17b528ac217b915f9528f93c85fc - md5: 427101d13f19c4974552a4e5b072eef1 - depends: - - __osx >=10.13 - - libcxx >=16 - license: GPL-2.0-or-later OR LGPL-3.0-or-later - size: 428919 - timestamp: 1718981041839 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - sha256: 76e222e072d61c840f64a44e0580c2503562b009090f55aa45053bf1ccb385dd - md5: eed7278dfbab727b56f2c0b64330814b - depends: - - __osx >=11.0 - - libcxx >=16 - license: GPL-2.0-or-later OR LGPL-3.0-or-later - size: 365188 - timestamp: 1718981343258 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-14.3.0-he448592_5.conda - sha256: 14c6913bbf3cb4fd1f4ac3a6a1be01b1ea53f3de60a99d8ac9972f751c8d284b - md5: 2d25dffaf139070fa4f7fff5effb78b2 - depends: - - gcc 14.3.0.* - - gxx_impl_linux-64 14.3.0.* - license: BSD-3-Clause - license_family: BSD - size: 30293 - timestamp: 1757039456662 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-14.3.0-he663afc_5.conda - sha256: 26346c3ca25648a059e234142ff5609b926aa501891344d1a5c88234fb0f889d - md5: 6c5067bf7e2539b8b44b1088ce54c25f - depends: - - gcc_impl_linux-64 14.3.0 hd9e9e21_5 - - libstdcxx-devel_linux-64 14.3.0 h85bb3a7_105 - - sysroot_linux-64 - - tzdata - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 14734843 - timestamp: 1757039390196 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-14.3.0-ha7acb78_11.conda - sha256: 6c06752e4773dfd61a1928e9f7e9d21c3b97068daf27b84696c33057a091fe27 - md5: d4af016b3511135302a19f2a58544fcd - depends: - - binutils_linux-64 - - gcc_linux-64 14.3.0 h1382650_11 - - gxx_impl_linux-64 14.3.0.* - - sysroot_linux-64 - license: BSD-3-Clause - license_family: BSD - size: 30802 - timestamp: 1748905895571 -- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - sha256: 2e64307532f482a0929412976c8450c719d558ba20c0962832132fd0d07ba7a7 - md5: d68d48a3060eb5abdc1cdc8e2a3a5966 - depends: - - __osx >=10.13 - license: MIT - license_family: MIT - size: 11761697 - timestamp: 1720853679409 -- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_8.conda - sha256: 305c22a251db227679343fd73bfde121e555d466af86e537847f4c8b9436be0d - md5: ff007ab0f0fdc53d245972bba8a6d40c - constrains: - - sysroot_linux-64 ==2.28 - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later - license_family: GPL - size: 1272697 - timestamp: 1752669126073 -- conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-955.13-hc3792c1_1.conda - sha256: 9a783e7d116ef05b21b6f8d88fa7bfb5e1c091430ab894010dbe61999a6a6809 - md5: b5c95652b48dd0153ef3a50b1f577b5c - depends: - - ld64_osx-64 955.13 hf1c22e8_1 - - libllvm19 >=19.1.7,<19.2.0a0 - constrains: - - cctools_osx-64 1024.3.* - - cctools 1024.3.* - license: APSL-2.0 - license_family: Other - size: 18050 - timestamp: 1756645146568 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64-955.13-he86490a_1.conda - sha256: 0a86572557ba022dae78eb57ce8d2efd2a00fec595bf56abb733870dda611acf - md5: b350b94c4bcf9e420affa09e0ce2ec8a - depends: - - ld64_osx-arm64 955.13 hc42d924_1 - - libllvm19 >=19.1.7,<19.2.0a0 - constrains: - - cctools_osx-arm64 1024.3.* - - cctools 1024.3.* - license: APSL-2.0 - license_family: Other - size: 18091 - timestamp: 1756645549597 -- conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-955.13-hf1c22e8_1.conda - sha256: 0d51e2b9fea0c6b0475dfb60800bc4a8861f8321844b55fcbf0c043db50e17c4 - md5: b7bdae883487c0b25dedf9ec26564758 - depends: - - __osx >=10.13 - - libcxx - - libllvm19 >=19.1.7,<19.2.0a0 - - sigtool - - tapi >=1300.6.5,<1301.0a0 - constrains: - - cctools_osx-64 1024.3.* - - cctools 1024.3.* - - ld 955.13.* - - clang >=19.1.7,<20.0a0 - license: APSL-2.0 - license_family: Other - size: 1111690 - timestamp: 1756645089175 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-955.13-hc42d924_1.conda - sha256: 112f4d57c4d451010f94d10c926a2a54f0f1d62e382ac3a0e13c4f611aa3b12d - md5: 3cb7f3c67053be4f5b34156562f4f9c6 - depends: - - __osx >=11.0 - - libcxx - - libllvm19 >=19.1.7,<19.2.0a0 - - sigtool - - tapi >=1300.6.5,<1301.0a0 - constrains: - - clang >=19.1.7,<20.0a0 - - cctools_osx-arm64 1024.3.* - - ld 955.13.* - - cctools 1024.3.* - license: APSL-2.0 - license_family: Other - size: 1038845 - timestamp: 1756645465829 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda - sha256: 1a620f27d79217c1295049ba214c2f80372062fd251b569e9873d4a953d27554 - md5: 0be7c6e070c19105f966d3758448d018 - depends: - - __glibc >=2.17,<3.0.a0 - constrains: - - binutils_impl_linux-64 2.44 - license: GPL-3.0-only - license_family: GPL - size: 676044 - timestamp: 1752032747103 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libasprintf-0.25.1-h3184127_1.conda - sha256: 44e703d8fe739a71e9f7b89d04b56ccfaf488989f7712256bc0fcaf101e796a4 - md5: 37398594a1ede86a90c0afac95e1ffea - depends: - - __osx >=10.13 - - libcxx >=19 - license: LGPL-2.1-or-later - size: 51955 - timestamp: 1753343931663 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-0.25.1-h493aca8_0.conda - sha256: 7265547424e978ea596f51cc8e7b81638fb1c660b743e98cc4deb690d9d524ab - md5: 0deb80a2d6097c5fb98b495370b2435b - depends: - - __osx >=11.0 - - libcxx >=18 - license: LGPL-2.1-or-later - size: 52316 - timestamp: 1751558366611 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libasprintf-devel-0.25.1-h3184127_1.conda - sha256: 5964ffe76cf2cd1ffc3d51960dc1e16e6c78dd3da8760be65a0f4331102a82a2 - md5: 0420652fbae752e2930ed5f08ce62e2c - depends: - - __osx >=10.13 - - libasprintf 0.25.1 h3184127_1 - license: LGPL-2.1-or-later - size: 35061 - timestamp: 1753343998565 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-devel-0.25.1-h493aca8_0.conda - sha256: fc76b07620eabde52928c69bcdcb5497da3fdad3331a76f9d4bffeb27e0bdd8f - md5: c18067d2d5864e77f84456d97c1c17cc - depends: - - __osx >=11.0 - - libasprintf 0.25.1 h493aca8_0 - license: LGPL-2.1-or-later - size: 35256 - timestamp: 1751558418167 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_hc369343_4.conda - sha256: 667e9cc12a9e118302245a8dfd904b4106c1015cc0a0b661c863f494106c576a - md5: fec88978ef30a127235f9f0e67cf6725 - depends: - - __osx >=10.13 - - libcxx >=19.1.7 - - libllvm19 >=19.1.7,<19.2.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 14856804 - timestamp: 1757393797338 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp19.1-19.1.7-default_h73dfc95_4.conda - sha256: 0de5a6c507bce790ae2182e4f1f2cd095eed5638911ac03a8ba55776dd7ae0df - md5: dbd13529e140b10f1985496034d45cf0 - depends: - - __osx >=11.0 - - libcxx >=19.1.7 - - libllvm19 >=19.1.7,<19.2.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 14062690 - timestamp: 1757395907504 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.1-h3d58e20_0.conda - sha256: dd207d8882854f22072b7fd4f03726e0e182e0666986ec880168f1753f7415dc - md5: 7f5b7dfca71a5c165ce57f46e9e48480 - depends: - - __osx >=10.13 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 571163 - timestamp: 1757525814844 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.1-hf598326_0.conda - sha256: 6af03355967b7b097d5820dde05e0c709945fdb01f4bc56d11499d8bf7435239 - md5: d5790f3769fedeea4e021483272bdc53 - depends: - - __osx >=11.0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 568291 - timestamp: 1757525671408 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-19.1.7-h7c275be_1.conda - sha256: d1ee08b0614d8f9bca84aa91b4015c5efa96162fd865590a126544243699dfc6 - md5: 0f3f15e69e98ce9b3307c1d8309d1659 - depends: - - libcxx >=19.1.7 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 826706 - timestamp: 1742451299167 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-19.1.7-h6dc3340_1.conda - sha256: 6dd08a65b8ef162b058dc931aba3bdb6274ba5f05b6c86fbd0c23f2eafc7cc47 - md5: 1399af81db60d441e7c6577307d5cf82 - depends: - - libcxx >=19.1.7 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 825628 - timestamp: 1742451285589 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - sha256: 764432d32db45466e87f10621db5b74363a9f847d2b8b1f9743746cd160f06ab - md5: ede4673863426c0883c0063d853bbd85 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - size: 57433 - timestamp: 1743434498161 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.6-h281671d_1.conda - sha256: 6394b1bc67c64a21a5cc73d1736d1d4193a64515152e861785c44d2cfc49edf3 - md5: 4ca9ea59839a9ca8df84170fab4ceb41 - depends: - - __osx >=10.13 - license: MIT - license_family: MIT - size: 51216 - timestamp: 1743434595269 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda - sha256: c6a530924a9b14e193ea9adfe92843de2a806d1b7dbfd341546ece9653129e60 - md5: c215a60c2935b517dcda8cad4705734d - depends: - - __osx >=11.0 - license: MIT - license_family: MIT - size: 39839 - timestamp: 1743434670405 -- conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda - sha256: d3b0b8812eab553d3464bbd68204f007f1ebadf96ce30eb0cbc5159f72e353f5 - md5: 85d8fa5e55ed8f93f874b3b23ed54ec6 - depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - license_family: MIT - size: 44978 - timestamp: 1743435053850 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_5.conda - sha256: 0caed73aac3966bfbf5710e06c728a24c6c138605121a3dacb2e03440e8baa6a - md5: 264fbfba7fb20acf3b29cde153e345ce - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex >=4.5 - constrains: - - libgomp 15.1.0 h767d61c_5 - - libgcc-ng ==15.1.0=*_5 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 824191 - timestamp: 1757042543820 -- conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_5.conda - sha256: 9b997baa85ba495c04e1b30f097b80420c02dcaca6441c4bf2c6bb4b2c5d2114 - md5: c84381a01ede0e28d632fdbeea2debb2 - depends: - - _openmp_mutex >=4.5 - - libwinpthread >=12.0.0.r4.gg4f2fc60ca - constrains: - - libgomp 15.1.0 h1383e82_5 - - msys2-conda-epoch <0.0a0 - - libgcc-ng ==15.1.0=*_5 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 668284 - timestamp: 1757042801517 -- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.3.0-h85bb3a7_105.conda - sha256: 74a6df8c3c93112dd6102a5774c68074ffeba6aacf0333c77feff2eed21b4465 - md5: 24c5b3d0cf4c560bb2bad01dda68cfbf - depends: - - __unix - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 2732190 - timestamp: 1757038947822 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_5.conda - sha256: f54bb9c3be12b24be327f4c1afccc2969712e0b091cdfbd1d763fb3e61cda03f - md5: 069afdf8ea72504e48d23ae1171d951c - depends: - - libgcc 15.1.0 h767d61c_5 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 29187 - timestamp: 1757042549554 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libgettextpo-0.25.1-h3184127_1.conda - sha256: 0509a41da5179727d24092020bc3d4addcb24a421c2e889d32a4035652fab2cf - md5: 711bff88af3b00283f7d8f32aff82e6a - depends: - - __osx >=10.13 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h3184127_1 - license: GPL-3.0-or-later - license_family: GPL - size: 198908 - timestamp: 1753344027461 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-0.25.1-h493aca8_0.conda - sha256: 3ba35ff26b3b9573b5df5b9bbec5c61476157ec3a9f12c698e2a9350cd4338fd - md5: 98acd9989d0d8d5914ccc86dceb6c6c2 - depends: - - __osx >=11.0 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h493aca8_0 - license: GPL-3.0-or-later - license_family: GPL - size: 183091 - timestamp: 1751558452316 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libgettextpo-devel-0.25.1-h3184127_1.conda - sha256: a7e53e78854aa0db14c7ed58b85fc97c3441dbf1734262e41e5e0a936a19319a - md5: 0a61460a3da15af7b8c540ac0926c7d0 - depends: - - __osx >=10.13 - - libgettextpo 0.25.1 h3184127_1 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h3184127_1 - license: GPL-3.0-or-later - license_family: GPL - size: 37737 - timestamp: 1753344062498 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-devel-0.25.1-h493aca8_0.conda - sha256: 976941e18f879e5c1e67553f9657f7bb9d3935c89014ebfeafe89dcfba2de9e7 - md5: 91c2fdde1cb4a61b5cb7afa682af359e - depends: - - __osx >=11.0 - - libgettextpo 0.25.1 h493aca8_0 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h493aca8_0 - license: GPL-3.0-or-later - license_family: GPL - size: 37894 - timestamp: 1751558502415 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.0-h1bb475b_0.conda - sha256: 92d17f998e14218810493c9190c8721bf7f7f006bfc5c00dbba1cede83c02f1a - md5: 9e065148e6013b7d7cae64ed01ab7081 - depends: - - __osx >=11.0 - - libffi >=3.4.6,<3.5.0a0 - - libiconv >=1.18,<2.0a0 - - libintl >=0.25.1,<1.0a0 - - libzlib >=1.3.1,<2.0a0 - - pcre2 >=10.46,<10.47.0a0 - constrains: - - glib 2.86.0 *_0 - license: LGPL-2.1-or-later - size: 3701880 - timestamp: 1757404501093 -- conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.0-h5f26cbf_0.conda - sha256: 02c2dcf1818d2614ad4472b196a2a7bb06490cd32fd0f43a30997097afca3a12 - md5: 30a7c2c9d7ba29bb1354cd68fcca9cda - depends: - - libffi >=3.4.6,<3.5.0a0 - - libiconv >=1.18,<2.0a0 - - libintl >=0.22.5,<1.0a0 - - libzlib >=1.3.1,<2.0a0 - - pcre2 >=10.46,<10.47.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - constrains: - - glib 2.86.0 *_0 - license: LGPL-2.1-or-later - size: 3794081 - timestamp: 1757403780432 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_5.conda - sha256: 125051d51a8c04694d0830f6343af78b556dd88cc249dfec5a97703ebfb1832d - md5: dcd5ff1940cd38f6df777cac86819d60 - depends: - - __glibc >=2.17,<3.0.a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 447215 - timestamp: 1757042483384 -- conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_5.conda - sha256: 65fd558d8f3296e364b8ae694932a64642fdd26d8eb4cf7adf08941e449be926 - md5: eae9a32a85152da8e6928a703a514d35 - depends: - - libwinpthread >=12.0.0.r4.gg4f2fc60ca - constrains: - - msys2-conda-epoch <0.0a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 535560 - timestamp: 1757042749206 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda - sha256: a1c8cecdf9966921e13f0ae921309a1f415dfbd2b791f2117cf7e8f5e61a48b6 - md5: 210a85a1119f97ea7887188d176db135 - depends: - - __osx >=10.13 - license: LGPL-2.1-only - size: 737846 - timestamp: 1754908900138 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - sha256: de0336e800b2af9a40bdd694b03870ac4a848161b35c8a2325704f123f185f03 - md5: 4d5a7445f0b25b6a3ddbb56e790f5251 - depends: - - __osx >=11.0 - license: LGPL-2.1-only - size: 750379 - timestamp: 1754909073836 -- conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - sha256: 0dcdb1a5f01863ac4e8ba006a8b0dc1a02d2221ec3319b5915a1863254d7efa7 - md5: 64571d1dd6cdcfa25d0664a5950fdaa2 - depends: - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - license: LGPL-2.1-only - size: 696926 - timestamp: 1754909290005 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda - sha256: 8c352744517bc62d24539d1ecc813b9fdc8a785c780197c5f0b84ec5b0dfe122 - md5: a8e54eefc65645193c46e8b180f62d22 - depends: - - __osx >=10.13 - - libiconv >=1.18,<2.0a0 - license: LGPL-2.1-or-later - size: 96909 - timestamp: 1753343977382 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - sha256: 99d2cebcd8f84961b86784451b010f5f0a795ed1c08f1e7c76fbb3c22abf021a - md5: 5103f6a6b210a3912faf8d7db516918c - depends: - - __osx >=11.0 - - libiconv >=1.18,<2.0a0 - license: LGPL-2.1-or-later - size: 90957 - timestamp: 1751558394144 -- conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - sha256: c7e4600f28bcada8ea81456a6530c2329312519efcf0c886030ada38976b0511 - md5: 2cf0cf76cc15d360dfa2f17fd6cf9772 - depends: - - libiconv >=1.17,<2.0a0 - license: LGPL-2.1-or-later - size: 95568 - timestamp: 1723629479451 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-devel-0.25.1-h3184127_1.conda - sha256: 3cd9fd48099a79dea57e8031d56349692f8e334eaf4cc0ea84e0c5b252b8d0fb - md5: 4e34fefaebdaca2108645fe5c787cc5a - depends: - - __osx >=10.13 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h3184127_1 - license: LGPL-2.1-or-later - size: 40397 - timestamp: 1753344046767 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-devel-0.25.1-h493aca8_0.conda - sha256: 5a446cb0501d87e0816da0bce524c60a053a4cf23c94dfd3e2b32a8499009e36 - md5: 5f9888e1cdbbbef52c8cf8b567393535 - depends: - - __osx >=11.0 - - libiconv >=1.18,<2.0a0 - - libintl 0.25.1 h493aca8_0 - license: LGPL-2.1-or-later - size: 40340 - timestamp: 1751558481257 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm19-19.1.7-h56e7563_2.conda - sha256: 375a634873b7441d5101e6e2a9d3a42fec51be392306a03a2fa12ae8edecec1a - md5: 05a54b479099676e75f80ad0ddd38eff - depends: - - __osx >=10.13 - - libcxx >=19 - - libxml2 - - libxml2-16 >=2.14.5 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 28801374 - timestamp: 1757354631264 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm19-19.1.7-h8e0c9ce_2.conda - sha256: 46f8ff3d86438c0af1bebe0c18261ce5de9878d58b4fe399a3a125670e4f0af5 - md5: d1d9b233830f6631800acc1e081a9444 - depends: - - __osx >=11.0 - - libcxx >=19 - - libxml2 - - libxml2-16 >=2.14.5 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 26914852 - timestamp: 1757353228286 -- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda - sha256: 7e22fd1bdb8bf4c2be93de2d4e718db5c548aa082af47a7430eb23192de6bb36 - md5: 8468beea04b9065b9807fc8b9cdc5894 - depends: - - __osx >=10.13 - constrains: - - xz 5.8.1.* - license: 0BSD - size: 104826 - timestamp: 1749230155443 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda - sha256: 0cb92a9e026e7bd4842f410a5c5c665c89b2eb97794ffddba519a626b8ce7285 - md5: d6df911d4564d77c4374b02552cb17d1 - depends: - - __osx >=11.0 - constrains: - - xz 5.8.1.* - license: 0BSD - size: 92286 - timestamp: 1749230283517 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.3.0-hd08acf3_5.conda - sha256: 84dc9679d9a228d32f56b2117a32e1c8066b6245cb60278474bda1346a87f228 - md5: 0ec8de71704e3621823a8146d93b71db - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14.3.0 - - libstdcxx >=14.3.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 5133195 - timestamp: 1757039097894 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_5.conda - sha256: 0f5f61cab229b6043541c13538d75ce11bd96fb2db76f94ecf81997b1fde6408 - md5: 4e02a49aaa9d5190cb630fa43528fbe6 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc 15.1.0 h767d61c_5 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 3896432 - timestamp: 1757042571458 -- conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-14.3.0-h85bb3a7_105.conda - sha256: 615854047a257b1cb55e6052dfc9770bfe4c9ddb13343c5cd11cb833afa4596e - md5: 11b288dbf8b62753f7e7fc9d033bcd82 - depends: - - __unix - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 14584026 - timestamp: 1757038976267 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_5.conda - sha256: 7b8cabbf0ab4fe3581ca28fe8ca319f964078578a51dd2ca3f703c1d21ba23ff - md5: 8bba50c7f4679f08c861b597ad2bda6b - depends: - - libstdcxx 15.1.0 h8f9b012_5 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 29233 - timestamp: 1757042603319 -- conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda - sha256: 373f2973b8a358528b22be5e8d84322c165b4c5577d24d94fd67ad1bb0a0f261 - md5: 08bfa5da6e242025304b206d152479ef - depends: - - ucrt - constrains: - - pthreads-win32 <0.0a0 - - msys2-conda-epoch <0.0a0 - license: MIT AND BSD-3-Clause-Clear - size: 35794 - timestamp: 1737099561703 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c - md5: 5aa797f8787fe7a17d1b0821485b5adc - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - size: 100393 - timestamp: 1702724383534 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.0-h7b7ecba_0.conda - sha256: 6ae3fa2e174e9d71a94755d0b82dccc60e73133464807bc3d6a892d28fe21837 - md5: 3954b98e6a17c56263eab3f7d1f242e0 - depends: - - __osx >=10.13 - - icu >=75.1,<76.0a0 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.0 ha1d9b0f_0 - - libzlib >=1.3.1,<2.0a0 - license: MIT - license_family: MIT - size: 39959 - timestamp: 1757953828536 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.0-hba2cd1d_0.conda - sha256: d8009e239d97e6abeb8da17db51b57955584a89f8593d13a015a5e7177615e90 - md5: e58f664dcded6c731ecc854b31084841 - depends: - - __osx >=11.0 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.0 h8eac4d7_0 - - libzlib >=1.3.1,<2.0a0 - constrains: - - icu <0.0a0 - license: MIT - license_family: MIT - size: 40281 - timestamp: 1757953527640 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.0-ha1d9b0f_0.conda - sha256: a3f8d7f884b81753398ebad9a82814274f3e914620e64931cb286644b7f672fd - md5: a9ff104c00d0dccf7f7ad049eb3a3a1f - depends: - - __osx >=10.13 - - icu >=75.1,<76.0a0 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libzlib >=1.3.1,<2.0a0 - constrains: - - libxml2 2.15.0 - license: MIT - license_family: MIT - size: 494292 - timestamp: 1757953804385 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.0-h8eac4d7_0.conda - sha256: ad01718763813ba3432f4ca73c3dcec18deaa2ccf83b93055c5a4f0eef4a8de5 - md5: a4d299f21f8ae4db5d434cd1e3b1f8c4 - depends: - - __osx >=11.0 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libzlib >=1.3.1,<2.0a0 - constrains: - - icu <0.0a0 - - libxml2 2.15.0 - license: MIT - license_family: MIT - size: 464286 - timestamp: 1757953509973 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 - md5: edb0dca6bc32e4f4789199455a1dbeb8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - constrains: - - zlib 1.3.1 *_2 - license: Zlib - license_family: Other - size: 60963 - timestamp: 1727963148474 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - sha256: 8412f96504fc5993a63edf1e211d042a1fd5b1d51dedec755d2058948fcced09 - md5: 003a54a4e32b02f7355b50a837e699da - depends: - - __osx >=10.13 - constrains: - - zlib 1.3.1 *_2 - license: Zlib - license_family: Other - size: 57133 - timestamp: 1727963183990 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b - md5: 369964e85dc26bfe78f41399b366c435 - depends: - - __osx >=11.0 - constrains: - - zlib 1.3.1 *_2 - license: Zlib - license_family: Other - size: 46438 - timestamp: 1727963202283 -- conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402 - md5: 41fbfac52c601159df6c01f875de31b9 - depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - constrains: - - zlib 1.3.1 *_2 - license: Zlib - license_family: Other - size: 55476 - timestamp: 1727963768015 -- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.0-hf4e0ed4_0.conda - sha256: 78336131a08990390003ef05d14ecb49f3a47e4dac60b1bcebeccd87fa402925 - md5: 5acc6c266fd33166fa3b33e48665ae0d - depends: - - __osx >=10.13 - constrains: - - openmp 21.1.0|21.1.0.* - - intel-openmp <0.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - size: 311174 - timestamp: 1756673275570 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.0-hbb9b287_0.conda - sha256: c6750073a128376a14bedacfa90caab4c17025c9687fcf6f96e863b28d543af4 - md5: e57d95fec6eaa747e583323cba6cfe5c - depends: - - __osx >=11.0 - constrains: - - intel-openmp <0.0a0 - - openmp 21.1.0|21.1.0.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - size: 286039 - timestamp: 1756673290280 -- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19.1.7-hb0207f0_2.conda - sha256: 8d042ee522bc9eb12c061f5f7e53052aeb4f13e576e624c8bebaf493725b95a0 - md5: 0f79b23c03d80f22ce4fe0022d12f6d2 - depends: - - __osx >=10.13 - - libllvm19 19.1.7 h56e7563_2 - - llvm-tools-19 19.1.7 h879f4bc_2 - constrains: - - llvmdev 19.1.7 - - llvm 19.1.7 - - clang 19.1.7 - - clang-tools 19.1.7 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 87962 - timestamp: 1757355027273 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19.1.7-h855ad52_2.conda - sha256: 09750c33b5d694c494cad9eafda56c61a62622264173d760341b49fb001afe82 - md5: 3e3ac06efc5fdc1aa675ca30bf7d53df - depends: - - __osx >=11.0 - - libllvm19 19.1.7 h8e0c9ce_2 - - llvm-tools-19 19.1.7 h91fd4e7_2 - constrains: - - llvm 19.1.7 - - llvmdev 19.1.7 - - clang-tools 19.1.7 - - clang 19.1.7 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 88390 - timestamp: 1757353535760 -- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19-19.1.7-h879f4bc_2.conda - sha256: fd281acb243323087ce672139f03a1b35ceb0e864a3b4e8113b9c23ca1f83bf0 - md5: bf644c6f69854656aa02d1520175840e - depends: - - __osx >=10.13 - - libcxx >=19 - - libllvm19 19.1.7 h56e7563_2 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 17198870 - timestamp: 1757354915882 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19-19.1.7-h91fd4e7_2.conda - sha256: 73f9506f7c32a448071340e73a0e8461e349082d63ecc4849e3eb2d1efc357dd - md5: 8237b150fcd7baf65258eef9a0fc76ef - depends: - - __osx >=11.0 - - libcxx >=19 - - libllvm19 19.1.7 h8e0c9ce_2 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 16376095 - timestamp: 1757353442671 -- conda: https://conda.anaconda.org/conda-forge/linux-64/make-4.4.1-hb9d3cd8_2.conda - sha256: d652c7bd4d3b6f82b0f6d063b0d8df6f54cc47531092d7ff008e780f3261bdda - md5: 33405d2a66b1411db9f7242c8b97c9e7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: GPL-3.0-or-later - license_family: GPL - size: 513088 - timestamp: 1727801714848 -- conda: https://conda.anaconda.org/conda-forge/osx-64/make-4.4.1-h00291cd_2.conda - sha256: 5a5ab3ee828309185e0a76ca80f5da85f31d8480d923abb508ca00fe194d1b5a - md5: 59b4ad97bbb36ef5315500d5bde4bcfc - depends: - - __osx >=10.13 - license: GPL-3.0-or-later - license_family: GPL - size: 278910 - timestamp: 1727801765025 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/make-4.4.1-hc9fafa5_2.conda - sha256: 90ca65e788406d9029ae23ad4bd944a8b5353ad5f59bd6ce326f980cde46f37e - md5: 9f44ef1fea0a25d6a3491c58f3af8460 - depends: - - __osx >=11.0 - license: GPL-3.0-or-later - license_family: GPL - size: 274048 - timestamp: 1727801725384 -- conda: https://conda.anaconda.org/conda-forge/win-64/make-4.4.1-h0e40799_2.conda - sha256: a810cdca3d5fa50d562cda23c0c1195b45ff5f9b0c41e0d4c8c2dd3c043ff4f2 - md5: 77ff648ad9fec660f261aa8ab0949f62 - depends: - - libgcc >=13 - - libwinpthread >=12.0.0.r4.gg4f2fc60ca - - ucrt >=10.0.20348.0 - license: GPL-3.0-or-later - license_family: GPL - size: 2176937 - timestamp: 1727802346950 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 - md5: 47e340acb35de30501a76c7c799c41d7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: X11 AND BSD-3-Clause - size: 891641 - timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - sha256: ea4a5d27ded18443749aefa49dc79f6356da8506d508b5296f60b8d51e0c4bd9 - md5: ced34dd9929f491ca6dab6a2927aff25 - depends: - - __osx >=10.13 - license: X11 AND BSD-3-Clause - size: 822259 - timestamp: 1738196181298 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 - md5: 068d497125e4bf8a66bf707254fff5ae - depends: - - __osx >=11.0 - license: X11 AND BSD-3-Clause - size: 797030 - timestamp: 1738196177597 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.3-h26f9b46_0.conda - sha256: 8c313f79fd9408f53922441fbb4e38f065e2251840f86862f05bdf613da7980f - md5: 72b3dd72e4f0b88cdacf3421313480f0 - depends: - - __glibc >=2.17,<3.0.a0 - - ca-certificates - - libgcc >=14 - license: Apache-2.0 - license_family: Apache - size: 3136554 - timestamp: 1758040407921 -- conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.5.3-h230baf5_0.conda - sha256: b38470dc57c365e40cea5968f393f3d5ddd36bc779623a17b843f437fd15ea06 - md5: d51f5ce62794a19fa67da1ff101bae05 - depends: - - __osx >=10.13 - - ca-certificates - license: Apache-2.0 - license_family: Apache - size: 2743344 - timestamp: 1758041755497 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.3-h5503f6c_0.conda - sha256: c547508f11f214125fe5fc66da3d5a5dad6a9204315ee880b5ba65cdb32b6572 - md5: 161d97c4c31b7851617119e6f851927f - depends: - - __osx >=11.0 - - ca-certificates - license: Apache-2.0 - license_family: Apache - size: 3069340 - timestamp: 1758040933817 -- conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.3-h725018a_0.conda - sha256: b8de982a72a9edc4bbfef52113f7dd8f224fb5dc1883aa7945dd48d3c37815d9 - md5: 19b0ad594e05103080ad8c87fa782a35 - depends: - - ca-certificates - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - license: Apache-2.0 - license_family: Apache - size: 9218535 - timestamp: 1758043741373 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.46-h7125dd6_0.conda - sha256: 5bf2eeaa57aab6e8e95bea6bd6bb2a739f52eb10572d8ed259d25864d3528240 - md5: 0e6e82c3cc3835f4692022e9b9cd5df8 - depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 835080 - timestamp: 1756743041908 -- conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda - sha256: 29c2ed44a8534d27faad96bdce16efe29c2788f556f4c5409d4ae8ae074681ec - md5: 889053e920d15353c2665fa6310d7a7a - depends: - - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - license: BSD-3-Clause - license_family: BSD - size: 1034703 - timestamp: 1756743085974 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pkg-config-0.29.2-h4bc722e_1009.conda - sha256: c9601efb1af5391317e04eca77c6fe4d716bf1ca1ad8da2a05d15cb7c28d7d4e - md5: 1bee70681f504ea424fb07cdb090c001 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - license: GPL-2.0-or-later - license_family: GPL - size: 115175 - timestamp: 1720805894943 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pkg-config-0.29.2-hf7e621a_1009.conda - sha256: 636122606556b651ad4d0ac60c7ab6b379e98f390359a1f0c05ad6ba6fb3837f - md5: 0b1b9f9e420e4a0e40879b61f94ae646 - depends: - - __osx >=10.13 - - libiconv >=1.17,<2.0a0 - license: GPL-2.0-or-later - license_family: GPL - size: 239818 - timestamp: 1720806136579 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pkg-config-0.29.2-hde07d2e_1009.conda - sha256: d82f4655b2d67fe12eefe1a3eea4cd27d33fa41dbc5e9aeab5fd6d3d2c26f18a - md5: b4f41e19a8c20184eec3aaf0f0953293 - depends: - - __osx >=11.0 - - libglib >=2.80.3,<3.0a0 - - libiconv >=1.17,<2.0a0 - license: GPL-2.0-or-later - license_family: GPL - size: 49724 - timestamp: 1720806128118 -- conda: https://conda.anaconda.org/conda-forge/win-64/pkg-config-0.29.2-h88c491f_1009.conda - sha256: 86b0c40c8b569dbc164cb1de098ddabf4c240a5e8f38547aab00493891fa67f3 - md5: 122d6514d415fbe02c9b58aee9f6b53e - depends: - - libglib >=2.80.3,<3.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-2.0-or-later - license_family: GPL - size: 36118 - timestamp: 1720806338740 -- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c - md5: 283b96675859b20a825f8fa30f311446 - depends: - - libgcc >=13 - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 282480 - timestamp: 1740379431762 -- conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda - sha256: 53017e80453c4c1d97aaf78369040418dea14cf8f46a2fa999f31bd70b36c877 - md5: 342570f8e02f2f022147a7f841475784 - depends: - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 256712 - timestamp: 1740379577668 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - sha256: 7db04684d3904f6151eff8673270922d31da1eea7fa73254d01c437f49702e34 - md5: 63ef3f6e6d6d5c589e64f11263dc5676 - depends: - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 252359 - timestamp: 1740379663071 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruby-3.4.5-hd8161a3_0.conda - sha256: 22c32e34da6bb8ac3865fef067728ec8212f4898afc0be9126c90d73d1daac20 - md5: 60240d820c315a93c67412c33d3fb088 - depends: - - __glibc >=2.17,<3.0.a0 - - gdbm >=1.18,<1.19.0a0 - - gmp >=6.3.0,<7.0a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=14 - - libxcrypt >=4.4.36 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.1,<4.0a0 - - readline >=8.2,<9.0a0 - - yaml >=0.2.5,<0.3.0a0 - constrains: - - __glibc >=2.17 - track_features: - - rb34 - license: BSD-2-Clause - license_family: BSD - size: 13096223 - timestamp: 1752614058708 -- conda: https://conda.anaconda.org/conda-forge/osx-64/ruby-3.4.5-h7b51872_0.conda - sha256: 1539be467ae01d04d0cbd70fd8c3b6c314925e1c64f0ddd92b0439f9324eda23 - md5: 1acb6882589136ff341eaa07bb7c0e0a - depends: - - __osx >=10.13 - - gdbm >=1.18,<1.19.0a0 - - gettext - - gmp >=6.3.0,<7.0a0 - - libasprintf >=0.25.1,<1.0a0 - - libffi >=3.4.6,<3.5.0a0 - - libgettextpo >=0.25.1,<1.0a0 - - libintl >=0.25.1,<1.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.1,<4.0a0 - - readline >=8.2,<9.0a0 - - yaml >=0.2.5,<0.3.0a0 - constrains: - - __osx >=10.13 - track_features: - - rb34 - license: BSD-2-Clause - license_family: BSD - size: 12700341 - timestamp: 1752614861665 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruby-3.4.5-h18f8826_0.conda - sha256: e37e3f7c3554d2e97e5594569b19d6aedc105b3210c071c28d8c460fc8301921 - md5: 6ac444f30d19415fd128b3159c5635ce - depends: - - __osx >=11.0 - - gettext - - gmp >=6.3.0,<7.0a0 - - libasprintf >=0.25.1,<1.0a0 - - libffi >=3.4.6,<3.5.0a0 - - libgettextpo >=0.25.1,<1.0a0 - - libintl >=0.25.1,<1.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.1,<4.0a0 - - readline >=8.2,<9.0a0 - - yaml >=0.2.5,<0.3.0a0 - constrains: - - __osx >=11.0 - track_features: - - rb34 - license: BSD-2-Clause - license_family: BSD - size: 11927055 - timestamp: 1752614944056 -- conda: https://conda.anaconda.org/conda-forge/win-64/ruby-3.4.5-h2bd11ab_0.conda - sha256: 78b4d8b154bdf4b51b658b1abdf66c32a3fba89e110f91844b4f5a6d1ca3140b - md5: 308a04aa38f5979be1d3814859e7b056 - depends: - - libffi >=3.4.6,<3.5.0a0 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.1,<4.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - yaml >=0.2.5,<0.3.0a0 - track_features: - - rb34 - license: BSD-2-Clause - license_family: BSD - size: 18683070 - timestamp: 1752614664698 -- conda: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2 - sha256: 46fdeadf8f8d725819c4306838cdfd1099cd8fe3e17bd78862a5dfdcd6de61cf - md5: fbfb84b9de9a6939cb165c02c69b1865 - depends: - - openssl >=3.0.0,<4.0a0 - license: MIT - license_family: MIT - size: 213817 - timestamp: 1643442169866 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 - sha256: 70791ae00a3756830cb50451db55f63e2a42a2fa2a8f1bab1ebd36bbb7d55bff - md5: 4a2cac04f86a4540b8c9b8d8f597848f - depends: - - openssl >=3.0.0,<4.0a0 - license: MIT - license_family: MIT - size: 210264 - timestamp: 1643442231687 -- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_8.conda - sha256: 0053c17ffbd9f8af1a7f864995d70121c292e317804120be4667f37c92805426 - md5: 1bad93f0aa428d618875ef3a588a889e - depends: - - __glibc >=2.28 - - kernel-headers_linux-64 4.18.0 he073ed8_8 - - tzdata - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later - license_family: GPL - size: 24210909 - timestamp: 1752669140965 -- conda: https://conda.anaconda.org/conda-forge/osx-64/tapi-1300.6.5-h390ca13_0.conda - sha256: f97372a1c75b749298cb990405a690527e8004ff97e452ed2c59e4bc6a35d132 - md5: c6ee25eb54accb3f1c8fc39203acfaf1 - depends: - - __osx >=10.13 - - libcxx >=17.0.0.a0 - - ncurses >=6.5,<7.0a0 - license: NCSA - license_family: MIT - size: 221236 - timestamp: 1725491044729 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1300.6.5-h03f4b80_0.conda - sha256: 37cd4f62ec023df8a6c6f9f6ffddde3d6620a83cbcab170a8fff31ef944402e5 - md5: b703bc3e6cba5943acf0e5f987b5d0e2 - depends: - - __osx >=11.0 - - libcxx >=17.0.0.a0 - - ncurses >=6.5,<7.0a0 - license: NCSA - license_family: MIT - size: 207679 - timestamp: 1725491499758 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 - md5: 4222072737ccff51314b5ece9c7d6f5a - license: LicenseRef-Public-Domain - size: 122968 - timestamp: 1742727099393 -- conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda - sha256: 3005729dce6f3d3f5ec91dfc49fc75a0095f9cd23bab49efb899657297ac91a5 - md5: 71b24316859acd00bdb8b38f5e2ce328 - constrains: - - vc14_runtime >=14.29.30037 - - vs2015_runtime >=14.29.30037 - license: LicenseRef-MicrosoftWindowsSDK10 - size: 694692 - timestamp: 1756385147981 -- conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_31.conda - sha256: cb357591d069a1e6cb74199a8a43a7e3611f72a6caed9faa49dbb3d7a0a98e0b - md5: 28f4ca1e0337d0f27afb8602663c5723 - depends: - - vc14_runtime >=14.44.35208 - track_features: - - vc14 - license: BSD-3-Clause - license_family: BSD - size: 18249 - timestamp: 1753739241465 -- conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda - sha256: af4b4b354b87a9a8d05b8064ff1ea0b47083274f7c30b4eb96bc2312c9b5f08f - md5: 603e41da40a765fd47995faa021da946 - depends: - - ucrt >=10.0.20348.0 - - vcomp14 14.44.35208 h818238b_31 - constrains: - - vs2015_runtime 14.44.35208.* *_31 - license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime - license_family: Proprietary - size: 682424 - timestamp: 1753739239305 -- conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda - sha256: 67b317b64f47635415776718d25170a9a6f9a1218c0f5a6202bfd687e07b6ea4 - md5: a6b1d5c1fc3cb89f88f7179ee6a9afe3 - depends: - - ucrt >=10.0.20348.0 - constrains: - - vs2015_runtime 14.44.35208.* *_31 - license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime - license_family: Proprietary - size: 113963 - timestamp: 1753739198723 -- conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.44.35207-ha74f236_31.conda - sha256: c0a380608afc9ad98b1e261fe55702b72e33f80d372f358075c5dea3d185816f - md5: 0bf228856c72261e5bbd9530002176f2 - depends: - - vswhere - constrains: - - vs_win-64 2022.14 - track_features: - - vc14 - license: BSD-3-Clause - license_family: BSD - size: 21054 - timestamp: 1753739201422 -- conda: https://conda.anaconda.org/conda-forge/noarch/vswhere-3.1.7-h40126e0_1.conda - sha256: b72270395326dc56de9bd6ca82f63791b3c8c9e2b98e25242a9869a4ca821895 - md5: f622897afff347b715d046178ad745a5 - depends: - - __win - license: MIT - license_family: MIT - size: 238764 - timestamp: 1745560912727 -- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad - md5: a77f85f77be52ff59391544bfe73390a - depends: - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - license: MIT - license_family: MIT - size: 85189 - timestamp: 1753484064210 -- conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda - sha256: a335161bfa57b64e6794c3c354e7d49449b28b8d8a7c4ed02bf04c3f009953f9 - md5: a645bb90997d3fc2aea0adf6517059bd - depends: - - __osx >=10.13 - license: MIT - license_family: MIT - size: 79419 - timestamp: 1753484072608 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda - sha256: b03433b13d89f5567e828ea9f1a7d5c5d697bf374c28a4168d71e9464f5dafac - md5: 78a0fe9e9c50d2c381e8ee47e3ea437d - depends: - - __osx >=11.0 - license: MIT - license_family: MIT - size: 83386 - timestamp: 1753484079473 -- conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h6a83c73_3.conda - sha256: 80ee68c1e7683a35295232ea79bcc87279d31ffeda04a1665efdb43cbd50a309 - md5: 433699cba6602098ae8957a323da2664 - depends: - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - ucrt >=10.0.20348.0 - license: MIT - license_family: MIT - size: 63944 - timestamp: 1753484092156 -- conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h8210216_2.conda - sha256: c171c43d0c47eed45085112cb00c8c7d4f0caa5a32d47f2daca727e45fb98dca - md5: cd60a4a5a8d6a476b30d8aa4bb49251a - depends: - - __osx >=10.13 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 485754 - timestamp: 1742433356230 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-h6491c7d_2.conda - sha256: 0d02046f57f7a1a3feae3e9d1aa2113788311f3cf37a3244c71e61a93177ba67 - md5: e6f69c7bcccdefa417f056fa593b40f0 - depends: - - __osx >=11.0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 399979 - timestamp: 1742433432699 diff --git a/pixi.toml b/pixi.toml deleted file mode 100644 index 8feb4e9..0000000 --- a/pixi.toml +++ /dev/null @@ -1,20 +0,0 @@ -[project] -name = "zarr-website" -version = "0.1.0" -description = "Zarr developers website built with Jekyll" -channels = ["conda-forge"] -platforms = ["linux-64", "osx-64", "osx-arm64", "win-64"] - -[dependencies] -ruby = ">=3.0" -c-compiler = "*" -cxx-compiler = "*" -make = "*" -pkg-config = "*" -ca-certificates = "*" -openssl = "*" - -[tasks] -dev = { cmd = "bundle exec jekyll serve --host 0.0.0.0 --port 4000 --livereload --force_polling", env = { SSL_CERT_FILE = "$CONDA_PREFIX/ssl/cacert.pem" } } -build = { cmd = "bundle exec jekyll build", env = { SSL_CERT_FILE = "$CONDA_PREFIX/ssl/cacert.pem" } } -install = "bundle install" \ No newline at end of file diff --git a/CNAME b/public/CNAME similarity index 100% rename from CNAME rename to public/CNAME diff --git a/adopters/logos/carbonplan.svg b/public/adopters/logos/carbonplan.svg similarity index 100% rename from adopters/logos/carbonplan.svg rename to public/adopters/logos/carbonplan.svg diff --git a/adopters/logos/columbia.png b/public/adopters/logos/columbia.png similarity index 100% rename from adopters/logos/columbia.png rename to public/adopters/logos/columbia.png diff --git a/adopters/logos/dandi.svg b/public/adopters/logos/dandi.svg similarity index 100% rename from adopters/logos/dandi.svg rename to public/adopters/logos/dandi.svg diff --git a/adopters/logos/esa.png b/public/adopters/logos/esa.png similarity index 100% rename from adopters/logos/esa.png rename to public/adopters/logos/esa.png diff --git a/adopters/logos/google_research.png b/public/adopters/logos/google_research.png similarity index 100% rename from adopters/logos/google_research.png rename to public/adopters/logos/google_research.png diff --git a/adopters/logos/hhmi.png b/public/adopters/logos/hhmi.png similarity index 100% rename from adopters/logos/hhmi.png rename to public/adopters/logos/hhmi.png diff --git a/adopters/logos/ldeo.png b/public/adopters/logos/ldeo.png similarity index 100% rename from adopters/logos/ldeo.png rename to public/adopters/logos/ldeo.png diff --git a/adopters/logos/leap.webp b/public/adopters/logos/leap.webp similarity index 100% rename from adopters/logos/leap.webp rename to public/adopters/logos/leap.webp diff --git a/adopters/logos/microsoft.png b/public/adopters/logos/microsoft.png similarity index 100% rename from adopters/logos/microsoft.png rename to public/adopters/logos/microsoft.png diff --git a/adopters/logos/nasa.webp b/public/adopters/logos/nasa.webp similarity index 100% rename from adopters/logos/nasa.webp rename to public/adopters/logos/nasa.webp diff --git a/adopters/logos/ncar.svg b/public/adopters/logos/ncar.svg similarity index 100% rename from adopters/logos/ncar.svg rename to public/adopters/logos/ncar.svg diff --git a/adopters/logos/ome_logo.svg b/public/adopters/logos/ome_logo.svg similarity index 100% rename from adopters/logos/ome_logo.svg rename to public/adopters/logos/ome_logo.svg diff --git a/adopters/logos/pangeo.png b/public/adopters/logos/pangeo.png similarity index 100% rename from adopters/logos/pangeo.png rename to public/adopters/logos/pangeo.png diff --git a/adopters/logos/scalableminds.svg b/public/adopters/logos/scalableminds.svg similarity index 100% rename from adopters/logos/scalableminds.svg rename to public/adopters/logos/scalableminds.svg diff --git a/adopters/logos/unidata.png b/public/adopters/logos/unidata.png similarity index 100% rename from adopters/logos/unidata.png rename to public/adopters/logos/unidata.png diff --git a/adopters/logos/webknossos.svg b/public/adopters/logos/webknossos.svg similarity index 100% rename from adopters/logos/webknossos.svg rename to public/adopters/logos/webknossos.svg diff --git a/android-chrome-192x192.png b/public/android-chrome-192x192.png similarity index 100% rename from android-chrome-192x192.png rename to public/android-chrome-192x192.png diff --git a/android-chrome-512x512.png b/public/android-chrome-512x512.png similarity index 100% rename from android-chrome-512x512.png rename to public/android-chrome-512x512.png diff --git a/apple-touch-icon.png b/public/apple-touch-icon.png similarity index 100% rename from apple-touch-icon.png rename to public/apple-touch-icon.png diff --git a/favicon-16x16.png b/public/favicon-16x16.png similarity index 100% rename from favicon-16x16.png rename to public/favicon-16x16.png diff --git a/favicon-32x32.png b/public/favicon-32x32.png similarity index 100% rename from favicon-32x32.png rename to public/favicon-32x32.png diff --git a/favicon.ico b/public/favicon.ico similarity index 100% rename from favicon.ico rename to public/favicon.ico diff --git a/images/arabidopsis.png b/public/images/arabidopsis.png similarity index 100% rename from images/arabidopsis.png rename to public/images/arabidopsis.png diff --git a/images/chunked.png b/public/images/chunked.png similarity index 100% rename from images/chunked.png rename to public/images/chunked.png diff --git a/images/cloud.png b/public/images/cloud.png similarity index 100% rename from images/cloud.png rename to public/images/cloud.png diff --git a/images/hierarchy.png b/public/images/hierarchy.png similarity index 100% rename from images/hierarchy.png rename to public/images/hierarchy.png diff --git a/images/llc4320_sst.png b/public/images/llc4320_sst.png similarity index 100% rename from images/llc4320_sst.png rename to public/images/llc4320_sst.png diff --git a/images/logo1.png b/public/images/logo1.png similarity index 100% rename from images/logo1.png rename to public/images/logo1.png diff --git a/images/logo2.png b/public/images/logo2.png similarity index 100% rename from images/logo2.png rename to public/images/logo2.png diff --git a/public/images/zarr-hero.gif b/public/images/zarr-hero.gif new file mode 100644 index 0000000..579b1b2 Binary files /dev/null and b/public/images/zarr-hero.gif differ diff --git a/safari-pinned-tab.svg b/public/safari-pinned-tab.svg similarity index 100% rename from safari-pinned-tab.svg rename to public/safari-pinned-tab.svg diff --git a/site.webmanifest b/public/site.webmanifest similarity index 100% rename from site.webmanifest rename to public/site.webmanifest diff --git a/slides/scipy-2019.pdf b/public/slides/scipy-2019.pdf similarity index 100% rename from slides/scipy-2019.pdf rename to public/slides/scipy-2019.pdf diff --git a/public/slides/v3-update-20190619.pdf b/public/slides/v3-update-20190619.pdf new file mode 100644 index 0000000..af10b74 Binary files /dev/null and b/public/slides/v3-update-20190619.pdf differ diff --git a/slides.md b/slides.md deleted file mode 100644 index 1f4a2a3..0000000 --- a/slides.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: home -author_profile: false -title: Slides -permalink: /slides/ -sidebar: - title: "Content" - nav: sidebar ---- - -* [SciPy 2019](scipy-2019.html) ([PDF](scipy-2019.pdf)) -* [Zarr protocol spec v3 design update, 19 June 2019](v3-update-20190619.html) diff --git a/slides/.gitignore b/slides/.gitignore deleted file mode 100644 index 8eda50e..0000000 --- a/slides/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -.idea/ -*.iml -*.iws -*.eml -out/ -.DS_Store -.svn -log/*.log -tmp/** -node_modules/ -.sass-cache -css/reveal.min.css -js/reveal.min.js diff --git a/slides/.travis.yml b/slides/.travis.yml deleted file mode 100644 index e65e0df..0000000 --- a/slides/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 11 -after_script: - - npm run build -- retire diff --git a/slides/CONTRIBUTING.md b/slides/CONTRIBUTING.md deleted file mode 100644 index c2091e8..0000000 --- a/slides/CONTRIBUTING.md +++ /dev/null @@ -1,23 +0,0 @@ -## Contributing - -Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**. - - -### Personal Support -If you have personal support or setup questions the best place to ask those are [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js). - - -### Bug Reports -When reporting a bug make sure to include information about which browser and operating system you are on as well as the necessary steps to reproduce the issue. If possible please include a link to a sample presentation where the bug can be tested. - - -### Pull Requests -- Should follow the coding style of the file you work in, most importantly: - - Tabs to indent - - Single-quoted strings -- Should be made towards the **dev branch** -- Should be submitted from a feature/topic branch (not your master) - - -### Plugins -Please do not submit plugins as pull requests. They should be maintained in their own separate repository. More information here: https://github.com/hakimel/reveal.js/wiki/Plugin-Guidelines diff --git a/slides/README.md b/slides/README.md deleted file mode 100644 index 33956e9..0000000 --- a/slides/README.md +++ /dev/null @@ -1,1438 +0,0 @@ -# reveal.js [![Build Status](https://travis-ci.org/hakimel/reveal.js.svg?branch=master)](https://travis-ci.org/hakimel/reveal.js) Slides - -A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://revealjs.com/). - -reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [Markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). There's also a fully featured visual editor and platform for sharing reveal.js presentations at [slides.com](https://slides.com?ref=github). - - -## Table of contents - -- [Online Editor](#online-editor) -- [Installation](#installation) - - [Basic setup](#basic-setup) - - [Full setup](#full-setup) - - [Folder Structure](#folder-structure) -- [Instructions](#instructions) - - [Markup](#markup) - - [Markdown](#markdown) - - [Element Attributes](#element-attributes) - - [Slide Attributes](#slide-attributes) -- [Configuration](#configuration) -- [Presentation Size](#presentation-size) -- [Dependencies](#dependencies) -- [Ready Event](#ready-event) -- [Auto-sliding](#auto-sliding) -- [Keyboard Bindings](#keyboard-bindings) -- [Vertical Slide Navigation](#vertical-slide-navigation) -- [Touch Navigation](#touch-navigation) -- [Lazy Loading](#lazy-loading) -- [API](#api) - - [Slide Changed Event](#slide-changed-event) - - [Presentation State](#presentation-state) - - [Slide States](#slide-states) - - [Slide Backgrounds](#slide-backgrounds) - - [Parallax Background](#parallax-background) - - [Slide Transitions](#slide-transitions) - - [Internal links](#internal-links) - - [Fragments](#fragments) - - [Fragment events](#fragment-events) - - [Code syntax highlighting](#code-syntax-highlighting) - - [Slide number](#slide-number) - - [Overview mode](#overview-mode) - - [Fullscreen mode](#fullscreen-mode) - - [Embedded media](#embedded-media) - - [Stretching elements](#stretching-elements) - - [Resize Event](#resize-event) - - [postMessage API](#postmessage-api) -- [PDF Export](#pdf-export) -- [Theming](#theming) -- [Speaker Notes](#speaker-notes) - - [Share and Print Speaker Notes](#share-and-print-speaker-notes) - - [Server Side Speaker Notes](#server-side-speaker-notes) -- [Plugins](#plugins) -- [Multiplexing](#multiplexing) - - [Master presentation](#master-presentation) - - [Client presentation](#client-presentation) - - [Socket.io server](#socketio-server) -- [MathJax](#mathjax) -- [License](#license) - -#### More reading - -- [Changelog](https://github.com/hakimel/reveal.js/releases): Up-to-date version history. -- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own! -- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Browser-Support): Explanation of browser support and fallbacks. -- [Plugins](https://github.com/hakimel/reveal.js/wiki/Plugins,-Tools-and-Hardware): A list of plugins that can be used to extend reveal.js. - - -## Online Editor - -Presentations are written using HTML or Markdown but there's also an online editor for those of you who prefer a graphical interface. Give it a try at [https://slides.com](https://slides.com?ref=github). - - -## Installation - -The **basic setup** is for authoring presentations only. The **full setup** gives you access to all reveal.js features and plugins such as speaker notes as well as the development tasks needed to make changes to the source. - -### Basic setup - -The core of reveal.js is very easy to install. You'll simply need to download a copy of this repository and open the index.html file directly in your browser. - -1. Download the latest version of reveal.js from -2. Unzip and replace the example contents in index.html with your own -3. Open index.html in a browser to view it - -### Full setup - -Some reveal.js features, like external Markdown and speaker notes, require that presentations run from a local web server. The following instructions will set up such a server as well as all of the development tasks needed to make edits to the reveal.js source code. - -1. Install [Node.js](http://nodejs.org/) (4.0.0 or later) - -1. Clone the reveal.js repository - ```sh - $ git clone https://github.com/hakimel/reveal.js.git - ``` - -1. Navigate to the reveal.js folder - ```sh - $ cd reveal.js - ``` - -1. Install dependencies - ```sh - $ npm install - ``` - -1. Serve the presentation and monitor source files for changes - ```sh - $ npm start - ``` - -1. Open to view your presentation - - You can change the port by using `npm start -- --port=8001`. - -### Folder Structure - -- **css/** Core styles without which the project does not function -- **js/** Like above but for JavaScript -- **plugin/** Components that have been developed as extensions to reveal.js -- **lib/** All other third party assets (JavaScript, CSS, fonts) - - -## Instructions - -### Markup - -Here's a barebones example of a fully working reveal.js presentation: -```html - - - - - - -
-
-
Slide 1
-
Slide 2
-
-
- - - - -``` - -The presentation markup hierarchy needs to be `.reveal > .slides > section` where the `section` represents one slide and can be repeated indefinitely. If you place multiple `section` elements inside of another `section` they will be shown as vertical slides. The first of the vertical slides is the "root" of the others (at the top), and will be included in the horizontal sequence. For example: - -```html -
-
-
Single Horizontal Slide
-
-
Vertical Slide 1
-
Vertical Slide 2
-
-
-
-``` - -### Markdown - -It's possible to write your slides using Markdown. To enable Markdown, add the `data-markdown` attribute to your `
` elements and wrap the contents in a ` -
-``` - -#### External Markdown - -You can write your content as a separate file and have reveal.js load it at runtime. Note the separator arguments which determine how slides are delimited in the external file: the `data-separator` attribute defines a regular expression for horizontal slides (defaults to `^\r?\n---\r?\n$`, a newline-bounded horizontal rule) and `data-separator-vertical` defines vertical slides (disabled by default). The `data-separator-notes` attribute is a regular expression for specifying the beginning of the current slide's speaker notes (defaults to `notes?:`, so it will match both "note:" and "notes:"). The `data-charset` attribute is optional and specifies which charset to use when loading the external file. - -When used locally, this feature requires that reveal.js [runs from a local web server](#full-setup). The following example customises all available options: - -```html -
- -
-``` - -#### Element Attributes - -Special syntax (through HTML comments) is available for adding attributes to Markdown elements. This is useful for fragments, amongst other things. - -```html -
- -
-``` - -#### Slide Attributes - -Special syntax (through HTML comments) is available for adding attributes to the slide `
` elements generated by your Markdown. - -```html -
- -
-``` - -#### Configuring *marked* - -We use [marked](https://github.com/chjj/marked) to parse Markdown. To customise marked's rendering, you can pass in options when [configuring Reveal](#configuration): - -```javascript -Reveal.initialize({ - // Options which are passed into marked - // See https://marked.js.org/#/USING_ADVANCED.md#options - markdown: { - smartypants: true - } -}); -``` - -### Configuration - -At the end of your page you need to initialize reveal by running the following code. Note that all configuration values are optional and will default to the values specified below. - -```javascript -Reveal.initialize({ - - // Display presentation control arrows - controls: true, - - // Help the user learn the controls by providing hints, for example by - // bouncing the down arrow when they first encounter a vertical slide - controlsTutorial: true, - - // Determines where controls appear, "edges" or "bottom-right" - controlsLayout: 'bottom-right', - - // Visibility rule for backwards navigation arrows; "faded", "hidden" - // or "visible" - controlsBackArrows: 'faded', - - // Display a presentation progress bar - progress: true, - - // Display the page number of the current slide - slideNumber: false, - - // Add the current slide number to the URL hash so that reloading the - // page/copying the URL will return you to the same slide - hash: false, - - // Push each slide change to the browser history. Implies `hash: true` - history: false, - - // Enable keyboard shortcuts for navigation - keyboard: true, - - // Enable the slide overview mode - overview: true, - - // Vertical centering of slides - center: true, - - // Enables touch navigation on devices with touch input - touch: true, - - // Loop the presentation - loop: false, - - // Change the presentation direction to be RTL - rtl: false, - - // See https://github.com/hakimel/reveal.js/#navigation-mode - navigationMode: 'default', - - // Randomizes the order of slides each time the presentation loads - shuffle: false, - - // Turns fragments on and off globally - fragments: true, - - // Flags whether to include the current fragment in the URL, - // so that reloading brings you to the same fragment position - fragmentInURL: false, - - // Flags if the presentation is running in an embedded mode, - // i.e. contained within a limited portion of the screen - embedded: false, - - // Flags if we should show a help overlay when the questionmark - // key is pressed - help: true, - - // Flags if speaker notes should be visible to all viewers - showNotes: false, - - // Global override for autoplaying embedded media (video/audio/iframe) - // - null: Media will only autoplay if data-autoplay is present - // - true: All media will autoplay, regardless of individual setting - // - false: No media will autoplay, regardless of individual setting - autoPlayMedia: null, - - // Global override for preloading lazy-loaded iframes - // - null: Iframes with data-src AND data-preload will be loaded when within - // the viewDistance, iframes with only data-src will be loaded when visible - // - true: All iframes with data-src will be loaded when within the viewDistance - // - false: All iframes with data-src will be loaded only when visible - preloadIframes: null, - - // Number of milliseconds between automatically proceeding to the - // next slide, disabled when set to 0, this value can be overwritten - // by using a data-autoslide attribute on your slides - autoSlide: 0, - - // Stop auto-sliding after user input - autoSlideStoppable: true, - - // Use this method for navigation when auto-sliding - autoSlideMethod: Reveal.navigateNext, - - // Specify the average time in seconds that you think you will spend - // presenting each slide. This is used to show a pacing timer in the - // speaker view - defaultTiming: 120, - - // Enable slide navigation via mouse wheel - mouseWheel: false, - - // Hide cursor if inactive - hideInactiveCursor: true, - - // Time before the cursor is hidden (in ms) - hideCursorTime: 5000, - - // Hides the address bar on mobile devices - hideAddressBar: true, - - // Opens links in an iframe preview overlay - // Add `data-preview-link` and `data-preview-link="false"` to customise each link - // individually - previewLinks: false, - - // Transition style - transition: 'slide', // none/fade/slide/convex/concave/zoom - - // Transition speed - transitionSpeed: 'default', // default/fast/slow - - // Transition style for full page slide backgrounds - backgroundTransition: 'fade', // none/fade/slide/convex/concave/zoom - - // Number of slides away from the current that are visible - viewDistance: 3, - - // Parallax background image - parallaxBackgroundImage: '', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'" - - // Parallax background size - parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - - // Number of pixels to move the parallax background per slide - // - Calculated automatically unless specified - // - Set to 0 to disable movement along an axis - parallaxBackgroundHorizontal: null, - parallaxBackgroundVertical: null, - - // The display mode that will be used to show slides - display: 'block' - -}); -``` - -The configuration can be updated after initialization using the `configure` method: - -```javascript -// Turn autoSlide off -Reveal.configure({ autoSlide: 0 }); - -// Start auto-sliding every 5s -Reveal.configure({ autoSlide: 5000 }); -``` - -### Presentation Size - -All presentations have a normal size, that is, the resolution at which they are authored. The framework will automatically scale presentations uniformly based on this size to ensure that everything fits on any given display or viewport. - -See below for a list of configuration options related to sizing, including default values: - -```javascript -Reveal.initialize({ - - // ... - - // The "normal" size of the presentation, aspect ratio will be preserved - // when the presentation is scaled to fit different resolutions. Can be - // specified using percentage units. - width: 960, - height: 700, - - // Factor of the display size that should remain empty around the content - margin: 0.1, - - // Bounds for smallest/largest possible scale to apply to content - minScale: 0.2, - maxScale: 1.5 - -}); -``` - -If you wish to disable this behavior and do your own scaling (e.g. using media queries), try these settings: - -```javascript -Reveal.initialize({ - - // ... - - width: "100%", - height: "100%", - margin: 0, - minScale: 1, - maxScale: 1 -}); -``` - -### Dependencies - -Reveal.js doesn't _rely_ on any third party scripts to work but a few optional libraries are included by default. These libraries are loaded as dependencies in the order they appear, for example: - -```javascript -Reveal.initialize({ - dependencies: [ - // Interpret Markdown in
elements - { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, - { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, - - // Syntax highlight for elements - { src: 'plugin/highlight/highlight.js', async: true }, - - // Zoom in and out with Alt+click - { src: 'plugin/zoom-js/zoom.js', async: true }, - - // Speaker notes - { src: 'plugin/notes/notes.js', async: true }, - - // MathJax - { src: 'plugin/math/math.js', async: true } - ] -}); -``` - -You can add your own extensions using the same syntax. The following properties are available for each dependency object: -- **src**: Path to the script to load -- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false -- **callback**: [optional] Function to execute when the script has loaded -- **condition**: [optional] Function which must return true for the script to be loaded - -### Ready Event - -A `ready` event is fired when reveal.js has loaded all non-async dependencies and is ready to start navigating. To check if reveal.js is already 'ready' you can call `Reveal.isReady()`. - -```javascript -Reveal.addEventListener( 'ready', function( event ) { - // event.currentSlide, event.indexh, event.indexv -} ); -``` - -Note that we also add a `.ready` class to the `.reveal` element so that you can hook into this with CSS. - -### Auto-sliding - -Presentations can be configured to progress through slides automatically, without any user input. To enable this you will need to tell the framework how many milliseconds it should wait between slides: - -```javascript -// Slide every five seconds -Reveal.configure({ - autoSlide: 5000 -}); -``` - -When this is turned on a control element will appear that enables users to pause and resume auto-sliding. Alternatively, sliding can be paused or resumed by pressing »A« on the keyboard. Sliding is paused automatically as soon as the user starts navigating. You can disable these controls by specifying `autoSlideStoppable: false` in your reveal.js config. - -You can also override the slide duration for individual slides and fragments by using the `data-autoslide` attribute: - -```html -
-

After 2 seconds the first fragment will be shown.

-

After 10 seconds the next fragment will be shown.

-

Now, the fragment is displayed for 2 seconds before the next slide is shown.

-
-``` - -To override the method used for navigation when auto-sliding, you can specify the `autoSlideMethod` setting. To only navigate along the top layer and ignore vertical slides, set this to `Reveal.navigateRight`. - -Whenever the auto-slide mode is resumed or paused the `autoslideresumed` and `autoslidepaused` events are fired. - -### Keyboard Bindings - -If you're unhappy with any of the default keyboard bindings you can override them using the `keyboard` config option: - -```javascript -Reveal.configure({ - keyboard: { - 13: 'next', // go to the next slide when the ENTER key is pressed - 27: function() {}, // do something custom when ESC is pressed - 32: null // don't do anything when SPACE is pressed (i.e. disable a reveal.js default binding) - } -}); -``` - -### Vertical Slide Navigation - -Slides can be nested within other slides to create vertical stacks (see [Markup](#markup)). When presenting, you use the left/right arrows to step through the main (horizontal) slides. When you arrive at a vertical stack you can optionally press the up/down arrows to view the vertical slides or skip past them by pressing the right arrow. Here's an example showing a bird's-eye view of what this looks like in action: - - - -#### Navigation Mode -You can finetune the reveal.js navigation behavior by using the `navigationMode` config option. Note that these options are only useful for presnetations that use a mix of horizontal and vertical slides. The following navigation modes are available: - -| Value | Description | -| :--------------------------- | :---------- | -| default | Left/right arrow keys step between horizontal slides. Up/down arrow keys step between vertical slides. Space key steps through all slides (both horizontal and vertical). | -| linear | Removes the up/down arrows. Left/right arrows step through all slides (both horizontal and vertical). | -| grid | When this is enabled, stepping left/right from a vertical stack to an adjacent vertical stack will land you at the same vertical index.

Consider a deck with six slides ordered in two vertical stacks:
`1.1`    `2.1`
`1.2`    `2.2`
`1.3`    `2.3`

If you're on slide 1.3 and navigate right, you will normally move from 1.3 -> 2.1. With navigationMode set to "grid" the same navigation takes you from 1.3 -> 2.3. | - -### Touch Navigation - -You can swipe to navigate through a presentation on any touch-enabled device. Horizontal swipes change between horizontal slides, vertical swipes change between vertical slides. If you wish to disable this you can set the `touch` config option to false when initializing reveal.js. - -If there's some part of your content that needs to remain accessible to touch events you'll need to highlight this by adding a `data-prevent-swipe` attribute to the element. One common example where this is useful is elements that need to be scrolled. - -### Lazy Loading - -When working on presentation with a lot of media or iframe content it's important to load lazily. Lazy loading means that reveal.js will only load content for the few slides nearest to the current slide. The number of slides that are preloaded is determined by the `viewDistance` configuration option. - -To enable lazy loading all you need to do is change your `src` attributes to `data-src` as shown below. This is supported for image, video, audio and iframe elements. - -```html -
- - - -
-``` - -#### Lazy Loading Iframes - -Note that lazy loaded iframes ignore the `viewDistance` configuration and will only load when their containing slide becomes visible. Iframes are also unloaded as soon as the slide is hidden. - -When we lazy load a video or audio element, reveal.js won't start playing that content until the slide becomes visible. However there is no way to control this for an iframe since that could contain any kind of content. That means if we loaded an iframe before the slide is visible on screen it could begin playing media and sound in the background. - -You can override this behavior with the `data-preload` attribute. The iframe below will be loaded -according to the `viewDistance`. - -```html -
- -
-``` - -You can also change the default globally with the `preloadIframes` configuration option. If set to -`true` ALL iframes with a `data-src` attribute will be preloaded when within the `viewDistance` -regardless of individual `data-preload` attributes. If set to `false`, all iframes will only be -loaded when they become visible. - -### API - -The `Reveal` object exposes a JavaScript API for controlling navigation and reading state: - -```javascript -// Navigation -Reveal.slide( indexh, indexv, indexf ); -Reveal.left(); -Reveal.right(); -Reveal.up(); -Reveal.down(); -Reveal.prev(); -Reveal.next(); -Reveal.prevFragment(); -Reveal.nextFragment(); - -// Randomize the order of slides -Reveal.shuffle(); - -// Toggle presentation states, optionally pass true/false to force on/off -Reveal.toggleOverview(); -Reveal.togglePause(); -Reveal.toggleAutoSlide(); - -// Shows a help overlay with keyboard shortcuts, optionally pass true/false -// to force on/off -Reveal.toggleHelp(); - -// Change a config value at runtime -Reveal.configure({ controls: true }); - -// Returns the present configuration options -Reveal.getConfig(); - -// Fetch the current scale of the presentation -Reveal.getScale(); - -// Retrieves the previous and current slide elements -Reveal.getPreviousSlide(); -Reveal.getCurrentSlide(); - -Reveal.getIndices(); // { h: 0, v: 0, f: 0 } -Reveal.getSlidePastCount(); -Reveal.getProgress(); // (0 == first slide, 1 == last slide) -Reveal.getSlides(); // Array of all slides -Reveal.getTotalSlides(); // Total number of slides - -// Returns the speaker notes for the current slide -Reveal.getSlideNotes(); - -// State checks -Reveal.isFirstSlide(); -Reveal.isLastSlide(); -Reveal.isOverview(); -Reveal.isPaused(); -Reveal.isAutoSliding(); - -// Returns the top-level DOM element -getRevealElement(); //
...
-``` - -### Custom Key Bindings - -Custom key bindings can be added and removed using the following Javascript API. Custom key bindings will override the default keyboard bindings, but will in turn be overridden by the user defined bindings in the ``keyboard`` config option. - -```javascript -Reveal.addKeyBinding( binding, callback ); -Reveal.removeKeyBinding( keyCode ); -``` - -For example - -```javascript -// The binding parameter provides the following properties -// keyCode: the keycode for binding to the callback -// key: the key label to show in the help overlay -// description: the description of the action to show in the help overlay -Reveal.addKeyBinding( { keyCode: 84, key: 'T', description: 'Start timer' }, function() { - // start timer -} ) - -// The binding parameter can also be a direct keycode without providing the help description -Reveal.addKeyBinding( 82, function() { - // reset timer -} ) -``` - -This allows plugins to add key bindings directly to Reveal so they can - -* make use of Reveal's pre-processing logic for key handling (for example, ignoring key presses when paused); and -* be included in the help overlay (optional) - -### Slide Changed Event - -A `slidechanged` event is fired each time the slide is changed (regardless of state). The event object holds the index values of the current slide as well as a reference to the previous and current slide HTML nodes. - -Some libraries, like MathJax (see [#226](https://github.com/hakimel/reveal.js/issues/226#issuecomment-10261609)), get confused by the transforms and display states of slides. Often times, this can be fixed by calling their update or render function from this callback. - -```javascript -Reveal.addEventListener( 'slidechanged', function( event ) { - // event.previousSlide, event.currentSlide, event.indexh, event.indexv -} ); -``` - -### Presentation State - -The presentation's current state can be fetched by using the `getState` method. A state object contains all of the information required to put the presentation back as it was when `getState` was first called. Sort of like a snapshot. It's a simple object that can easily be stringified and persisted or sent over the wire. - -```javascript -Reveal.slide( 1 ); -// we're on slide 1 - -var state = Reveal.getState(); - -Reveal.slide( 3 ); -// we're on slide 3 - -Reveal.setState( state ); -// we're back on slide 1 -``` - -### Slide States - -If you set `data-state="somestate"` on a slide `
`, "somestate" will be applied as a class on the document element when that slide is opened. This allows you to apply broad style changes to the page based on the active slide. - -Furthermore you can also listen to these changes in state via JavaScript: - -```javascript -Reveal.addEventListener( 'somestate', function() { - // TODO: Sprinkle magic -}, false ); -``` - -### Slide Backgrounds - -Slides are contained within a limited portion of the screen by default to allow them to fit any display and scale uniformly. You can apply full page backgrounds outside of the slide area by adding a `data-background` attribute to your `
` elements. Four different types of backgrounds are supported: color, image, video and iframe. - -#### Color Backgrounds - -All CSS color formats are supported, including hex values, keywords, `rgba()` or `hsl()`. - -```html -
-

Color

-
-``` - -#### Image Backgrounds - -By default, background images are resized to cover the full page. Available options: - -| Attribute | Default | Description | -| :------------------------------- | :--------- | :---------- | -| data-background-image | | URL of the image to show. GIFs restart when the slide opens. | -| data-background-size | cover | See [background-size](https://developer.mozilla.org/docs/Web/CSS/background-size) on MDN. | -| data-background-position | center | See [background-position](https://developer.mozilla.org/docs/Web/CSS/background-position) on MDN. | -| data-background-repeat | no-repeat | See [background-repeat](https://developer.mozilla.org/docs/Web/CSS/background-repeat) on MDN. | -| data-background-opacity | 1 | Opacity of the background image on a 0-1 scale. 0 is transparent and 1 is fully opaque. | - -```html -
-

Image

-
-
-

This background image will be sized to 100px and repeated

-
-``` - -#### Video Backgrounds - -Automatically plays a full size video behind the slide. - -| Attribute | Default | Description | -| :--------------------------- | :------ | :---------- | -| data-background-video | | A single video source, or a comma separated list of video sources. | -| data-background-video-loop | false | Flags if the video should play repeatedly. | -| data-background-video-muted | false | Flags if the audio should be muted. | -| data-background-size | cover | Use `cover` for full screen and some cropping or `contain` for letterboxing. | -| data-background-opacity | 1 | Opacity of the background video on a 0-1 scale. 0 is transparent and 1 is fully opaque. | - -```html -
-

Video

-
-``` - -#### Iframe Backgrounds - -Embeds a web page as a slide background that covers 100% of the reveal.js width and height. The iframe is in the background layer, behind your slides, and as such it's not possible to interact with it by default. To make your background interactive, you can add the `data-background-interactive` attribute. - -```html -
-

Iframe

-
-``` - -#### Background Transitions - -Backgrounds transition using a fade animation by default. This can be changed to a linear sliding transition by passing `backgroundTransition: 'slide'` to the `Reveal.initialize()` call. Alternatively you can set `data-background-transition` on any section with a background to override that specific transition. - - -### Parallax Background - -If you want to use a parallax scrolling background, set the first two properties below when initializing reveal.js (the other two are optional). - -```javascript -Reveal.initialize({ - - // Parallax background image - parallaxBackgroundImage: '', // e.g. "https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg" - - // Parallax background size - parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - currently only pixels are supported (don't use % or auto) - - // Number of pixels to move the parallax background per slide - // - Calculated automatically unless specified - // - Set to 0 to disable movement along an axis - parallaxBackgroundHorizontal: 200, - parallaxBackgroundVertical: 50 - -}); -``` - -Make sure that the background size is much bigger than screen size to allow for some scrolling. [View example](http://revealjs.com/?parallaxBackgroundImage=https%3A%2F%2Fs3.amazonaws.com%2Fhakim-static%2Freveal-js%2Freveal-parallax-1.jpg¶llaxBackgroundSize=2100px%20900px). - -### Slide Transitions - -The global presentation transition is set using the `transition` config value. You can override the global transition for a specific slide by using the `data-transition` attribute: - -```html -
-

This slide will override the presentation transition and zoom!

-
- -
-

Choose from three transition speeds: default, fast or slow!

-
-``` - -You can also use different in and out transitions for the same slide: - -```html -
- The train goes on … -
-
- and on … -
-
- and stops. -
-
- (Passengers entering and leaving) -
-
- And it starts again. -
-``` -You can choose from `none`, `fade`, `slide`, `convex`, `concave` and `zoom`. -### Internal links - -It's easy to link between slides. The first example below targets the index of another slide whereas the second targets a slide with an ID attribute (`
`): - -```html -Link -Link -``` - -You can also add relative navigation links, similar to the built in reveal.js controls, by appending one of the following classes on any element. Note that each element is automatically given an `enabled` class when it's a valid navigation route based on the current slide. - -```html - - - - - - -``` - -### Fragments - -Fragments are used to highlight individual elements on a slide. Every element with the class `fragment` will be stepped through before moving on to the next slide. Here's an example: http://revealjs.com/#/fragments - -The default fragment style is to start out invisible and fade in. This style can be changed by appending a different class to the fragment: - -```html -
-

grow

-

shrink

-

fade-out

-

fade-up (also down, left and right!)

-

fades in, then out when we move to the next step

-

fades in, then obfuscate when we move to the next step

-

blue only once

-

highlight-red

-

highlight-green

-

highlight-blue

-
-``` - -Multiple fragments can be applied to the same element sequentially by wrapping it, this will fade in the text on the first step and fade it back out on the second. - -```html -
- - I'll fade in, then out - -
-``` - -The display order of fragments can be controlled using the `data-fragment-index` attribute. - -```html -
-

Appears last

-

Appears first

-

Appears second

-
-``` - -### Fragment events - -When a slide fragment is either shown or hidden reveal.js will dispatch an event. - -Some libraries, like MathJax (see #505), get confused by the initially hidden fragment elements. Often times this can be fixed by calling their update or render function from this callback. - -```javascript -Reveal.addEventListener( 'fragmentshown', function( event ) { - // event.fragment = the fragment DOM element -} ); -Reveal.addEventListener( 'fragmenthidden', function( event ) { - // event.fragment = the fragment DOM element -} ); -``` - -### Code Syntax Highlighting - -By default, Reveal is configured with [highlight.js](https://highlightjs.org/) for code syntax highlighting. To enable syntax highlighting, you'll have to load the highlight plugin ([plugin/highlight/highlight.js](plugin/highlight/highlight.js)) and a highlight.js CSS theme (Reveal comes packaged with the Monokai themes: [lib/css/monokai.css](lib/css/monokai.css)). - -```javascript -Reveal.initialize({ - // More info https://github.com/hakimel/reveal.js#dependencies - dependencies: [ - { src: 'plugin/highlight/highlight.js', async: true }, - ] -}); -``` - -Below is an example with clojure code that will be syntax highlighted. When the `data-trim` attribute is present, surrounding whitespace is automatically removed. HTML will be escaped by default. To avoid this, for example if you are using `` to call out a line of code, add the `data-noescape` attribute to the `` element. - -```html -
-

-(def lazy-fib
-  (concat
-   [0 1]
-   ((fn rfib [a b]
-        (lazy-cons (+ a b) (rfib b (+ a b)))) 0 1)))
-	
-
-``` - -#### Line Numbers & Highlights - -To enable line numbers, add `data-line-numbers` to your `` tags. If you want to highlight specific lines you can provide a comma separated list of line numbers using the same attribute. For example, in the following example lines 4 and 8-11 are highlighted: - -```html -

-import React, { useState } from 'react';
- 
-function Example() {
-  const [count, setCount] = useState(0);
- 
-  return (
-    
-

You clicked {count} times

- -
- ); -} -
-``` - -line-numbers - - - -### Slide number - -If you would like to display the page number of the current slide you can do so using the `slideNumber` and `showSlideNumber` configuration values. - -```javascript -// Shows the slide number using default formatting -Reveal.configure({ slideNumber: true }); - -// Slide number formatting can be configured using these variables: -// "h.v": horizontal . vertical slide number (default) -// "h/v": horizontal / vertical slide number -// "c": flattened slide number -// "c/t": flattened slide number / total slides -Reveal.configure({ slideNumber: 'c/t' }); - -// You can provide a function to fully customize the number: -Reveal.configure({ slideNumber: function() { - // Ignore numbering of vertical slides - return [ Reveal.getIndices().h ]; -}}); - -// Control which views the slide number displays on using the "showSlideNumber" value: -// "all": show on all views (default) -// "speaker": only show slide numbers on speaker notes view -// "print": only show slide numbers when printing to PDF -Reveal.configure({ showSlideNumber: 'speaker' }); -``` - -### Overview mode - -Press »ESC« or »O« keys to toggle the overview mode on and off. While you're in this mode, you can still navigate between slides, -as if you were at 1,000 feet above your presentation. The overview mode comes with a few API hooks: - -```javascript -Reveal.addEventListener( 'overviewshown', function( event ) { /* ... */ } ); -Reveal.addEventListener( 'overviewhidden', function( event ) { /* ... */ } ); - -// Toggle the overview mode programmatically -Reveal.toggleOverview(); -``` - -### Fullscreen mode - -Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode. - -### Embedded media - -Add `data-autoplay` to your media element if you want it to automatically start playing when the slide is shown: - -```html - -``` - -If you want to enable or disable autoplay globally, for all embedded media, you can use the `autoPlayMedia` configuration option. If you set this to `true` ALL media will autoplay regardless of individual `data-autoplay` attributes. If you initialize with `autoPlayMedia: false` NO media will autoplay. - -Note that embedded HTML5 `