• This repository has been archived on 31/Aug/2023
  • Stars
    star
    340
  • Rank 119,675 (Top 3 %)
  • Language
    TypeScript
  • License
    Other
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⚛️ Polished Gatsby theme for documentation site
图片

Gatsby Theme for AntV

✨ Polished Gatsby theme for documentation site.

NPM downloads CI status

Dependency Status

Features

  • Prerendered static site
  • 🌎 Internationalization support by i18next
  • 📝 Markdown-based documentation and menus
  • 🎬 Examples with live playground
  • 🏗 Unified Theme and Layout
  • 🆙 Easy customized header nav
  • 🧩 Built-in home page components

Websites using it

Usage

Create a Gatsby site from gatsby-starter-theme-antv.

$ yarn global add gatsby-cli // or npm install gatsby-cli -g
$ gatsby new mysite https://github.com/antvis/gatsby-starter-theme-antv

Start developing.

$ cd mysite
$ yarn start

AntV 站点 接入方式额外功能

gatsby-config.js

// gatsby-config.js
const { repository } = require('./package.json');

module.exports = {
  plugins: [
    {
      resolve: `@antv/gatsby-theme-antv`,
      options: {
        // pagesPath: './site/pages',
        GATrackingId: `UA-XXXXXXXXX-X`,
        pathPrefix: '/g2',
        // antd 主题:https://github.com/ant-design/ant-design/blob/master/components/style/themes/default.less
        theme: {
          'primary-color': '#873bf4',
        },
        pwa: true, // 是否开启 gatsby-plugin-offline
        cname: true, // 是否自动从 siteUrl 中提取 CNAME 文件
        codeSplit: true, // 是否开启 gatsby 按路由的代码分割,默认为 false
      },
    },
  ],
  siteMetadata: {
    title: `AntV`,
    description: `Ant Visualization solution home page`,
    githubUrl: repository.url,
    logoUrl: '', // 自定义 logo
    navs: [], // 用于定义顶部菜单
    docs: [], // 用于定义文档页面的二级分类菜单
    examples: [], // 用于定义演示页面的二级菜单,属性见下方
    isAntVSite: false, //是否是AntV官网,header样式footer和图表详情页均为定制
    galleryMenuCloseAll: false, // 是否默认收起 gallery 页面所有 menu
    showSearch: true, // 是否展示搜索框
    docsearchOptions: { // algolia 搜索配置
      versionV3: false, // 目前有两个版本的 docsearch.js,V2.x 和 V3.x,此开关决定用哪一个版本的搜索框,根据申请到的参数版本决定,二者互不兼容,详情见 https://docsearch.algolia.com/
      appId: 'xxxx', // V3.x 版本 docsearch 需要appId, V2.x 版不需要。
      apiKey: 'xxxxxx',
      indexName: 'xxx',

    }
    showChinaMirror: true, // 是否展示国内镜像链接
    showLanguageSwitcher: true, // 用于定义是否展示语言切换
    showAntVProductsCard: true, // 是否展示 AntV 系列产品的卡片链接
    showGithubStar: false, // 是否展示 Github Star
    showGithubCorner: true, // 是否展示角落的 GitHub 图标
    showChartResize: true, // 是否在demo页展示图表视图切换
    themeSwitcher: 'g2', // 是否在demo页展示主题切换, 取值为'g2' | 'g2plot' 如果不设置则不展示主题切换工具
    showAPIDoc: true, // 是否在demo页展示API文档
    showExampleDemoTitle: true, // 有截图的是否要展示 title 名称

    mdPlayground: {
      // markdown 文档中的 playground 若干设置
      splitPaneMainSize: '62%',
    },
    playground: {
      container: '<canvas id="container" />', // 定义演示的渲染节点,默认 <div id="container" />
      playgroundDidMount: 'console.log("playgroundDidMount");',
      playgroundWillUnmount: 'console.log("playgroundWillUnmount");',
      devDependencies: {
        // 如果 example 是 ts 文件,需要加上 ts 依赖,才能在 codesandbox 正确运行
        typescript: 'latest',
      },
    },
    versions: [
      {
        '1.x': 'https://1x.ant.design',
        '2.x': 'https://2x.ant.design',
        '3.x': 'https://ant.design',
        '4.x': 'https://next.ant.design',
      },
    ],
    redirects: [
      {
        from: /\/old-url/,
        to: '/new-url', // 不指定 to 时直接跳转到 https://antv-2018.alipay.com/***
      },
    ],
    announcement: {
      zh: '站内公告,用于展示一些更新信息,如:文档更新、版本发布等',
      en:
        'The announcement in the website, used to display some updated information, such as document update, version release and etc',
    },
  },
};

