mirror of
https://gitee.com/docsifyjs/docsify.git
synced 2024-11-30 11:08:58 +08:00
24e61f5e2f
Missing trailing slash in the Edit button url
2.4 KiB
2.4 KiB
Write a plugin
A plugin is simply a function that takes hook
as an argument. The hook supports handling of asynchronous tasks.
Full configuration
window.$docsify = {
plugins: [
function(hook, vm) {
hook.init(function() {
// Called when the script starts running, only trigger once, no arguments,
});
hook.beforeEach(function(content) {
// Invoked each time before parsing the Markdown file.
// ...
return content;
});
hook.afterEach(function(html, next) {
// Invoked each time after the Markdown file is parsed.
// beforeEach and afterEach support asynchronous。
// ...
// call `next(html)` when task is done.
next(html);
});
hook.doneEach(function() {
// Invoked each time after the data is fully loaded, no arguments,
// ...
});
hook.mounted(function() {
// Called after initial completion. Only trigger once, no arguments.
});
hook.ready(function() {
// Called after initial completion, no arguments.
});
}
]
};
!> You can get internal methods through window.Docsify
. Get the current instance through the second argument.
Example
footer
Add footer component in each pages.
window.$docsify = {
plugins: [
function(hook) {
var footer = [
'<hr/>',
'<footer>',
'<span><a href="https://github.com/QingWei-Li">cinwell</a> ©2017.</span>',
'<span>Proudly published with <a href="https://github.com/docsifyjs/docsify" target="_blank">docsify</a>.</span>',
'</footer>'
].join('');
hook.afterEach(function(html) {
return html + footer;
});
}
]
};
Edit Button
window.$docsify = {
plugins: [
function(hook, vm) {
hook.beforeEach(function(html) {
var url =
'https://github.com/docsifyjs/docsify/blob/master/docs/' +
vm.route.file;
var editHtml = '[📝 EDIT DOCUMENT](' + url + ')\n';
return (
editHtml +
html +
'\n----\n' +
'Last modified {docsify-updated} ' +
editHtml
);
});
}
]
};
Tips
Get docsify version
console.log(window.Docsify.version)
Current version: loading