Skip to content

Commit

Permalink
feat: 博客园、WordPress、Typecho平台支持笔记间的内部链接替换
Browse files Browse the repository at this point in the history
  • Loading branch information
terwer committed Mar 25, 2023
1 parent 2cc4cc1 commit 3294b4a
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 173 deletions.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,20 @@
<a title="Downloads" target="_blank" href="https://github.com/terwer/src-sy-post-publisher/releases"><img src="https://img.shields.io/github/downloads/terwer/src-sy-post-publisher/total.svg?label=extension-downloads&style=flat-square&color=blueviolet"></a>
<a title="Downloads" target="_blank" href="https://github.com/terwer/src-sy-post-publisher/releases"><img src="https://img.shields.io/github/downloads/terwer/sy-post-publisher/total.svg?label=widget-downloads&style=flat-square&color=blue"></a>

## v0.8.0

### Bug 修复

- 修复 PicGO 初始化失败问题

### 新特性

- 发布至语雀支持笔记间的内部链接替换

### 开发重构

- 移除不必要的日志打印

## v0.7.2 Bug 修复

- 修复 PicGO 初始化失败问题
Expand Down
2 changes: 1 addition & 1 deletion components/publish/tab/main/CommonBlogMain.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<el-alert class="top-version-tip" :title="apiTypeInfo + blogName" type="info" :closable="false" />
<el-alert
class="top-version-tip"
title="暂时不支持编辑所属知识库。如果您想移动文档,请先点击取消删除该文档,然后重新选择新的知识库发布。"
title="由于语雀平台的限制,暂时不支持编辑所属知识库。如果您想移动文档,请先点击取消删除该文档,然后重新选择新的知识库发布。"
type="warning"
:closable="false"
v-if="useCat && isPublished"
Expand Down
166 changes: 36 additions & 130 deletions components/publish/tab/main/MetaweblogMain.vue
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,7 @@
<template>
<el-container>
<el-main class="blog-main" v-if="!isInitLoading">
<el-alert
class="top-version-tip"
:title="apiTypeInfo + blogName"
type="info"
:closable="false"
/>
<el-alert class="top-version-tip" :title="apiTypeInfo + blogName" type="info" :closable="false" />
<el-alert
class="top-version-tip"
:title="$t('setting.blog.vali.tip.metaweblog')"
Expand All @@ -57,14 +52,10 @@
<!-- 编辑模式 -->
<el-form-item :label="$t('main.publish.editmode')">
<el-button-group>
<el-button
:type="editMode ? 'default' : 'primary'"
@click="simpleMode"
<el-button :type="editMode ? 'default' : 'primary'" @click="simpleMode"
>{{ $t("main.publish.editmode.simple") }}
</el-button>
<el-button
:type="editMode ? 'primary' : 'default'"
@click="complexMode"
<el-button :type="editMode ? 'primary' : 'default'" @click="complexMode"
>{{ $t("main.publish.editmode.complex") }}
</el-button>
</el-button-group>
Expand All @@ -73,12 +64,7 @@
<!-- 刷新别名 -->
<el-form-item :label="$t('main.force.refresh')" v-if="editMode">
<el-switch v-model="forceRefresh" />
<el-alert
:title="$t('main.force.refresh.tip')"
type="warning"
:closable="false"
v-if="!forceRefresh"
/>
<el-alert :title="$t('main.force.refresh.tip')" type="warning" :closable="false" v-if="!forceRefresh" />
</el-form-item>

<!-- 文章别名 -->
Expand All @@ -87,33 +73,17 @@
</el-form-item>
<el-form-item v-if="editMode">
<el-checkbox-group v-model="formData.checkList">
<el-checkbox label="1"
>{{ $t("main.use.google.translate") }}
</el-checkbox>
<el-checkbox label="1">{{ $t("main.use.google.translate") }} </el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item v-if="editMode">
<el-button
type="primary"
class="make-slug-btn"
@click="makeSlug"
:loading="isSlugLoading"
>
{{
isSlugLoading
? $t("main.opt.loading")
: $t("main.auto.fetch.slug")
}}
<el-button type="primary" class="make-slug-btn" @click="makeSlug" :loading="isSlugLoading">
{{ isSlugLoading ? $t("main.opt.loading") : $t("main.auto.fetch.slug") }}
</el-button>
</el-form-item>
<el-form-item :label="$t('main.use.hash')" v-if="editMode">
<el-switch v-model="slugHashEnabled" />
<el-alert
:title="$t('main.use.hash.tip')"
type="warning"
:closable="false"
v-if="!slugHashEnabled"
/>
<el-alert :title="$t('main.use.hash.tip')" type="warning" :closable="false" v-if="!slugHashEnabled" />
</el-form-item>

<!-- 摘要 -->
Expand All @@ -122,11 +92,7 @@
</el-form-item>
<el-form-item v-if="editMode">
<el-button type="primary" @click="makeDesc" :loading="isDescLoading">
{{
isDescLoading
? $t("main.opt.loading")
: $t("main.auto.fetch.desc")
}}
{{ isDescLoading ? $t("main.opt.loading") : $t("main.auto.fetch.desc") }}
</el-button>
</el-form-item>

