docsify-edit-link.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ; (function (win) {
  2. win.EditOnGithubPlugin = {}
  3. function create(docBase, docEditBase, title) {
  4. title = title || 'Edit on github'
  5. docEditBase = docEditBase || docBase.replace(/\/blob\//, '/edit/')
  6. function editDoc(event, vm) {
  7. var docName = vm.route.file
  8. if (docName) {
  9. var editLink = docEditBase + docName
  10. window.open(editLink)
  11. event.preventDefault()
  12. return false
  13. } else {
  14. return true
  15. }
  16. }
  17. win.EditOnGithubPlugin.editDoc = editDoc
  18. return function (hook, vm) {
  19. win.EditOnGithubPlugin.onClick = function (event) {
  20. EditOnGithubPlugin.editDoc(event, vm)
  21. }
  22. var header = [
  23. '<a class="github-edit-btn" title="Edit on GitHub" href="',
  24. docBase,
  25. '" target="_blank" onclick="EditOnGithubPlugin.onClick(event)">',
  26. 'Edit on <strong>GitHub</strong>',
  27. '</a>'
  28. ].join('')
  29. hook.afterEach(function (html) {
  30. return html + header
  31. })
  32. }
  33. }
  34. win.EditOnGithubPlugin.create = create
  35. })(window)