diff --git a/.gitignore b/.gitignore index d7b0ec02..4d743592 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,7 @@ es/ .storybook .doc .history +# umi +.umi +.umi-production +.umi-test diff --git a/.umirc.ts b/.umirc.ts new file mode 100644 index 00000000..234e8c2f --- /dev/null +++ b/.umirc.ts @@ -0,0 +1,19 @@ +// more config: https://d.umijs.org/config +import { defineConfig } from 'dumi'; + +export default defineConfig({ + title: 'rc-image', + favicon: + 'https://avatars0.githubusercontent.com/u/9441414?s=200&v=4', + logo: + 'https://avatars0.githubusercontent.com/u/9441414?s=200&v=4', + outputPath: '.doc', + exportStatic: {}, + styles: [ + ` + .markdown table { + width: auto !important; + } + `, + ] +}); diff --git a/README.md b/README.md index ab7a64fe..582c9282 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # rc-image ---- - React Image. [![NPM version][npm-image]][npm-url] [![CircleCI status][circleci-image]][circleci-url] [![Test coverage][codecov-image]][codecov-url] [![Dependencies][david-image]][david-url] [![DevDependencies][david-dev-image]][david-dev-url] [![npm download][download-image]][download-url] [![bundle size][bundlephobia-image]][bundlephobia-url] @@ -34,8 +32,6 @@ React Image. - [x] Fallback - [x] Multiple Preview -### Keyboard - ## install [![rc-image](https://nodei.co/npm/rc-image.png)](https://npmjs.org/package/rc-image) @@ -47,7 +43,7 @@ npm install npm start ``` -```jsx +```js const Image = require('rc-image'); ReactDOM.render( @@ -70,7 +66,7 @@ ReactDOM.render( preview the merged src -```jsx +```js const Image = require('rc-image'); ReactDOM.render( diff --git a/docs/demo/basic.md b/docs/demo/basic.md new file mode 100644 index 00000000..301e8c6d --- /dev/null +++ b/docs/demo/basic.md @@ -0,0 +1,3 @@ +## basic + + diff --git a/docs/demo/controlled.md b/docs/demo/controlled.md new file mode 100644 index 00000000..c475a581 --- /dev/null +++ b/docs/demo/controlled.md @@ -0,0 +1,3 @@ +## controlled + + diff --git a/docs/demo/controlledWithGroup.md b/docs/demo/controlledWithGroup.md new file mode 100644 index 00000000..1c95dba6 --- /dev/null +++ b/docs/demo/controlledWithGroup.md @@ -0,0 +1,3 @@ +## controlledWithGroup + + diff --git a/docs/demo/fallback.md b/docs/demo/fallback.md new file mode 100644 index 00000000..0c0ff023 --- /dev/null +++ b/docs/demo/fallback.md @@ -0,0 +1,3 @@ +## fallback + + diff --git a/docs/demo/placeholder.md b/docs/demo/placeholder.md new file mode 100644 index 00000000..dcce7b6a --- /dev/null +++ b/docs/demo/placeholder.md @@ -0,0 +1,3 @@ +## placeholder + + diff --git a/docs/demo/previewgroup.md b/docs/demo/previewgroup.md new file mode 100644 index 00000000..440bb325 --- /dev/null +++ b/docs/demo/previewgroup.md @@ -0,0 +1,3 @@ +## previewgroup + + diff --git a/docs/demo/thumbnail.md b/docs/demo/thumbnail.md new file mode 100644 index 00000000..c8acfa3d --- /dev/null +++ b/docs/demo/thumbnail.md @@ -0,0 +1,3 @@ +## thumbnail + + diff --git a/examples/basic.tsx b/docs/examples/basic.tsx similarity index 95% rename from examples/basic.tsx rename to docs/examples/basic.tsx index aa78a7a2..12ce82c0 100644 --- a/examples/basic.tsx +++ b/docs/examples/basic.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import Image from '../src'; -import '../assets/index.less'; +import Image from 'rc-image'; +import '../../assets/index.less'; export default function Base() { return ( diff --git a/examples/controlled.tsx b/docs/examples/controlled.tsx similarity index 90% rename from examples/controlled.tsx rename to docs/examples/controlled.tsx index e7a45487..0e6fbe5a 100644 --- a/examples/controlled.tsx +++ b/docs/examples/controlled.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import Image from '../src'; -import '../assets/index.less'; +import Image from 'rc-image'; +import '../../assets/index.less'; export default function Base() { const [visible, setVisible] = React.useState(false); diff --git a/examples/controlledWithGroup.tsx b/docs/examples/controlledWithGroup.tsx similarity index 92% rename from examples/controlledWithGroup.tsx rename to docs/examples/controlledWithGroup.tsx index b2e3b4a5..768675b4 100644 --- a/examples/controlledWithGroup.tsx +++ b/docs/examples/controlledWithGroup.tsx @@ -1,7 +1,7 @@ /* eslint-disable global-require */ import * as React from 'react'; -import Image from '../src'; -import '../assets/index.less'; +import Image from 'rc-image'; +import '../../assets/index.less'; export default function Base() { const [visible, setVisible] = React.useState(false); diff --git a/examples/demo1.png b/docs/examples/demo1.png similarity index 100% rename from examples/demo1.png rename to docs/examples/demo1.png diff --git a/examples/fallback.tsx b/docs/examples/fallback.tsx similarity index 80% rename from examples/fallback.tsx rename to docs/examples/fallback.tsx index 8e492e35..1643243f 100644 --- a/examples/fallback.tsx +++ b/docs/examples/fallback.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import Image from '../src'; -import '../assets/index.less'; +import Image from 'rc-image'; +import '../../assets/index.less'; export default function Base() { return ( diff --git a/examples/images/1.jpeg b/docs/examples/images/1.jpeg similarity index 100% rename from examples/images/1.jpeg rename to docs/examples/images/1.jpeg diff --git a/examples/images/2.jpeg b/docs/examples/images/2.jpeg similarity index 100% rename from examples/images/2.jpeg rename to docs/examples/images/2.jpeg diff --git a/examples/images/3.jpeg b/docs/examples/images/3.jpeg similarity index 100% rename from examples/images/3.jpeg rename to docs/examples/images/3.jpeg diff --git a/examples/images/disabled.jpeg b/docs/examples/images/disabled.jpeg similarity index 100% rename from examples/images/disabled.jpeg rename to docs/examples/images/disabled.jpeg diff --git a/examples/placeholder.tsx b/docs/examples/placeholder.tsx similarity index 97% rename from examples/placeholder.tsx rename to docs/examples/placeholder.tsx index 14139fed..75859c9e 100644 --- a/examples/placeholder.tsx +++ b/docs/examples/placeholder.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import Image from '../src'; -import '../assets/index.less'; +import Image from 'rc-image'; +import '../../assets/index.less'; export default function Base() { const [random, setRandom] = React.useState(Date.now()); diff --git a/examples/previewgroup.tsx b/docs/examples/previewgroup.tsx similarity index 92% rename from examples/previewgroup.tsx rename to docs/examples/previewgroup.tsx index 703d54c1..a33ed91b 100644 --- a/examples/previewgroup.tsx +++ b/docs/examples/previewgroup.tsx @@ -1,7 +1,7 @@ /* eslint-disable global-require */ import * as React from 'react'; -import Image from '../src'; -import '../assets/index.less'; +import Image from 'rc-image'; +import '../../assets/index.less'; export default function PreviewGroup() { return ( diff --git a/examples/thumbnail.tsx b/docs/examples/thumbnail.tsx similarity index 95% rename from examples/thumbnail.tsx rename to docs/examples/thumbnail.tsx index 6c2ca844..d284c42c 100644 --- a/examples/thumbnail.tsx +++ b/docs/examples/thumbnail.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import Image from '../src'; -import '../assets/index.less'; +import Image from 'rc-image'; +import '../../assets/index.less'; export default function Thumbnail() { return ( diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..db78acdb --- /dev/null +++ b/docs/index.md @@ -0,0 +1,5 @@ +--- +title: rc-image +--- + + diff --git a/now.json b/now.json index d9e3ddb8..36bb9d63 100644 --- a/now.json +++ b/now.json @@ -7,5 +7,8 @@ "use": "@now/static-build", "config": { "distDir": ".doc" } } + ], + "routes": [ + { "src": "/(.*)", "dest": "/dist/$1" } ] } diff --git a/package.json b/package.json index 19279a89..11af2573 100644 --- a/package.json +++ b/package.json @@ -26,14 +26,16 @@ }, "license": "MIT", "scripts": { - "start": "cross-env NODE_ENV=development father doc dev --storybook", - "build": "father doc build --storybook", + "start": "dumi dev", + "docs:build": "dumi build", + "docs:deploy": "gh-pages -d docs-dist", "compile": "father build && lessc assets/index.less assets/index.css", "prepublishOnly": "npm run compile && np --yolo --no-publish --any-branch", "lint": "eslint src/ --ext .ts,.tsx,.jsx,.js,.md", "prettier": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"", "test": "father test", - "coverage": "father test --coverage" + "coverage": "father test --coverage", + "now-build": "npm run docs:build" }, "peerDependencies": { "react": ">=16.9.0", @@ -54,11 +56,13 @@ "@types/react-dom": "^16.9.8", "@umijs/fabric": "^2.2.2", "cross-env": "^7.0.2", + "dumi": "^1.1.4", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "enzyme-to-json": "^3.5.0", "eslint": "^7.6.0", "father": "^2.29.6", + "glob": "^7.1.6", "less": "^3.12.2", "np": "^7.0.0", "react": "^16.13.1", diff --git a/tsconfig.json b/tsconfig.json index b6f727e2..ec8d7779 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,11 @@ "jsx": "preserve", "declaration": true, "skipLibCheck": true, - "esModuleInterop": true + "esModuleInterop": true, + "paths": { + "@/*": ["src/*"], + "@@/*": ["src/.umi/*"], + "rc-image": ["src/index.ts"] + } } } diff --git a/typings.d.ts b/typings.d.ts new file mode 100644 index 00000000..71e0e9f4 --- /dev/null +++ b/typings.d.ts @@ -0,0 +1,2 @@ +declare module '*.css'; +declare module '*.less'; diff --git a/update-example.js b/update-example.js new file mode 100644 index 00000000..f8b9e909 --- /dev/null +++ b/update-example.js @@ -0,0 +1,31 @@ +/* + 用于 dumi 改造使用, + 可用于将 examples 的文件批量修改为 demo 引入形式, + 其他项目根据具体情况使用。 +*/ + +const fs = require('fs'); +const glob = require('glob'); + +const suffix = '.tsx'; + +const paths = glob.sync(`./docs/examples/*${suffix}`); + +paths.forEach(path => { + const name = path.split('/').pop().split('.')[0]; + fs.writeFile( + `./docs/demo/${name}.md`, + `## ${name} + + +`, + 'utf8', + function(error) { + if(error){ + console.log(error); + return false; + } + console.log(`${name} 更新成功~`); + } + ) +});