mirror of
https://github.com/doocs/md.git
synced 2025-01-22 20:04:39 +08:00
chore: rename 文章
to 内容
This commit is contained in:
parent
ab6bee5b84
commit
141236a48b
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
|||||||
|
|
||||||
[![github](https://badgen.net/badge/>>/GitHub/cyan)](https://github.com/doocs/md/releases) [![gitee](https://badgen.net/badge/>>/Gitee/cyan)](https://gitee.com/doocs/md/releases)
|
[![github](https://badgen.net/badge/>>/GitHub/cyan)](https://github.com/doocs/md/releases) [![gitee](https://badgen.net/badge/>>/Gitee/cyan)](https://gitee.com/doocs/md/releases)
|
||||||
|
|
||||||
> Markdown 文档自动即时渲染为微信图文,让你不再为微信文章排版而发愁!
|
> Markdown 文档自动即时渲染为微信图文,让你不再为微信内容排版而发愁!
|
||||||
|
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
12
README.md
12
README.md
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
## 项目介绍
|
## 项目介绍
|
||||||
|
|
||||||
Markdown 文档自动即时渲染为微信图文,让你不再为微信文章排版而发愁!只要你会基本的 Markdown 语法,就能做出一篇样式简洁而又美观大方的微信图文。
|
Markdown 文档自动即时渲染为微信图文,让你不再为微信内容排版而发愁!只要你会基本的 Markdown 语法,就能做出一篇样式简洁而又美观大方的微信图文。
|
||||||
|
|
||||||
## 在线编辑器地址
|
## 在线编辑器地址
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ Markdown 文档自动即时渲染为微信图文,让你不再为微信文章
|
|||||||
|
|
||||||
## 为何二次开发
|
## 为何二次开发
|
||||||
|
|
||||||
现有的开源微信 Markdown 编辑器,样式繁杂,也不符合我个人的审美需求。在我使用它们进行文章排版的时候,经常还要自己做一些改动,费时费力,因此动手做了二次开发。
|
现有的开源微信 Markdown 编辑器,样式繁杂,也不符合我个人的审美需求。在我使用它们进行内容排版的时候,经常还要自己做一些改动,费时费力,因此动手做了二次开发。
|
||||||
|
|
||||||
欢迎各位朋友随时提交 PR,让这款微信 Markdown 编辑器变得更好!如果你有新的想法,也欢迎在 [Discussions 讨论区](https://github.com/doocs/md/discussions)反馈。
|
欢迎各位朋友随时提交 PR,让这款微信 Markdown 编辑器变得更好!如果你有新的想法,也欢迎在 [Discussions 讨论区](https://github.com/doocs/md/discussions)反馈。
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ Markdown 文档自动即时渲染为微信图文,让你不再为微信文章
|
|||||||
- [x] 允许自定义主题色和 CSS 样式,灵活定制展示效果
|
- [x] 允许自定义主题色和 CSS 样式,灵活定制展示效果
|
||||||
- [x] 提供多图上传功能,并可自定义配置图床
|
- [x] 提供多图上传功能,并可自定义配置图床
|
||||||
- [x] 便捷的文件导入、导出功能,提升工作效率
|
- [x] 便捷的文件导入、导出功能,提升工作效率
|
||||||
- [x] 内置本地文章管理功能,支持草稿自动保存
|
- [x] 内置本地内容管理功能,支持草稿自动保存
|
||||||
|
|
||||||
## 目前支持哪些图床
|
## 目前支持哪些图床
|
||||||
|
|
||||||
@ -65,8 +65,8 @@ Markdown 文档自动即时渲染为微信图文,让你不再为微信文章
|
|||||||
|
|
||||||
## 注意事项
|
## 注意事项
|
||||||
|
|
||||||
1. 如果你使用了某些浏览器脚本修改了网页背景色,可能导致渲染后的文章出现背景色分块的现象,详见 [#63](https://github.com/doocs/md/issues/63)。
|
1. 如果你使用了某些浏览器脚本修改了网页背景色,可能导致渲染后的内容出现背景色分块的现象,详见 [#63](https://github.com/doocs/md/issues/63)。
|
||||||
2. 某些浏览器插件,会对文章样式造成破坏。现象是:复制粘贴到公众号后台文章,点击保存时,样式丢失,详见 [#151](https://github.com/doocs/md/issues/151)。
|
2. 某些浏览器插件,会对内容样式造成破坏。现象是:复制粘贴到公众号后台内容,点击保存时,样式丢失,详见 [#151](https://github.com/doocs/md/issues/151)。
|
||||||
|
|
||||||
## 自定义上传逻辑
|
## 自定义上传逻辑
|
||||||
|
|
||||||
@ -227,4 +227,4 @@ docker run -d -p 8080:80 doocs/md:latest
|
|||||||
- [程序员小宋](https://mp.weixin.qq.com/s/llgdqSN3AIXMlEbBuPkKNQ)
|
- [程序员小宋](https://mp.weixin.qq.com/s/llgdqSN3AIXMlEbBuPkKNQ)
|
||||||
- [架构师修行之路](https://mp.weixin.qq.com/s/-HWx7VZC6NthROGBaATcLA)
|
- [架构师修行之路](https://mp.weixin.qq.com/s/-HWx7VZC6NthROGBaATcLA)
|
||||||
|
|
||||||
注:如果你使用了本 Markdown 编辑器进行文章排版,并且希望在本项目 README 中展示你的公众号,请到 [#5](https://github.com/doocs/md/discussions/5) 留言。
|
注:如果你使用了本 Markdown 编辑器进行内容排版,并且希望在本项目 README 中展示你的公众号,请到 [#5](https://github.com/doocs/md/discussions/5) 留言。
|
||||||
|
@ -20,7 +20,7 @@ Markdown 是一种轻量级标记语言,用于格式化纯文本。它以简
|
|||||||
#### 四级标题
|
#### 四级标题
|
||||||
```
|
```
|
||||||
|
|
||||||
以上代码将渲染出一组层次分明的标题,使你的文章井井有条。
|
以上代码将渲染出一组层次分明的标题,使你的内容井井有条。
|
||||||
|
|
||||||
### 2. 段落与换行:自然流畅
|
### 2. 段落与换行:自然流畅
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ Markdown 中的段落就是一行接一行的文本。要创建新段落,只
|
|||||||
|
|
||||||
轻松实现富媒体内容展示!
|
轻松实现富媒体内容展示!
|
||||||
|
|
||||||
> 因微信公众号平台不支持除公众号文章以外的链接,故其他平台的链接,会呈现链接样式但无法点击跳转。
|
> 因微信公众号平台不支持除公众号内容以外的链接,故其他平台的链接,会呈现链接样式但无法点击跳转。
|
||||||
|
|
||||||
> 对于这些链接请注意明文书写,或点击左上角「格式->微信外链接转底部引用」开启引用,这样就可以在底部观察到链接指向。
|
> 对于这些链接请注意明文书写,或点击左上角「格式->微信外链接转底部引用」开启引用,这样就可以在底部观察到链接指向。
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ pie
|
|||||||
|
|
||||||
## 结语
|
## 结语
|
||||||
|
|
||||||
Markdown 是一种简单、强大且易于掌握的标记语言,通过学习基础和进阶语法,你可以快速创作内容并有效传达信息。无论是技术文档、个人博客还是项目说明,Markdown 都是你的得力助手。希望这篇文章能够带你全面了解 Markdown 的潜力,让你的写作更加丰富多彩!
|
Markdown 是一种简单、强大且易于掌握的标记语言,通过学习基础和进阶语法,你可以快速创作内容并有效传达信息。无论是技术文档、个人博客还是项目说明,Markdown 都是你的得力助手。希望这篇内容能够带你全面了解 Markdown 的潜力,让你的写作更加丰富多彩!
|
||||||
|
|
||||||
现在,拿起 Markdown 编辑器,开始创作吧!探索 Markdown 的世界,你会发现它远比想象中更精彩!
|
现在,拿起 Markdown 编辑器,开始创作吧!探索 Markdown 的世界,你会发现它远比想象中更精彩!
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ function onRedirect(url: string) {
|
|||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h3>一款高度简洁的微信 Markdown 编辑器</h3>
|
<h3>一款高度简洁的微信 Markdown 编辑器</h3>
|
||||||
<p>扫码关注公众号 Doocs,原创技术文章第一时间推送!</p>
|
<p>扫码关注公众号 Doocs,原创技术内容第一时间推送!</p>
|
||||||
<img
|
<img
|
||||||
class="mx-auto my-5"
|
class="mx-auto my-5"
|
||||||
src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/md/images/1648303220922-7e14aefa-816e-44c1-8604-ade709ca1c69.png"
|
src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/md/images/1648303220922-7e14aefa-816e-44c1-8604-ade709ca1c69.png"
|
||||||
|
@ -91,7 +91,7 @@ function copy() {
|
|||||||
toast.success(
|
toast.success(
|
||||||
copyMode.value === `html`
|
copyMode.value === `html`
|
||||||
? `已复制 HTML 源码,请进行下一步操作。`
|
? `已复制 HTML 源码,请进行下一步操作。`
|
||||||
: `已复制渲染后的文章到剪贴板,可直接到公众号后台粘贴。`,
|
: `已复制渲染后的内容到剪贴板,可直接到公众号后台粘贴。`,
|
||||||
)
|
)
|
||||||
|
|
||||||
editorRefresh()
|
editorRefresh()
|
||||||
@ -150,7 +150,7 @@ function copy() {
|
|||||||
</Button>
|
</Button>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent side="left">
|
<TooltipContent side="left">
|
||||||
{{ isOpenPostSlider ? "关闭" : "展开" }}
|
{{ isOpenPostSlider ? "关闭" : "内容管理" }}
|
||||||
</TooltipContent>
|
</TooltipContent>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</TooltipProvider>
|
</TooltipProvider>
|
||||||
|
@ -16,12 +16,12 @@ watch(isOpen, () => {
|
|||||||
|
|
||||||
function addPost() {
|
function addPost() {
|
||||||
if (addPostInputVal.value === ``) {
|
if (addPostInputVal.value === ``) {
|
||||||
toast.error(`文章标题不可为空`)
|
toast.error(`内容标题不可为空`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
store.addPost(addPostInputVal.value)
|
store.addPost(addPostInputVal.value)
|
||||||
isOpen.value = false
|
isOpen.value = false
|
||||||
toast.success(`文章新增成功`)
|
toast.success(`内容新增成功`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const editTarget = ref(-1)
|
const editTarget = ref(-1)
|
||||||
@ -35,12 +35,12 @@ function startRenamePost(index: number) {
|
|||||||
|
|
||||||
function renamePost() {
|
function renamePost() {
|
||||||
if (renamePostInputVal.value === ``) {
|
if (renamePostInputVal.value === ``) {
|
||||||
toast.error(`文章标题不可为空`)
|
toast.error(`内容标题不可为空`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
store.renamePost(editTarget.value, renamePostInputVal.value)
|
store.renamePost(editTarget.value, renamePostInputVal.value)
|
||||||
isOpenEditDialog.value = false
|
isOpenEditDialog.value = false
|
||||||
toast.success(`文章重命名成功`)
|
toast.success(`内容重命名成功`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const isOpenDelPostConfirmDialog = ref(false)
|
const isOpenDelPostConfirmDialog = ref(false)
|
||||||
@ -51,7 +51,7 @@ function startDelPost(index: number) {
|
|||||||
function delPost() {
|
function delPost() {
|
||||||
store.delPost(editTarget.value)
|
store.delPost(editTarget.value)
|
||||||
isOpenDelPostConfirmDialog.value = false
|
isOpenDelPostConfirmDialog.value = false
|
||||||
toast.success(`文章删除成功`)
|
toast.success(`内容删除成功`)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -73,14 +73,14 @@ function delPost() {
|
|||||||
<Dialog v-model:open="isOpen">
|
<Dialog v-model:open="isOpen">
|
||||||
<DialogTrigger as-child>
|
<DialogTrigger as-child>
|
||||||
<Button variant="outline" class="w-full" size="xs">
|
<Button variant="outline" class="w-full" size="xs">
|
||||||
<Plus /> 新增文章
|
<Plus /> 新增内容
|
||||||
</Button>
|
</Button>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>新增文章</DialogTitle>
|
<DialogTitle>新增内容</DialogTitle>
|
||||||
<DialogDescription>
|
<DialogDescription>
|
||||||
请输入文章名称
|
请输入内容名称
|
||||||
</DialogDescription>
|
</DialogDescription>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<Input v-model="addPostInputVal" />
|
<Input v-model="addPostInputVal" />
|
||||||
@ -122,9 +122,9 @@ function delPost() {
|
|||||||
<Dialog v-model:open="isOpenEditDialog">
|
<Dialog v-model:open="isOpenEditDialog">
|
||||||
<DialogContent class="sm:max-w-[425px]">
|
<DialogContent class="sm:max-w-[425px]">
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>编辑文章名称</DialogTitle>
|
<DialogTitle>编辑内容名称</DialogTitle>
|
||||||
<DialogDescription>
|
<DialogDescription>
|
||||||
请输入新的文章名称
|
请输入新的内容名称
|
||||||
</DialogDescription>
|
</DialogDescription>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<Input v-model="renamePostInputVal" />
|
<Input v-model="renamePostInputVal" />
|
||||||
@ -144,7 +144,7 @@ function delPost() {
|
|||||||
<AlertDialogHeader>
|
<AlertDialogHeader>
|
||||||
<AlertDialogTitle>提示</AlertDialogTitle>
|
<AlertDialogTitle>提示</AlertDialogTitle>
|
||||||
<AlertDialogDescription>
|
<AlertDialogDescription>
|
||||||
此操作将删除该文章,是否继续?
|
此操作将删除该内容,是否继续?
|
||||||
</AlertDialogDescription>
|
</AlertDialogDescription>
|
||||||
</AlertDialogHeader>
|
</AlertDialogHeader>
|
||||||
<AlertDialogFooter>
|
<AlertDialogFooter>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>公众号文章编辑器</title>
|
<title>公众号内容编辑器</title>
|
||||||
<meta name="manifest.type" content="browser_action" />
|
<meta name="manifest.type" content="browser_action" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -59,12 +59,12 @@ export const useStore = defineStore(`store`, () => {
|
|||||||
const isOpenRightSlider = useStorage(addPrefix(`is_open_right_slider`), false)
|
const isOpenRightSlider = useStorage(addPrefix(`is_open_right_slider`), false)
|
||||||
|
|
||||||
const isOpenPostSlider = useStorage(addPrefix(`is_open_post_slider`), false)
|
const isOpenPostSlider = useStorage(addPrefix(`is_open_post_slider`), false)
|
||||||
// 文章列表
|
// 内容列表
|
||||||
const posts = useStorage(addPrefix(`posts`), [{
|
const posts = useStorage(addPrefix(`posts`), [{
|
||||||
title: `文章1`,
|
title: `内容1`,
|
||||||
content: DEFAULT_CONTENT,
|
content: DEFAULT_CONTENT,
|
||||||
}])
|
}])
|
||||||
// 当前文章
|
// 当前内容
|
||||||
const currentPostIndex = useStorage(addPrefix(`current_post_index`), 0)
|
const currentPostIndex = useStorage(addPrefix(`current_post_index`), 0)
|
||||||
|
|
||||||
const addPost = (title: string) => {
|
const addPost = (title: string) => {
|
||||||
|
@ -6,7 +6,7 @@ export default defineConfig({
|
|||||||
publicDir: `../public`,
|
publicDir: `../public`,
|
||||||
extensionApi: `chrome`,
|
extensionApi: `chrome`,
|
||||||
manifest: {
|
manifest: {
|
||||||
name: `公众号文章编辑器`,
|
name: `公众号内容编辑器`,
|
||||||
description: `一款高度简洁的微信 Markdown 编辑器:支持 Markdown 语法、色盘取色、多图上传、一键下载文档、自定义 CSS 样式、一键重置等特性`,
|
description: `一款高度简洁的微信 Markdown 编辑器:支持 Markdown 语法、色盘取色、多图上传、一键下载文档、自定义 CSS 样式、一键重置等特性`,
|
||||||
version: `0.0.7`,
|
version: `0.0.7`,
|
||||||
icons: {
|
icons: {
|
||||||
|
Loading…
Reference in New Issue
Block a user