Expand Down Expand Up @@ -167,20 +133,13 @@
@keyup.enter="tagHandleInputConfirm"
@blur="tagHandleInputConfirm"
/>
<el-button
v-else
class="button-new-tag ml-1 el-tag"
size="small"
@click="tagShowInput"
>
<el-button v-else class="button-new-tag ml-1 el-tag" size="small" @click="tagShowInput">
{{ $t("main.tag.new") }}
</el-button>
</el-form-item>
<el-form-item v-if="editMode">
<el-button type="primary" @click="fetchTag" :loading="isTagLoading">
{{
isTagLoading ? $t("main.opt.loading") : $t("main.auto.fetch.tag")
}}
{{ isTagLoading ? $t("main.opt.loading") : $t("main.auto.fetch.tag") }}
</el-button>
</el-form-item>

Expand Down Expand Up @@ -210,28 +169,15 @@

<!-- 一键生成属性-->
<el-form-item v-if="editMode" :label="$t('main.opt.quick')">
<el-button
type="primary"
@click="oneclickAttr"
:loading="isGenLoading"
>
{{
isGenLoading
? $t("main.opt.loading")
: $t("main.publish.oneclick.attr")
}}
</el-button>
<el-button type="primary" @click="saveAttrToSiyuan"
>{{ $t("main.save.attr.to.siyuan") }}
<el-button type="primary" @click="oneclickAttr" :loading="isGenLoading">
{{ isGenLoading ? $t("main.opt.loading") : $t("main.publish.oneclick.attr") }}
</el-button>
<el-button type="primary" @click="saveAttrToSiyuan">{{ $t("main.save.attr.to.siyuan") }} </el-button>
</el-form-item>

<!-- 使用图床 -->
<el-form-item :label="$t('github.post.picgo.use')">
<el-switch
v-model="picgoPostData.picgoEnabled"
@change="picgoPostMethods.picgoOnChange"
/>
<el-switch v-model="picgoPostData.picgoEnabled" @change="picgoPostMethods.picgoOnChange" />
<el-alert
v-if="false && picgoPostData.picgoEnabled"
:closable="false"
Expand All @@ -242,42 +188,22 @@

<!-- 发布操作 -->
<el-form-item label="">
<el-button
type="primary"
@click="doPublish"
:loading="isPublishLoading"
>{{
isPublishLoading
? $t("main.publish.loading")
: isPublished
? $t("main.update")
: $t("main.publish")
}}
<el-button type="primary" @click="doPublish" :loading="isPublishLoading"
>{{ isPublishLoading ? $t("main.publish.loading") : isPublished ? $t("main.update") : $t("main.publish") }}
</el-button>
<el-button
v-if="isPublished"
:loading="isCancelLoading"
@click="cancelPublish"
<el-button v-if="isPublished" :loading="isCancelLoading" @click="cancelPublish"
>{{ $t("main.cancel") }}
</el-button>
</el-form-item>

