feat(zoom-image): add plugin
This commit is contained in:
parent
8463f4d5c5
commit
50fa6fcb89
5 changed files with 52 additions and 4 deletions
|
|
@ -2,6 +2,7 @@ var rollup = require('rollup')
|
||||||
var buble = require('rollup-plugin-buble')
|
var buble = require('rollup-plugin-buble')
|
||||||
var commonjs = require('rollup-plugin-commonjs')
|
var commonjs = require('rollup-plugin-commonjs')
|
||||||
var nodeResolve = require('rollup-plugin-node-resolve')
|
var nodeResolve = require('rollup-plugin-node-resolve')
|
||||||
|
var string = require('rollup-plugin-string')
|
||||||
var uglify = require('rollup-plugin-uglify')
|
var uglify = require('rollup-plugin-uglify')
|
||||||
var isProd = process.argv[process.argv.length - 1] !== '--dev'
|
var isProd = process.argv[process.argv.length - 1] !== '--dev'
|
||||||
|
|
||||||
|
|
@ -9,7 +10,7 @@ var build = function (opts) {
|
||||||
rollup
|
rollup
|
||||||
.rollup({
|
.rollup({
|
||||||
entry: 'src/' + opts.entry,
|
entry: 'src/' + opts.entry,
|
||||||
plugins: [buble(), commonjs(), nodeResolve()].concat(opts.plugins || [])
|
plugins: (opts.plugins || []).concat([buble(), commonjs(), nodeResolve()])
|
||||||
})
|
})
|
||||||
.then(function (bundle) {
|
.then(function (bundle) {
|
||||||
var dest = 'lib/' + (opts.output || opts.entry)
|
var dest = 'lib/' + (opts.output || opts.entry)
|
||||||
|
|
@ -36,14 +37,20 @@ var plugins = [
|
||||||
{ name: 'ga', entry: 'ga.js', moduleName: 'GA' },
|
{ name: 'ga', entry: 'ga.js', moduleName: 'GA' },
|
||||||
{ name: 'emoji', entry: 'emoji.js', moduleName: 'Emoji' },
|
{ name: 'emoji', entry: 'emoji.js', moduleName: 'Emoji' },
|
||||||
{ name: 'external-script', entry: 'external-script.js', moduleName: 'ExternalScript' },
|
{ name: 'external-script', entry: 'external-script.js', moduleName: 'ExternalScript' },
|
||||||
{ name: 'front-matter', entry: 'front-matter/index.js', moduleName: 'FrontMatter' }
|
{ name: 'front-matter', entry: 'front-matter/index.js', moduleName: 'FrontMatter' },
|
||||||
|
{ name: 'zoom-image', entry: 'zoom-image.js', moduleName: 'ZoomImage' }
|
||||||
]
|
]
|
||||||
|
|
||||||
plugins.forEach(item => {
|
plugins.forEach(item => {
|
||||||
build({
|
build({
|
||||||
entry: 'plugins/' + item.entry,
|
entry: 'plugins/' + item.entry,
|
||||||
output: 'plugins/' + item.name + '.js',
|
output: 'plugins/' + item.name + '.js',
|
||||||
moduleName: 'D.' + item.moduleName
|
moduleName: 'D.' + item.moduleName,
|
||||||
|
plugins: [
|
||||||
|
string({
|
||||||
|
include: '**/*.css'
|
||||||
|
})
|
||||||
|
]
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,3 +82,11 @@ If the script on the page is an external one (imports a js file via `src` attrib
|
||||||
```html
|
```html
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/external-script.js"></script>
|
<script src="//unpkg.com/docsify/lib/plugins/external-script.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Zoom image
|
||||||
|
|
||||||
|
Medium's Image Zoom. Based on [zoom-image](https://github.com/egoist/zoom-image).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="//unpkg.com/docsify/lib/plugins/zoom-image.js"></script>
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -79,3 +79,11 @@
|
||||||
```html
|
```html
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/external-script.js"></script>
|
<script src="//unpkg.com/docsify/lib/plugins/external-script.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 图片缩放 - Zoom image
|
||||||
|
|
||||||
|
Medium's 风格的图片缩放插件. 基于 [zoom-image](https://github.com/egoist/zoom-image)。
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="//unpkg.com/docsify/lib/plugins/zoom-image.js"></script>
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -40,11 +40,13 @@
|
||||||
"rollup-plugin-buble": "^0.15.0",
|
"rollup-plugin-buble": "^0.15.0",
|
||||||
"rollup-plugin-commonjs": "^7.0.0",
|
"rollup-plugin-commonjs": "^7.0.0",
|
||||||
"rollup-plugin-node-resolve": "^2.0.0",
|
"rollup-plugin-node-resolve": "^2.0.0",
|
||||||
|
"rollup-plugin-string": "^2.0.2",
|
||||||
"rollup-plugin-uglify": "^1.0.1",
|
"rollup-plugin-uglify": "^1.0.1",
|
||||||
"serve-static": "^1.11.1"
|
"serve-static": "^1.11.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"marked": "^0.3.6",
|
"marked": "^0.3.6",
|
||||||
"prismjs": "^1.5.1"
|
"prismjs": "^1.5.1",
|
||||||
|
"zoom-image": "^0.1.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
23
src/plugins/zoom-image.js
Normal file
23
src/plugins/zoom-image.js
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
import zoom from 'zoom-image'
|
||||||
|
import style from 'zoom-image/css/zoom-image.css'
|
||||||
|
|
||||||
|
function install (hook) {
|
||||||
|
const dom = Docsify.dom
|
||||||
|
let destroys
|
||||||
|
|
||||||
|
// add style
|
||||||
|
dom.appendTo(dom.head, dom.create('style', style))
|
||||||
|
|
||||||
|
hook.doneEach(_ => {
|
||||||
|
const images = dom.findAll('img:not(.emoji)')
|
||||||
|
|
||||||
|
if (Array.isArray(destroys) && destroys.length) {
|
||||||
|
destroys.forEach(o => o())
|
||||||
|
destroys = []
|
||||||
|
}
|
||||||
|
|
||||||
|
destroys = images.map(zoom)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$docsify.plugins = [].concat(install, $docsify.plugins)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue