This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push: new d587c793326 [feature](app) update header & footer (#273) d587c793326 is described below commit d587c793326f4a9c1796ce8e3b7bb2f3ae6e02e9 Author: Jeffrey <color.d...@gmail.com> AuthorDate: Wed Jul 26 21:33:22 2023 +0800 [feature](app) update header & footer (#273) --- docusaurus.config.js | 122 ++++++++++++++++++++++++----- src/components/Icons/linkedin.tsx | 12 +++ src/components/Icons/youtube.tsx | 12 +++ src/constant/download.data.ts | 2 +- src/theme/Footer/index.tsx | 43 +++++++--- src/theme/NavbarItem/DefaultNavbarItem.tsx | 76 +++++++----------- 6 files changed, 191 insertions(+), 76 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 4b87d22f458..3f83e64eb28 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -162,6 +162,7 @@ const config = { highlightSearchTermsOnTargetPage: true, // indexPages: true, indexDocs: true, + docsRouteBasePath: '/', indexBlog: false, explicitSearchResultPath: true, }, @@ -188,19 +189,67 @@ const config = { items: [ { to: '/', label: 'Home', position: 'left', exact: true }, { - type: 'doc', + type: "dropdown", position: 'left', label: 'Docs', - docId: 'summary/basic-summary', - to: '/summary/basic-summary', + to: '/docs/dev/summary/basic-summary', + items: [ + { + label: 'Learning Path', + to: '/learning', + align: 'left', + }, + { + label: 'Getting Started', + to: '/docs/dev/summary/basic-summary', + align: 'left', + }, + { + label: 'Install and Deploy', + to: '/docs/dev/install/standard-deployment', + align: 'left', + }, + { + label: 'FAQ', + to: '/docs/dev/faq/install-faq', + align: 'left', + }, + // { + // label: 'More Docs', + // to: '/docs/dev/get-starting/', + // align: 'left', + // } + ] }, { to: '/blog', label: 'Blogs', position: 'left' }, { label: 'Community', - type: 'doc', - docId: 'team', + type: "dropdown", + to: '/community/team', position: 'left', docsPluginId: 'community', + items: [ + // { + // label: 'Join Community', + // to: '/learning', + // align: 'left', + // }, + { + label: 'Doris Team', + to: '/community/team', + align: 'left', + }, + { + label: 'How to Contribute', + to: '/community/how-to-contribute/', + align: 'left', + }, + { + label: 'Developer Guide', + to: '/community/developer-guide/debug-tool', + align: 'left', + }, + ] }, { to: '/users', label: 'User Stories', position: 'left' }, { @@ -227,19 +276,6 @@ const config = { }, footer: { links: [ - { - title: 'Resource', - items: [ - { - label: 'Download', - href: '/download', - }, - { - label: 'Docs', - href: '/learning', - }, - ], - }, { title: 'ASF', items: [ @@ -269,6 +305,56 @@ const config = { }, ], }, + { + title: 'Resource', + items: [ + { + label: 'Download', + href: '/download', + }, + { + label: 'Docs', + href: '/learning', + }, + { + label: 'Blog', + href: '/blog', + }, + { + label: 'User cases', + href: '/users', + }, + { + label: 'Courses (coming soon)', + href: '/courses', + }, + ], + }, + { + title: 'Community Support', + items: [ + { + label: 'Doris Team', + href: '/community/team', + }, + { + label: 'How to Contribute', + href: '/community/how-to-contribute/', + }, + { + label: 'Source Code', + href: 'https://github.com/apache/doris/', + }, + { + label: 'Improvement proposal', + href: 'https://github.com/apache/doris/discussions', + }, + { + label: 'Roadmap', + href: 'https://github.com/apache/doris/issues/16392', + }, + ], + }, ], logo: { alt: '', diff --git a/src/components/Icons/linkedin.tsx b/src/components/Icons/linkedin.tsx new file mode 100644 index 00000000000..ebf4396afba --- /dev/null +++ b/src/components/Icons/linkedin.tsx @@ -0,0 +1,12 @@ +import React from 'react'; + +export function LinkedinIcon() { + return ( + <svg width="2rem" height="2rem" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path + d="M4.29925 26.9996H9.66738V11.6781H4.29925V26.9996ZM22.1628 11.1949C19.9409 11.1949 18.7157 11.9388 17.3054 13.7407V11.6777H11.9459V26.9996H17.305V18.6738C17.305 16.9168 18.145 15.1982 20.1535 15.1982C22.162 15.1982 22.6559 16.9164 22.6559 18.632V27H28V18.2902C28 12.2386 24.3854 11.1949 22.1628 11.1949ZM6.99325 4C5.3395 4 4 5.21047 4 6.7046C4 8.19759 5.3395 9.40617 6.99325 9.40617C8.6455 9.40617 9.985 8.19722 9.985 6.7046C9.985 5.21047 8.6455 4 6.99325 4Z" + fill="white" + /> + </svg> + ); +} diff --git a/src/components/Icons/youtube.tsx b/src/components/Icons/youtube.tsx new file mode 100644 index 00000000000..cac79dff7bb --- /dev/null +++ b/src/components/Icons/youtube.tsx @@ -0,0 +1,12 @@ +import React from 'react'; + +export function YoutubeIcon() { + return ( + <svg width="2em" height="2em" viewBox="0 0 175 123" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path + d="M171.348 19.1602C169.336 11.6211 163.398 5.68359 155.879 3.67188C142.227 7.15256e-07 87.5 0 87.5 0C87.5 0 32.7734 -7.15256e-07 19.1211 3.65234C11.582 5.66406 5.66406 11.6016 3.65234 19.1406C-7.15256e-07 32.8125 0 61.3281 0 61.3281C0 61.3281 -7.15256e-07 89.8438 3.65234 103.496C5.66406 111.035 11.6016 116.973 19.1211 118.984C32.7734 122.656 87.5 122.656 87.5 122.656C87.5 122.656 142.227 122.656 155.879 118.984C163.418 116.973 169.336 111.035 171.348 103.496C175 89.8438 [...] + fill="white" + /> + </svg> + ); +} diff --git a/src/constant/download.data.ts b/src/constant/download.data.ts index 3ad0e3be55e..e10ac9b30ea 100644 --- a/src/constant/download.data.ts +++ b/src/constant/download.data.ts @@ -368,7 +368,7 @@ export function getAllRelease(locale: string) { { version: '1.2.4', date: '2023-04-27', - note: '/docs/dev/releasenotes/release-1.2.4.1', + note: '/docs/dev/releasenotes/release-1.2.4', download: [ { cpu: 'X64 ( avx2 )', diff --git a/src/theme/Footer/index.tsx b/src/theme/Footer/index.tsx index 6891dada6ae..fe4bbe07bb6 100644 --- a/src/theme/Footer/index.tsx +++ b/src/theme/Footer/index.tsx @@ -10,6 +10,9 @@ import { TwitterIcon } from '@site/src/components/Icons/twitter'; import { SlackIcon } from '@site/src/components/Icons/slack'; import { BilibiliIcon } from '@site/src/components/Icons/bilibili'; import { WechatIcon } from '@site/src/components/Icons/wechat'; +import { YoutubeIcon } from '@site/src/components/Icons/youtube'; +import { LinkedinIcon } from '@site/src/components/Icons/linkedin'; + import Translate from '@docusaurus/Translate'; function Footer() { @@ -29,18 +32,28 @@ function Footer() { <div className="right"> <div className="footer__title"> <Translate id="footer.follow" description="Footer Follow"> - Follow + Connect with Us </Translate> </div> <div className="social-list"> <div className="social"> - <a href="mailto:d...@doris.apache.org" title="mail" className="item"> + <a href="mailto:d...@doris.apache.org" target="_blank" title="mail" className="item"> <MailIcon /> </a> - <a href="https://github.com/apache/doris" title="github" className="item"> + <a + href="https://github.com/apache/doris" + target="_blank" + title="github" + className="item" + > <GithubIcon /> </a> - <a href="https://twitter.com/doris_apache" title="twitter" className="item"> + <a + href="https://twitter.com/doris_apache" + target="_blank" + title="twitter" + className="item" + > <TwitterIcon /> </a> </div> @@ -48,18 +61,26 @@ function Footer() { <a href="https://join.slack.com/t/apachedoriscommunity/shared_invite/zt-1x7x8fger-F7NoshFQn~djlvGdnEtxUQ" title="slack" + target="_blank" className="item" > <SlackIcon /> </a> - <a href="https://space.bilibili.com/362350065" title="bilibili" className="item"> - <BilibiliIcon /> + <a + href="https://www.youtube.com/@apachedoris/channels" + title="youtube" + target="_blank" + className="item" + > + <YoutubeIcon /> </a> - <a className="item wechat"> - <WechatIcon /> - <div className="wechat-dropdown"> - <img src={require('@site/static/images/wechat.png').default} alt="" /> - </div> + <a + href="https://www.linkedin.com/company/doris-apache/" + title="linkedin" + target="_blank" + className="item" + > + <LinkedinIcon /> </a> </div> </div> diff --git a/src/theme/NavbarItem/DefaultNavbarItem.tsx b/src/theme/NavbarItem/DefaultNavbarItem.tsx index b63d9711ec4..f4f6105d344 100644 --- a/src/theme/NavbarItem/DefaultNavbarItem.tsx +++ b/src/theme/NavbarItem/DefaultNavbarItem.tsx @@ -1,59 +1,43 @@ import React from 'react'; import clsx from 'clsx'; import NavbarNavLink from '@theme/NavbarItem/NavbarNavLink'; -import type { - DesktopOrMobileNavBarItemProps, - Props, -} from '@theme/NavbarItem/DefaultNavbarItem'; +import type { DesktopOrMobileNavBarItemProps, Props } from '@theme/NavbarItem/DefaultNavbarItem'; -function DefaultNavbarItemDesktop({ - className, - isDropdownItem = false, - ...props -}: DesktopOrMobileNavBarItemProps) { - const element = ( - <NavbarNavLink - className={clsx( - isDropdownItem ? 'dropdown__link' : 'navbar__item navbar__link', - className, - )} - isDropdownLink={isDropdownItem} - {...props} - /> - ); +function DefaultNavbarItemDesktop({ className, isDropdownItem = false, ...props }: DesktopOrMobileNavBarItemProps) { + const element = ( + <NavbarNavLink + className={clsx(isDropdownItem ? 'dropdown__link' : 'navbar__item navbar__link', className)} + isDropdownLink={isDropdownItem} + style={{ textAlign: props?.align || 'center' }} + {...props} + /> + ); - if (isDropdownItem) { - return <li>{element}</li>; - } + if (isDropdownItem) { + return <li>{element}</li>; + } - return element; + return element; } -function DefaultNavbarItemMobile({ - className, - isDropdownItem, - ...props -}: DesktopOrMobileNavBarItemProps) { - return ( - <li className="menu__list-item"> - <NavbarNavLink className={clsx('menu__link', className)} {...props} /> - </li> - ); +function DefaultNavbarItemMobile({ className, isDropdownItem, ...props }: DesktopOrMobileNavBarItemProps) { + return ( + <li className="menu__list-item"> + <NavbarNavLink className={clsx('menu__link', className)} {...props} /> + </li> + ); } export default function DefaultNavbarItem({ - mobile = false, - position, // Need to destructure position from props so that it doesn't get passed on. - ...props + mobile = false, + position, // Need to destructure position from props so that it doesn't get passed on. + ...props }: Props): JSX.Element { - const Comp = mobile ? DefaultNavbarItemMobile : DefaultNavbarItemDesktop; - return ( - <Comp - {...props} - activeClassName={ - props.activeClassName ?? - (mobile ? 'menu__link--active' : 'navbar__link--active') - } - /> - ); + const Comp = mobile ? DefaultNavbarItemMobile : DefaultNavbarItemDesktop; + return ( + <Comp + {...props} + activeClassName={props.activeClassName ?? (mobile ? 'menu__link--active' : 'navbar__link--active')} + /> + ); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org