知乎专栏 Markdown 扩展支持

Add Markdown Support for Zhihu Zhuanlan Editor

目前为 2017-05-27 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name 知乎专栏 Markdown 扩展支持
  3. // @namespace https://github.com/discountry/zhihumarkdown
  4. // @require https://cdn.bootcss.com/marked/0.3.6/marked.min.js
  5. // @require https://cdn.bootcss.com/to-markdown/3.0.4/to-markdown.min.js
  6. // @version 0.2
  7. // @description Add Markdown Support for Zhihu Zhuanlan Editor
  8. // @author Discountry
  9. // @match https://zhuanlan.zhihu.com/write
  10. // @match https://zhuanlan.zhihu.com/p/*/edit
  11. // @grant unsafeWindow
  12. // @copyright 2017+, @余博伦
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17. var initWatcher = setInterval(function() {
  18. console.log('watch');
  19. if (unsafeWindow.angular) {
  20. clearInterval(initWatcher);
  21. init();
  22. }
  23. }, 100);
  24.  
  25. function init() {
  26. console.log('angular', unsafeWindow.angular);
  27. console.log("Makrdown Included!");
  28.  
  29. var toHTML = function() {
  30. var plainContent = unsafeWindow.document.querySelector("#js-entry-content");
  31. console.log(plainContent.innerHTML);
  32. plainContent.innerText = toMarkdown(plainContent.innerHTML);
  33.  
  34. };
  35. unsafeWindow.toHTML = toHTML;
  36. var toMD = function() {
  37. var plainContent = unsafeWindow.document.querySelector("#js-entry-content");
  38. console.log(plainContent.innerText);
  39. plainContent.innerHTML = marked(plainContent.innerText);
  40. plainContent.addEventListener('click', function autoMD() {
  41. plainContent.removeEventListener('click', autoMD);
  42. unsafeWindow.toHTML();
  43. });
  44. };
  45. unsafeWindow.toMD = toMD;
  46. }
  47.  
  48. function createButton() {
  49. var toolBar = unsafeWindow.document.querySelector(".goog-toolbar");
  50. var toMarkdownButton = '<div class="goog-inline-block goog-toolbar-button" title="转为markdown" role="button" id="markdown" style="user-select: none;" onclick="window.toMD()"><div class="goog-inline-block goog-toolbar-button-outer-box" style="user-select: none;"><div class="goog-inline-block goog-toolbar-button-inner-box" style="user-select: none;"><div class="tr-icon tr-code" style="user-select: none;"></div></div></div></div>';
  51. toolBar.insertAdjacentHTML('beforeend', toMarkdownButton);
  52. console.log("Button Added!");
  53. }
  54.  
  55. setTimeout(createButton, 1000);
  56.  
  57. })();
  58.  

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址