Components

import SEO from '@antv/gatsby-theme-antv/site/components/Seo';
import Header from '@antv/gatsby-theme-antv/site/components/Header';
import Footer from '@antv/gatsby-theme-antv/site/components/Footer';
import Banner from '@antv/gatsby-theme-antv/site/components/Banner';
import Features from '@antv/gatsby-theme-antv/site/components/Features';
import Applications from '@antv/gatsby-theme-antv/site/components/Applications';
import Companies from '@antv/gatsby-theme-antv/site/components/Companies';

// @antv/gatsby-theme-antv/components/Header for commonjs version

const Layout = () => {
  const features = [
    {
      icon: 'https://gw.alipayobjects.com/zos/basement_prod/5dbaf094-c064-4a0d-9968-76020b9f1510.svg',
      title: 'xxxxx',
      description: 'xxxxxxxxxxxxxxxxxxxxxxxxx',
    },
    {
      icon: 'https://gw.alipayobjects.com/zos/basement_prod/0a0371ab-6bed-41ad-a99b-87a5044ba11b.svg',
      title: 'xxxxx',
      description: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    },
    {
      icon: 'https://gw.alipayobjects.com/zos/basement_prod/716d0bc0-e311-4b28-b79f-afdd16e8148e.svg',
      title: 'xxxxx',
      description: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    },
  ];
  const cases = [
    {
      logo: 'https://gw.alipayobjects.com/mdn/rms_23b644/afts/img/A*2Ij9T76DyCcAAAAAAAAAAABkARQnAQ',
      title: '灯塔专业版',
      description:
        '深入金融的基金深入金融的基金深入金融的基金深入金融的基金深入金融的基金深入金融的基金深入金融的基金深入金融的基金深入金融的基金深入金融的基金深入金融的基金',
      link: '#',
      image:
        'https://gw.alipayobjects.com/mdn/rms_23b644/afts/img/A*oCd7Sq3N-QEAAAAAAAAAAABkARQnAQ',
    },
    // ...
  ];
  const companies = [
    {
      name: '公司1',
      image:
        'https://gw.alipayobjects.com/mdn/rms_f8c6a0/afts/img/A*Z1NnQ6L4xCIAAAAAAAAAAABkARQnAQ',
    },
    {
      name: '公司2',
      image:
        'https://gw.alipayobjects.com/mdn/rms_f8c6a0/afts/img/A*6u3hTpsd7h8AAAAAAAAAAABkARQnAQ',
    },
    // ...
  ];
  const notifications = [
    {
      type: '测试',
      title: 'G6 3.2 全新上线!',
      date: '2019.12.04',
      link: '#',
    },
  ];

  const downloadButton = {
    text: '下载使用',
    link: 'https://antv.alipay.com/zh-cn/index.html',
  };

  return (
    <>
      <SEO title="蚂蚁数据可视化" lang="zh" />
      <Header
        subTitle="子产品名"
        logo={{
          link: 'https://antv.alipay.com',
          img: <img src="url" />,
        }}
        githubUrl="https://github.com/antvis/g2"
        // docs={[]}
        showSearch={false}
        showGithubCorner={false}
        showLanguageSwitcher={false}
        onLanguageChange={(language) => {
          console.log(language);
        }}
        defaultLanguage="zh"
      />
      <Footer
      // columns={[]}
      // bottom={<div>powered by antv</div>}
      />

      <Banner
        coverImage={<svg></svg>} // 右侧 banner svg 内容
        title="主页标题"
        description="主页描述内容描述内容描述内容描述内容"
        buttonText="按钮文字"
        buttonHref={'#按钮链接路径'}
        notifications={notifications} // 可传 1-2 个内容,若不传则显示 2 个默认通知
        style={{}}
        className="Banner 的 className"
        video="视频按钮点开后视频的链接,不传则不会出现视频按钮"
        githubStarLink="Github Star 链接,不传则不会出现 GitHub Start 按钮"
        downloadButton={downloadButton} // 不传则不会出现下载按钮
      />
      <Features
        title="优势页面名称" // 可不传
        features={features} // 必传
        style={{}}
        className="Features 的 className"
      />
      <Cases cases={cases} style={{}} className="Cases 的 className" />
      <Companies
        title="公司页面名称" // 必传
        companies={companies} // 必传
        style={{}}
        className="Companies 的 className"
      />
    </>
  );
};

