From ce877e002635c91b74cbafe07045e75a3e4476e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AE=A1=E5=AE=9C=E5=B0=A7?= Date: Mon, 3 Aug 2020 17:48:25 +0800 Subject: [PATCH] =?UTF-8?q?markdown=E5=9B=BE=E7=89=87=E5=AE=BD=E5=BA=A6?= =?UTF-8?q?=E9=AB=98=E5=BA=A6=E4=BC=98=E5=8C=96=EF=BC=9A=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=90=8E=E6=89=8B=E5=8A=A8=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=B1=95=E7=A4=BA=E5=AE=BD=E5=BA=A6=E9=AB=98?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/js/markdown-editor.js | 6 +-- public/assets/js/wizard.js | 24 +----------- public/assets/vendor/editor-md/editormd.js | 37 ++++++++++++++++++- .../plugins/image-dialog/image-dialog.js | 31 +++++++++++++--- .../image-handle-paste/image-handle-paste.js | 2 +- .../views/components/markdown-show.blade.php | 3 +- .../views/components/swagger-show.blade.php | 2 +- resources/views/doc/markdown.blade.php | 2 + 8 files changed, 72 insertions(+), 35 deletions(-) diff --git a/public/assets/js/markdown-editor.js b/public/assets/js/markdown-editor.js index ce422180..f4ec6a45 100644 --- a/public/assets/js/markdown-editor.js +++ b/public/assets/js/markdown-editor.js @@ -256,13 +256,13 @@ $.wz.mdEditor = function (editor_id, params) { mermaid.init(undefined, $(".markdown-body .mermaid")); }); - $.wz.imageResize('.editormd-preview-container'); + $.wz.imageClick('.editormd-preview-container'); $.wz.sqlCreateSyntaxParser('.editormd-preview-container .wz-sql-create'); $.wz.loadIframe(); }, onchange: function () { - // 图片缩放支持 - $.wz.imageResize('.editormd-preview-container'); + // 图片点击支持 + $.wz.imageClick('.editormd-preview-container'); // mermaid 支持 var mermaidElements = $('.editormd-preview').find('.mermaid'); if (mermaidElements.length > 0) { diff --git a/public/assets/js/wizard.js b/public/assets/js/wizard.js index 7f73f022..25e655c6 100644 --- a/public/assets/js/wizard.js +++ b/public/assets/js/wizard.js @@ -269,32 +269,12 @@ $.wz = { }, 3000); }, /** - * 图片缩放支持 + * 图片点击支持 * * @param selector */ - imageResize: function (selector) { + imageClick: function (selector) { $(selector).find('img').each(function () { - var size = $(this).attr('title'); - var regexp = /size:\s*\d*,\d*/; - if (regexp.test(size)) { - var sizes = regexp.exec(size)[0].substr(5).split(','); - - var width = parseInt(sizes[0]); - var height = parseInt(sizes[1]); - - - if (width > 0) { - $(this).css('max-width', width + 'px'); - } - - if (height > 0) { - $(this).css('max-height', height + 'px'); - } - } else { - $(this).css('max-width', '99%'); - } - if ($(this).parent().get(0).tagName !== 'A') { $(this).wrap(''); } diff --git a/public/assets/vendor/editor-md/editormd.js b/public/assets/vendor/editor-md/editormd.js index 0f4df231..5ff44b2a 100755 --- a/public/assets/vendor/editor-md/editormd.js +++ b/public/assets/vendor/editor-md/editormd.js @@ -83,6 +83,7 @@ }; editormd.defaults = { + resourcesVersion: "", // 静态资源版本 mode: "gfm", //gfm or markdown name: "", // Form element name value: "", // value for CodeMirror, if mode not gfm/markdown @@ -3220,6 +3221,38 @@ var editormdLogoReg = regexs.editormdLogo; var pageBreakReg = regexs.pageBreak; + markedRenderer.image = function(href, title, text){ + var out='' + text + ' 0) { + cssStyle += 'max-width:' + width + 'px;'; + } + + if (height > 0) { + cssStyle += 'max-height:' + height + 'px;'; + } + } else { + cssStyle += 'max-width:99%;'; + } + + if (cssStyle !== '') { + out += ' style="' + cssStyle + '" '; + } + + out += this.options.xhtml ? "/>" : ">"; + + return out + }; + markedRenderer.emoji = function (text) { text = text.replace(editormd.regexs.emojiDatetime, function ($1) { @@ -3968,7 +4001,7 @@ callback(); }; - css.href = fileName + ".css"; + css.href = fileName + ".css" + (editormd.defaults.resourcesVersion ? '?' + editormd.defaults.resourcesVersion : ''); if (into === "head") { document.getElementsByTagName("head")[0].appendChild(css); @@ -3999,7 +4032,7 @@ script = document.createElement("script"); script.id = fileName.replace(/[\./]+/g, "-"); script.type = "text/javascript"; - script.src = fileName + ".js"; + script.src = fileName + ".js" + (editormd.defaults.resourcesVersion ? '?' + editormd.defaults.resourcesVersion : ''); if (editormd.isIE8) { script.onreadystatechange = function () { diff --git a/public/assets/vendor/editor-md/plugins/image-dialog/image-dialog.js b/public/assets/vendor/editor-md/plugins/image-dialog/image-dialog.js index e5126994..1895f68e 100755 --- a/public/assets/vendor/editor-md/plugins/image-dialog/image-dialog.js +++ b/public/assets/vendor/editor-md/plugins/image-dialog/image-dialog.js @@ -23,7 +23,7 @@ var editor = this.editor; var settings = this.settings; var cursor = cm.getCursor(); - var selection = cm.getSelection() + " size:800,1000"; + var selection = cm.getSelection(); var imageLang = lang.dialog.image; var classPrefix = this.classPrefix; var iframeName = classPrefix + "image-iframe"; @@ -59,6 +59,11 @@ "" + "" + "
" + + "" + + "" + + "" + + "
图片最大展示尺寸,如果不限制,请留空
" + + "
" + "" + "" + "
" + @@ -69,7 +74,7 @@ dialog = this.createDialog({ title : imageLang.title, width : (settings.imageUpload) ? 465 : 380, - height : 254, + height : 320, name : dialogName, content : dialogContent, mask : settings.dialogShowMask, @@ -84,6 +89,8 @@ var url = this.find("[data-url]").val(); var alt = this.find("[data-alt]").val(); var link = this.find("[data-link]").val(); + var maxWidth = this.find("[data-width]").val(); + var maxHeight = this.find("[data-height]").val(); if (url === "") { @@ -91,15 +98,27 @@ return false; } + var sizeControl = ""; + if (maxWidth !== '' || maxHeight !== '') { + sizeControl += 'size:'; + if (maxWidth !== '') { + sizeControl += maxWidth; + } + + if (maxHeight !== '') { + sizeControl += ',' + maxHeight; + } + } + var altAttr = (alt !== "") ? " \"" + alt + "\"" : ""; if (link === "" || link === "http://") { - cm.replaceSelection("![" + alt + "](" + url + altAttr + ")"); + cm.replaceSelection("![" + (sizeControl !== '' ? sizeControl : alt) + "](" + url + altAttr + ")"); } else { - cm.replaceSelection("[![" + alt + "](" + url + altAttr + ")](" + link + altAttr + ")"); + cm.replaceSelection("[![" + (sizeControl !== '' ? sizeControl : alt ) + "](" + url + altAttr + ")](" + link + altAttr + ")"); } if (alt === "") { @@ -184,7 +203,9 @@ dialog.find("[type=\"text\"]").val(""); dialog.find("[type=\"file\"]").val(""); dialog.find("[data-link]").val("http://"); - dialog.find("[data-alt]").val("size:800,1000"); + dialog.find("[data-alt]").val(""); + dialog.find("[data-width]").val("800"); + dialog.find("[data-height]").val("1000"); this.dialogShowMask(dialog); this.dialogLockScreen(); diff --git a/public/assets/vendor/editor-md/plugins/image-handle-paste/image-handle-paste.js b/public/assets/vendor/editor-md/plugins/image-handle-paste/image-handle-paste.js index 145efd4e..43e237f9 100644 --- a/public/assets/vendor/editor-md/plugins/image-handle-paste/image-handle-paste.js +++ b/public/assets/vendor/editor-md/plugins/image-handle-paste/image-handle-paste.js @@ -46,7 +46,7 @@ if(ret.success == 1){ var dialog = $("." + classPrefix + "image-dialog"); dialog.find("input[data-url]").val(ret.url); - dialog.find('input[data-alt]').val('size:800,1000'); + // dialog.find('input[data-alt]').val(ret.url.split('/').pop()); //cm.replaceSelection("![](" + ret.url + ")"); } console.log(ret.message); diff --git a/resources/views/components/markdown-show.blade.php b/resources/views/components/markdown-show.blade.php index 8bd01c0f..a45bfb68 100644 --- a/resources/views/components/markdown-show.blade.php +++ b/resources/views/components/markdown-show.blade.php @@ -30,6 +30,7 @@ // mermaid.initialize({startOnLoad:true}); mermaid.init(undefined, $(".markdown-body .mermaid")); + editormd.defaults.resourcesVersion = "{{ resourceVersion() }}"; // 内容区域解析markdown editormd.katexURL = { css : "{{ cdn_resource('/assets/vendor/katex-0.11.min') }}", @@ -101,7 +102,7 @@ } }); // 图片缩放支持 - $.wz.imageResize('#markdown-body'); + $.wz.imageClick('#markdown-body'); // sql-create 标签解析 $.wz.sqlCreateSyntaxParser('#markdown-body .wz-sql-create'); diff --git a/resources/views/components/swagger-show.blade.php b/resources/views/components/swagger-show.blade.php index ad63f8f4..73b143dc 100644 --- a/resources/views/components/swagger-show.blade.php +++ b/resources/views/components/swagger-show.blade.php @@ -26,7 +26,7 @@ }); window.setTimeout(function () { - $.wz.imageResize('#markdown-body'); + $.wz.imageClick('#markdown-body'); // $('.swagger-ui section.models h4').trigger('click'); }, 3000); }); diff --git a/resources/views/doc/markdown.blade.php b/resources/views/doc/markdown.blade.php index 6325f883..3c57a625 100644 --- a/resources/views/doc/markdown.blade.php +++ b/resources/views/doc/markdown.blade.php @@ -40,6 +40,8 @@ editormd.markedURL.js = '{{ cdn_resource('/assets/vendor/editor-md/lib/marked-0.3.3.min') }}'; @endif + editormd.defaults.resourcesVersion = "{{ resourceVersion() }}"; + // 初始化 Editor.md var editor = $.wz.mdEditor('editormd', { template: function () {