From 5cff888050e09220c4ca06fb5663b825302b82ca Mon Sep 17 00:00:00 2001
From: YangFong
Date: Sun, 7 Jul 2024 10:26:59 +0800
Subject: [PATCH] style: apply eslint formatting
---
README.md | 16 +--
index.html | 20 ++--
package.json | 4 +-
src/api/fetch.js | 2 +-
src/assets/scripts/renderers/wx-renderer.js | 102 +++++++++---------
.../CodemirrorEditor/AboutDialog.vue | 2 +-
.../EditorHeader/PostInfoDialog.vue | 2 +-
.../EditorHeader/ResetDialog.vue | 2 +-
.../CodemirrorEditor/EditorHeader/index.vue | 10 +-
.../CodemirrorEditor/InsertFormDialog.vue | 4 +-
.../CodemirrorEditor/RightClickMenu.vue | 2 +-
.../CodemirrorEditor/UploadImgDialog.vue | 2 +-
src/element/index.js | 2 +-
src/main.js | 2 +-
src/views/CodemirrorEditor.vue | 10 +-
tsconfig.app.json | 24 ++---
tsconfig.json | 4 +-
tsconfig.node.json | 6 +-
vite.config.ts | 4 +-
19 files changed, 112 insertions(+), 108 deletions(-)
diff --git a/README.md b/README.md
index 43cc2ea75..c609247ac 100644
--- a/README.md
+++ b/README.md
@@ -76,19 +76,19 @@ Markdown 文档自动即时渲染为微信图文,让你不再为微信文章
示例代码:
```js
-const { file, util, okCb, errCb } = CUSTOM_ARG;
-const param = new FormData();
-param.append("file", file);
+const { file, util, okCb, errCb } = CUSTOM_ARG
+const param = new FormData()
+param.append(`file`, file)
util.axios
- .post("http://127.0.0.1:9000/upload", param, {
- headers: { "Content-Type": "multipart/form-data" },
+ .post(`http://127.0.0.1:9000/upload`, param, {
+ headers: { 'Content-Type': `multipart/form-data` },
})
.then((res) => {
- okCb(res.url);
+ okCb(res.url)
})
.catch((err) => {
- errCb(err);
- });
+ errCb(err)
+ })
// 提供的可用参数:
// CUSTOM_ARG = {
diff --git a/index.html b/index.html
index 252dc4268..e479504ea 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-
+
@@ -29,14 +29,19 @@
href="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/wechatsync/article-syncjs@latest/dist/styles.css"
/>
-
-
+
+
@@ -52,9 +57,8 @@
-
diff --git a/package.json b/package.json
index f7caf80ee..75e9cb02c 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,8 @@
{
"name": "md",
- "private": false,
- "version": "1.6.0",
"type": "module",
+ "version": "1.6.0",
+ "private": false,
"scripts": {
"dev": "vite --host",
"build": "run-p type-check \"build:only {@}\" --",
diff --git a/src/api/fetch.js b/src/api/fetch.js
index cd33ad0b4..4ea31a6e0 100644
--- a/src/api/fetch.js
+++ b/src/api/fetch.js
@@ -8,7 +8,7 @@ const service = axios.create({
service.interceptors.request.use(
(config) => {
- if (/^(post)|(put)|(delete)$/i.test(config.method)) {
+ if (/^(?:post|put|delete)$/i.test(config.method)) {
if (config.data && config.data.upload) {
config.headers[`Content-Type`] = `multipart/form-data`
}
diff --git a/src/assets/scripts/renderers/wx-renderer.js b/src/assets/scripts/renderers/wx-renderer.js
index 5b3577180..a1611f3c2 100644
--- a/src/assets/scripts/renderers/wx-renderer.js
+++ b/src/assets/scripts/renderers/wx-renderer.js
@@ -43,11 +43,11 @@ class WxRenderer {
const arr = []
const dict = styleMapping[tokenName]
if (!dict)
- return ''
+ return ``
for (const key in dict) {
arr.push(`${key}:${dict[key]}`)
}
- return `style="${arr.join(';') + (addition || '')}"`
+ return `style="${arr.join(`;`) + (addition || ``)}"`
}
const addFootnote = (title, link) => {
@@ -63,11 +63,11 @@ class WxRenderer {
return `[${x[0]}]
${x[1]}: ${x[2]}
`
})
if (!footnoteArray.length) {
- return ''
+ return ``
}
- return `引用链接
${footnoteArray.join('\n')}
`
+ return `引用链接
${footnoteArray.join(`\n`)}
`
}
this.buildAddition = () => {
@@ -105,101 +105,101 @@ class WxRenderer {
renderer.heading = (text, level) => {
switch (level) {
case 1:
- return `${text}
`
+ return `${text}
`
case 2:
- return `${text}
`
+ return `${text}
`
case 3:
- return `${text}
`
+ return `${text}
`
default:
- return `${text}
`
+ return `${text}
`
}
}
renderer.paragraph = (text) => {
- if (text.includes('${text}
`
+ return text.replace(/ /g, ``) === ``
+ ? ``
+ : `${text}
`
}
renderer.blockquote = (text) => {
- text = text.replace(//g, ``)
- return `
${text}
`
+ text = text.replace(//g, ``)
+ return `
${text}
`
}
- renderer.code = (text, lang = '') => {
- if (lang.startsWith('mermaid')) {
+ renderer.code = (text, lang = ``) => {
+ if (lang.startsWith(`mermaid`)) {
setTimeout(() => {
window.mermaid?.run()
}, 0)
return `${text}
`
}
- lang = lang.split(' ')[0]
- lang = hljs.getLanguage(lang) ? lang : 'plaintext'
+ lang = lang.split(` `)[0]
+ lang = hljs.getLanguage(lang) ? lang : `plaintext`
text = hljs.highlight(text, { language: lang }).value
text = text
- .replace(/\r\n/g, '
')
- .replace(/\n/g, '
')
+ .replace(/\r\n/g, `
`)
+ .replace(/\n/g, `
`)
.replace(/(>[^<]+)|(^[^<]+)/g, (str) => {
- return str.replace(/\s/g, ' ')
+ return str.replace(/\s/g, ` `)
})
return `${text}
`;
- };
+ `code`,
+ )}>${text}`
+ }
renderer.codespan = (text, lang) =>
- `${text}
`
+ `${text}
`
renderer.listitem = text =>
- `<%s/>${text}`
+ `<%s/>${text}`
renderer.list = (text, ordered, start) => {
- text = text.replace(/<\/*p .*?>/g, '').replace(/<\/*p>/g, '')
+ text = text.replace(/<\/*p .*?>/g, ``).replace(/<\/*p>/g, ``)
const segments = text.split(`<%s/>`)
if (!ordered) {
- text = segments.join('• ')
- return ``
+ text = segments.join(`• `)
+ return ``
}
text = segments[0]
for (let i = 1; i < segments.length; i++) {
text = `${text + i}. ${segments[i]}`
}
- return `${text}
`
+ return `${text}
`
}
renderer.image = (href, title, text) => {
const createSubText = (s) => {
if (!s) {
- return ''
+ return ``
}
- return `${s}`
+ return `${s}`
}
const transform = (title, alt) => {
- const legend = localStorage.getItem('legend')
+ const legend = localStorage.getItem(`legend`)
switch (legend) {
- case 'alt':
+ case `alt`:
return alt
- case 'title':
+ case `title`:
return title
- case 'alt-title':
+ case `alt-title`:
return alt || title
- case 'title-alt':
+ case `title-alt`:
return title || alt
default:
- return ''
+ return ``
}
}
const subText = createSubText(transform(title, text))
- const figureStyles = getStyles('figure')
- const imgStyles = getStyles('image')
+ const figureStyles = getStyles(`figure`)
+ const imgStyles = getStyles(`image`)
return `
${subText}`
}
renderer.link = (href, title, text) => {
- if (href.startsWith('https://mp.weixin.qq.com')) {
+ if (href.startsWith(`https://mp.weixin.qq.com`)) {
return `${text}`
}
if (href === text) {
@@ -207,21 +207,21 @@ class WxRenderer {
}
if (status) {
const ref = addFootnote(title || text, href)
- return `${text}[${ref}]`
+ return `${text}[${ref}]`
}
- return `${text}`
+ return `${text}`
}
renderer.strong = text =>
- `${text}`
+ `${text}`
renderer.em = text =>
`${text}`
renderer.table = (header, body) =>
``
renderer.tablecell = (text, flags) =>
- `${text} | `
- renderer.hr = () => `
`
+ `${text} | `
+ renderer.hr = () => `
`
return renderer
}
}
diff --git a/src/components/CodemirrorEditor/AboutDialog.vue b/src/components/CodemirrorEditor/AboutDialog.vue
index b12426c50..4bf82c0ac 100644
--- a/src/components/CodemirrorEditor/AboutDialog.vue
+++ b/src/components/CodemirrorEditor/AboutDialog.vue
@@ -6,7 +6,7 @@ export default {
default: false,
},
},
- emits: ['close'],
+ emits: [`close`],
methods: {
onRedirect(url) {
window.open(url)
diff --git a/src/components/CodemirrorEditor/EditorHeader/PostInfoDialog.vue b/src/components/CodemirrorEditor/EditorHeader/PostInfoDialog.vue
index 9390e3eda..b68bc9fb7 100644
--- a/src/components/CodemirrorEditor/EditorHeader/PostInfoDialog.vue
+++ b/src/components/CodemirrorEditor/EditorHeader/PostInfoDialog.vue
@@ -6,7 +6,7 @@ export default {
type: Object,
},
},
- emits: ['close', 'post'],
+ emits: [`close`, `post`],
}
diff --git a/src/components/CodemirrorEditor/EditorHeader/ResetDialog.vue b/src/components/CodemirrorEditor/EditorHeader/ResetDialog.vue
index 49954eb51..c461c85d4 100644
--- a/src/components/CodemirrorEditor/EditorHeader/ResetDialog.vue
+++ b/src/components/CodemirrorEditor/EditorHeader/ResetDialog.vue
@@ -9,7 +9,7 @@ export default {
default: false,
},
},
- emits: ['close', 'confirm'],
+ emits: [`close`, `confirm`],
computed: {
btnType() {
return this.nightMode ? `default` : `primary`
diff --git a/src/components/CodemirrorEditor/EditorHeader/index.vue b/src/components/CodemirrorEditor/EditorHeader/index.vue
index 07b290ace..1d428983f 100644
--- a/src/components/CodemirrorEditor/EditorHeader/index.vue
+++ b/src/components/CodemirrorEditor/EditorHeader/index.vue
@@ -18,7 +18,7 @@ export default {
StyleOptionMenu,
ResetDialog,
},
- emits: ['refresh', 'startCopy', 'endCopy', 'showCssEditor', 'cssChanged', 'import-md', 'download', 'export', 'show-dialog-upload-img', 'show-dialog-form', 'show-about-dialog'],
+ emits: [`refresh`, `startCopy`, `endCopy`, `showCssEditor`, `cssChanged`, `importMd`, `download`, `export`, `showDialogUploadImg`, `showDialogForm`, `showAboutDialog`],
data() {
return {
config,
@@ -105,7 +105,7 @@ export default {
const read = new FileReader()
read.readAsText(file)
read.onload = () => {
- this.$emit(`import-md`, read.result)
+ this.$emit(`importMd`, read.result)
}
}
},
@@ -383,11 +383,11 @@ export default {
-
+
上传图片
-
+
插入表格
@@ -479,7 +479,7 @@ export default {
-
+
关于
diff --git a/src/components/CodemirrorEditor/InsertFormDialog.vue b/src/components/CodemirrorEditor/InsertFormDialog.vue
index 4fd96c8bd..091984bab 100644
--- a/src/components/CodemirrorEditor/InsertFormDialog.vue
+++ b/src/components/CodemirrorEditor/InsertFormDialog.vue
@@ -12,7 +12,7 @@ export default {
default: false,
},
},
- emits: ['close'],
+ emits: [`close`],
data() {
return {
config,
@@ -33,7 +33,7 @@ export default {
methods: {
// 插入表格
insertTable() {
- const cursor = this.editor.getCursor()
+ // const cursor = this.editor.getCursor()
const table = createTable({
data: this.tableData,
rows: this.rowNum,
diff --git a/src/components/CodemirrorEditor/RightClickMenu.vue b/src/components/CodemirrorEditor/RightClickMenu.vue
index 610eb1312..f6eaf5332 100644
--- a/src/components/CodemirrorEditor/RightClickMenu.vue
+++ b/src/components/CodemirrorEditor/RightClickMenu.vue
@@ -14,7 +14,7 @@ export default {
default: 0,
},
},
- emits: ['menuTick', 'closeMenu'],
+ emits: [`menuTick`, `closeMenu`],
data() {
return {
menu: [
diff --git a/src/components/CodemirrorEditor/UploadImgDialog.vue b/src/components/CodemirrorEditor/UploadImgDialog.vue
index f6ec4fca1..43437ac28 100644
--- a/src/components/CodemirrorEditor/UploadImgDialog.vue
+++ b/src/components/CodemirrorEditor/UploadImgDialog.vue
@@ -10,7 +10,7 @@ export default {
default: false,
},
},
- emits: ['uploadImage', 'close'],
+ emits: [`uploadImage`, `close`],
data() {
return {
activeName: `upload`,
diff --git a/src/element/index.js b/src/element/index.js
index afa2b3d3f..4449da32d 100644
--- a/src/element/index.js
+++ b/src/element/index.js
@@ -4,7 +4,7 @@ import 'element-plus/dist/index.css'
export default {
install(app) {
- app.use(ElementPlus, { size: 'default' })
+ app.use(ElementPlus, { size: `default` })
app.config.globalProperties.$loading = ElLoading.service
app.config.globalProperties.$message = ElMessage
diff --git a/src/main.js b/src/main.js
index b7668d3a5..6f5a24034 100644
--- a/src/main.js
+++ b/src/main.js
@@ -24,4 +24,4 @@ const app = createApp(App)
app.use(Store)
app.use(ElementPlus)
-app.mount('#app')
+app.mount(`#app`)
diff --git a/src/views/CodemirrorEditor.vue b/src/views/CodemirrorEditor.vue
index 159d92cad..f2e0b940c 100644
--- a/src/views/CodemirrorEditor.vue
+++ b/src/views/CodemirrorEditor.vue
@@ -101,7 +101,7 @@ export default {
const root = md.path.match(/.+?\//)[0]
const resList = await Promise.all(
mdImgList.map((item) => {
- return new Promise((resolve, reject) => {
+ return new Promise((resolve) => {
let [, , matchStr] = item
matchStr = matchStr.replace(/^.\//, ``) // 处理 ./img/ 为 img/ 统一相对路径风格
const { file }
@@ -141,7 +141,7 @@ export default {
// 从文件列表中查找一个 md 文件并解析
async function getMd({ list }) {
- return new Promise((resolve, reject) => {
+ return new Promise((resolve) => {
const { path, file } = list.find(item => item.path.match(/\.md$/))
const reader = new FileReader()
reader.readAsText(file, `UTF-8`)
@@ -187,7 +187,7 @@ export default {
},
initEditor() {
this.initEditorEntity()
- this.editor.on(`change`, (cm, e) => {
+ this.editor.on(`change`, () => {
if (this.changeTimer)
clearTimeout(this.changeTimer)
this.changeTimer = setTimeout(() => {
@@ -234,7 +234,7 @@ export default {
cm.showHint(e)
}
})
- this.cssEditor.on(`update`, (instance) => {
+ this.cssEditor.on(`update`, () => {
this.cssChanged()
saveEditorContent(this.cssEditor, `__css_content`)
})
@@ -461,7 +461,7 @@ export default {
return
}
const file = input.files[0]
- if (!/\.(txt|TXT|MD|md)$/.test(file.name)) {
+ if (!/\.(?:txt|TXT|MD|md)$/.test(file.name)) {
this.$message.error(`不支持的文档格式`)
return
}
diff --git a/tsconfig.app.json b/tsconfig.app.json
index e324ff933..5498839b0 100644
--- a/tsconfig.app.json
+++ b/tsconfig.app.json
@@ -1,31 +1,31 @@
{
"compilerOptions": {
- "baseUrl": "./",
- "paths": {
- "@/*": ["src/*"]
- },
"composite": true,
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"target": "ES2020",
+ "jsx": "preserve",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "moduleDetection": "force",
"useDefineForClassFields": true,
+ "baseUrl": "./",
"module": "ESNext",
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
+ "paths": {
+ "@/*": ["src/*"]
+ },
"resolveJsonModule": true,
- "isolatedModules": true,
- "moduleDetection": "force",
- "noEmit": true,
- "jsx": "preserve",
+ "allowImportingTsExtensions": true,
/* Linting */
"strict": true,
+ "noFallthroughCasesInSwitch": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
+ "noEmit": true,
+ "isolatedModules": true,
+ "skipLibCheck": true
},
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
}
diff --git a/tsconfig.json b/tsconfig.json
index ea9d0cd82..ca3098a72 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,5 +1,4 @@
{
- "files": [],
"references": [
{
"path": "./tsconfig.app.json"
@@ -7,5 +6,6 @@
{
"path": "./tsconfig.node.json"
}
- ]
+ ],
+ "files": []
}
diff --git a/tsconfig.node.json b/tsconfig.node.json
index 3afdd6e38..02098fd65 100644
--- a/tsconfig.node.json
+++ b/tsconfig.node.json
@@ -2,12 +2,12 @@
"compilerOptions": {
"composite": true,
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
- "skipLibCheck": true,
"module": "ESNext",
"moduleResolution": "bundler",
- "allowSyntheticDefaultImports": true,
"strict": true,
- "noEmit": true
+ "noEmit": true,
+ "allowSyntheticDefaultImports": true,
+ "skipLibCheck": true
},
"include": ["vite.config.ts"]
}
diff --git a/vite.config.ts b/vite.config.ts
index b18de1c7b..efe3a616e 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -19,7 +19,7 @@ export default defineConfig(({ mode }) => {
vue(),
UnoCSS(),
nodePolyfills({
- include: ['path', 'util', 'timers', 'stream', 'fs'],
+ include: [`path`, `util`, `timers`, `stream`, `fs`],
overrides: {
// Since `fs` is not supported in browsers, we can use the `memfs` package to polyfill it.
// fs: 'memfs',
@@ -28,7 +28,7 @@ export default defineConfig(({ mode }) => {
],
resolve: {
alias: {
- '@': fileURLToPath(new URL('./src', import.meta.url)),
+ '@': fileURLToPath(new URL(`./src`, import.meta.url)),
},
},
css: {