diff --git a/src/assets/scripts/uploadImageFile.js b/src/assets/scripts/uploadImageFile.js
index 6249762..b95b27e 100644
--- a/src/assets/scripts/uploadImageFile.js
+++ b/src/assets/scripts/uploadImageFile.js
@@ -3,13 +3,14 @@ import fileApi from '../../api/file';
export function uploadImgFile(file) {
return new Promise((resolve, reject) => {
const checkImageResult = isImageIllegal(file);
+
if (checkImageResult) {
reject(checkImageResult);
return;
}
const base64Reader = new FileReader();
- base64Reader.readAsDataURL(file);
+ base64Reader.readAsDataURL(file);
base64Reader.onload = function () {
const base64Content = this.result.split(',').pop();
fileApi.fileUpload(base64Content, file).then(res => {
@@ -17,7 +18,7 @@ export function uploadImgFile(file) {
}).catch(err => {
reject(err);
})
- }
+ };
});
}
diff --git a/src/assets/scripts/util.js b/src/assets/scripts/util.js
index 9273229..2c326f9 100644
--- a/src/assets/scripts/util.js
+++ b/src/assets/scripts/util.js
@@ -216,3 +216,28 @@ export function downLoadMD(doc) {
downLink.click();
document.body.removeChild(downLink);
}
+
+/**
+ * 生成列表字符串
+ * @param {*} data 对应内容集合
+ * @param {*} rows 行
+ * @param {*} cols 列
+ */
+export function createTable({data, rows, cols}) {
+ let table = "";
+ let currRow = [];
+ for (let i = 0; i < rows + 2; ++i) {
+ table += "|\t";
+ currRow = [];
+ for (let j = 0; j < cols; ++j) {
+ const rowIdx = i > 1 ? i - 1 : i;
+ i === 1 ?
+ currRow.push("---\t") :
+ currRow.push(data[`k_${rowIdx}_${j}`] || "");
+ }
+ table += currRow.join("\t|\t");
+ table += "\t|\n";
+ }
+
+ return table;
+}
\ No newline at end of file
diff --git a/src/components/CodemirrorEditor/aboutDialog.vue b/src/components/CodemirrorEditor/aboutDialog.vue
index c45b2fe..d1775fc 100644
--- a/src/components/CodemirrorEditor/aboutDialog.vue
+++ b/src/components/CodemirrorEditor/aboutDialog.vue
@@ -24,7 +24,7 @@ export default {
},
methods: {
onRedirect(url) {
- window.open(url)
+ window.open(url);
}
}
}
diff --git a/src/components/CodemirrorEditor/header.vue b/src/components/CodemirrorEditor/header.vue
index db72bde..235c4a2 100644
--- a/src/components/CodemirrorEditor/header.vue
+++ b/src/components/CodemirrorEditor/header.vue
@@ -120,9 +120,9 @@ export default {
fontChanged(fonts) {
this.setWxRendererOptions({
fonts: fonts
- })
+ });
this.setCurrentFont(fonts);
- this.$emit('refresh')
+ this.$emit('refresh');
},
sizeChanged(size) {
let theme = setFontSize(size.replace('px', ''))
@@ -130,26 +130,27 @@ export default {
this.setWxRendererOptions({
size: size,
theme: theme
- })
+ });
this.setCurrentSize(size);
- this.$emit('refresh')
+ this.$emit('refresh');
},
colorChanged(color) {
- let theme = setFontSize(this.currentSize.replace('px', ''))
- theme = setColorWithCustomTemplate(theme, color)
+ let theme = setFontSize(this.currentSize.replace('px', ''));
+
+ theme = setColorWithCustomTemplate(theme, color);
this.setWxRendererOptions({
theme: theme
- })
+ });
this.setCurrentColor(color);
- this.$emit('refresh')
+ this.$emit('refresh');
},
codeThemeChanged(theme) {
this.setCurrentCodeTheme(theme);
- this.$emit('refresh')
+ this.$emit('refresh');
},
statusChanged(val) {
- this.setCiteStatus(val)
- this.$emit('refresh')
+ this.setCiteStatus(val);
+ this.$emit('refresh');
},
// 复制到微信公众号
copy(e) {
@@ -167,7 +168,7 @@ export default {
range.setEndAfter(clipboardDiv.lastChild);
window.getSelection().addRange(range);
document.execCommand('copy');
- window.getSelection().removeAllRanges()
+ window.getSelection().removeAllRanges();
fixCodeWhiteSpace('normal');
clipboardDiv.innerHTML = this.output;
@@ -189,16 +190,16 @@ export default {
this.$emit('showCssEditor');
this.$nextTick(() => {
if(!this.cssEditor) {
- this.cssEditor.refresh()
+ this.cssEditor.refresh();
}
})
setTimeout(() => {
- this.cssEditor.refresh()
+ this.cssEditor.refresh();
},50)
- let flag = await localStorage.getItem('__css_content')
+ let flag = await localStorage.getItem('__css_content');
if (!flag) {
- this.setCssEditorValue(DEFAULT_CSS_CONTENT)
+ this.setCssEditorValue(DEFAULT_CSS_CONTENT);
}
},
// 重置页面
diff --git a/src/components/CodemirrorEditor/insertForm.vue b/src/components/CodemirrorEditor/insertForm.vue
index 64ad6f1..aa34a45 100644
--- a/src/components/CodemirrorEditor/insertForm.vue
+++ b/src/components/CodemirrorEditor/insertForm.vue
@@ -1,118 +1,102 @@
-
+
-
- 行数
-
-
-
- 列数
-
-
+
+ 行数:
+
+
+
+ 列数:
+
+
-
-
-
+
diff --git a/src/components/CodemirrorEditor/resetDialog.vue b/src/components/CodemirrorEditor/resetDialog.vue
index 7c7eae7..c382eab 100644
--- a/src/components/CodemirrorEditor/resetDialog.vue
+++ b/src/components/CodemirrorEditor/resetDialog.vue
@@ -11,33 +11,39 @@
\ No newline at end of file
+ .reset__dialog {
+ text-align: center;
+ }
+
+ .text {
+ text-align: center;
+ }
+
+ .dialog-footer {
+ text-align: center;
+ }
+
+
diff --git a/src/components/CodemirrorEditor/uploadImgDialog.vue b/src/components/CodemirrorEditor/uploadImgDialog.vue
index e30cd40..2c598cf 100644
--- a/src/components/CodemirrorEditor/uploadImgDialog.vue
+++ b/src/components/CodemirrorEditor/uploadImgDialog.vue
@@ -246,29 +246,24 @@ export default {
return false;
},
validateConfig() {
+ let checkRes = true, errMessage = '';
+
switch (localStorage.getItem('imgHost')) {
- case "github":
- if (!(this.formGitHub.repo && this.formGitHub.accessToken)) {
- this.$message.error("请先配置 GitHub 图床参数");
- return false;
- }
+ case 'github':
+ checkRes = this.formGitHub.repo && this.formGitHub.accessToken;
+ errMessage = checkRes ? '' : '请先配置 GitHub 图床参数';
break;
case 'aliOSS':
- if (!(this.formAliOSS.accessKeyId && this.formAliOSS.accessKeySecret && this.formAliOSS.bucket && this.formAliOSS.region)) {
- this.$message.error("请先配置阿里云 OSS 参数");
- return false;
- }
+ checkRes = this.formAliOSS.accessKeyId && this.formAliOSS.accessKeySecret && this.formAliOSS.bucket && this.formAliOSS.region;
+ errMessage = checkRes ? '' : '请先配置阿里云 OSS 参数';
break;
case 'txCOS':
- if (!(this.formTxCOS.secretId && this.formTxCOS.secretKey && this.formTxCOS.bucket && this.formTxCOS.region)) {
- this.$message.error("请先配置腾讯云 COS 参数");
- return false;
- }
+ checkRes = this.formTxCOS.secretId && this.formTxCOS.secretKey && this.formTxCOS.bucket && this.formTxCOS.region;
+ errMessage = checkRes ? '' : '请先配置腾讯云 COS 参数';
break;
- default:
- return true;
}
- return true;
+ errMessage && this.$message.error(errMessage);
+ return checkRes;
},
},
};
diff --git a/src/plugins/element/index.js b/src/plugins/element/index.js
index 74adb11..67bbdea 100644
--- a/src/plugins/element/index.js
+++ b/src/plugins/element/index.js
@@ -19,23 +19,23 @@ import {
Message
} from 'element-ui'
-Vue.use(Container)
-Vue.use(Header)
-Vue.use(Upload)
-Vue.use(Tooltip)
-Vue.use(Form)
-Vue.use(FormItem)
-Vue.use(Select)
-Vue.use(Option)
-Vue.use(ColorPicker)
-Vue.use(Switch)
-Vue.use(Button)
-Vue.use(Main)
-Vue.use(Col)
-Vue.use(Row)
-Vue.use(Dialog)
-Vue.use(Loading)
-Vue.component(Message.name, Message)
+Vue.use(Container);
+Vue.use(Header);
+Vue.use(Upload);
+Vue.use(Tooltip);
+Vue.use(Form);
+Vue.use(FormItem);
+Vue.use(Select);
+Vue.use(Option);
+Vue.use(ColorPicker);
+Vue.use(Switch);
+Vue.use(Button);
+Vue.use(Main);
+Vue.use(Col);
+Vue.use(Row);
+Vue.use(Dialog);
+Vue.use(Loading);
+Vue.component(Message.name, Message);
-Vue.prototype.$loading = Loading.service
-Vue.prototype.$message = Message
+Vue.prototype.$loading = Loading.service;
+Vue.prototype.$message = Message;
diff --git a/src/store/index.js b/src/store/index.js
index 30ffadf..e1d138c 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -29,54 +29,54 @@ const state = {
};
const mutations = {
setEditorValue(state, data) {
- state.editor.setValue(data)
+ state.editor.setValue(data);
},
setCssEditorValue(state, data) {
- state.cssEditor.setValue(data)
+ state.cssEditor.setValue(data);
},
setWxRendererOptions(state, data) {
state.wxRenderer.setOptions(data);
},
setCiteStatus(state, data) {
state.citeStatus = data;
- localStorage.setItem('citeStatus', data)
+ localStorage.setItem('citeStatus', data);
},
setCurrentFont(state, data) {
state.currentFont = data;
- localStorage.setItem('fonts', data)
+ localStorage.setItem('fonts', data);
},
setCurrentSize(state, data) {
state.currentSize = data;
- localStorage.setItem('size', data)
+ localStorage.setItem('size', data);
},
setCurrentColor(state, data) {
state.currentColor = data;
- localStorage.setItem('color', data)
+ localStorage.setItem('color', data);
},
setCurrentCodeTheme(state, data) {
state.codeTheme = data;
- localStorage.setItem('codeTheme', data)
+ localStorage.setItem('codeTheme', data);
},
setRightClickMenuVisible(state, data) {
state.rightClickMenuVisible = data;
},
themeChanged(state) {
state.nightMode = !state.nightMode;
- localStorage.setItem('nightMode', state.nightMode)
+ localStorage.setItem('nightMode', state.nightMode);
},
initEditorState(state) {
- state.currentFont = localStorage.getItem('fonts') || config.builtinFonts[0].value
- state.currentColor = localStorage.getItem('color') || config.colorOption[1].value
- state.currentSize = localStorage.getItem('size') || config.sizeOption[2].value
- state.codeTheme = localStorage.getItem('codeTheme') || config.codeThemeOption[0].value
- state.citeStatus = localStorage.getItem('citeStatus') === 'true'
- state.nightMode = localStorage.getItem('nightMode') === 'true'
+ state.currentFont = localStorage.getItem('fonts') || config.builtinFonts[0].value;
+ state.currentColor = localStorage.getItem('color') || config.colorOption[1].value;
+ state.currentSize = localStorage.getItem('size') || config.sizeOption[2].value;
+ state.codeTheme = localStorage.getItem('codeTheme') || config.codeThemeOption[0].value;
+ state.citeStatus = localStorage.getItem('citeStatus') === 'true';
+ state.nightMode = localStorage.getItem('nightMode') === 'true';
state.wxRenderer = new WxRenderer({
theme: setColor(state.currentColor),
fonts: state.currentFont,
size: state.currentSize,
status: state.citeStatus
- })
+ });
},
initEditorEntity(state) {
state.editor = CodeMirror.fromTextArea(
@@ -97,7 +97,7 @@ const mutations = {
'Ctrl-S': function save(editor) {}
}
}
- )
+ );
// 如果有编辑器内容被保存则读取,否则加载默认内容
state.editor.setValue(localStorage.getItem('__editor_content') || formatDoc(DEFAULT_CONTENT))
@@ -114,18 +114,19 @@ const mutations = {
autofocus: true,
extraKeys: {
'Ctrl-F': function autoFormat(editor) {
- const totalLines = editor.lineCount()
+ const totalLines = editor.lineCount();
+
editor.autoFormatRange({
line: 0,
ch: 0
}, {
line: totalLines
- })
+ });
},
'Ctrl-S': function save(editor) {}
}
}
- )
+ );
// 如果有编辑器内容被保存则读取,否则加载默认内容
state.cssEditor.setValue(localStorage.getItem('__css_content') || DEFAULT_CSS_CONTENT)
@@ -133,21 +134,23 @@ const mutations = {
editorRefresh(state) {
let output = marked(state.editor.getValue(0), {
renderer: state.wxRenderer.getRenderer(state.citeStatus)
- })
+ });
+
// 去除第一行的 margin-top
- output = output.replace(/(style=".*?)"/, '$1;margin-top: 0"')
+ output = output.replace(/(style=".*?)"/, '$1;margin-top: 0"');
if (state.citeStatus) {
// 引用脚注
- output += state.wxRenderer.buildFootnotes()
+ output += state.wxRenderer.buildFootnotes();
// 附加的一些 style
- output += state.wxRenderer.buildAddition()
+ output += state.wxRenderer.buildAddition();
}
- state.output = output
+ state.output = output;
},
clearEditorToDefault(state) {
- const doc = formatDoc(DEFAULT_CONTENT)
- state.editor.setValue(doc)
- state.cssEditor.setValue(DEFAULT_CSS_CONTENT)
+ const doc = formatDoc(DEFAULT_CONTENT);
+
+ state.editor.setValue(doc);
+ state.cssEditor.setValue(DEFAULT_CSS_CONTENT);
}
}
@@ -155,4 +158,4 @@ export default new Vuex.Store({
state,
mutations,
actions: {}
-})
+});
diff --git a/src/view/CodemirrorEditor.vue b/src/view/CodemirrorEditor.vue
index b9d449c..2adfd75 100644
--- a/src/view/CodemirrorEditor.vue
+++ b/src/view/CodemirrorEditor.vue
@@ -109,12 +109,12 @@ export default {
})
},
created() {
- this.initEditorState()
+ this.initEditorState();
this.$nextTick(() => {
- this.initEditor()
- this.initCssEditor()
- this.onEditorRefresh()
- })
+ this.initEditor();
+ this.initCssEditor();
+ this.onEditorRefresh();
+ });
},
methods: {
initEditor() {
@@ -122,8 +122,8 @@ export default {
this.editor.on('change', (cm, e) => {
if (this.changeTimer) clearTimeout(this.changeTimer);
this.changeTimer = setTimeout(() => {
- this.onEditorRefresh()
- saveEditorContent(this.editor, '__editor_content')
+ this.onEditorRefresh();
+ saveEditorContent(this.editor, '__editor_content');
}, 300);
});
@@ -133,9 +133,9 @@ export default {
return;
}
for (let i = 0, len = e.clipboardData.items.length; i < len; ++i) {
- let item = e.clipboardData.items[i]
- if (item.kind === 'file') {
+ let item = e.clipboardData.items[i];
+ if (item.kind === 'file') {
// 校验图床参数
const imgHost = localStorage.getItem('imgHost') || 'default';
if (imgHost != 'default' && !localStorage.getItem(`${imgHost}Config`)) {
@@ -180,19 +180,19 @@ export default {
// 自动提示
this.cssEditor.on('keyup', (cm, e) => {
if ((e.keyCode >= 65 && e.keyCode <= 90) || e.keyCode === 189) {
- cm.showHint(e)
+ cm.showHint(e);
}
});
this.cssEditor.on('update', (instance) => {
this.cssChanged();
- saveEditorContent(this.cssEditor, '__css_content')
+ saveEditorContent(this.cssEditor, '__css_content');
})
},
cssChanged() {
let json = css2json(this.cssEditor.getValue(0));
let theme = setFontSize(this.currentSize.replace('px', ''));
- theme = customCssWithTemplate(json, this.currentColor, theme)
+ theme = customCssWithTemplate(json, this.currentColor, theme);
this.setWxRendererOptions({
theme: theme
});
@@ -208,7 +208,7 @@ export default {
});
return;
}
- this.dialogUploadImgVisible = false
+ this.dialogUploadImgVisible = false;
// 上传成功,获取光标
const cursor = this.editor.getCursor();
const imageUrl = response;
@@ -316,7 +316,7 @@ export default {
mounted() {
setTimeout(() => {
this.leftAndRightScroll();
- PR.prettyPrint()
+ PR.prettyPrint();
}, 300);
}
}