├── media ├── .gitkeep └── vmblog-logo.png ├── markdown-pages ├── blogs │ └── .gitkeep ├── http.js ├── terms │ └── legal │ │ ├── cookie-policy │ │ └── archive.md │ │ ├── tidb-cloud-services-agreement │ │ └── archive.md │ │ ├── privacy-policy │ │ └── archive.md │ │ ├── service-level-agreement-for-tidb-cloud-services │ │ └── archive.md │ │ ├── data-processing-agreement-for-tidb-cloud-services │ │ └── archive.md │ │ └── sub-processors-and-affiliates-for-tidb-cloud-services.md └── utils.js ├── server ├── .gitignore ├── Rocket.toml ├── src │ ├── rest │ │ ├── mod.rs │ │ └── http_client.rs │ ├── schema.rs │ ├── google.rs │ ├── github │ │ ├── mod.rs │ │ └── api.rs │ ├── models.rs │ ├── db.rs │ ├── cors.rs │ └── main.rs ├── migrations │ └── 2020-03-12-041107_create_contributors │ │ ├── down.sql │ │ └── up.sql ├── diesel.toml ├── Cargo.toml └── README.md ├── .prettierrc ├── src ├── data │ ├── .DS_Store │ ├── download-tidb.js │ ├── product-tidb.js │ ├── career-work-env.js │ ├── trust.js │ ├── socials.js │ └── legal-docs.js ├── pages │ ├── products │ │ └── tidbcloud │ │ │ └── pricing.js │ ├── jp │ │ ├── products │ │ │ └── tidbcloud │ │ │ │ └── pricing.js │ │ ├── partners.js │ │ └── community │ │ │ └── share-and-connect.js │ ├── 404.js │ ├── download │ │ └── enterprise.js │ └── community │ │ └── share-and-connect.js ├── api │ └── http.js ├── styles │ ├── components │ │ ├── primaryButton.scss │ │ ├── embedYouTube.scss │ │ ├── pagination.scss │ │ ├── copyBtn.scss │ │ ├── eventsCard.scss │ │ ├── blogTags.scss │ │ ├── hero.scss │ │ ├── scrollTopButton.scss │ │ ├── trackGABtns.scss │ │ ├── blogSearch.scss │ │ ├── positions.scss │ │ ├── pingcapCookieConsent.scss │ │ ├── blogHeader.scss │ │ ├── catalogueSwitch.scss │ │ ├── getStartedWithTiDBCloud.scss │ │ ├── sectionUseCases.scss │ │ ├── postFromUs.scss │ │ └── startTiDBRibbon.scss │ ├── pages │ │ ├── 404.scss │ │ ├── products │ │ │ ├── public-preview.scss │ │ │ └── faq.scss │ │ ├── community │ │ │ └── shareAndConnect.scss │ │ ├── careers.scss │ │ └── legal.scss │ ├── _typography.scss │ └── _variables.scss ├── components │ ├── shortcodes │ │ ├── index.js │ │ ├── embedYouTube.js │ │ ├── withCopy.js │ │ └── trackGABtns.js │ ├── loading.js │ ├── particles.js │ ├── primaryButton.js │ ├── boundLink.js │ ├── startYourFreeTrialNowButton.js │ ├── hero.js │ ├── tocRenderer.js │ ├── layout.js │ ├── linkWithArrow.js │ ├── blogTags.js │ ├── getStartedWithTiDBCloud.js │ ├── catalogueSwitch.js │ ├── labels.js │ ├── IntlLink.js │ ├── socials.js │ ├── button.js │ ├── startTiDBRibbon.js │ ├── eventsCard.js │ ├── pingcapCookieConsent.js │ ├── pagination.js │ ├── scrollTopButton.js │ └── positions.js ├── lib │ ├── dataType.js │ ├── graphql │ │ └── image.js │ ├── replaceInternalHref.js │ ├── dom.js │ ├── string.js │ ├── eventEmitter.js │ ├── validator.js │ └── proxy.js └── templates │ ├── position.js │ ├── blogs.js │ ├── policyTerms.js │ ├── blogTags.js │ ├── blogCategories.js │ ├── partner.js │ └── caseStudyCategory │ └── all.js ├── .prettierignore ├── images ├── partner │ ├── tidb.png │ ├── partner_aws.png │ ├── tidb_aws_eco.png │ ├── tidbcloud_aws.png │ └── xiaohongshu_aws.png ├── pingcap-icon.png ├── pingcap-logo.ico ├── home │ ├── logos │ │ ├── bigo.png │ │ ├── hulu.png │ │ ├── mi.png │ │ ├── qiy.png │ │ ├── wuba.png │ │ ├── blued.png │ │ ├── colopl.png │ │ ├── lenovo.png │ │ ├── opera.png │ │ ├── paypay.png │ │ ├── sakura.png │ │ ├── shopee.png │ │ ├── square.png │ │ ├── streak.png │ │ ├── unext.png │ │ ├── webank.png │ │ ├── zhihu.png │ │ ├── colopl-ja.png │ │ ├── jd-cloud.png │ │ ├── meituan.png │ │ ├── netstars.png │ │ ├── tencent.png │ │ ├── zalopay.png │ │ ├── zh │ │ │ ├── hulu.png │ │ │ ├── iqiyi.png │ │ │ ├── lufax.png │ │ │ ├── oppo.png │ │ │ ├── paypay.png │ │ │ ├── people.png │ │ │ ├── pingan.png │ │ │ ├── shopee.png │ │ │ ├── u-next.png │ │ │ ├── webank.png │ │ │ ├── wuba.png │ │ │ ├── xiaomi.png │ │ │ ├── zhihu.png │ │ │ ├── guangda.png │ │ │ ├── meituan.png │ │ │ ├── tencent.png │ │ │ ├── yumchina.png │ │ │ ├── zalopay.png │ │ │ ├── bookmyshow.png │ │ │ ├── dailymotion.png │ │ │ ├── ke-finance.png │ │ │ ├── zto-express.png │ │ │ ├── bank-of-china.png │ │ │ ├── china-mobile.png │ │ │ ├── china-telecom.png │ │ │ ├── china-unicom.png │ │ │ ├── netease-games.png │ │ │ └── bank-of-beijing.png │ │ ├── bookmyshow.png │ │ ├── netease-games.png │ │ ├── sj-distributor.png │ │ ├── bank-of-beijing.png │ │ ├── google-cloud-platform.png │ │ └── tiup.svg │ ├── tidb-features.gif │ ├── tidb-features.mp4 │ └── banners │ │ └── zh │ │ ├── home-asktug-carousel.jpg │ │ ├── university-carousel-img.png │ │ ├── user-message-2019-banner.png │ │ └── high-performance-tidb-challenge.png ├── case-studies │ ├── banner.png │ ├── arrow-down.svg │ └── quote-mark.svg ├── download │ ├── tidb-logo.png │ ├── dropdown-arrow.svg │ ├── check-circle.svg │ └── logos │ │ ├── tiup.svg │ │ └── google-cloud-platform.svg ├── in-the-news │ ├── banner.jpg │ └── icon-date.png ├── products │ ├── tidbcloud │ │ ├── aws.png │ │ ├── tidb-cloud-logo.png │ │ ├── oltp-olap-workload.png │ │ ├── cloud-provider-region.png │ │ └── shuttle.svg │ └── tidb │ │ └── video.svg ├── events │ ├── tidb-hackathon2020.jpg │ └── high-performance-tidb-challenge.png ├── security-and-trust-center │ ├── gdpr.png │ ├── banner.jpg │ ├── AICPA-SOC.gif │ ├── iso-27001.png │ ├── authentication.svg │ └── workload-isolation.svg ├── community │ ├── events │ │ └── hptc │ │ │ ├── pingankeji.png │ │ │ ├── segmentfault.png │ │ │ ├── ele3.svg │ │ │ ├── grading-icon.svg │ │ │ ├── ele1.svg │ │ │ ├── ele2.svg │ │ │ ├── terminal-dot.svg │ │ │ ├── learning-material-bg.svg │ │ │ ├── step-icon.svg │ │ │ ├── step4-bg.svg │ │ │ ├── intro-bg.svg │ │ │ ├── normal-medal.svg │ │ │ └── season-score.svg │ ├── writer.svg │ ├── heart.svg │ ├── learn.svg │ └── help-buoy.svg ├── promotion-banner-background-image.svg ├── cross.svg ├── cross-dark.svg ├── right-arrow.svg ├── socials │ ├── yc-hl.svg │ ├── yc.svg │ ├── facebook-hl.svg │ ├── facebook.svg │ ├── youtube-hl.svg │ ├── linkedin-hl.svg │ ├── youtube.svg │ ├── linkedin.svg │ ├── reddit.svg │ ├── reddit-hl.svg │ ├── twitter-hl.svg │ ├── twitter.svg │ ├── slack.svg │ └── slack-hl.svg ├── github-icon-on-nav-hl.svg ├── github-icon-on-nav.svg ├── careers │ ├── flexible.svg │ └── hacker-culture.svg ├── contact-us │ ├── jp.svg │ └── cn.svg └── horn.svg ├── .editorconfig ├── .babelrc ├── data └── tidbDownloadPkg.json ├── gatsby-ssr.js ├── create-pages ├── utils.js ├── intl.js ├── wrapPage.js ├── blogs.js ├── allCaseStudies.js ├── partner.js ├── position.js ├── blogCategories.js ├── policyTerms.js └── blogTags.js ├── purgecss-whitelist.js ├── lang.config.json ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── workflows │ ├── dispatch.yml │ └── media.yml ├── .gitignore └── gatsby-browser.js /media/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /markdown-pages/blogs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | 3 | rocket.db 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /server/Rocket.toml: -------------------------------------------------------------------------------- 1 | [development] 2 | address = "localhost" 3 | port = 8001 4 | -------------------------------------------------------------------------------- /src/data/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/src/data/.DS_Store -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .cache 2 | package.json 3 | package-lock.json 4 | yarn.lock 5 | public 6 | -------------------------------------------------------------------------------- /media/vmblog-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/media/vmblog-logo.png -------------------------------------------------------------------------------- /images/partner/tidb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/partner/tidb.png -------------------------------------------------------------------------------- /images/pingcap-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/pingcap-icon.png -------------------------------------------------------------------------------- /images/pingcap-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/pingcap-logo.ico -------------------------------------------------------------------------------- /server/src/rest/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod http_client; 2 | 3 | pub const PREFIX_V1: &str = "/api/v1"; 4 | -------------------------------------------------------------------------------- /images/home/logos/bigo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/bigo.png -------------------------------------------------------------------------------- /images/home/logos/hulu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/hulu.png -------------------------------------------------------------------------------- /images/home/logos/mi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/mi.png -------------------------------------------------------------------------------- /images/home/logos/qiy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/qiy.png -------------------------------------------------------------------------------- /images/home/logos/wuba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/wuba.png -------------------------------------------------------------------------------- /images/home/logos/blued.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/blued.png -------------------------------------------------------------------------------- /images/home/logos/colopl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/colopl.png -------------------------------------------------------------------------------- /images/home/logos/lenovo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/lenovo.png -------------------------------------------------------------------------------- /images/home/logos/opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/opera.png -------------------------------------------------------------------------------- /images/home/logos/paypay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/paypay.png -------------------------------------------------------------------------------- /images/home/logos/sakura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/sakura.png -------------------------------------------------------------------------------- /images/home/logos/shopee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/shopee.png -------------------------------------------------------------------------------- /images/home/logos/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/square.png -------------------------------------------------------------------------------- /images/home/logos/streak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/streak.png -------------------------------------------------------------------------------- /images/home/logos/unext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/unext.png -------------------------------------------------------------------------------- /images/home/logos/webank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/webank.png -------------------------------------------------------------------------------- /images/home/logos/zhihu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zhihu.png -------------------------------------------------------------------------------- /images/case-studies/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/case-studies/banner.png -------------------------------------------------------------------------------- /images/download/tidb-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/download/tidb-logo.png -------------------------------------------------------------------------------- /images/home/logos/colopl-ja.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/colopl-ja.png -------------------------------------------------------------------------------- /images/home/logos/jd-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/jd-cloud.png -------------------------------------------------------------------------------- /images/home/logos/meituan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/meituan.png -------------------------------------------------------------------------------- /images/home/logos/netstars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/netstars.png -------------------------------------------------------------------------------- /images/home/logos/tencent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/tencent.png -------------------------------------------------------------------------------- /images/home/logos/zalopay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zalopay.png -------------------------------------------------------------------------------- /images/home/logos/zh/hulu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/hulu.png -------------------------------------------------------------------------------- /images/home/logos/zh/iqiyi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/iqiyi.png -------------------------------------------------------------------------------- /images/home/logos/zh/lufax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/lufax.png -------------------------------------------------------------------------------- /images/home/logos/zh/oppo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/oppo.png -------------------------------------------------------------------------------- /images/home/logos/zh/paypay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/paypay.png -------------------------------------------------------------------------------- /images/home/logos/zh/people.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/people.png -------------------------------------------------------------------------------- /images/home/logos/zh/pingan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/pingan.png -------------------------------------------------------------------------------- /images/home/logos/zh/shopee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/shopee.png -------------------------------------------------------------------------------- /images/home/logos/zh/u-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/u-next.png -------------------------------------------------------------------------------- /images/home/logos/zh/webank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/webank.png -------------------------------------------------------------------------------- /images/home/logos/zh/wuba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/wuba.png -------------------------------------------------------------------------------- /images/home/logos/zh/xiaomi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/xiaomi.png -------------------------------------------------------------------------------- /images/home/logos/zh/zhihu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/zhihu.png -------------------------------------------------------------------------------- /images/home/tidb-features.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/tidb-features.gif -------------------------------------------------------------------------------- /images/home/tidb-features.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/tidb-features.mp4 -------------------------------------------------------------------------------- /images/in-the-news/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/in-the-news/banner.jpg -------------------------------------------------------------------------------- /images/partner/partner_aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/partner/partner_aws.png -------------------------------------------------------------------------------- /images/partner/tidb_aws_eco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/partner/tidb_aws_eco.png -------------------------------------------------------------------------------- /images/home/logos/bookmyshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/bookmyshow.png -------------------------------------------------------------------------------- /images/home/logos/zh/guangda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/guangda.png -------------------------------------------------------------------------------- /images/home/logos/zh/meituan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/meituan.png -------------------------------------------------------------------------------- /images/home/logos/zh/tencent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/tencent.png -------------------------------------------------------------------------------- /images/home/logos/zh/yumchina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/yumchina.png -------------------------------------------------------------------------------- /images/home/logos/zh/zalopay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/zalopay.png -------------------------------------------------------------------------------- /images/in-the-news/icon-date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/in-the-news/icon-date.png -------------------------------------------------------------------------------- /images/partner/tidbcloud_aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/partner/tidbcloud_aws.png -------------------------------------------------------------------------------- /images/products/tidbcloud/aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/products/tidbcloud/aws.png -------------------------------------------------------------------------------- /images/events/tidb-hackathon2020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/events/tidb-hackathon2020.jpg -------------------------------------------------------------------------------- /images/home/logos/netease-games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/netease-games.png -------------------------------------------------------------------------------- /images/home/logos/sj-distributor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/sj-distributor.png -------------------------------------------------------------------------------- /images/home/logos/zh/bookmyshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/bookmyshow.png -------------------------------------------------------------------------------- /images/home/logos/zh/dailymotion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/dailymotion.png -------------------------------------------------------------------------------- /images/home/logos/zh/ke-finance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/ke-finance.png -------------------------------------------------------------------------------- /images/home/logos/zh/zto-express.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/zto-express.png -------------------------------------------------------------------------------- /images/partner/xiaohongshu_aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/partner/xiaohongshu_aws.png -------------------------------------------------------------------------------- /images/home/logos/bank-of-beijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/bank-of-beijing.png -------------------------------------------------------------------------------- /images/home/logos/zh/bank-of-china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/bank-of-china.png -------------------------------------------------------------------------------- /images/home/logos/zh/china-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/china-mobile.png -------------------------------------------------------------------------------- /images/home/logos/zh/china-telecom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/china-telecom.png -------------------------------------------------------------------------------- /images/home/logos/zh/china-unicom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/china-unicom.png -------------------------------------------------------------------------------- /images/home/logos/zh/netease-games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/netease-games.png -------------------------------------------------------------------------------- /src/pages/products/tidbcloud/pricing.js: -------------------------------------------------------------------------------- 1 | import Pricing from '../../../components/pricing' 2 | 3 | export default Pricing 4 | -------------------------------------------------------------------------------- /images/home/logos/zh/bank-of-beijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/zh/bank-of-beijing.png -------------------------------------------------------------------------------- /images/security-and-trust-center/gdpr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/security-and-trust-center/gdpr.png -------------------------------------------------------------------------------- /src/pages/jp/products/tidbcloud/pricing.js: -------------------------------------------------------------------------------- 1 | import Pricing from '../../../../components/pricing' 2 | 3 | export default Pricing 4 | -------------------------------------------------------------------------------- /images/community/events/hptc/pingankeji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/community/events/hptc/pingankeji.png -------------------------------------------------------------------------------- /images/home/logos/google-cloud-platform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/logos/google-cloud-platform.png -------------------------------------------------------------------------------- /images/security-and-trust-center/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/security-and-trust-center/banner.jpg -------------------------------------------------------------------------------- /server/migrations/2020-03-12-041107_create_contributors/down.sql: -------------------------------------------------------------------------------- 1 | -- This file should undo anything in `up.sql` 2 | DROP TABLE repos; 3 | -------------------------------------------------------------------------------- /images/community/events/hptc/segmentfault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/community/events/hptc/segmentfault.png -------------------------------------------------------------------------------- /images/products/tidbcloud/tidb-cloud-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/products/tidbcloud/tidb-cloud-logo.png -------------------------------------------------------------------------------- /images/security-and-trust-center/AICPA-SOC.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/security-and-trust-center/AICPA-SOC.gif -------------------------------------------------------------------------------- /images/security-and-trust-center/iso-27001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/security-and-trust-center/iso-27001.png -------------------------------------------------------------------------------- /images/home/banners/zh/home-asktug-carousel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/banners/zh/home-asktug-carousel.jpg -------------------------------------------------------------------------------- /images/products/tidbcloud/oltp-olap-workload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/products/tidbcloud/oltp-olap-workload.png -------------------------------------------------------------------------------- /src/api/http.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | const http = axios.create({ 4 | baseURL: '/api/v1', 5 | }) 6 | 7 | export default http 8 | -------------------------------------------------------------------------------- /images/events/high-performance-tidb-challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/events/high-performance-tidb-challenge.png -------------------------------------------------------------------------------- /images/home/banners/zh/university-carousel-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/banners/zh/university-carousel-img.png -------------------------------------------------------------------------------- /images/home/banners/zh/user-message-2019-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/banners/zh/user-message-2019-banner.png -------------------------------------------------------------------------------- /images/products/tidbcloud/cloud-provider-region.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/products/tidbcloud/cloud-provider-region.png -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | 8 | [*.rs] 9 | indent_size = 4 10 | -------------------------------------------------------------------------------- /images/home/banners/zh/high-performance-tidb-challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pingcap/website/HEAD/images/home/banners/zh/high-performance-tidb-challenge.png -------------------------------------------------------------------------------- /server/src/schema.rs: -------------------------------------------------------------------------------- 1 | table! { 2 | repos (id) { 3 | id -> Nullable, 4 | of -> Text, 5 | contributors -> Text, 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /server/diesel.toml: -------------------------------------------------------------------------------- 1 | # For documentation on how to configure this file, 2 | # see diesel.rs/guides/configuring-diesel-cli 3 | 4 | [print_schema] 5 | file = "src/schema.rs" 6 | -------------------------------------------------------------------------------- /server/migrations/2020-03-12-041107_create_contributors/up.sql: -------------------------------------------------------------------------------- 1 | -- Your SQL goes here 2 | CREATE TABLE repos ( 3 | id INTEGER PRIMARY KEY, 4 | of TEXT NOT NULL, 5 | contributors TEXT NOT NULL 6 | ); 7 | -------------------------------------------------------------------------------- /src/styles/components/primaryButton.scss: -------------------------------------------------------------------------------- 1 | @import "../common"; 2 | 3 | .PrimaryButton { 4 | transition: all .25s; 5 | &:hover { 6 | background-color: $button-hover-color !important; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /server/src/google.rs: -------------------------------------------------------------------------------- 1 | pub mod api { 2 | #[allow(dead_code)] 3 | const REFERSH_TOKEN: &str = "1//04vWfgfHqQettCgYIARAAGAQSNwF-L9Irkd0Kqu3OuXttFD5xj27WpgylQjd0lpzPmAzmJe7SKffXoK33OfT_jLfRh77jG2IzIlY"; 4 | } 5 | -------------------------------------------------------------------------------- /src/components/shortcodes/index.js: -------------------------------------------------------------------------------- 1 | import EmbedYouTube from './embedYouTube' 2 | import WithCopy from './withCopy' 3 | import TrackGABtns from './trackGABtns' 4 | 5 | export { EmbedYouTube, WithCopy, TrackGABtns } 6 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["babel-preset-gatsby"], 3 | "plugins": [ 4 | ["prismjs", { 5 | "languages": ["shell"], 6 | "theme": "solarizedlight", 7 | "css": true 8 | }] 9 | ] 10 | } -------------------------------------------------------------------------------- /images/community/events/hptc/ele3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /images/download/dropdown-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /server/src/github/mod.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | pub mod api; 4 | 5 | #[derive(Serialize, Deserialize)] 6 | pub struct Contributor { 7 | pub login: String, 8 | avatar_url: String, 9 | contributions: u32, 10 | } 11 | -------------------------------------------------------------------------------- /images/community/events/hptc/grading-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /data/tidbDownloadPkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "versions": [ 3 | "v4.0.0", 4 | "v4.0.1", 5 | "v4.0.2", 6 | "v4.0.3", 7 | "v4.0.4", 8 | "v4.0.5", 9 | "v4.0.6", 10 | "v4.0.7", 11 | "v4.0.8" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /src/components/loading.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import LoaderSpinner from '../../images/loader-spinner.svg' 3 | 4 | const Loading = () => { 5 | return Loader spinner 6 | } 7 | 8 | export default Loading 9 | -------------------------------------------------------------------------------- /gatsby-ssr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's SSR (Server Side Rendering) APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/ssr-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | 9 | export { wrapPageElement } from './create-pages/wrapPage' 10 | -------------------------------------------------------------------------------- /src/styles/pages/404.scss: -------------------------------------------------------------------------------- 1 | @import '../common'; 2 | 3 | .PingCAP-404-Page { 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | min-height: 70vh; 8 | 9 | h1 { 10 | margin: 2rem auto; 11 | padding: 0 1rem; 12 | font-size: $size-4; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /images/community/writer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /images/community/events/hptc/ele1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/styles/components/embedYouTube.scss: -------------------------------------------------------------------------------- 1 | @import '../common'; 2 | 3 | .PingCAP-Video-Wrapper { 4 | @include mobile { 5 | margin-bottom: 2rem; 6 | } 7 | 8 | width: 100%; 9 | 10 | iframe { 11 | width: 100%; 12 | height: 450px; 13 | 14 | @include mobile { 15 | height: 230px; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/styles/components/pagination.scss: -------------------------------------------------------------------------------- 1 | .PingCAP-Pagination { 2 | margin-top: 1.5rem; 3 | 4 | a.pagination-link { 5 | padding: 0 0.25rem; 6 | min-width: unset; 7 | color: $B4; 8 | font-weight: bold; 9 | border: none; 10 | 11 | &.is-current { 12 | background: none; 13 | color: $primary; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /server/src/models.rs: -------------------------------------------------------------------------------- 1 | use crate::schema::repos; 2 | 3 | #[derive(Debug, Queryable)] 4 | pub struct Repo { 5 | pub id: Option, 6 | pub of: String, 7 | pub contributors: String, 8 | } 9 | 10 | #[derive(Insertable)] 11 | #[table_name = "repos"] 12 | pub struct NewRepo<'a> { 13 | pub of: &'a str, 14 | pub contributors: &'a str, 15 | } 16 | -------------------------------------------------------------------------------- /server/src/db.rs: -------------------------------------------------------------------------------- 1 | use diesel::prelude::*; 2 | use diesel::sqlite::SqliteConnection; 3 | 4 | pub fn establish_connection() -> SqliteConnection { 5 | let database_url = dotenv!("DATABASE_URL"); 6 | 7 | SqliteConnection::establish(&database_url).expect(&format!( 8 | "Error in (SqliteConnection::establish): Connecting to {}", 9 | database_url 10 | )) 11 | } 12 | -------------------------------------------------------------------------------- /src/components/particles.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import '../styles/components/particles.scss' 3 | 4 | const AroundParticles = () => { 5 | return ( 6 | <> 7 | {Array.from({ length: 8 }).map((_, index) => { 8 | return
9 | })} 10 | 11 | ) 12 | } 13 | 14 | export default AroundParticles 15 | -------------------------------------------------------------------------------- /create-pages/utils.js: -------------------------------------------------------------------------------- 1 | const langConfig = require('../lang.config.json') 2 | 3 | exports.replaceTitle = function (title) { 4 | return title.replace('.md', '') 5 | } 6 | 7 | exports.langPrefixes = function (lang) { 8 | return lang === langConfig.defaultLang ? [''] : [`${lang}/`] 9 | } 10 | 11 | exports.replaceSpaceWithDash = function (s) { 12 | return s.replace(/\s+/g, '-') 13 | } 14 | -------------------------------------------------------------------------------- /images/case-studies/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/data/download-tidb.js: -------------------------------------------------------------------------------- 1 | import tiup from '../../images/download/logos/tiup.svg' 2 | import kubernetes from '../../images/download/logos/kubernetes.svg' 3 | import googlecloud from '../../images/download/logos/google-cloud-platform.svg' 4 | import aws from '../../images/download/logos/aws.svg' 5 | 6 | const logos = { 7 | tiup, 8 | kubernetes, 9 | googlecloud, 10 | aws, 11 | } 12 | 13 | export { logos } 14 | -------------------------------------------------------------------------------- /images/community/events/hptc/ele2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/styles/components/copyBtn.scss: -------------------------------------------------------------------------------- 1 | @import '../common'; 2 | 3 | .PingCAP-copyBtn { 4 | position: relative; 5 | z-index: 2; 6 | padding: 16px 0.3rem 0; 7 | float: right; 8 | width: 85px; 9 | color: #94a3ea; 10 | background: #f6f8fa; 11 | font-family: inherit; 12 | font-size: 13px; 13 | font-style: italic; 14 | border: none; 15 | outline: none; 16 | border-radius: 0 3px 0 0; 17 | cursor: pointer; 18 | } -------------------------------------------------------------------------------- /src/lib/dataType.js: -------------------------------------------------------------------------------- 1 | const isObject = (data) => { 2 | return Object.prototype.toString.call(data) === '[object Object]' 3 | } 4 | 5 | const isArray = (data) => { 6 | return Array.isArray(data) 7 | } 8 | 9 | const isPrimitive = (data) => { 10 | return !(isObject(data) || isArray(data)) 11 | } 12 | 13 | const isUndefined = (data) => { 14 | return typeof data === 'undefined' 15 | } 16 | 17 | export { isObject, isArray, isPrimitive, isUndefined } 18 | -------------------------------------------------------------------------------- /src/components/primaryButton.js: -------------------------------------------------------------------------------- 1 | import { Button } from '@seagreenio/react-bulma' 2 | import React from 'react' 3 | 4 | import '../styles/components/primaryButton.scss' 5 | 6 | const PrimaryButton = ({ children, className, ...rest }) => { 7 | const combinationClassName = `PrimaryButton ${className}` 8 | return ( 9 | 12 | ) 13 | } 14 | 15 | export default PrimaryButton 16 | -------------------------------------------------------------------------------- /src/styles/components/eventsCard.scss: -------------------------------------------------------------------------------- 1 | @import '../common'; 2 | 3 | .PingCAP-Event-Card { 4 | &.columns { 5 | justify-content: center; 6 | 7 | .column { 8 | margin: 2rem 0; 9 | 10 | .card { 11 | height: 100%; 12 | 13 | &:hover { 14 | box-shadow: $shadow-hover; 15 | } 16 | 17 | figure > img{ 18 | border-top-left-radius: 8px; 19 | border-top-right-radius: 8px; 20 | } 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/styles/pages/products/public-preview.scss: -------------------------------------------------------------------------------- 1 | @import '../../common'; 2 | 3 | .Public-Preview-Terms { 4 | .terms-conditions { 5 | width: 80%; 6 | margin: 4rem auto; 7 | 8 | h1 { 9 | text-align: center; 10 | font-size: $H1; 11 | font-weight: $W1-EN; 12 | } 13 | 14 | p { 15 | padding: 1.5rem 0 0; 16 | } 17 | 18 | .start-trial-button { 19 | margin-top: 4rem; 20 | text-align: center; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/components/boundLink.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Link from './IntlLink' 3 | 4 | const BoundLink = ({ to, children, outbound, ...rest }) => { 5 | return ( 6 | <> 7 | {outbound ? ( 8 | 9 | {children} 10 | 11 | ) : ( 12 | 13 | {children} 14 | 15 | )} 16 | 17 | ) 18 | } 19 | 20 | export default BoundLink 21 | -------------------------------------------------------------------------------- /src/styles/components/blogTags.scss: -------------------------------------------------------------------------------- 1 | .PingCAP-BlogTags { 2 | display: flex; 3 | flex-wrap: wrap; 4 | padding-bottom: 1.5rem; 5 | border-bottom: 1px solid $C2; 6 | 7 | > a { 8 | margin: 1.5rem 1rem 0 0; 9 | padding: 0.25rem 0.5rem; 10 | height: auto; 11 | color: $B4; 12 | background: $M2; 13 | font-size: $size-7; 14 | border: none; 15 | border-radius: 3px; 16 | 17 | &:hover { 18 | color: #fff; 19 | background: $primary; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/components/startYourFreeTrialNowButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Link } from 'gatsby' 3 | import { FormattedMessage } from 'react-intl' 4 | import Button from './button' 5 | 6 | const StartYourFreeTrialNowButton = ({ btnText }) => { 7 | return ( 8 | 11 | ) 12 | } 13 | 14 | export default StartYourFreeTrialNowButton 15 | -------------------------------------------------------------------------------- /src/styles/pages/community/shareAndConnect.scss: -------------------------------------------------------------------------------- 1 | 2 | @import '../../common'; 3 | 4 | .PingCAP-Share-Story { 5 | .hero { 6 | img { 7 | height: 200px; 8 | margin-top: 2rem; 9 | } 10 | } 11 | 12 | .section-subtitle { 13 | @include section-subtitle; 14 | font-weight: 400; 15 | 16 | } 17 | 18 | .form-section { 19 | max-width: 800px; 20 | text-align: center; 21 | margin: 2rem auto; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /images/community/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/lib/graphql/image.js: -------------------------------------------------------------------------------- 1 | import { graphql } from 'gatsby' 2 | 3 | export const FluidTracedSVG = graphql` 4 | fragment FluidTracedSVG on File { 5 | childImageSharp { 6 | fluid { 7 | ...GatsbyImageSharpFluid_tracedSVG 8 | } 9 | } 10 | } 11 | ` 12 | 13 | export const FluidUncompressed = graphql` 14 | fragment FluidUncompressed on File { 15 | childImageSharp { 16 | fluid(maxWidth: 2400, quality: 100) { 17 | ...GatsbyImageSharpFluid 18 | } 19 | } 20 | } 21 | ` 22 | -------------------------------------------------------------------------------- /images/community/learn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/lib/replaceInternalHref.js: -------------------------------------------------------------------------------- 1 | export default function replaceInternalHref(type) { 2 | const aTags = document.querySelector('.blog-content').getElementsByTagName('a') 3 | const re = /\/?.*\.md/ 4 | const absPathRegx = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}/ 5 | 6 | Array.from(aTags).forEach((a) => { 7 | const hrefText = a.getAttribute('href') 8 | 9 | if (!absPathRegx.test(hrefText) && re.test(hrefText)) { 10 | a.href = '/blog/' + hrefText.replace('.md', '') 11 | } 12 | }) 13 | } 14 | -------------------------------------------------------------------------------- /src/styles/components/hero.scss: -------------------------------------------------------------------------------- 1 | @import "../common"; 2 | 3 | .Banner { 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | height: 420px; 8 | background-size: cover; 9 | 10 | //filter: brightness(70%) 11 | @include mobile { 12 | height: 200px; 13 | } 14 | 15 | 16 | &-title { 17 | color: $M1; 18 | font: { 19 | size: $size-2; 20 | weight: 700; 21 | }; 22 | 23 | @include mobile { 24 | font: { 25 | size: $size-3; 26 | }; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /images/promotion-banner-background-image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /images/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /purgecss-whitelist.js: -------------------------------------------------------------------------------- 1 | const homeLogos = [ 2 | 'square', 3 | 'streak', 4 | 'lenovo', 5 | 'tencent', 6 | 'bigo', 7 | 'blued', 8 | 'colopl', 9 | 'colopl-ja', 10 | 'netstars', 11 | 'paypay', 12 | 'shopee', 13 | 'bookmyshow', 14 | 'bank-of-beijing', 15 | 'hulu', 16 | 'qiy', 17 | 'jd-cloud', 18 | 'netease-games', 19 | 'sj-distributor', 20 | 'mi', 21 | 'sakura', 22 | 'webank', 23 | 'zalopay', 24 | 'unext', 25 | 'opera', 26 | 'zhihu', 27 | ].map((logo) => logo + '-logo') 28 | 29 | module.exports = [...homeLogos] 30 | -------------------------------------------------------------------------------- /src/components/hero.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | import '../styles/components/hero.scss' 4 | 5 | const Hero = React.memo(({ backgroundImage, children }) => { 6 | const className = `Banner` 7 | // const classNameMask = `${className}-mask` 8 | const classNameTitle = `${className}-title` 9 | return ( 10 |
14 |

{children}

15 |
16 | ) 17 | }) 18 | 19 | export default Hero 20 | -------------------------------------------------------------------------------- /images/cross-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /markdown-pages/http.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios').default 2 | 3 | const GITHUB_AUTHORIZATION_TOKEN = process.env.GITHUB_AUTHORIZATION_TOKEN 4 | const baseURL = 'https://api.github.com' 5 | const defaultHeaders = { 6 | Accept: 'application/vnd.github.v3.raw+json', 7 | } 8 | 9 | const http = axios.create({ 10 | baseURL, 11 | headers: GITHUB_AUTHORIZATION_TOKEN 12 | ? { 13 | ...defaultHeaders, 14 | Authorization: `token ${GITHUB_AUTHORIZATION_TOKEN}`, 15 | } 16 | : defaultHeaders, 17 | }) 18 | 19 | module.exports = http 20 | -------------------------------------------------------------------------------- /images/case-studies/quote-mark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/components/scrollTopButton.scss: -------------------------------------------------------------------------------- 1 | .scroll-top-button { 2 | width: 3rem; 3 | height: 3rem; 4 | border-radius: 50%; 5 | background: #666; 6 | opacity: 0.7; 7 | box-shadow: 0 2px 4px 1px rgba(0, 0, 0, 0.25); 8 | border: none; 9 | z-index: 99; 10 | cursor: pointer; 11 | outline: 0; 12 | transition: all 0.3s ease-in-out; 13 | svg { 14 | width: 1.5rem; 15 | height: 1.5rem; 16 | fill: #fff; 17 | } 18 | &:hover { 19 | opacity: 1; 20 | background: #282634; 21 | box-shadow: 0 4px 8px 2px rgba(0, 0, 0, 0.25); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/styles/components/trackGABtns.scss: -------------------------------------------------------------------------------- 1 | @import '../common'; 2 | 3 | .PingCAP-TrackGABtns { 4 | .trackable-btns { 5 | text-align: center; 6 | 7 | a { 8 | @include mobile { 9 | padding: 0 1rem; 10 | border-radius: 5px; 11 | } 12 | 13 | padding: 0 2rem; 14 | margin: 1rem; 15 | color: $primary; 16 | font-size: $size-6; 17 | border-color: $primary; 18 | 19 | &:hover { 20 | color: #fff; 21 | background: $primary; 22 | text-decoration: none; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/lib/dom.js: -------------------------------------------------------------------------------- 1 | function selectText(node) { 2 | if (document.body.createTextRange) { 3 | const range = document.body.createTextRange() 4 | range.moveToElementText(node) 5 | range.select() 6 | } else if (window.getSelection) { 7 | const selection = window.getSelection() 8 | const range = document.createRange() 9 | range.selectNodeContents(node) 10 | selection.removeAllRanges() 11 | selection.addRange(range) 12 | } else { 13 | console.warn('Could not select text in node: Unsupported browser.') 14 | } 15 | } 16 | 17 | export { selectText } 18 | -------------------------------------------------------------------------------- /src/components/tocRenderer.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const TOCRenderer = ({ children: items, inner }) => ( 4 | 18 | ) 19 | 20 | export default TOCRenderer 21 | -------------------------------------------------------------------------------- /images/community/events/hptc/terminal-dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /images/download/check-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /markdown-pages/terms/legal/cookie-policy/archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Cookie Policy Update 3 | summary: Learn about the Cookie Policy on PingCAP sites. 4 | --- 5 | 6 | # Update history of PingCAP Cookie Policy 7 | 8 | - Cookie Policy updated on September 16, 2021 9 | 10 | This update includes: 11 | 12 | 1. Added several cookies providers and specified their cookies, purposes and lifespans; and 13 | 2. Deleted the description regarding the cookies we set because PingCAP does not set our own cookies. 14 | 15 | - [Cookie Policy on PingCAP.com updated on June 1, 2020](/legal/cookie-policy/archive/20200601-20210916) 16 | -------------------------------------------------------------------------------- /images/community/events/hptc/learning-material-bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/lib/string.js: -------------------------------------------------------------------------------- 1 | export function truncate(n, useWordBoundary = false) { 2 | if (this.length <= n) { 3 | return this 4 | } 5 | 6 | const subString = this.substr(0, n - 1) 7 | 8 | return ( 9 | (useWordBoundary 10 | ? subString.substr(0, subString.lastIndexOf(' ')) 11 | : subString) + ' ...' 12 | ) 13 | } 14 | 15 | export function replaceTitle(title) { 16 | if (title.endsWith('.md')) { 17 | return title.replace('.md', '') 18 | } else { 19 | return title.replace(/[^\w-]/g, '-') 20 | } 21 | } 22 | 23 | export function replaceSpaceWithDash(s) { 24 | return s.replace(/\s+/g, '-') 25 | } 26 | -------------------------------------------------------------------------------- /lang.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultLang": "en", 3 | "languages": { 4 | "en": { 5 | "langName": "English", 6 | "blogsPath": "/markdown-pages/blogs/", 7 | "policyTermsPath": "/markdown-pages/terms/", 8 | "partnerPath": "/markdown-pages/partner/", 9 | "hasBlogCategories": true 10 | } 11 | }, 12 | "languagesSimple": { 13 | "en": { 14 | "langName": "English" 15 | }, 16 | "zh": { 17 | "langName": "中文" 18 | }, 19 | "jp": { 20 | "langName": "Japanese" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /images/right-arrow.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /src/components/layout.js: -------------------------------------------------------------------------------- 1 | import Footer from './footer' 2 | import Navbar from './navbar' 3 | import PropTypes from 'prop-types' 4 | import React from 'react' 5 | import PingCAPCookieConsent from './pingcapCookieConsent' 6 | import { useIntl } from 'react-intl' 7 | 8 | const Layout = ({ children, NavbarProps = {} }) => { 9 | const intl = useIntl() 10 | return ( 11 | <> 12 | 13 |
{children}
14 |