This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch fix-website
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git

commit bfbc39e88041587860ef9675cfa760cbfdc50a5b
Author: Xuanwo <[email protected]>
AuthorDate: Tue May 23 12:15:29 2023 +0800

    docs: Remove unlicensed svg
    
    Signed-off-by: Xuanwo <[email protected]>
---
 .../HomepageFeatures/_feature_languages.mdx        | 39 +++++++++++++
 .../HomepageFeatures/_feature_layers.mdx           |  8 +++
 .../HomepageFeatures/_feature_services.mdx         | 65 ++++++++++++++++++++++
 website/src/components/HomepageFeatures/index.js   | 42 ++++++--------
 website/src/pages/index.js                         | 11 +---
 website/static/img/undraw_adventure.svg            |  1 -
 website/static/img/undraw_i_can_fly.svg            |  1 -
 website/static/img/undraw_outer_space.svg          |  1 -
 8 files changed, 132 insertions(+), 36 deletions(-)

diff --git a/website/src/components/HomepageFeatures/_feature_languages.mdx 
b/website/src/components/HomepageFeatures/_feature_languages.mdx
new file mode 100644
index 00000000..c0e52765
--- /dev/null
+++ b/website/src/components/HomepageFeatures/_feature_languages.mdx
@@ -0,0 +1,39 @@
+Apache OpenDAL provides [Rust Core](/docs/rust/opendal) and builds different 
langauge bindings like [Node.js Binding](/docs/nodejs) and [Python 
Binding](/docs/python).
+
+> *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 working on.*
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+<Tabs>
+  <TabItem value="rust" label="Rust" default>
+
+```rust
+use opendal::Operator;
+
+let op = Operator::via_map(Scheme::Fs, HashMap::new()?;
+op.read("path/to/file").await?;
+```
+
+  </TabItem>
+  <TabItem value="node.js" label="Node.js">
+
+```javascript
+import { Operator } from "opendal";
+
+const op = new Operator("fs", {});
+await op.read("path/to/file")
+```
+
+  </TabItem>
+  <TabItem value="python" label="Python">
+
+```python
+import opendal
+
+op = opendal.Operator("fs")
+op.read("path/to/file")
+```
+
+  </TabItem>
+</Tabs>
diff --git a/website/src/components/HomepageFeatures/_feature_layers.mdx 
b/website/src/components/HomepageFeatures/_feature_layers.mdx
new file mode 100644
index 00000000..953d7566
--- /dev/null
+++ b/website/src/components/HomepageFeatures/_feature_layers.mdx
@@ -0,0 +1,8 @@
+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.
diff --git a/website/src/components/HomepageFeatures/_feature_services.mdx 
b/website/src/components/HomepageFeatures/_feature_services.mdx
new file mode 100644
index 00000000..36b3520d
--- /dev/null
+++ b/website/src/components/HomepageFeatures/_feature_services.mdx
@@ -0,0 +1,65 @@
+Apache OpenDAL provides native support for all kinds for storage systems.
+
+<details>
+<summary>Standard Storage Protocols</summary>
+
+- fs: POSIX alike file system
+- ftp: FTP and FTPS
+- http: HTTP read-only services
+- sftp: 
[SFTP](https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02) 
services *working on*
+- webdav: [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) Service
+
+</details>
+
+<details>
+<summary>Object Storage Services</summary>
+
+- 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 *working on*
+- wasabi: [Wasabi](https://wasabi.com/) Cloud Storage
+
+</details>
+
+<details>
+<summary>File Storage Services</summary>
+
+- azdfs: [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 *working on*
+- webhdfs: 
[WebHDFS](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html)
 Service
+
+</details>
+
+<details>
+<summary>Consumer Cloud Storage Service</summary>
+
+- gdrive: [Google Drive](https://www.google.com/drive/) *working on*
+- onedrive: 
[OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage)
 *working on*
+
+</details>
+
+<details>
+<summary>Key-Value Storage Service</summary>
+
+- dashmap: [dashmap](https://github.com/xacrimon/dashmap) backend
+- memory: In memory backend
+- redis: [Redis](https://redis.io/) services
+- rocksdb: [RocksDB](http://rocksdb.org/) services
+- sled: [sled](https://crates.io/crates/sled) backend
+
+</details>
+
+<details>
+<summary>Cache Storage Service</summary>
+
+- 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
+- moka: [moka](https://github.com/moka-rs/moka) backend
+- vercel_artifacts: [Vercel Remote 
Caching](https://vercel.com/docs/concepts/monorepos/remote-caching) Service 
*working on*
+
+</details>
diff --git a/website/src/components/HomepageFeatures/index.js 
b/website/src/components/HomepageFeatures/index.js
index 0b9a9a78..a3ff8407 100644
--- a/website/src/components/HomepageFeatures/index.js
+++ b/website/src/components/HomepageFeatures/index.js
@@ -20,54 +20,48 @@
 import React from 'react';
 import clsx from 'clsx';
 import styles from './styles.module.css';
-import Link from "@docusaurus/Link";
+import FeatureLanguages from './_feature_languages.mdx';
+import FeatureServices from './_feature_services.mdx';
+import FeatureLayers from './_feature_layers.mdx';
+import MDXContent from '@theme/MDXContent';
 
 const FeatureList = [
   {
-    title: 'Access data freely',
-    Svg: require('@site/static/img/undraw_adventure.svg').default,
+    title: 'Languages',
     description: (
       <>
-        <div>Access different storage services in the same way</div>
-        <div>Behavior tests for all services</div>
-        <div>Cross language/project bindings (working on)</div>
+        <MDXContent>
+          <FeatureLanguages />
+        </MDXContent>
       </>
     ),
   },
   {
-    title: 'Access data painlessly',
-    Svg: require('@site/static/img/undraw_i_can_fly.svg').default,
+    title: 'Services',
     description: (
       <>
-        <div><b>100%</b> documents covered</div>
-        <div>Powerful <Link 
href="https://docs.rs/opendal/latest/opendal/layers/index.html";>Layers</Link></div>
-        <div>Automatic <Link 
href="https://docs.rs/opendal/latest/opendal/layers/struct.RetryLayer.html";>retry</Link>
 support</div>
-        <div>Full observability: <Link 
href="https://docs.rs/opendal/latest/opendal/layers/struct.LoggingLayer.html";>logging</Link>,
 <Link
-          
href="https://docs.rs/opendal/latest/opendal/layers/struct.TracingLayer.html";>tracing</Link>,
 <Link 
href="https://docs.rs/opendal/latest/opendal/layers/struct.MetricsLayer.html";>metrics</Link>.</div>
-        <div><Link 
href="https://docs.rs/opendal/latest/opendal/layers/struct.ChaosLayer.html";>Native
 chaos testing</Link></div>
+        <MDXContent>
+          <FeatureServices />
+        </MDXContent>
       </>
     ),
   },
   {
-    title: 'Access data efficiently',
-    Svg: require('@site/static/img/undraw_outer_space.svg').default,
+    title: 'Layers',
     description: (
       <>
-        <div>Zero cost: Maps to API calls directly</div>
-        <div>Best effort: Automatically selects best read/seek/next based on 
services</div>
-        <div>Avoid extra calls: Reuses metadata when possible</div>
+        <MDXContent>
+          <FeatureLayers />
+        </MDXContent>
       </>
     ),
   },
 ];
 
-function Feature({Svg, title, description}) {
+function Feature({ Svg, title, description }) {
   return (
     <div className={clsx('col col--4')}>
-      <div className="text--center">
-        <Svg className={styles.featureSvg} role="img" />
-      </div>
-      <div className="text--center padding-horiz--md">
+      <div className="padding-horiz--md">
         <h3>{title}</h3>
         <div>{description}</div>
       </div>
diff --git a/website/src/pages/index.js b/website/src/pages/index.js
index 1f747453..d8006eba 100644
--- a/website/src/pages/index.js
+++ b/website/src/pages/index.js
@@ -32,15 +32,8 @@ function HomepageHeader() {
       <div className="container">
         <h1 className="hero__title">{siteConfig.title}</h1>
         <p className="hero__subtitle">
-          <b>Open</b> <b>D</b>ata <b>A</b>ccess <b>L</b>ayer: Access data 
<b>freely</b>, <b>painlessly</b>, and <b>efficiently</b>
+          Open <b>D</b>ata <b>A</b>ccess <b>L</b>ayer: Access data freely
         </p>
-        <div className={styles.buttons}>
-          <a
-            className="button button--secondary button--lg"
-            href="/docs/rust/opendal">
-            Get Start
-          </a>
-        </div>
       </div>
     </header>
   );
@@ -50,7 +43,7 @@ export default function Home() {
   const { siteConfig } = useDocusaurusContext();
   return (
     <Layout
-      description="OpenDAL is the Open Data Access Layer to freely, 
painlessly, and efficiently access data.">
+      description="OpenDAL is the Open Data Access Layer to access data 
freely.">
       <HomepageHeader />
       <main>
         <HomepageFeatures />
diff --git a/website/static/img/undraw_adventure.svg 
b/website/static/img/undraw_adventure.svg
deleted file mode 100644
index 5cc5116f..00000000
--- a/website/static/img/undraw_adventure.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg"; data-name="Layer 1" width="881.63115" 
height="587.66492" viewBox="0 0 881.63115 587.66492" 
xmlns:xlink="http://www.w3.org/1999/xlink";><polygon points="150.925 561.321 
164.207 564.918 184.406 515.395 164.801 510.085 150.925 561.321" 
fill="#ffb6b6"/><path 
d="M303.0762,731.06123l40.84755,11.06361.13994-.5166a16.47276,16.47276,0,0,0-11.592-20.20547l-.001-.00026-5.92787-7.68168-15.45468,1.89028-3.56573-.9658Z"
 transform="translate(-156.3731 -156.0101)"  [...]
\ No newline at end of file
diff --git a/website/static/img/undraw_i_can_fly.svg 
b/website/static/img/undraw_i_can_fly.svg
deleted file mode 100644
index eaa024b6..00000000
--- a/website/static/img/undraw_i_can_fly.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg"; data-name="Layer 1" width="1030.57471" 
height="696.9775" viewBox="0 0 1030.57471 696.9775" 
xmlns:xlink="http://www.w3.org/1999/xlink";><title>i can fly</title><path 
d="M831.93752,263.72788a60.64529,60.64529,0,0,1,60.56127-57.47579c1.84313,0,3.66317.09612,5.46442.25711a80.5744,80.5744,0,0,1,139.28388-.06586c1.51962-.11413,3.04946-.19125,4.59825-.19125a60.6453,60.6453,0,0,1,60.56127,57.47579"
 transform="translate(-84.96231 -101.26125)" fill="#f2f2f2"/ [...]
\ No newline at end of file
diff --git a/website/static/img/undraw_outer_space.svg 
b/website/static/img/undraw_outer_space.svg
deleted file mode 100644
index 0f93507e..00000000
--- a/website/static/img/undraw_outer_space.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg"; data-name="Layer 1" width="902.41854" 
height="826.20679" viewBox="0 0 902.41854 826.20679" 
xmlns:xlink="http://www.w3.org/1999/xlink";><path 
d="M726.94952,696.70767l8.67165,19.44392c-7.04887-1.12221-13.60391,4.89778-13.75121,12.62878s6.13979,15.77421,13.18911,16.8731c-1.34708,6.00231-7.16088,8.64855-12.20732,11.07451s-10.48544,6.44956-10.11,12.84517c.30146,5.13535,4.548,9.66922,9.05769,11.49215s9.24135,1.54272,13.80858,1.23684c-6.921,7.23984-7.59561
 [...]
\ No newline at end of file

Reply via email to