feat: support meta_keywords and meta_description. (#79)

pull/81/head
Ryan Wang 2020-03-04 20:00:06 +08:00 committed by GitHub
parent 43925d0b1a
commit 0d6fb1e457
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 112 additions and 25 deletions

18
package-lock.json generated
View File

@ -2474,9 +2474,9 @@
} }
}, },
"ant-design-vue": { "ant-design-vue": {
"version": "1.4.11", "version": "1.4.12",
"resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.4.11.tgz", "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.4.12.tgz",
"integrity": "sha512-XwddZpasH8WuWSxvDHakSZSuKAMi1KVbLP49nWpYxCpAk/MiSTsMZvsmxA6BaSoRwSTJ57Y6WJJZ6fOJSR/nxg==", "integrity": "sha512-m+hWKF208DN8XX4s4BHCnh+XlUhJy8FUs13a9+jtZCoiQB2zpZdafJeu1LEcFaFlK7fxXfp61fWJJJm0S6ek0g==",
"requires": { "requires": {
"@ant-design/icons": "^2.1.1", "@ant-design/icons": "^2.1.1",
"@ant-design/icons-vue": "^2.0.0", "@ant-design/icons-vue": "^2.0.0",
@ -6670,9 +6670,9 @@
"optional": true "optional": true
}, },
"filepond": { "filepond": {
"version": "4.11.0", "version": "4.12.0",
"resolved": "https://registry.npmjs.org/filepond/-/filepond-4.11.0.tgz", "resolved": "https://registry.npmjs.org/filepond/-/filepond-4.12.0.tgz",
"integrity": "sha512-BCzpBBnv8DgBUeEZPNQyltdD1YIXemm8VjQJ9+vKKhVkGMRQcAzGBFZBtWJSI4dbZF8KVQn+jIvRGujcm5T+EA==" "integrity": "sha512-43+WI8R3RtSiPsKTcofnf9CW3i26sENIJFC1VERlu593mg/c5o74SU+gUfoocRWqDWQxjwE2qrobe+CUCPRASg=="
}, },
"filepond-plugin-image-preview": { "filepond-plugin-image-preview": {
"version": "4.6.1", "version": "4.6.1",
@ -14584,9 +14584,9 @@
"integrity": "sha512-UzD8t1CG+aoWVOOpGd5KcaCNtCgUc0byaKhJMH+6N7H/p1ThVkYl/VCt7DmCrdhUlzZK+hT5JPTKAdrbWi0nNw==" "integrity": "sha512-UzD8t1CG+aoWVOOpGd5KcaCNtCgUc0byaKhJMH+6N7H/p1ThVkYl/VCt7DmCrdhUlzZK+hT5JPTKAdrbWi0nNw=="
}, },
"vue-router": { "vue-router": {
"version": "3.1.5", "version": "3.1.6",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.1.5.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.1.6.tgz",
"integrity": "sha512-BszkPvhl7I9h334GjckCh7sVFyjTPMMJFJ4Bsrem/Ik+B/9gt5tgrk8k4gGLO4ZpdvciVdg7O41gW4DisQWurg==" "integrity": "sha512-GYhn2ynaZlysZMkFE5oCHRUTqE8BWs/a9YbKpNLi0i7xD6KG1EzDqpHQmv1F5gXjr8kL5iIVS8EOtRaVUEXTqA=="
}, },
"vue-style-loader": { "vue-style-loader": {
"version": "4.1.2", "version": "4.1.2",

View File

@ -9,10 +9,10 @@
"test:unit": "vue-cli-service test:unit" "test:unit": "vue-cli-service test:unit"
}, },
"dependencies": { "dependencies": {
"ant-design-vue": "^1.4.11", "ant-design-vue": "^1.4.12",
"axios": "^0.19.2", "axios": "^0.19.2",
"enquire.js": "^2.1.6", "enquire.js": "^2.1.6",
"filepond": "^4.11.0", "filepond": "^4.12.0",
"filepond-plugin-image-preview": "^4.6.1", "filepond-plugin-image-preview": "^4.6.1",
"halo-editor": "^2.8.2", "halo-editor": "^2.8.2",
"marked": "^0.8.0", "marked": "^0.8.0",
@ -25,7 +25,7 @@
"vue-dplayer": "0.0.10", "vue-dplayer": "0.0.10",
"vue-filepond": "^6.0.2", "vue-filepond": "^6.0.2",
"vue-ls": "^3.2.1", "vue-ls": "^3.2.1",
"vue-router": "^3.1.5", "vue-router": "^3.1.6",
"vuejs-logger": "^1.5.3", "vuejs-logger": "^1.5.3",
"vuex": "^3.1.1" "vuex": "^3.1.1"
}, },

View File

@ -158,7 +158,7 @@
type="textarea" type="textarea"
:autosize="{ minRows: 5 }" :autosize="{ minRows: 5 }"
v-model="selectedPost.summary" v-model="selectedPost.summary"
placeholder="不填写则会自动生成" placeholder="如不填写,会从文章中自动截取"
/> />
</a-form-item> </a-form-item>
</a-form> </a-form>
@ -193,6 +193,43 @@
</div> </div>
</div> </div>
</div> </div>
<a-divider class="divider-transparent" />
</div>
</a-skeleton>
<AttachmentSelectDrawer
v-model="thumbDrawerVisible"
@listenToSelect="handleSelectPostThumb"
:drawerWidth="460"
/>
<a-drawer
title="高级设置"
:width="isMobile()?'100%':'480'"
placement="right"
closable
destroyOnClose
@close="onAdvancedClose"
:visible="advancedVisible"
>
<div class="post-setting-drawer-content">
<div :style="{ marginBottom: '16px' }">
<h3 class="post-setting-drawer-title">SEO 设置</h3>
<div class="post-setting-drawer-item">
<a-form layout="vertical">
<a-form-item label="关键词:">
<a-input v-model="selectedPost.metaKeywords" placeholder="以英文逗号隔开,如不填写,将使用标签作为关键词"/>
</a-form-item>
<a-form-item label="描述:">
<a-input
type="textarea"
:autosize="{ minRows: 5 }"
v-model="selectedPost.metaDescription"
placeholder="如不填写,会从文章中自动截取"
/>
</a-form-item>
</a-form>
</div>
</div>
<a-divider /> <a-divider />
<div :style="{ marginBottom: '16px' }"> <div :style="{ marginBottom: '16px' }">
<h3 class="post-setting-drawer-title">元数据</h3> <h3 class="post-setting-drawer-title">元数据</h3>
@ -230,13 +267,14 @@
</div> </div>
<a-divider class="divider-transparent" /> <a-divider class="divider-transparent" />
</div> </div>
</a-skeleton> </a-drawer>
<AttachmentSelectDrawer
v-model="thumbDrawerVisible"
@listenToSelect="handleSelectPostThumb"
:drawerWidth="460"
/>
<div class="bottom-control"> <div class="bottom-control">
<a-button
style="marginRight: 8px"
type="dashed"
@click="()=>this.advancedVisible = true"
>高级</a-button>
<a-button <a-button
style="marginRight: 8px" style="marginRight: 8px"
@click="handleDraftClick" @click="handleDraftClick"
@ -282,6 +320,7 @@ export default {
return { return {
thumbDrawerVisible: false, thumbDrawerVisible: false,
categoryFormVisible: false, categoryFormVisible: false,
advancedVisible: false,
settingLoading: true, settingLoading: true,
selectedPost: this.post, selectedPost: this.post,
selectedTagIds: this.tagIds, selectedTagIds: this.tagIds,
@ -503,6 +542,9 @@ export default {
onClose() { onClose() {
this.$emit('close', false) this.$emit('close', false)
}, },
onAdvancedClose() {
this.advancedVisible = false
},
onPostDateChange(value, dateString) { onPostDateChange(value, dateString) {
this.selectedPost.createTime = value.valueOf() this.selectedPost.createTime = value.valueOf()
}, },

View File

@ -111,6 +111,46 @@
</div> </div>
</div> </div>
</div> </div>
<a-divider class="divider-transparent" />
</div>
</a-skeleton>
<AttachmentSelectDrawer
v-model="thumbDrawerVisible"
@listenToSelect="handleSelectSheetThumb"
:drawerWidth="460"
/>
<a-drawer
title="高级设置"
:width="isMobile()?'100%':'480'"
placement="right"
closable
destroyOnClose
@close="onAdvancedClose"
:visible="advancedVisible"
>
<div class="post-setting-drawer-content">
<div :style="{ marginBottom: '16px' }">
<h3 class="post-setting-drawer-title">SEO 设置</h3>
<div class="post-setting-drawer-item">
<a-form layout="vertical">
<a-form-item label="关键词:">
<a-input
v-model="selectedSheet.metaKeywords"
placeholder="以英文逗号隔开,如不填写,将使用标签作为关键词"
/>
</a-form-item>
<a-form-item label="描述:">
<a-input
type="textarea"
:autosize="{ minRows: 5 }"
v-model="selectedSheet.metaDescription"
placeholder="如不填写,会从页面中自动截取"
/>
</a-form-item>
</a-form>
</div>
</div>
<a-divider /> <a-divider />
<div :style="{ marginBottom: '16px' }"> <div :style="{ marginBottom: '16px' }">
<h3 class="post-setting-drawer-title">元数据</h3> <h3 class="post-setting-drawer-title">元数据</h3>
@ -148,13 +188,14 @@
</div> </div>
<a-divider class="divider-transparent" /> <a-divider class="divider-transparent" />
</div> </div>
</a-skeleton> </a-drawer>
<AttachmentSelectDrawer
v-model="thumbDrawerVisible"
@listenToSelect="handleSelectSheetThumb"
:drawerWidth="460"
/>
<div class="bottom-control"> <div class="bottom-control">
<a-button
style="marginRight: 8px"
type="dashed"
@click="()=>this.advancedVisible = true"
>高级</a-button>
<a-button <a-button
style="marginRight: 8px" style="marginRight: 8px"
@click="handleDraftClick" @click="handleDraftClick"
@ -184,6 +225,7 @@ export default {
data() { data() {
return { return {
thumbDrawerVisible: false, thumbDrawerVisible: false,
advancedVisible: false,
settingLoading: true, settingLoading: true,
selectedSheet: this.sheet, selectedSheet: this.sheet,
customTpls: [], customTpls: [],
@ -337,6 +379,9 @@ export default {
onClose() { onClose() {
this.$emit('close', false) this.$emit('close', false)
}, },
onAdvancedClose() {
this.advancedVisible = false
},
onSheetDateChange(value, dateString) { onSheetDateChange(value, dateString) {
this.selectedSheet.createTime = value.valueOf() this.selectedSheet.createTime = value.valueOf()
}, },