Custom Tag in Markdown

We support three type of custom tags in markdown

  • tag
<tag color="green" text="分类图例">分类图例</tag>

See antd Tag components for more usage.

  • swatch
<swatch colors="#F4664A,#30BF78,#FAAD14" colorNames="Red,Green,Yellow"></swatch>

swatch props:

name description isRequired type default
title - true string -
darkmode - false boolean -
colors - false string -
colornames - false string -
grid - false 'sudoku' 'sudoku'
  • playground

Insert demos to markdown document as code playground.

将 demo 以代码预览效果插入到 markdown 文档中。

<playground path='category/basic/demo/ts-demo.ts' rid='container'></playground>

playground props:

name description isRequired type default
path demo relative path true string -
height height of code playground false number 400
rid specify the container ID when more than one demo in docs false string 'container'

Develop

yarn install
yarn start

Visit https://localhost:8000 to preview.

Publish to npm

⚠️ If it is your first time for GitHub release, please read the following steps, otherwise, you can skip directly to the third step.

  1. Generate a personal access token: (release-it only needs "repo" access; no "admin" or other scopes).

generate token

Click the button 'Generate token', then your token would be generated. Copy this token as soon as you get it since you won’t be able to see it again after refreshing the web page!

  1. Make sure the token is available as an environment variable.

Example:

export GITHUB_TOKEN="YOUR TOKEN"

In macOS or Linux, this can be added to e.g. ~/.profile or ~/.zshrc, so it's available everytime the shell is used.

More details for the GitHub releases preperation: GitHub Releases

  1. Run the following commands in your terminal.
cd @antv/gatsby-theme-antv
npm run release

Deploy

npm run deploy

Set envoironment variable GATSBY_PATH_PREFIX to / in deploy service like netlify to preview pathPrefix site in root domain.

Add Dependency

cd @antv/gatsby-theme-antv
yarn add shallowequal

or

yarn workspace @antv/gatsby-theme-antv add shallowequal

Q&A

How to customise layout footer?

// gatsby-browser.js
exports.wrapPageElement = ({ element, props }) => {
  return React.cloneElement(element, {
    ...props,
    ...element.props,
    // https://github.com/react-component/footer#api
    footerProps: {
      bottom: 'xxx',
    },
  });
};

How to embed other markdown document in a markdown document

`markdown:docs/common/data-mapping.zh.md`

docs/common/data-mapping.zh.md is the path relative to the current project. It supports multiple levels of nested.

Related libraries

More Repositories

1

G2

📊 The concise and progressive visualization grammar.
TypeScript
11,919
star
2

G6

♾ A Graph Visualization Framework in JavaScript
TypeScript
10,572
star
3

F2

