a_websitemanage2.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <html>
  2. <head>
  3. <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/vditor/dist/index.css"/>
  4. <script src="//cdn.jsdelivr.net/npm/vditor/dist/index.min.js"></script>
  5. <script src="//cdn.jsdelivr.net/npm/vditor/dist/js/lute/lute.min.js"></script>
  6. <script src="//cdn.jsdelivr.net/npm/vditor/dist/js/highlight.js/highlight.pack.js"></script>
  7. <script src="//cdn.jsdelivr.net/npm/vditor/dist/js/mermaid/mermaid.min.js"></script>
  8. <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"
  9. integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ=="
  10. crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  11. <script>
  12. window.Lute = window.Lute || {}
  13. window.hljs = window.hljs || {}
  14. </script>
  15. <style>
  16. .header {
  17. background-color: #fff;
  18. box-shadow: rgba(0, 0, 0, 0.05) 0 1px 7px;
  19. border-bottom: 1px solid #e1e4e8;
  20. }
  21. </style>
  22. <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans"/>
  23. </head>
  24. <body>
  25. <h1>Markdown Editor</h1>
  26. <script>
  27. function save(event) {
  28. event.preventDefault();
  29. var fname = document.getElementById("fname").value;
  30. alert(fname)
  31. $.ajax({
  32. type: 'POST', url: "/vditor/save/"
  33. , data: JSON.stringify({
  34. 'fname': fname,
  35. 'content': vditor.getValue(),
  36. })
  37. , dataType: 'json'
  38. , contentType: 'application/json'
  39. , success: function (data) {
  40. console.log("success")
  41. }
  42. });
  43. }
  44. </script>
  45. file name:<input type="text" id="fname" value="untitled.md">
  46. <button onclick="save(event)">Save</button>
  47. <div id="vditor"></div>
  48. <script>
  49. var vditor = new Vditor('vditor', {
  50. "height": 720,
  51. "cache": {
  52. "enable": false
  53. },
  54. "value": "## 所见即所得(WYSIWYG)\n所见即所得模式对不熟悉 Markdown 的用户较为友好,熟悉 Markdown 的话也可以无缝使用。 ",
  55. "mode": "wysiwyg",
  56. upload: {
  57. url: '/vditor/uploads',
  58. linkToImgUrl: '/static/vditor/uploads/',
  59. accept: '.jpg,.png,.gif,.jpeg',
  60. multiple: true,
  61. filename(name) {
  62. return name.replace(/\?|\\|\/|:|\||<|>|\*|\[|\]|\s+/g, '-')
  63. },
  64. },
  65. //上传成功时执行
  66. success(editor, msg) {
  67. let responseData = JSON.parse(msg)
  68. console.log(responseData)
  69. let imageUrl = responseData.url;
  70. let succFileText = "";
  71. if (vditor && vditor.vditor.currentMode === "wysiwyg") {
  72. succFileText += `\n <img alt=${imageUrl} src="${imageUrl}">`;
  73. } else {
  74. succFileText += `\n![${imageUrl}](${imageUrl})`;
  75. }
  76. //将图片路径写入文本
  77. document.execCommand("insertHTML", false, succFileText);
  78. alert('成功');
  79. },
  80. error() {
  81. alert('失败');
  82. }
  83. })
  84. </script>
  85. </body>
  86. </html>