<!-- 文章状态 -->
<el-form-item>
<el-button type="danger" text disabled>
{{
isPublished
? $t("main.publish.status.published")
: $t("main.publish.status.unpublish")
}}
{{ isPublished ? $t("main.publish.status.published") : $t("main.publish.status.unpublish") }}
</el-button>
<a
:href="previewUrl"
:title="previewUrl"
target="_blank"
v-if="isPublished"
>{{ $t("main.publish.see.preview") }}</a
>
<a :href="previewUrl" :title="previewUrl" target="_blank" v-if="isPublished">{{
$t("main.publish.see.preview")
}}</a>
</el-form-item>
</el-form>
</el-main>
Expand All @@ -300,39 +226,24 @@ import {
removeTitleNumber,
removeWidgetTag,
} from "~/utils/htmlUtil"
import {
IMetaweblogCfg,
PageType,
} from "~/utils/platform/metaweblog/IMetaweblogCfg"
import { IMetaweblogCfg, PageType } from "~/utils/platform/metaweblog/IMetaweblogCfg"
import shortHash from "shorthash2"
import { API } from "~/utils/api"
import { Post } from "~/utils/models/post"
import { API_TYPE_CONSTANTS } from "~/utils/constants/apiTypeConstants"
import { LogFactory } from "~/utils/logUtil"
import { getPageId } from "~/utils/platform/siyuan/siyuanUtil"
import { getJSONConf } from "~/utils/configUtil"
import {
cutWords,
isEmptyObject,
isEmptyString,
jiebaToHotWords,
pinyinSlugify,
zhSlugify,
} from "~/utils/util"
import { cutWords, isEmptyObject, isEmptyString, jiebaToHotWords, pinyinSlugify, zhSlugify } from "~/utils/util"
import { SiYuanApi } from "~/utils/platform/siyuan/siYuanApi"
import { formatNumToZhDate } from "~/utils/dateUtil"
import {
getApiParams,
getPublishCfg,
getPublishStatus,
} from "~/utils/publishUtil"
import { getApiParams, getPublishCfg, getPublishStatus } from "~/utils/publishUtil"
import { CONSTANTS } from "~/utils/constants/constants"
import { usePicgoPost } from "~/composables/picgo/import/picgoPostCom"
import { PicgoPostApi } from "~/utils/platform/picgo/picgoPostApi"
import { LinkParser } from "~/utils/parser/LinkParser"
const logger = LogFactory.getLogger(
"components/publish/tab/main/MetaweblogMain.vue"
)
const logger = LogFactory.getLogger("components/publish/tab/main/MetaweblogMain.vue")
const siyuanApi = new SiYuanApi()
const { t } = useI18n()
Expand Down Expand Up @@ -361,11 +272,10 @@ const props = defineProps({
})
const blogName = ref("")
const apiTypeInfo = ref(
t("setting.blog.platform.support.metaweblog") + props.apiType + " "
)
const apiTypeInfo = ref(t("setting.blog.platform.support.metaweblog") + props.apiType + " ")
const apiStatus = ref(false)
const picgoPostApi = new PicgoPostApi()
const linkParser = new LinkParser()
// use
const { picgoPostData, picgoPostMethods } = usePicgoPost()
Expand Down Expand Up @@ -455,10 +365,8 @@ const initPage = async () => {
fmtTitle = removeTitleNumber(page.content)
}
formData.title = fmtTitle
formData.customSlug =
siyuanData.meta[SIYUAN_PAGE_ATTR_KEY.SIYUAN_PAGE_ATTR_CUSTOM_SLUG_KEY]
formData.desc =
siyuanData.meta[SIYUAN_PAGE_ATTR_KEY.SIYUAN_PAGE_ATTR_CUSTOM_DESC_KEY]
formData.customSlug = siyuanData.meta[SIYUAN_PAGE_ATTR_KEY.SIYUAN_PAGE_ATTR_CUSTOM_SLUG_KEY]
formData.desc = siyuanData.meta[SIYUAN_PAGE_ATTR_KEY.SIYUAN_PAGE_ATTR_CUSTOM_DESC_KEY]
formData.created = formatNumToZhDate(page.created)
// 标签
Expand Down Expand Up @@ -693,8 +601,7 @@ async function fetchTag(hideTip) {
const saveAttrToSiyuan = async (hideTip) => {
const customAttr = {
[SIYUAN_PAGE_ATTR_KEY.SIYUAN_PAGE_ATTR_CUSTOM_SLUG_KEY]:
formData.customSlug,
[SIYUAN_PAGE_ATTR_KEY.SIYUAN_PAGE_ATTR_CUSTOM_SLUG_KEY]: formData.customSlug,
[SIYUAN_PAGE_ATTR_KEY.SIYUAN_PAGE_ATTR_CUSTOM_DESC_KEY]: formData.desc,
tags: formData.tag.dynamicTags.join(","),
}
Expand Down Expand Up @@ -774,11 +681,7 @@ const doPublish = async () => {
// 处理图床
if (picgoPostMethods.getPicgoPostData().picgoEnabled) {
ElMessage.info(t("github.post.picgo.start.upload"))
const picgoPostResult = await picgoPostApi.uploadPostImagesToBed(
siyuanData.pageId,
siyuanData.meta,
md
)
const picgoPostResult = await picgoPostApi.uploadPostImagesToBed(siyuanData.pageId, siyuanData.meta, md)
if (picgoPostResult.flag) {
md = picgoPostResult.mdContent
Expand All @@ -787,6 +690,9 @@ const doPublish = async () => {
}
}
// 引用链接替换
md = await linkParser.convertSiyuanLinkToPlatformLink(md, api)
if (PageType.Html === metaweblogCfg.pageType) {
const html = mdToHtml(md)
content = removeWidgetTag(html)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docs": "jsdoc -c jsdoc.json utils/api.ts",
"prettier": "prettier --write .",
"prepare": "husky install",
"new": "python scripts/version.py 0.7.3",
"new": "python scripts/version.py 0.8.0",
"widget": "python scripts/widget.py",
"ext": "python scripts/ext.py",
"package": "pnpm widget && pnpm ext"
Expand Down
19 changes: 5 additions & 14 deletions public/manifest.dev.json
Original file line number Diff line number Diff line change
@@ -1,29 +1,20 @@
{
"name": "开发版 - 思源笔记发布辅助工具",
"version": "0.7.3",
"version": "0.8.0",
"manifest_version": 3,
"author": "terwer",
"description": "思源笔记发布辅助工具,支持博客式只读浏览,多平台文章发布。",
"background": {
"service_worker": "background.js"
},
"host_permissions": [
"*://*/*"
],
"host_permissions": ["*://*/*"],
"web_accessible_resources": [
{
"resources": [
"blog/index.html",
"detail/index.html",
"publish/index.html",
"index.html"
],
"matches": [
"<all_urls>"
]
"resources": ["blog/index.html", "detail/index.html", "publish/index.html", "index.html"],
"matches": ["<all_urls>"]
}
],
"action": {
"default_popup": "blog/index.html"
}
}
}
Loading

0 comments on commit 3294b4a

Please sign in to comment.