diff --git a/website/docs/contributing/_category_.yml b/website/community/committers/_category_.yml similarity index 95% rename from website/docs/contributing/_category_.yml rename to website/community/committers/_category_.yml index 981dc164182e..b00a1aa98406 100644 --- a/website/docs/contributing/_category_.yml +++ b/website/community/committers/_category_.yml @@ -16,9 +16,9 @@ # under the License. position: 5 -label: 'Contributing' +label: 'Committers' collapsible: true collapsed: true link: type: generated-index - title: Contributing + title: Committers diff --git a/website/docs/contributing/committer.md b/website/community/committers/committer.md similarity index 99% rename from website/docs/contributing/committer.md rename to website/community/committers/committer.md index b0dbce766267..ab7313394568 100644 --- a/website/docs/contributing/committer.md +++ b/website/community/committers/committer.md @@ -1,5 +1,5 @@ --- -title: Committer Onboarding +title: Committer onboarding sidebar_position: 3 --- diff --git a/website/docs/contributing/gmail-smtp-setting.jpg b/website/community/committers/gmail-smtp-setting.jpg similarity index 100% rename from website/docs/contributing/gmail-smtp-setting.jpg rename to website/community/committers/gmail-smtp-setting.jpg diff --git a/website/docs/contributing/podling-report.md b/website/community/committers/podling-report.md similarity index 98% rename from website/docs/contributing/podling-report.md rename to website/community/committers/podling-report.md index 723fc30f5e76..4b09d3a6de51 100644 --- a/website/docs/contributing/podling-report.md +++ b/website/community/committers/podling-report.md @@ -1,5 +1,5 @@ --- -title: Podling Status Reports +title: Podling status reports sidebar_position: 4 --- diff --git a/website/docs/contributing/reference/_category_.yml b/website/community/committers/reference/_category_.yml similarity index 100% rename from website/docs/contributing/reference/_category_.yml rename to website/community/committers/reference/_category_.yml diff --git a/website/docs/contributing/reference/generate_release_note.md b/website/community/committers/reference/generate_release_note.md similarity index 94% rename from website/docs/contributing/reference/generate_release_note.md rename to website/community/committers/reference/generate_release_note.md index 441670683df9..fa06f1557bf9 100644 --- a/website/docs/contributing/reference/generate_release_note.md +++ b/website/community/committers/reference/generate_release_note.md @@ -1,5 +1,5 @@ --- -title: Generate Release Note +title: Generate release note --- This document describes how to generate release notes using GitHub: diff --git a/website/docs/contributing/reference/setup_gpg.md b/website/community/committers/reference/setup_gpg.md similarity index 97% rename from website/docs/contributing/reference/setup_gpg.md rename to website/community/committers/reference/setup_gpg.md index cc88e02e26b0..6d6be939a16b 100644 --- a/website/docs/contributing/reference/setup_gpg.md +++ b/website/community/committers/reference/setup_gpg.md @@ -1,8 +1,12 @@ --- -title: Setup GPG Key +title: Setup GPG key --- -> This section is a brief from the [Cryptography with OpenPGP](https://infra.apache.org/openpgp.html) guideline. +:::note + +This section is a brief from the [Cryptography with OpenPGP](https://infra.apache.org/openpgp.html) guideline. + +::: ## Install GPG diff --git a/website/docs/contributing/release.md b/website/community/committers/release.md similarity index 99% rename from website/docs/contributing/release.md rename to website/community/committers/release.md index 834f9391c008..04aa57564ac9 100644 --- a/website/docs/contributing/release.md +++ b/website/community/committers/release.md @@ -1,5 +1,5 @@ --- -title: Release +title: Create a OpenDAL Release sidebar_position: 1 --- diff --git a/website/docs/contributing/verify.md b/website/community/committers/verify.md similarity index 99% rename from website/docs/contributing/verify.md rename to website/community/committers/verify.md index 611666f77ed0..2eb471b0285d 100644 --- a/website/docs/contributing/verify.md +++ b/website/community/committers/verify.md @@ -1,5 +1,5 @@ --- -title: Verify +title: Verify a release candidate sidebar_position: 2 --- diff --git a/website/community/index.md b/website/community/index.md new file mode 100644 index 000000000000..a01e685f6190 --- /dev/null +++ b/website/community/index.md @@ -0,0 +1,65 @@ +--- +id: community +title: Community +sidebar_position: 1 +--- + +Every volunteer project obtains its strength from the people involved in it. We invite you to participate as much or as little as you choose. + +You can: + +* Use our project and provide a feedback. +* Provide us with the use-cases. +* Report bugs and submit patches. +* Contribute code, documentation. + +## Mailing list + +| Name | Desc | Subscribe | Unsubscribe | Post | Archive | +|----------------------------|---------------------------------|----------------------------------------------------------|--------------------------------------------------------------|----------------------------------------|--------------------------------------------------------------------------| +| dev@opendal.apache.org | Development related discussions | [Subscribe](mailto:dev-subscribe@opendal.apache.org) | [Unsubscribe](mailto:dev-unsubscribe@opendal.apache.org) | [Post](mailto:dev@opendal.apache.org) | [Archive](https://lists.apache.org/list.html?dev@opendal.apache.org) | +| commits@opendal.apache.org | All commits to our repositories | [Subscribe](mailto:commits-subscribe@opendal.apache.org) | [Unsubscribe](mailto:commits-unsubscribe@opendal.apache.org) | Read only list | [Archive](https://lists.apache.org/list.html?commits@opendal.apache.org) | + + +Please make sure you are subscribed to the mailing list you are posting to! + +If you are not subscribed to the mailing list, your message will either be rejected or you won't receive the response. + +### How to subscribe to a mailing list + +Before you can post a message to a mailing list, you need to subscribe to the list first. + +1. Send an email without any contents or subject to listname-subscribe@opendal.apache.org. (replace listname with dev or user) +2. Wait till you receive an email with the subject "confirm subscribe to listname@opendal.apache.org". Reply to that email, without editing the subject or including any contents. +3. Wait till you receive an email with the subject "WELCOME to listname@opendal.apache.org". + +If you email us with a code snippet, make sure that: + +* you do not link to files in external services as such files can change, get deleted or the link might break and thus make an archived email thread useless +* you paste text instead of screenshots of text +* you keep formatting when pasting code in order to keep the code readable +* there are enough import statements to avoid ambiguities + +## Issue tracker + +We use GitHub Issues to track all code related issues: https://github.com/apache/incubator-opendal/issues + +You must have a [GitHub account](https://github.com/signup) in order to log cases and issues. + +### Bug reports + +Found bug? Enter an issue in the issue tracker. + +Before submitting an issue, please: + +* Verify that the bug does in fact exist. +* Search the issue tracker to verify there is no existing issue reporting the bug you've found. +* Consider tracking down the bug yourself in the source code of OpenDAL and submitting a patch along with your bug report. This is a great time saver for the OpenDAL developers and helps ensure the bug will be fixed quickly. + +### Enhancement + +Enhancements or new feature proposals are also welcome. The more concrete and rationale the proposal is, the greater the chance it will be incorporated into future releases. + +## Source code + +* OpenDAL core repository: https://github.com/apache/incubator-opendal diff --git a/website/community/sidebars.js b/website/community/sidebars.js new file mode 100644 index 000000000000..7704508adcea --- /dev/null +++ b/website/community/sidebars.js @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +// @ts-check + +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +const sidebars = { + docs: [{ type: 'autogenerated', dirName: '.' }], +}; + +module.exports = sidebars; diff --git a/website/docs/overview.md b/website/docs/overview.md index a383a403a140..598a5215c833 100644 --- a/website/docs/overview.md +++ b/website/docs/overview.md @@ -9,8 +9,64 @@ OpenDAL represents **Open** **D**ata **A**ccess **L**ayer. Our vision is to **ac ![](https://user-images.githubusercontent.com/5351546/222356748-14276998-501b-4d2a-9b09-b8cff3018204.png) -See the page for our vision in details: [Vision](vision.md). - ## Getting started -See the page for quick start with multiple languages: [Getting started](getting-started.md). +See the page for quick start with multiple languages: [Quickstart](quickstart.md). + +## Why OpenDAL? + +The vision of OpenDAL is access data freely, where "free" refers to four essential aspects: + +### 1. Free from services + +OpenDAL must enable users to access various storage services ranging from `s3` to `dropbox` via its own native API. It should provide a unified API for accessing all these services. + +For example, we DO + +- Add support for [Google Drive](https://www.google.com/drive/): It allows users to access and manage their data on the [Google Drive](https://www.google.com/drive/). +- Add support for [Object Storage Service (OSS)](https://www.alibabacloud.com/product/object-storage-service) via native API: Users can utilize Aliyun's RAM support. +- Add support for [supabase storage](https://supabase.com/docs/guides/storage): Users can visit `supabase storage` now! + +while we DO NOT + +- Add support for [Google Cloud Storage(GCS)](https://cloud.google.com/storage) via [XML API](https://cloud.google.com/storage/docs/xml-api/overview): [GCS](https://cloud.google.com/storage) has native [JSON API](https://cloud.google.com/storage/docs/json_api) which more powerful +- Add support for structural data in `MySQL/PostgreSQL`: We can treat a database as a simple key-value store, but we can't support unified access of structural data. + +### 2. Free from implementations + +OpenDAL needs to separate the various implementation details of services and enables users to write identical logic for different services. + +For example, we DO + +- Add a new capability to indicate whether `presign` is supported: Users can now write logic based on the `can_presign` option. +- Add a `default_storage_class` configuration for the S3 service: Configuration is specific to the S3 service. +- Add an option for `content_type` in the `write` operation: It aligns with HTTP standards. + +while we DO NOT + +- Add a new option in read for `storage_class`: As different services could have varying values for this parameter. + +### 3. Free to integrate + +OpenDAL needs to be integrated with different systems. + +For example, we DO + +- Add Python binding: Python programmers can use OpenDAL. +- Add object_store integration: `object_store` users can adopt OpenDAL. + +### 4. Free to zero cost + +OpenDAL needs to implement features in zero cost way which means: + +- Users need not to pay cost for unused features. +- Users cannot write better implementation for used features. + +For example, we DO + +- Add `layer` support: Users can add logging/metrics/tracing in zero cost way. +- Implement `seek` for Reader: Users cannot write better `seek` support, they all need to pay the same cost. + +we DO NOT + +- Add `Arc` for metadata: Users may only need to use metadata once and never clone it. For those who do want this feature, they can add `Arc` themselves. diff --git a/website/docs/getting-started.md b/website/docs/quickstart.md similarity index 86% rename from website/docs/getting-started.md rename to website/docs/quickstart.md index 0feb7304756a..66016470ddda 100644 --- a/website/docs/getting-started.md +++ b/website/docs/quickstart.md @@ -1,5 +1,5 @@ --- -title: Getting started +title: Quickstart sidebar_position: 3 --- @@ -131,8 +131,11 @@ For details in specifying classified library, read the [dedicated explanation](h Try it out: ```java +// Configure service final Map conf = new HashMap<>(); -final Operator op = Operator.of("memory", conf); +conf.put("root", "/tmp"); +// Construct operator +final Operator op = Operator.of("fs", conf); // Write data op.write("hello.txt", "Hello, World!").join(); // Read data @@ -143,8 +146,20 @@ op.delete("hello.txt").join(); ## Python binding +OpenDAL's Python binding is released to PyPI repository as [`opendal`](https://pypi.org/project/opendal/). + +### Install + +Run the following command to install `opendal`: + +```shell +pip install opendal +``` + ### Demo +Try it out: + ```python import opendal import asyncio @@ -159,8 +174,20 @@ asyncio.run(main()) ## Node.js binding +OpenDAL's Python binding is released to npm registry as [`opendal`](https://www.npmjs.com/package/opendal). + +### Install + +Run the following command to install `opendal`: + +```shell +npm install opendal +``` + ### Demo +Try it out: + ```javascript import { Operator } from "opendal"; diff --git a/website/docs/services/http.mdx b/website/docs/services/http.mdx index c7fd058ce6d8..522da54fd292 100644 --- a/website/docs/services/http.mdx +++ b/website/docs/services/http.mdx @@ -1,5 +1,5 @@ --- -title: Http +title: HTTP --- HTTP Read-only service support like [Nginx](https://www.nginx.com/) and [Caddy](https://caddyserver.com/). diff --git a/website/docs/vision.md b/website/docs/vision.md deleted file mode 100644 index 2323e6235f72..000000000000 --- a/website/docs/vision.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Vision -sidebar_position: 2 ---- - -The VISION of OpenDAL is: **access data freely**. - ---- - -This is an overview of what the shape of OpenDAL looks like, but also somewhat zoomed out, so that the vision can survive while the exact minute details might shift and change over time. - -## 1. Free from services - -OpenDAL must enable users to access various storage services ranging from `s3` to `dropbox` via its own native API. It should provide a unified API for accessing all these services. - -### Examples - -We -- Add support for [Google Drive](https://www.google.com/drive/): It allows users to access and manage their data on the [Google Drive](https://www.google.com/drive/). -- Add support for [Object Storage Service (OSS)](https://www.alibabacloud.com/product/object-storage-service) via native API: Users can utilize Aliyun's RAM support. -- Add support for [supabase storage](https://supabase.com/docs/guides/storage): Users can visit `supabase storage` now! - -We don't -- Add support for [Google Cloud Storage(GCS)](https://cloud.google.com/storage) via [XML API](https://cloud.google.com/storage/docs/xml-api/overview): [GCS](https://cloud.google.com/storage) has native [JSON API](https://cloud.google.com/storage/docs/json_api) which more powerful -- Add support for structural data in `MySQL/PostgreSQL`: We can treat a database as a simple key value store, but we can't support unified access of structural data. - -## 2. Free from implementations - -OpenDAL needs to separate the various implementation details of services and enables users to write identical logic for different services. - -### Examples - -We -- Add a new capability to indicate whether `presign` is supported: Users can now write logic based on the `can_presign` option. -- Add a `default_storage_class` configuration for the S3 service: Configuration is specific to the S3 service. -- Add an option for `content_type` in the `write` operation: It aligns with HTTP standards. - -We don't -- Add a new option in read for `storage_class`: As different services could have varying values for this parameter. - -## 3. Free to integrate - -OpenDAL needs to be integrated with different systems. - -### Examples - -We -- Add python binding: users from `python` can use OpenDAL. -- Add object_store integration: users of `object_store` can adopt OpenDAL. - -## 4. Free to zero cost - -OpenDAL needs to implement features in zero cost way which means: - -- Users don't need to pay cost for not used features. -- Users can't write better implementation for used features. - -### Examples - -We -- Add `layer` support: Users can add logging/metrics/tracing in zero cost way. -- Implement `seek` for Reader: Users can't write better `seek` support, they all need to pay the same cost. - -We don't -- Add `Arc` for metadata: Users may only need to use metadata once and never clone it. For those who do want this feature, they can add `Arc` themselves. diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 86b50f54eaeb..302e1827b04d 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -74,6 +74,20 @@ const config = { ], ], + plugins: [ + [ + '@docusaurus/plugin-content-docs', + { + id: 'community', + path: 'community', + routeBasePath: 'community', + sidebarPath: require.resolve('./community/sidebars.js'), + editUrl: 'https://github.com/apache/incubator-opendal/tree/main/website/', + }, + ], + [require.resolve("docusaurus-plugin-image-zoom"), {}], +], + themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ @@ -94,22 +108,10 @@ const config = { }, items: [ { + type: 'doc', + docId: 'overview', position: 'right', label: 'Docs', - items: [ - { - label: 'Overview', - to: '/docs/overview' - }, - { - label: 'Contributing', - to: '/docs/category/contributing' - }, - { - label: 'Services', - to: '/docs/category/services' - }, - ] }, { position: 'right', @@ -155,23 +157,11 @@ const config = { position: 'right' }, { - type: 'dropdown', - label: 'Community', + type: 'doc', + docId: 'community', position: 'right', - items: [ - { - label: 'Source Code', - to: repoAddress - }, - { - label: 'Issues Tracker', - to: `${repoAddress}/issues/` - }, - { - label: 'Code of Conduct', - to: 'https://www.apache.org/foundation/policies/conduct.html' - } - ] + label: 'Community', + docsPluginId: 'community' }, { to: '/download', @@ -211,6 +201,10 @@ const config = { label: 'Thanks', to: 'https://www.apache.org/foundation/thanks.html' }, + { + label: 'Code of Conduct', + to: 'https://www.apache.org/foundation/policies/conduct.html' + } ] }, { @@ -240,7 +234,7 @@ const config = { prism: { theme: lightCodeTheme, darkTheme: darkCodeTheme, - additionalLanguages: ['rust'], + additionalLanguages: ['rust', 'java', 'groovy'], }, }), }; diff --git a/website/package.json b/website/package.json index f7ac51cfdda8..f2c0be83d36c 100644 --- a/website/package.json +++ b/website/package.json @@ -18,6 +18,7 @@ "@docusaurus/preset-classic": "^2.4", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", + "docusaurus-plugin-image-zoom": "^0.1.1", "prism-react-renderer": "^1.3.5", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/website/src/components/HomepageFeatures/_feature_languages.mdx b/website/src/components/HomepageFeatures/_feature_languages.mdx index 570778a24be6..94c246f73135 100644 --- a/website/src/components/HomepageFeatures/_feature_languages.mdx +++ b/website/src/components/HomepageFeatures/_feature_languages.mdx @@ -1,39 +1,3 @@ -Apache OpenDAL provides [Rust Core](pathname:///docs/rust/opendal/) and builds different language bindings like [Node.js Binding](pathname:///docs/nodejs/) and [Python Binding](pathname:///docs/python/). +Apache OpenDAL provides a core implementation in Rust as well as multilingual bindings, such as Java, Python, and Node.js. -> *More bindings like [C](https://github.com/apache/incubator-opendal/blob/main/bindings/c/README.md), [Java](https://github.com/apache/incubator-opendal/blob/main/bindings/java/README.md), [Ruby](https://github.com/apache/incubator-opendal/blob/main/bindings/ruby/README.md) are still being worked on.* - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - -```rust -use opendal::Operator; - -let op = Operator::via_map(Scheme::Fs, HashMap::new())?; -op.read("path/to/file").await?; -``` - - - - -```javascript -import { Operator } from "opendal"; - -const op = new Operator("fs", {}); -await op.read("path/to/file") -``` - - - - -```python -import opendal - -op = opendal.Operator("fs") -op.read("path/to/file") -``` - - - +Getting started with the Rust core or multilingual bindings with the [Quickstart](/docs/quickstart) guide. \ No newline at end of file diff --git a/website/src/components/HomepageFeatures/_feature_layers.mdx b/website/src/components/HomepageFeatures/_feature_layers.mdx index 953d75666c32..f61de675e62b 100644 --- a/website/src/components/HomepageFeatures/_feature_layers.mdx +++ b/website/src/components/HomepageFeatures/_feature_layers.mdx @@ -1,8 +1,3 @@ Apache OpenDAL offers native layer support, enabling users to implement middleware or intercept for all operations. -By using layers, we can: - -- `RetryLayer`: Automatically retry failed requests and resume from the point of failure. -- `ChaosLayer`: Generate simulated chaos for storage services. -- `ConcurrentLimitLayer`: Set concurrent limit while accessing storage services. -- `{Logging|Metrics|Tracing}Layer`: Provide native observability for storage services. +By using layers, we can retry failed requests and resume from the point of failure with RetryLayer, provide native observability with TracingLayer, and so on. diff --git a/website/src/components/HomepageFeatures/_feature_services.mdx b/website/src/components/HomepageFeatures/_feature_services.mdx index 4bedab6ac502..b917c0b4a669 100644 --- a/website/src/components/HomepageFeatures/_feature_services.mdx +++ b/website/src/components/HomepageFeatures/_feature_services.mdx @@ -1,70 +1,3 @@ -Apache OpenDAL provides native support for all kinds for storage systems. +Apache OpenDAL provides native support for all kinds for storage systems, including object storage services, file storage services, and many. -
-Standard Storage Protocols - -- ftp: FTP and FTPS -- http: HTTP read-only services -- sftp: [SFTP](https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02) services *being worked on* -- webdav: [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) Service - -
- -
-Object Storage Services - -- azblob: [Azure Storage Blob](https://azure.microsoft.com/en-us/services/storage/blobs/) services -- gcs: [Google Cloud Storage](https://cloud.google.com/storage) Service -- obs: [Huawei Cloud Object Storage](https://www.huaweicloud.com/intl/en-us/product/obs.html) Service (OBS) -- oss: [Aliyun Object Storage Service](https://www.aliyun.com/product/oss) (OSS) -- s3: [AWS S3](https://aws.amazon.com/s3/) alike services -- supabase: [Supabase Storage](https://supabase.com/docs/guides/storage) Service *being worked on* -- wasabi: [Wasabi](https://wasabi.com/) Cloud Storage - -
- -
-File Storage Services - -- fs: POSIX alike file system -- azdls: [Azure Data Lake Storage Gen2](https://azure.microsoft.com/en-us/products/storage/data-lake-storage/) services (As known as [abfs](https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-abfs-driver)) -- hdfs: [Hadoop Distributed File System](https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html)(HDFS) -- ipfs: [InterPlanetary File System](https://ipfs.tech/) HTTP Gateway -- ipmfs: [InterPlanetary File System](https://ipfs.tech/) MFS API *being worked on* -- webhdfs: [WebHDFS](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html) Service - -
- -
-Consumer Cloud Storage Service - -- gdrive: [Google Drive](https://www.google.com/drive/) *being worked on* -- onedrive: [OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage) *being worked on* - -
- -
-Key-Value Storage Service - -- cacache: [cacache](https://crates.io/crates/cacache) backend -- dashmap: [dashmap](https://github.com/xacrimon/dashmap) backend -- memory: In memory backend -- persy: [persy](https://crates.io/crates/persy) backend -- redis: [Redis](https://redis.io/) services -- rocksdb: [RocksDB](http://rocksdb.org/) services -- sled: [sled](https://crates.io/crates/sled) backend -- redb: [redb](https://crates.io/crates/redb) backend -- atomicserver: [Atomicserver](https://github.com/atomicdata-dev/atomic-server) services - -
- -
-Cache Storage Service - -- ghac: [GitHub Action Cache](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows) Service -- memcached: [Memcached](https://memcached.org/) service -- mini_moka: [Mini Moka](https://github.com/moka-rs/mini-moka) backend -- moka: [Moka](https://github.com/moka-rs/moka) backend -- vercel_artifacts: [Vercel Remote Caching](https://vercel.com/docs/concepts/monorepos/remote-caching) Service *being worked on* - -
+Check the [Services](/docs/category/services) docs to access data stored in AWS S3, Apache HDFS, Redis, etc. diff --git a/website/yarn.lock b/website/yarn.lock index 5b16ce1e36bc..8d84e8a4a2ed 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -4834,6 +4834,15 @@ __metadata: languageName: node linkType: hard +"docusaurus-plugin-image-zoom@npm:^0.1.1": + version: 0.1.4 + resolution: "docusaurus-plugin-image-zoom@npm:0.1.4" + dependencies: + medium-zoom: ^1.0.6 + checksum: 5243476e5344b1a881a32a8a66aaa2e2ad7813d71980828b8da1fbb57782c2e6382a9cb5ce1efc4e5e0e61d668ec47ec7063145b1130d3209377e941fbb66e40 + languageName: node + linkType: hard + "dom-converter@npm:^0.2.0": version: 0.2.0 resolution: "dom-converter@npm:0.2.0" @@ -7123,6 +7132,13 @@ __metadata: languageName: node linkType: hard +"medium-zoom@npm:^1.0.6": + version: 1.0.8 + resolution: "medium-zoom@npm:1.0.8" + checksum: b65be8546ab255936271e15a17524677808774140199e58c4dc0bae131b504a13e481c4f483ca8a862d32636dd4996bd7ed0a005c1f6213c3c764aa03fbbc48e + languageName: node + linkType: hard + "memfs@npm:^3.1.2, memfs@npm:^3.4.3": version: 3.4.13 resolution: "memfs@npm:3.4.13" @@ -7654,6 +7670,7 @@ __metadata: "@docusaurus/preset-classic": ^2.4 "@mdx-js/react": ^1.6.22 clsx: ^1.2.1 + docusaurus-plugin-image-zoom: ^0.1.1 prism-react-renderer: ^1.3.5 react: ^17.0.2 react-dom: ^17.0.2