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

juzhiyuan pushed a commit to branch revert-641-feat-update-blogPage
in repository https://gitbox.apache.org/repos/asf/apisix-website.git

commit d3bd031bbc675c7cec26fc4fc230a19af52a268d
Author: 琚致远 <[email protected]>
AuthorDate: Wed Oct 6 21:49:15 2021 +0800

    Revert "feat: support tags on Blog list (#641)"
    
    This reverts commit 4726812dfabc2f858778cbfe620939fa44e12534.
---
 website/docusaurus.config.js                     |   1 -
 website/src/assets/icons/blog-date.svg           |   1 -
 website/src/assets/icons/blog-tags.svg           |   1 -
 website/src/theme/BlogListPage/index.js          |  87 ---------------
 website/src/theme/BlogListPage/styles.module.css |  18 ---
 website/src/theme/BlogPostItem/index.js          | 134 -----------------------
 website/src/theme/BlogPostItem/styles.module.css |  76 -------------
 website/src/theme/BlogPostPage/index.js          |  74 -------------
 website/src/theme/BlogPostPage/styles.module.css |   6 -
 website/src/theme/BlogSidebar/index.js           |  66 -----------
 website/src/theme/BlogSidebar/styles.module.css  |  68 ------------
 website/src/theme/BlogTagsPostsPage/index.js     |  68 ------------
 12 files changed, 600 deletions(-)

diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 2f5b8bd..44bafb9 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -240,7 +240,6 @@ module.exports = {
         },
         blog: {
           path: "blog",
-          postsPerPage: 'ALL',
         },
         theme: {
           customCss: "../src/css/customTheme.css",
diff --git a/website/src/assets/icons/blog-date.svg 
b/website/src/assets/icons/blog-date.svg
deleted file mode 100644
index cd21dbd..0000000
--- a/website/src/assets/icons/blog-date.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg width="16" height="16" viewBox="0 0 
48 48" fill="none" xmlns="http://www.w3.org/2000/svg";><rect width="48" 
height="48" fill="white" fill-opacity="0.01"/><path d="M24 44C35.0457 44 44 
35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 
12.9543 44 24 44Z" fill="none" stroke="#333" stroke-width="4" 
stroke-linejoin="round"/><path d="M24.0083 12L24.0071 24.0088L32.4865 32.4882" 
stroke="#333" stroke-width="4" stroke-linecap="rou [...]
\ No newline at end of file
diff --git a/website/src/assets/icons/blog-tags.svg 
b/website/src/assets/icons/blog-tags.svg
deleted file mode 100644
index 5072247..0000000
--- a/website/src/assets/icons/blog-tags.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg width="16" height="16" viewBox="0 0 
48 48" fill="none" xmlns="http://www.w3.org/2000/svg";><rect width="48" 
height="48" fill="white" fill-opacity="0.01"/><path d="M42.1691 29.2451L29.2631 
42.1511C28.5879 42.8271 27.6716 43.2069 26.7161 43.2069C25.7606 43.2069 24.8444 
42.8271 24.1691 42.1511L8 26V8H26L42.1691 24.1691C43.5649 25.5732 43.5649 
27.841 42.1691 29.2451Z" fill="none" stroke="#333" stroke-width="4" 
stroke-linejoin="round"/><path fill-rule [...]
\ No newline at end of file
diff --git a/website/src/theme/BlogListPage/index.js 
b/website/src/theme/BlogListPage/index.js
deleted file mode 100644
index 4674426..0000000
--- a/website/src/theme/BlogListPage/index.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-import React, { useEffect, useState } from 'react';
-import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
-import Layout from '@theme/Layout';
-import BlogPostItem from '@theme/BlogPostItem';
-import BlogListPaginator from '@theme/BlogListPaginator';
-import BlogSidebar from '@theme/BlogSidebar';
-import { ThemeClassNames } from '@docusaurus/theme-common';
-
-import styles from './styles.module.css';
-
-function BlogListPage(props) {
-  const { metadata, items } = props;
-  const {
-    siteConfig: { title: siteTitle },
-  } = useDocusaurusContext();
-  const { blogDescription, blogTitle, permalink } = metadata;
-  const isBlogOnlyMode = permalink === '/';
-  const title = isBlogOnlyMode ? siteTitle : blogTitle;
-  const [tagsCount, setTagsCount] = useState();
-
-  useEffect(() => {
-    let totalTags = [];
-    items.forEach(item => {
-      const tags = item.content.frontMatter.tags;
-      if (tags) {
-        totalTags = totalTags.concat(tags);
-      }
-    });
-    const tagsCount = {
-      All: items.length,
-    };
-    totalTags.forEach(item => {
-      tagsCount[item] = (tagsCount[item] || 0) + 1;
-    });
-    localStorage.setItem('tagsTotal', JSON.stringify(tagsCount));
-    setTagsCount(tagsCount);
-  }, []);
-
-  return (
-    <Layout
-      title={title}
-      description={blogDescription}
-      wrapperClassName={ThemeClassNames.wrapper.blogPages}
-      pageClassName={ThemeClassNames.page.blogListPage}
-      searchMetadatas={{
-        // assign unique search tag to exclude this page from search results!
-        tag: 'blog_posts_list',
-      }}>
-      <div className={styles.backgroundBox}></div>
-      <div className="container margin-vert--lg">
-        <div className={styles.titleBox}>
-          <div className="row">
-            <div className="col col--12">
-              <h1>Blog</h1>
-              <span>We love open source.</span>
-            </div>
-          </div>
-        </div>
-        <div className="row">
-          <div className="col col--3">
-            <BlogSidebar count={tagsCount} />
-          </div>
-          <main className="col col--9">
-            {items.map(({ content: BlogPostContent }) => (
-              <BlogPostItem
-                key={BlogPostContent.metadata.permalink}
-                frontMatter={BlogPostContent.frontMatter}
-                metadata={BlogPostContent.metadata}
-                truncated={BlogPostContent.metadata.truncated}>
-                <BlogPostContent />
-              </BlogPostItem>
-            ))}
-            <BlogListPaginator metadata={metadata} />
-          </main>
-        </div>
-      </div>
-    </Layout>
-  );
-}
-
-export default BlogListPage;
diff --git a/website/src/theme/BlogListPage/styles.module.css 
b/website/src/theme/BlogListPage/styles.module.css
deleted file mode 100644
index 72b2590..0000000
--- a/website/src/theme/BlogListPage/styles.module.css
+++ /dev/null
@@ -1,18 +0,0 @@
-.backgroundBox {
-  position: absolute;
-  width: 100%;
-  min-height: 150px;
-  z-index: -1;
-}
-
-.titleBox {
-  position: relative;
-  margin-bottom: 50px !important;
-}
-
-.titleBox h1 {
-  margin-top: 2rem;
-  font-size: 4rem;
-  font-weight: 800;
-  text-transform: uppercase;
-}
diff --git a/website/src/theme/BlogPostItem/index.js 
b/website/src/theme/BlogPostItem/index.js
deleted file mode 100644
index 389a276..0000000
--- a/website/src/theme/BlogPostItem/index.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-import React from 'react';
-import clsx from 'clsx';
-import { MDXProvider } from '@mdx-js/react';
-import { translate } from '@docusaurus/Translate';
-import Link from '@docusaurus/Link';
-import MDXComponents from '@theme/MDXComponents';
-import Seo from '@theme/Seo';
-
-import styles from './styles.module.css';
-import { usePluralForm } from '@docusaurus/theme-common'; // Very simple 
pluralization: probably good enough for now
-import TagsLogo from "../../assets/icons/blog-tags.svg";
-import DateLogo from "../../assets/icons/blog-date.svg";
-
-function useReadingTimePlural() {
-  const { selectMessage } = usePluralForm();
-  return (readingTimeFloat) => {
-    const readingTime = Math.ceil(readingTimeFloat);
-    return selectMessage(
-      readingTime,
-      translate(
-        {
-          id: 'theme.blog.post.readingTime.plurals',
-          description:
-            'Pluralized label for "{readingTime} min read". Use as much plural 
forms (separated by "|") as your language support (see 
https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',
-          message: 'One min read|{readingTime} min read',
-        },
-        {
-          readingTime,
-        },
-      ),
-    );
-  };
-}
-
-function BlogPostItem(props) {
-  const readingTimePlural = useReadingTimePlural();
-  const {
-    children,
-    frontMatter,
-    metadata,
-    truncated,
-    isBlogPostPage = false,
-  } = props;
-  const { date, formattedDate, permalink, tags, readingTime } = metadata;
-  const { author, title, image, keywords } = frontMatter;
-  const authorURL = frontMatter.author_url || frontMatter.authorURL;
-  const authorTitle = frontMatter.author_title || frontMatter.authorTitle;
-  const authorImageURL =
-    frontMatter.author_image_url || frontMatter.authorImageURL;
-
-  const renderPostHeader = () => {
-    const TitleHeading = isBlogPostPage ? 'h1' : 'h2';
-    return (
-      <header>
-        <TitleHeading
-          className={clsx('margin-bottom--sm', styles.blogPostTitle)}>
-          {isBlogPostPage ? title : <Link to={permalink}>{title}</Link>}
-        </TitleHeading>
-      </header>
-    );
-  };
-
-  return (
-    <>
-      <Seo
-        {...{
-          keywords,
-          image,
-        }}
-      />
-
-      <article className={!isBlogPostPage ? styles.container : undefined}>
-        {renderPostHeader()}
-        <div className={styles.markdown}>
-          <MDXProvider components={MDXComponents}>{children}</MDXProvider>
-        </div>
-        <div className={styles.postHeader}>
-          <div className="avatar margin-bottom--md">
-            <div className="avatar__intro">
-              {author && (
-                <>
-                  <div className={styles.authorBox}>
-                    {authorImageURL &&
-                      <Link href={authorURL}>
-                        <div className={styles.authorImageBox}>
-                          <img src={authorImageURL} />
-                        </div>
-                      </Link>}
-                    <Link href={authorURL} 
className={styles.authorName}>{authorImageURL ? author : `Author: 
${author}`}</Link>
-                  </div>
-                </>
-              )}
-            </div>
-          </div>
-          {author && <div className={`margin-bottom--md ${styles.line}`}>
-            <div></div>
-          </div>}
-          <div className={`margin-bottom--md ${styles.headerDate} ${author && 
styles.marginLeft}`}>
-            <DateLogo />
-            <time dateTime={date} className={styles.blogPostDate}>
-              {formattedDate}
-            </time>
-          </div>
-          {tags.length > 0 && <div className={`margin-bottom--md 
${styles.line}`}>
-            <div></div>
-          </div>}
-          <div className={`margin-bottom--md`}>
-            {tags.length > 0 && (
-              <div className={`col ${styles.headerTags}`}>
-                <TagsLogo />
-                {tags.map(({ label, permalink: tagPermalink }) => (
-                  <Link
-                    key={tagPermalink}
-                    className="margin-horiz--sm"
-                    to={tagPermalink}>
-                    {label}
-                  </Link>
-                ))}
-              </div>
-            )}
-          </div>
-        </div>
-      </article>
-    </>
-  );
-}
-
-export default BlogPostItem;
diff --git a/website/src/theme/BlogPostItem/styles.module.css 
b/website/src/theme/BlogPostItem/styles.module.css
deleted file mode 100644
index a8135ac..0000000
--- a/website/src/theme/BlogPostItem/styles.module.css
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-.blogPostTitle {
-  font-size: 2.25rem;
-}
-
-.headerDate {
-  display: flex;
-  align-items: center;
-}
-
-.marginLeft {
-  margin-left: 16px;
-}
-
-.blogPostDate {
-  font-size: 0.9rem;
-  margin-left: 5px;
-}
-
-.postHeader {
-  display: flex;
-  flex-wrap: wrap;
-  align-items: center;
-  color: #6A737D;
-}
-
-.authorName {
-  font-weight: normal;
-}
-
-.headerTags {
-  display: flex;
-  align-items: center;
-}
-
-.line {
-  margin-left: 16px;
-  display: flex;
-  align-items: center;
-}
-
-.line div {
-  width: 1px;
-  height: 12px;
-  background-color: #6A737D;
-}
-
-.container {
-  margin-bottom: 3rem !important;
-}
-
-.markdown {
-  margin: 16px 0 16px;
-}
-
-.authorBox {
-  display: flex;
-  align-items: center;
-}
-
-.authorImageBox {
-  border-radius: 50%;
-  width: 48px;
-  height: 48px;
-  margin-right: 10px;
-}
-
-.authorImageBox img {
-  border-radius: 50%;
-}
diff --git a/website/src/theme/BlogPostPage/index.js 
b/website/src/theme/BlogPostPage/index.js
deleted file mode 100644
index f91b492..0000000
--- a/website/src/theme/BlogPostPage/index.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-import React from 'react';
-import Layout from '@theme/Layout';
-import BlogPostItem from '@theme/BlogPostItem';
-import BlogPostPaginator from '@theme/BlogPostPaginator';
-import TOC from '@theme/TOC';
-import EditThisPage from '@theme/EditThisPage';
-import { ThemeClassNames } from '@docusaurus/theme-common';
-import Link from '@docusaurus/Link';
-
-import styles from './styles.module.css';
-
-function BlogPostPage(props) {
-  const { content: BlogPostContents, sidebar } = props;
-  const { frontMatter, metadata } = BlogPostContents;
-  const { title, description, nextItem, prevItem, editUrl } = metadata;
-  const { hide_table_of_contents: hideTableOfContents } = frontMatter;
-
-  return (
-    <Layout
-      title={title}
-      description={description}
-      wrapperClassName={ThemeClassNames.wrapper.blogPages}
-      pageClassName={ThemeClassNames.page.blogPostPage}>
-      {BlogPostContents && (
-        <div className="container margin-vert--lg">
-          <div className="row">
-            <aside className="col col--3">
-              <nav className={styles.sidebar}>
-                <h3>{sidebar.title}</h3>
-                {sidebar.items.map((item) => {
-                  return (
-                    <Link key={item.title} href={item.permalink}>
-                      <p>{item.title}</p>
-                    </Link>
-                  )
-                })}
-              </nav>
-            </aside>
-            <main className="col col--7">
-              <BlogPostItem
-                frontMatter={frontMatter}
-                metadata={metadata}
-                isBlogPostPage>
-                <Link onClick={() => history.back()}>
-                  Back All
-                </Link>
-              </BlogPostItem>
-              <BlogPostContents />
-              <div>{editUrl && <EditThisPage editUrl={editUrl} />}</div>
-              {(nextItem || prevItem) && (
-                <div className="margin-vert--xl">
-                  <BlogPostPaginator nextItem={nextItem} prevItem={prevItem} />
-                </div>
-              )}
-            </main>
-            {!hideTableOfContents && BlogPostContents.toc && (
-              <div className="col col--2">
-                <TOC toc={BlogPostContents.toc} />
-              </div>
-            )}
-          </div>
-        </div>
-      )}
-    </Layout>
-  );
-}
-
-export default BlogPostPage;
diff --git a/website/src/theme/BlogPostPage/styles.module.css 
b/website/src/theme/BlogPostPage/styles.module.css
deleted file mode 100644
index 61d11e3..0000000
--- a/website/src/theme/BlogPostPage/styles.module.css
+++ /dev/null
@@ -1,6 +0,0 @@
-.sidebar {
-  max-height: calc(100vh - var(--ifm-navbar-height) - 2rem);
-  overflow-y: auto;
-  position: sticky;
-  top: calc(var(--ifm-navbar-height) + 2rem);
-}
diff --git a/website/src/theme/BlogSidebar/index.js 
b/website/src/theme/BlogSidebar/index.js
deleted file mode 100644
index c3ee76a..0000000
--- a/website/src/theme/BlogSidebar/index.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-import React, { useEffect, useState } from 'react';
-import clsx from 'clsx';
-import Link from '@docusaurus/Link';
-import styles from './styles.module.css';
-import { useHistory } from '@docusaurus/router';
-
-export default function BlogSidebar({count}) {
-  const [ selected, setSelected ] = useState();
-  const history = useHistory();
-  const path = history.location.pathname.split('/');
-
-  useEffect(() => {
-    if (path.length === 2) {
-      setSelected('All');
-    } else if (path.length === 4) {
-      if (path[3].indexOf('-') !== -1) {
-        setSelected(path[3].replace(/-/g, ' '));
-      } else {
-        setSelected(path[3]);
-      }
-    } else {
-      setSelected('All');
-    }
-  }, [path]);
-
-  if (!count) {
-    return null;
-  }
-
-  const handleTagClick = (tag) => {
-    if (tag === "All") {
-      history.push(`/${path[1] || '/'}`);
-    } else {
-      if (tag.indexOf(' ') !== -1) {
-        tag = tag.replace(/ /g, '-');
-      }
-      history.push(`/${path[1]}/tags/${tag}`);
-    }
-  };
-
-  return (
-    <div className={clsx(styles.sidebar, 'thin-scrollbar')}>
-      <h3 className={styles.sidebarItemTitle}>Tags</h3>
-      <div className={styles.sidebarItemList}>
-        {Object.entries(count).map(([tag, num]) => (
-          <div
-            key={tag}
-            className={`${styles.sidebarItem} ${selected === tag ? 
styles.selected : ''}`}
-            onClick={() => handleTagClick(tag)}
-          >
-            <div className={styles.sidebarItemLink}>
-              {tag}
-            </div>
-            <p>{num}</p>
-          </div>
-        ))}
-      </div>
-    </div>
-  );
-}
diff --git a/website/src/theme/BlogSidebar/styles.module.css 
b/website/src/theme/BlogSidebar/styles.module.css
deleted file mode 100644
index 185b090..0000000
--- a/website/src/theme/BlogSidebar/styles.module.css
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-.sidebar {
-  display: inherit;
-  max-height: calc(100vh - (var(--ifm-navbar-height) + 2rem));
-  overflow-y: auto;
-  position: sticky;
-  top: calc(var(--ifm-navbar-height) + 2rem);
-}
-
-.sidebarItemTitle {
-  margin-bottom: 0.5rem;
-}
-
-.sidebarItemList {
-  display: flex;
-  flex-direction: row;
-  justify-content: flex-start;
-  align-items: flex-start;
-  flex-wrap: wrap;
-}
-
-.sidebarItem {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: nowrap;
-  align-items: center;
-  border: 1px solid var(--ifm-color-primary-dark);
-  border-radius: 4px;
-  height: 2rem;
-  line-height: 2rem;
-  margin-bottom: 0.5rem;
-  margin-right: 0.5rem;
-  padding: 0 1rem;
-}
-
-.selected {
-  background-color: var(--ifm-color-primary);
-  border: 1px solid var(--color-border);
-  color: var(--ifm-color-primary-light);
-}
-
-.sidebarItem:hover {
-  background-color: var(--ifm-color-primary);
-  border: 1px solid var(--color-border);
-  color: var(--ifm-color-primary-light);
-  cursor: pointer;
-}
-
-.sidebarItem p {
-  margin: 0 0 0 0.5rem;
-  line-height: 2rem;
-}
-
-.sidebarItemLinkActive {
-  color: var(--ifm-color-primary);
-}
-
-@media only screen and (max-width: 996px) {
-  .sidebar {
-    display: none;
-  }
-}
diff --git a/website/src/theme/BlogTagsPostsPage/index.js 
b/website/src/theme/BlogTagsPostsPage/index.js
deleted file mode 100644
index 220bd49..0000000
--- a/website/src/theme/BlogTagsPostsPage/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-import React, { useEffect, useState } from 'react';
-import Layout from '@theme/Layout';
-import BlogPostItem from '@theme/BlogPostItem';
-import BlogSidebar from '@theme/BlogSidebar';
-import { ThemeClassNames } from '@docusaurus/theme-common'; // Very simple 
pluralization: probably good enough for now
-
-function BlogTagsPostPage(props) {
-  const { metadata, items } = props;
-  const { name: tagName } = metadata;
-  const [tagsCount, setTagsCount] = useState();
-  const tagsTotal = typeof window !== 'undefined' && 
JSON.parse(localStorage.getItem('tagsTotal'));
-
-  useEffect(() => {
-    let totalTags = [];
-    items.forEach(item => {
-      const tags = item.content.frontMatter.tags;
-      if (tags) {
-        totalTags = totalTags.concat(tags);
-      }
-    });
-    const tagsCount = {
-      All: items.length,
-    };
-    totalTags.forEach(item => {
-      tagsCount[item] = (tagsCount[item] || 0) + 1;
-    })
-    setTagsCount(tagsCount);
-  }, []);
-
-  return (
-    <Layout
-      title={`Posts tagged "${tagName}"`}
-      description={`Blog | Tagged "${tagName}"`}
-      wrapperClassName={ThemeClassNames.wrapper.blogPages}
-      pageClassName={ThemeClassNames.page.blogTagsPostPage}
-      searchMetadatas={{
-        // assign unique search tag to exclude this page from search results!
-        tag: 'blog_tags_posts',
-      }}>
-      <div className="container margin-vert--lg">
-        <div className="row">
-          <div className="col col--3">
-            <BlogSidebar count={tagsTotal || tagsCount} />
-          </div>
-          <main className="col col--9">
-            {items.map(({ content: BlogPostContent }) => (
-              <BlogPostItem
-                key={BlogPostContent.metadata.permalink}
-                frontMatter={BlogPostContent.frontMatter}
-                metadata={BlogPostContent.metadata}
-                truncated>
-                <BlogPostContent />
-              </BlogPostItem>
-            ))}
-          </main>
-        </div>
-      </div>
-    </Layout>
-  );
-}
-
-export default BlogTagsPostPage;

Reply via email to