📱📈An elegant, interactive and flexible charting library for mobile.
JavaScript
7,847
star
4

X6

🚀 JavaScript diagramming library that uses SVG and HTML for rendering.
TypeScript
5,333
star
5

L7

🌎 Large-scale WebGL-powered Geospatial Data Visualization analysis engine
TypeScript
3,403
star
6

G2Plot

🍡 An interactive and responsive charting library.
TypeScript
2,501
star
7

S2

⚡️ A practical visualization library for tabular analysis.
TypeScript
1,396
star
8

AVA

🤖 A framework for automated visual analytics.
TypeScript
1,306
star
9

wx-f2

F2 的微信小程序
JavaScript
1,267
star
10

G

💥 A flexible rendering engine for visualization.
TypeScript
988
star
11

Graphin

A React toolkit for graph visualization based on G6
TypeScript
973
star
12

G6VP

G6VP is an online visual analysis tool for graphs and a low-code platform for building graph applications.
TypeScript
710
star
13

XFlow

React component for building interactive diagrams.
TypeScript
540
star
14

g6-editor

JavaScript
529
star
15

antvis.github.io

🔜 AntV 新站点!
TypeScript
377
star
16

g2-react

This repo is being deprecated, check Ant Design Charts https://github.com/ant-design/ant-design-charts
JavaScript
362
star
17

data-set

state driven all in one data process for data visualization.
TypeScript
240
star
18

hierarchy

Layout algorithms for visualizing hierarchical data.
JavaScript
219
star
19

F2Native

📱📈An elegant, interactive and flexible native charting library for mobile.
C++
210
star
20

layout

Layout algorithms for graphs.
TypeScript
171
star
21

L7VP

L7VP is an geospatial intelligent visual analysis and application development tools.
TypeScript
148
star
22

my-f2

F2 的支付宝小程序版本
JavaScript
144
star
23

g-webgl-compute

A GPGPU implementation based on WebGL.
TypeScript
142
star
24

F6

F6 is a graph visualization engine which provides quick and smooth operations on mobile devices.
JavaScript
127
star
25

f2-canvas

微信小程序 F2 自定义图表组件
JavaScript
118
star
26

algorithm

常用的图算法 JS 实现,提供给 G6 及 Graphin 用于图分析场景使用。
TypeScript
96
star
27

china-geojson

This repo is being deprecated.
96
star
28

SAMJS

TypeScript
81
star
29

L7Plot

🌍 Geospatial Visualization Chart Library
TypeScript
79
star
30

util

utility library for AntV products.
TypeScript
76
star
31

mini-program-f2-demos

支付宝小程序小程序端的 F2 图表 demo
JavaScript
69
star
32

LarkMap

A React toolkit for geospatial visualization based on L7.
TypeScript
61
star
33

scale

📦 Toolkit for mapping abstract data into visual representation.
TypeScript
55
star
34

component

🍱 AntV UI component based on G render engine.
TypeScript
55
star
35

awesome-f2-charts

F2 图表可视化方案精选
HTML
47
star
36

vis-dashboard

🎨 Awesome dashboards, built with G2 and G2Plot.
TypeScript
40
star
37

L7Draw

L7 绘制控件
TypeScript
39
star
38

GUI

UI components for G. Merge to @antvis/component.
TypeScript
39
star
39

coord

Toolkit for apply point transformations for vector.
TypeScript
38
star
40

gatsby-starter-theme-antv

⚛️ Gatsby's starter of 👉
TypeScript
35
star
41

theme-set

💄 Customize theme for G2, G2Plot of AntV(孵化中)
TypeScript
35
star
42

FEngine

TypeScript
30
star
43

Dipper

下一代位置可视分析研发框架
TypeScript
28
star
44

g2-brush

Select a one-, two-dimensional or irregular region using the mouse.
JavaScript
24
star
45

smart-color

A JavaScript library for color computation.
TypeScript
24
star
46

L7Editor

Geographic data editing tool based on L7
TypeScript
24
star
47

