diff --git a/package.json b/package.json index b5f2aa2..4bc88ed 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "publish": "lerna publish --conventional-commits", "build": "yarn build:docs", "build:docs": "yarn workspace docs build", + "start": "yarn workspace docs start", + "build-with-prefix": "cross-env base=/antdsite yarn build", "cl": "conventional-changelog -p angular -i CHANGELOG.md -s" }, "workspaces": [ @@ -15,6 +17,7 @@ ], "devDependencies": { "lerna": "^3.11.1", - "conventional-changelog-cli": "2.0.23" + "conventional-changelog-cli": "2.0.23", + "cross-env": "5.2.0" } } diff --git a/packages/antdsite/gatsby-config.js b/packages/antdsite/gatsby-config.js index 33124d8..eeb95b6 100644 --- a/packages/antdsite/gatsby-config.js +++ b/packages/antdsite/gatsby-config.js @@ -8,6 +8,7 @@ function getPlugin(pluginName) { } module.exports = { + pathPrefix: finalConfig.base, plugins: [ { resolve: 'gatsby-mdx-fix', diff --git a/packages/antdsite/lib/gatsby/createPages.js b/packages/antdsite/lib/gatsby/createPages.js index fd06331..1e72b6e 100644 --- a/packages/antdsite/lib/gatsby/createPages.js +++ b/packages/antdsite/lib/gatsby/createPages.js @@ -13,8 +13,7 @@ const path = require('path'); function isHome(frontmatter, slug) { return ( frontmatter.home === true && - ((themeConfig.locales && Object.keys(themeConfig.locales).indexOf(slug) !== -1) || - slug === webConfig.base) + ((themeConfig.locales && Object.keys(themeConfig.locales).indexOf(slug) !== -1) || slug === '/') ); } @@ -34,7 +33,7 @@ module.exports = async ({ graphql, actions }) => { createRedirect({ fromPath: '/index.html', redirectInBrowser: true, - toPath: '/', + toPath: webConfig.base }); const allMdx = await graphql( @@ -89,8 +88,8 @@ module.exports = async ({ graphql, actions }) => { isWebsiteHome, webConfig, slug, - maxTocDeep: frontmatter.maxTocDeep || webConfig.themeConfig.maxTocDeep, - }, + maxTocDeep: frontmatter.maxTocDeep || webConfig.themeConfig.maxTocDeep + } }); }; @@ -102,7 +101,7 @@ module.exports = async ({ graphql, actions }) => { return createRedirect({ fromPath: path, redirectInBrowser: true, - toPath: redirects[path], + toPath: redirects[path] }); }); }; diff --git a/packages/antdsite/lib/gatsby/onCreateNode.js b/packages/antdsite/lib/gatsby/onCreateNode.js index a3f1475..23f4c11 100644 --- a/packages/antdsite/lib/gatsby/onCreateNode.js +++ b/packages/antdsite/lib/gatsby/onCreateNode.js @@ -6,7 +6,7 @@ const path = require('path'); const fs = require('fs'); const fetch = require('node-fetch'); const himalaya = require('himalaya'); -var { themeConfig, base } = require('../util').getFinalConfig(); +var { themeConfig } = require('../util').getFinalConfig(); // // 获取用户的头像列表 const getAvatarList = async filename => { @@ -15,7 +15,7 @@ const getAvatarList = async filename => { }/`; const url = `${sourcePath}${filename}/list`; const html = await fetch(url, { - timeout: 10000, + timeout: 10000 }).then(res => res.text(), () => null); if (!html) return []; @@ -31,7 +31,7 @@ const getAvatarList = async filename => { return { href, text, - src, + src }; } return null; @@ -40,10 +40,6 @@ const getAvatarList = async filename => { return data; }; -function withBase(_path) { - return (base + _path).replace(/\/\//g, '/'); -} - function normalizeSlug(slug) { if (!slug.startsWith('/')) { slug = '/' + slug; @@ -68,7 +64,7 @@ module.exports = exports.onCreateNode = async ({ node, actions, getNode }) => { createNodeField({ node, name: `modifiedTime`, - value: mtime, + value: mtime }); slug = normalizeSlug(`${relativePath.replace(/(readme)?\.mdx?/i, '')}`); @@ -76,13 +72,13 @@ module.exports = exports.onCreateNode = async ({ node, actions, getNode }) => { createNodeField({ node, name: 'slug', - value: withBase(slug), + value: slug }); createNodeField({ node, name: 'path', - value: mdFilePath, + value: mdFilePath }); if (themeConfig.showAvatarList) { @@ -90,7 +86,7 @@ module.exports = exports.onCreateNode = async ({ node, actions, getNode }) => { createNodeField({ node, name: 'avatarList', - value: html, + value: html }); } } diff --git a/packages/antdsite/src/default-theme/components/home/Banner.jsx b/packages/antdsite/src/default-theme/components/home/Banner.jsx index 96fe63a..8750e5c 100644 --- a/packages/antdsite/src/default-theme/components/home/Banner.jsx +++ b/packages/antdsite/src/default-theme/components/home/Banner.jsx @@ -3,6 +3,7 @@ import GitHubButton from 'react-github-button-fix-iebug'; import { Button } from 'antd'; import { Link } from 'gatsby'; import { PageContext } from 'antdsite'; +import * as utils from '../utils'; function Banner(props) { return ( @@ -19,7 +20,13 @@ function Banner(props) {
{(frontmatter.heroImage || currentLocaleWebConfig.logo) && (
- Hero + Hero
)}
diff --git a/packages/antdsite/src/default-theme/components/menu/index.tsx b/packages/antdsite/src/default-theme/components/menu/index.tsx index 00c68a2..b99a53c 100644 --- a/packages/antdsite/src/default-theme/components/menu/index.tsx +++ b/packages/antdsite/src/default-theme/components/menu/index.tsx @@ -188,7 +188,7 @@ export default class LeftMenu extends React.PureComponent { const menuChild = ( resolveItem(item, edges, resolvePathWithBase(path, base), 1)) - : []; +function resolvePageSidebar(config: any, path: string, edges: Edges): PageInfo[] { + return config ? config.map((item: any) => resolveItem(item, edges, path, 1)) : []; } export function resolveSidebarItems( @@ -196,7 +201,6 @@ export function resolveSidebarItems( const { currentLocaleWebConfig } = getcurrentLocaleConfigBySlug(webConfig, currentSlug); const pageSidebarConfig = currentLocaleWebConfig.themeConfig.sidebar; - const { base } = currentLocaleWebConfig; let currentPageSidebarItems: PageInfo[] = []; let allPagesSidebarItems: PageInfo[] = []; @@ -204,11 +208,11 @@ export function resolveSidebarItems( if (!pageSidebarConfig) { return { currentPageSidebarItems, - allPagesSidebarItems, + allPagesSidebarItems }; } else { allPagesSidebarItems = Object.keys(pageSidebarConfig).reduce((pre, cur) => { - const resolvedConfig = resolvePageSidebar(pageSidebarConfig[cur], cur, base, edges); + const resolvedConfig = resolvePageSidebar(pageSidebarConfig[cur], cur, edges); if (currentSlug.startsWith(cur)) { currentPageSidebarItems = resolvedConfig; @@ -219,7 +223,7 @@ export function resolveSidebarItems( return { currentPageSidebarItems, - allPagesSidebarItems, + allPagesSidebarItems }; } } @@ -229,7 +233,7 @@ function resolveItem(item: any, pages: Edges, base: string, nestedLevel: number) return resolvePage(pages, item, base); } else if (Array.isArray(item)) { return Object.assign(resolvePage(pages, item[0], base), { - title: item[1], + title: item[1] }); } else { if (nestedLevel > 2) { @@ -242,7 +246,7 @@ function resolveItem(item: any, pages: Edges, base: string, nestedLevel: number) return { title: item.title, children: children.map((child: any) => resolveItem(child, pages, base, nestedLevel + 1)), - collapsable: item.collapsable !== false, + collapsable: item.collapsable !== false }; } } diff --git a/packages/antdsite/src/default-theme/layout/header.tsx b/packages/antdsite/src/default-theme/layout/header.tsx index 39cf6ab..d7c992a 100644 --- a/packages/antdsite/src/default-theme/layout/header.tsx +++ b/packages/antdsite/src/default-theme/layout/header.tsx @@ -21,7 +21,7 @@ class Header extends React.Component { state: HeaderState = { inputValue: undefined, menuVisible: false, - menuMode: 'horizontal', + menuMode: 'horizontal' }; static contextType = PageContext; @@ -49,13 +49,13 @@ class Header extends React.Component { handleShowMenu = () => { this.setState({ - menuVisible: true, + menuVisible: true }); }; onMenuVisibleChange = (visible: boolean) => { this.setState({ - menuVisible: visible, + menuVisible: visible }); }; @@ -94,7 +94,7 @@ class Header extends React.Component { const { webConfig, slug, allPagesSidebarItems } = this.context; let currentLocate = utils.getCurrentLoacle(webConfig, slug); let { - currentLocaleWebConfig: { themeConfig, title, base, logo }, + currentLocaleWebConfig: { themeConfig, title, base, logo } } = utils.getcurrentLocaleConfigBySlug(webConfig, slug); const { locales } = webConfig.themeConfig; @@ -109,7 +109,7 @@ class Header extends React.Component { {nav.map((item: any, index: number) => { return this.renderNav(item, index); })} - , + ]; const chooseLanguage = currentLocate ? ( @@ -144,8 +144,8 @@ class Header extends React.Component { ) : null} - - {logo && {title}} + + {logo && {title} {title} diff --git a/packages/antdsite/src/templates/index.tsx b/packages/antdsite/src/templates/index.tsx index c29b6c2..cfb4984 100644 --- a/packages/antdsite/src/templates/index.tsx +++ b/packages/antdsite/src/templates/index.tsx @@ -94,7 +94,7 @@ export default function Template(props: { const { body } = props.data.mdx.code; return ( - + ( + + {ctx => { + return ; + }} + +); diff --git a/packages/docs/.antdsite/config.js b/packages/docs/.antdsite/config.js index 8fc7d8a..68b9a67 100644 --- a/packages/docs/.antdsite/config.js +++ b/packages/docs/.antdsite/config.js @@ -1,5 +1,5 @@ module.exports = { - base: '/', + base: process.env.base || '/', locales: { '/': { lang: 'en-US', @@ -68,11 +68,6 @@ module.exports = { text: '默认主题配置', link: '/zh/default-theme-config/' }, - { - text: 'Gitee', - link: 'https://gitee.com/wangyi_7099/AntdSite', - important: true - }, { text: 'GitHub', link: 'https://github.com/YvesCoding/antdsite', diff --git a/packages/docs/docs/README.MD b/packages/docs/docs/README.MD index f8beab9..0bf0bcc 100644 --- a/packages/docs/docs/README.MD +++ b/packages/docs/docs/README.MD @@ -26,6 +26,7 @@ yarn global add antdsite-cli ```bash npm install antdsite-cli -g + ``` #### Use `cli` to initialize a website @@ -46,6 +47,8 @@ npm start #### Visit the default address `localhost:8000` to see the effect page +import ImgWidthBase from '@components/ImgWidthBase' +

- +

diff --git a/packages/docs/docs/guide/getting-started.md b/packages/docs/docs/guide/getting-started.md index 6c9927c..412d9b7 100644 --- a/packages/docs/docs/guide/getting-started.md +++ b/packages/docs/docs/guide/getting-started.md @@ -40,12 +40,14 @@ npm start Visit the default address `localhost:8000` to see the effect page -## Effect Page +## Screenshots + +import ImgWidthBase from '@components/ImgWidthBase'

- +

- +

diff --git a/packages/docs/docs/guide/introduction.md b/packages/docs/docs/guide/introduction.md index 182c7cd..63b2478 100644 --- a/packages/docs/docs/guide/introduction.md +++ b/packages/docs/docs/guide/introduction.md @@ -8,12 +8,14 @@ import './introduction.less' AntdSite is a documentation generator based on [Ant Design](https://ant.design), driven by [Gatsby Js](https://www.gatsbyjs.org/)(You can totally ignore these two technologies, just know the basic knowledge of markdown, and then simply configure it to build a website. Of course, it would be better if you could do both). The configuration of documents refers to the vue-based document generator - [vuepress](https://vuepress.vuejs.org/config/). +import ImgWidthBase from '@components/ImgWidthBase' +
- + + - + + - +
## Basic features diff --git a/packages/docs/docs/zh/README.MD b/packages/docs/docs/zh/README.MD index f37045f..3fb49bd 100644 --- a/packages/docs/docs/zh/README.MD +++ b/packages/docs/docs/zh/README.MD @@ -46,6 +46,8 @@ npm start #### 访问默认的地址 `localhost:8000` 即可看到效果页面 +import ImgWidthBase from '@components/ImgWidthBase' +

- +

diff --git a/packages/docs/docs/zh/guide/getting-started.md b/packages/docs/docs/zh/guide/getting-started.md index 5d042b9..9975890 100644 --- a/packages/docs/docs/zh/guide/getting-started.md +++ b/packages/docs/docs/zh/guide/getting-started.md @@ -42,10 +42,12 @@ npm start ## 效果图 +import ImgWidthBase from '@components/ImgWidthBase' +

- +

- +

diff --git a/packages/docs/docs/zh/guide/introduction.md b/packages/docs/docs/zh/guide/introduction.md index 1d6e14c..50d8b41 100644 --- a/packages/docs/docs/zh/guide/introduction.md +++ b/packages/docs/docs/zh/guide/introduction.md @@ -8,12 +8,14 @@ import './introduction.less' AntdSite 是一个基于[Ant Design](https://ant.design),由[GatsbyJs](https://www.gatsbyjs.org/)驱动的一个文档生成器 (你可以完全不会这两项技术,只需要会 markdown 的基础知识,然后简单配置,就能搭建一个网站。当然,如果你会这两项技术那更好)。文档的配置参考了基于 vue 的文档生成器 - [vuepress](https://vuepress.vuejs.org/config/)。 +import ImgWidthBase from '@components/ImgWidthBase' +
- + + - + + - +
## 基本特点 diff --git a/packages/docs/package.json b/packages/docs/package.json index 6b56f7d..1ff9493 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -3,7 +3,7 @@ "private": true, "version": "0.0.8", "scripts": { - "build": "yarn clean && gatsby build", + "build": "yarn clean && gatsby build --prefix-paths", "start": "yarn clean && gatsby develop", "clean": "gatsby clean" }, diff --git a/yarn.lock b/yarn.lock index f3280d1..0c83176 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4433,6 +4433,14 @@ create-react-context@^0.2.1: fbjs "^0.8.0" gud "^1.0.0" +cross-env@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" + integrity sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg== + dependencies: + cross-spawn "^6.0.5" + is-windows "^1.0.0" + cross-fetch@2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723"