diff --git a/public/assets/css/app.css b/public/assets/css/app.css
index 847e38c..d3a5630 100644
--- a/public/assets/css/app.css
+++ b/public/assets/css/app.css
@@ -228,6 +228,6 @@ section {
}
.CodeMirror-scroll, .preview-wrapper {
- overflow: unset!important;
- overflow-y: scroll!important;
+ overflow: unset;
+ overflow-y: scroll;
}
\ No newline at end of file
diff --git a/src/assets/images/favicon.png b/src/assets/images/favicon.png
new file mode 100644
index 0000000..e151dec
Binary files /dev/null and b/src/assets/images/favicon.png differ
diff --git a/src/assets/less/theme.less b/src/assets/less/theme.less
index 3815277..3f61906 100644
--- a/src/assets/less/theme.less
+++ b/src/assets/less/theme.less
@@ -20,13 +20,18 @@
background-color: @nightCodeMirrorColor;
box-shadow: inset 0 0 0 1px rgba(100, 37, 37, 0.102);
}
- .preview {
- background-color: @nightPreviewColor;
- box-shadow: 0 0 70px rgba(0, 0, 0, 0.3);
- }
- .preview-wrapper {
- background-color: @nightCodeMirrorColor;
- box-shadow: inset 0 0 0 1px rgba(233, 231, 231, 0.102);
+ .output_night {
+ .preview {
+ background-color: @nightPreviewColor;
+ box-shadow: 0 0 70px rgba(0, 0, 0, 0.3);
+ }
+ .preview-wrapper {
+ background-color: @nightCodeMirrorColor;
+ box-shadow: inset 0 0 0 1px rgba(233, 231, 231, 0.102);
+ }
+ .code-snippet__fix {
+ background-color: rgb(238,238,238);
+ }
}
.cm-s-style-mirror .CodeMirror-matchingbracket {
color: @nightWhiteColor!important;
@@ -60,7 +65,7 @@
color: @nightWhiteColor;
}
}
- .insert__dialog, .about__dialog {
+ .insert__dialog, .about__dialog, .reset__dialog {
.el-dialog {
background-color: @nightBgColor;
}
diff --git a/src/components/codeMirror/header.vue b/src/components/codeMirror/header.vue
index c0bff92..d565853 100644
--- a/src/components/codeMirror/header.vue
+++ b/src/components/codeMirror/header.vue
@@ -64,6 +64,7 @@
+
@@ -81,6 +82,7 @@ import {
} from '../../scripts/converter'
import config from '../../scripts/config'
import DEFAULT_CSS_CONTENT from '../../scripts/themes/default-theme-css'
+import resetDialog from '../codeMirror/resetDialog'
import {mapState, mapMutations} from 'vuex'
export default {
name: 'editor-header',
@@ -88,11 +90,15 @@ export default {
return {
config: config,
citeStatus: false,
+ showResetConfirm: false,
selectFont: '',
selectSize: '',
selectColor: ''
};
},
+ components: {
+ resetDialog
+ },
computed: {
effect() {
return this.nightMode ? 'dark' : 'light'
@@ -165,28 +171,32 @@ export default {
},
// 复制到微信公众号
copy() {
- let clipboardDiv = document.getElementById('output')
- solveWeChatImage()
- this.setHtml(solveHtml())
+ this.$emit('startCopy');
+ setTimeout(() => {
+ let clipboardDiv = document.getElementById('output')
+ solveWeChatImage()
+ this.setHtml(solveHtml(this.nightMode))
- clipboardDiv.focus()
- window.getSelection().removeAllRanges()
- let range = document.createRange()
+ clipboardDiv.focus()
+ window.getSelection().removeAllRanges()
+ let range = document.createRange()
- range.setStartBefore(clipboardDiv.firstChild)
- range.setEndAfter(clipboardDiv.lastChild)
- window.getSelection().addRange(range)
- document.execCommand('copy')
- // 输出提示
- this.$notify({
- showClose: true,
- message: '已复制渲染后的文章到剪贴板,可直接到公众号后台粘贴',
- offset: 80,
- duration: 1600,
- type: 'success'
- })
- clipboardDiv.innerHTML = this.output; // 恢复现场
- this.$emit('refresh')
+ range.setStartBefore(clipboardDiv.firstChild)
+ range.setEndAfter(clipboardDiv.lastChild)
+ window.getSelection().addRange(range)
+ document.execCommand('copy')
+ // 输出提示
+ this.$notify({
+ showClose: true,
+ message: '已复制渲染后的文章到剪贴板,可直接到公众号后台粘贴',
+ offset: 80,
+ duration: 1600,
+ type: 'success'
+ })
+ clipboardDiv.innerHTML = this.output; // 恢复现场
+ this.$emit('refresh')
+ this.$emit('endCopy');
+ }, 1000);
},
// 自定义CSS样式
async customStyle () {
@@ -207,26 +217,22 @@ export default {
},
// 重置页面
reset() {
- this.$confirm('此操作将丢失本地缓存的文本和自定义样式,是否继续?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- confirmButtonClass: 'el-button--success',
- cancelButtonClass: 'el-button--success is-plain',
- type: 'warning',
- center: true
- }).then(() => {
- localStorage.clear()
- this.clearEditorToDefault();
- this.editor.focus()
- this.citeStatus = false;
- this.statusChanged(false);
- this.fontChanged(this.config.builtinFonts[0].value)
- this.colorChanged(this.config.colorOption[1].value)
- this.sizeChanged(this.config.sizeOption[2].value)
- this.$emit('cssChanged')
- }).catch(() => {
- this.editor.focus()
- })
+ this.showResetConfirm = true;
+ },
+ confirmReset() {
+ localStorage.clear()
+ this.clearEditorToDefault();
+ this.editor.focus()
+ this.citeStatus = false;
+ this.statusChanged(false);
+ this.fontChanged(this.config.builtinFonts[0].value)
+ this.colorChanged(this.config.colorOption[1].value)
+ this.sizeChanged(this.config.sizeOption[2].value)
+ this.$emit('cssChanged')
+ },
+ cancelReset() {
+ this.showResetConfirm = false;
+ this.editor.focus()
},
// 下载编辑器内容到本地
downloadEditorContent () {
diff --git a/src/components/codeMirror/resetDialog.vue b/src/components/codeMirror/resetDialog.vue
new file mode 100644
index 0000000..90be414
--- /dev/null
+++ b/src/components/codeMirror/resetDialog.vue
@@ -0,0 +1,43 @@
+
+
+
+ 此操作将丢失本地缓存的文本和自定义样式,是否继续?
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/scripts/converter.js b/src/scripts/converter.js
index 0f52083..a9f7524 100644
--- a/src/scripts/converter.js
+++ b/src/scripts/converter.js
@@ -13,9 +13,9 @@ export function solveWeChatImage() {
image.style.height = height;
}
}
-export function solveHtml() {
+export function solveHtml(nightMode = false) {
const element = document.getElementById("output-wrapper");
- let html = element.innerHTML;
+ let html = element.innerHTML
let res = "";
res = juice.inlineContent(
html,
@@ -25,4 +25,4 @@ export function solveHtml() {
}
);
return res;
-}
+}
\ No newline at end of file
diff --git a/src/view/CodemirrorEditor.vue b/src/view/CodemirrorEditor.vue
index 279a9ed..9d83dac 100644
--- a/src/view/CodemirrorEditor.vue
+++ b/src/view/CodemirrorEditor.vue
@@ -1,7 +1,7 @@
-