L7-react

L7 React 版
TypeScript
23
star
48

g2-plugin-slider

A datazoom slider plugin for G2.
JavaScript
20
star
49

f2-context

F2针对多端的context适配
TypeScript
20
star
50

L7-Leaflet

L7 leaflet 插件
TypeScript
19
star
51

event-emitter

Simple event emitter for @antvis
TypeScript
19
star
52

dumi-theme-antv

AntV website theme based on dumi2.
TypeScript
19
star
53

DipperMap

A tool supporting geo data visualization
TypeScript
16
star
54

L7-boundary

行政区划围栏可视化方案
TypeScript
15
star
55

vis-predict-engine

可视化预测引擎,目前只用于预测图可视化布局.布局预测的模型由本引擎内置,支持force/radial/concentric/circular的四布局分类
TypeScript
13
star
56

attr

Attribute mapping module for @antvis.
TypeScript
12
star
57

graphlib

A lib containing multible usages for graph structure, graph algorithm, and other graph ops.
TypeScript
12
star
58

antv-spec

A declarative grammar that supports various technology stacks of AntV.
TypeScript
12
star
59

geo-coord

地理坐标系
TypeScript
11
star
60

my-f2-pc

淘宝PC小程序
JavaScript
8
star
61

L7Gallery

L7 demo 案例集锦
TypeScript
8
star
62

stat

常用统计函数的实现
TypeScript
8
star
63

interaction

interaction bindings for G2 and F2
TypeScript
7
star
64

L7-CustomLayer-Template

TypeScript
5
star
65

adjust

Adjust module for @antvis.
TypeScript
5
star
66

g-device-api

A Device API references WebGPU implementations
TypeScript
5
star
67

graphin-studio-site

Github Page Repo for Graphin Studio
HTML
5
star
68

A8

A music visualizer
TypeScript
5
star
69

g2plot-schema

Schemas of configs(options) of G2Plot chart types.
TypeScript
4
star
70

template

📃 Template repository for @antvis.
JavaScript
4
star
71

old-site

AntV 旧版本站点
HTML
4
star
72

vis-steg

Visualization Steganography: conceal information within visualization images.
TypeScript
4
star
73

AVAPy

Python Library for Automatic Visual Analytics
Python
4
star
74

g-gesture

WIP: Gesture module for @antv/g.
TypeScript
4
star
75

insight-component

Components for GI&LI
TypeScript
3
star
76

antvis-sites-data

🔢 Headless CMS data for https://antv.vision
3
star
77

g2-next-site

JavaScript
3
star
78

chart-node-g6

the Toolkit for G6 chart type nodes
TypeScript
3
star
79

autochart-config-panel

GUI config panel for the autoChart feature of AntV/AVA.
TypeScript
3
star
80

g-perf

Performance monitor for G.
TypeScript
3
star
81

data-samples

Open data set collection for AntV products
TypeScript
3
star
82

color-schema

A JSON schema used to regulate semantic color assets or palettes.
TypeScript
3
star
83

F7

L7小程序版本,支持支付宝、微信等多端小程序。
TypeScript
2
star
84

g2-3.x-site

The site of G2 3.x version
HTML
2
star
85

async-hook

the control flow for l7
TypeScript
2
star
86

create-antv-demo

A simple CV-dashboard framework for practicing how to use AntV.
JavaScript
2
star
87

g2-extensions

The one-stop shop for official @antv/g2 extensions.
TypeScript
2
star
88

thumbnails

Thumbnail images for different chart types from Chart Knowledge Base.
TypeScript
2
star
89

g6-3.2.x-site

The site for G6 3.2.x
HTML
2
star
90

gi-export

TypeScript
2
star
91

g2plot-1.x-site

The site of G2Plot 1.x version.
HTML
1
star
92

storytelling

Telling story by data visualization.
TypeScript
1
star
93

translator

A translator based on Google Translate.
JavaScript
1
star