release: 1.5.0-beta.1 (#1749)

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/1760/head v1.5.0-beta.1
Ryan Wang 2022-03-14 21:29:50 +08:00 committed by GitHub
parent 628eb2f1ae
commit 8c9499ceaf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 48 additions and 30 deletions

View File

@ -1,5 +1,31 @@
# CHANGELOG
# 1.5.0-beta.1
## Features
- 后台菜单分组支持修改分组名。 halo-dev/halo-admin#499 @ruibaby
- 后台个人资料头像修改支持输入链接。 halo-dev/halo-admin#505 @ruibaby
## Improvements
- 重构后台主题设置保存预览功能。 halo-dev/halo-admin#502 @ruibaby
- 重构日志发布功能,使用 Markdown 编辑器替换 textarea并支持保存前端渲染的 Markdown 结果。 halo-dev/halo#1739 halo-dev/halo-admin#506 @guqing @ruibaby
## Bug Fixes
- 修复后台分类/标签/友情链接修改表单切换修改对象之后没有清除表单验证的问题。 halo-dev/halo-admin#501 halo-dev/halo-admin#503 @Yorksh1re
- 修复当前版本如果为 `alpha` 版本,安装主题无法通过版本验证的问题。 halo-dev/halo#1747 @JohnNiang
## Dependencies
- 后台更新 @halo-dev/editor 版本。 halo-dev/halo-admin#507 @ruibaby
- 修复嵌套列表语法的渲染问题。
- 添加 attrs 和 mark 语法的插件。
- 优化列表语法的编写,可以自动添加序号。
- 添加打开图片选择的快捷键。
- 统一使用 @halo-dev/markdown-renderer 库进行 Markdown 渲染。
# 1.5.0-alpha.3
## Breaking changes

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
<!doctype html><html lang="zh-cmn-Hans"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="renderer" content="webkit"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/><meta name="robots" content="noindex,nofollow"/><meta name="generator" content="Halo 1.5.0-alpha.3"/><link rel="icon" href="/favicon.ico"/><title>Halo</title><style>body {height: 100%;background-color: #f5f5f5;}#loader{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;border:solid 3px #e5e5e5;border-top-color:#333;border-radius:50%;width:30px;height:30px;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}</style><script defer="defer" src="/js/chunk-vendors.b4fb87f2.js"></script><script defer="defer" src="/js/app.33e3a1d8.js"></script><link href="/css/chunk-vendors.e6958125.css" rel="stylesheet"><link href="/css/app.2771c76a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but halo admin client doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"><div id="loader"></div></div></body></html>
<!doctype html><html lang="zh-cmn-Hans"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="renderer" content="webkit"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/><meta name="robots" content="noindex,nofollow"/><meta name="generator" content="Halo 1.5.0-beta.1"/><link rel="icon" href="/favicon.ico"/><title>Halo</title><style>body {height: 100%;background-color: #f5f5f5;}#loader{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;border:solid 3px #e5e5e5;border-top-color:#333;border-radius:50%;width:30px;height:30px;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}</style><script defer="defer" src="/js/chunk-vendors.b6d367da.js"></script><script defer="defer" src="/js/app.b8d342ac.js"></script><link href="/css/chunk-vendors.e6958125.css" rel="stylesheet"><link href="/css/app.f1df0b7b.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but halo admin client doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"><div id="loader"></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
"use strict";(self["webpackChunkhalo_admin"]=self["webpackChunkhalo_admin"]||[]).push([[243],{44243:function(e,t,n){n.r(t),n.d(t,{default:function(){return y}});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("page-view",[n("a-row",[n("a-col",{attrs:{span:24}},[e.options.developer_mode?n("div",{staticClass:"card-container"},[n("a-tabs",{attrs:{type:"card"},model:{value:e.activeKey,callback:function(t){e.activeKey=t},expression:"activeKey"}},e._l(e.panes,(function(t){return n("a-tab-pane",{key:t.key},[n("span",{attrs:{slot:"tab"},slot:"tab"},[n("a-icon",{attrs:{type:t.icon}}),e._v(e._s(t.title)+" ")],1),n(t.component,{tag:"component"})],1)})),1)],1):n("a-alert",{attrs:{description:"当前没有启用开发者选项,请启用之后再访问该页面!",message:"提示",showIcon:"",type:"error"}})],1)],1)],1)},i=[],a=n(86475),r=(n(31875),n(29888),n(45107),n(98906)),c=n(27474),s={components:{PageView:c.B4},data:function(){var e=[{title:"运行环境",icon:"safety",component:function(){return n.e(174).then(n.bind(n,87174))},key:"environment"},{title:"实时日志",icon:"code",component:function(){return Promise.all([n.e(961),n.e(192),n.e(164),n.e(348)]).then(n.bind(n,94147))},key:"runtimeLogs"},{title:"系统变量",icon:"table",component:function(){return n.e(650).then(n.bind(n,36650))},key:"optionsList"},{title:"静态存储",icon:"cloud",component:function(){return Promise.all([n.e(961),n.e(134)]).then(n.bind(n,27134))},key:"staticStorage"},{title:"设置",icon:"setting",component:function(){return n.e(651).then(n.bind(n,25651))},key:"settings"}];return{activeKey:e[0].key,panes:e}},computed:(0,a.Z)({},(0,r.Se)(["options"])),beforeRouteEnter:function(e,t,n){var o=e.query.activeKey;n((function(e){o&&(e.activeKey=o)}))},watch:{activeKey:function(e){if(e){var t=this.$router.history.current.path;this.$router.push({path:t,query:{activeKey:e}}).catch((function(e){return e}))}}}},u=s,l=n(42177),p=(0,l.Z)(u,o,i,!1,null,null,null),y=p.exports}}]);
"use strict";(self["webpackChunkhalo_admin"]=self["webpackChunkhalo_admin"]||[]).push([[243],{44243:function(e,t,n){n.r(t),n.d(t,{default:function(){return y}});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("page-view",[n("a-row",[n("a-col",{attrs:{span:24}},[e.options.developer_mode?n("div",{staticClass:"card-container"},[n("a-tabs",{attrs:{type:"card"},model:{value:e.activeKey,callback:function(t){e.activeKey=t},expression:"activeKey"}},e._l(e.panes,(function(t){return n("a-tab-pane",{key:t.key},[n("span",{attrs:{slot:"tab"},slot:"tab"},[n("a-icon",{attrs:{type:t.icon}}),e._v(e._s(t.title)+" ")],1),n(t.component,{tag:"component"})],1)})),1)],1):n("a-alert",{attrs:{description:"当前没有启用开发者选项,请启用之后再访问该页面!",message:"提示",showIcon:"",type:"error"}})],1)],1)],1)},i=[],a=n(86475),r=(n(31875),n(29888),n(45107),n(98906)),c=n(27474),s={components:{PageView:c.B4},data:function(){var e=[{title:"运行环境",icon:"safety",component:function(){return n.e(172).then(n.bind(n,87174))},key:"environment"},{title:"实时日志",icon:"code",component:function(){return Promise.all([n.e(961),n.e(192),n.e(164),n.e(147)]).then(n.bind(n,94147))},key:"runtimeLogs"},{title:"系统变量",icon:"table",component:function(){return n.e(650).then(n.bind(n,36650))},key:"optionsList"},{title:"静态存储",icon:"cloud",component:function(){return Promise.all([n.e(961),n.e(134)]).then(n.bind(n,27134))},key:"staticStorage"},{title:"设置",icon:"setting",component:function(){return n.e(651).then(n.bind(n,25651))},key:"settings"}];return{activeKey:e[0].key,panes:e}},computed:(0,a.Z)({},(0,r.Se)(["options"])),beforeRouteEnter:function(e,t,n){var o=e.query.activeKey;n((function(e){o&&(e.activeKey=o)}))},watch:{activeKey:function(e){if(e){var t=this.$router.history.current.path;this.$router.push({path:t,query:{activeKey:e}}).catch((function(e){return e}))}}}},u=s,l=n(42177),p=(0,l.Z)(u,o,i,!1,null,null,null),y=p.exports}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunkhalo_admin"]=self["webpackChunkhalo_admin"]||[]).push([[757],{63757:function(e,t,o){o.r(t),o.d(t,{default:function(){return u}});var a=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("page-view",[o("a-row",{attrs:{gutter:12}},[o("a-col",{staticClass:"pb-3",attrs:{lg:10,md:10,sm:24,xl:10,xs:24}},[o("a-card",{attrs:{bodyStyle:{padding:"16px"},title:e.title}},[o("a-form-model",{ref:"tagForm",attrs:{model:e.form.model,rules:e.form.rules,layout:"horizontal"}},[o("a-form-model-item",{attrs:{help:"* 页面上所显示的名称",label:"名称:",prop:"name"}},[o("a-input",{model:{value:e.form.model.name,callback:function(t){e.$set(e.form.model,"name",t)},expression:"form.model.name"}})],1),o("a-form-model-item",{attrs:{help:"* 一般为单个标签页面的标识,最好为英文",label:"别名:",prop:"slug"}},[o("a-input",{model:{value:e.form.model.slug,callback:function(t){e.$set(e.form.model,"slug",t)},expression:"form.model.slug"}})],1),o("a-form-model-item",{attrs:{label:"颜色:",prop:"color"}},[o("a-input",{scopedSlots:e._u([{key:"addonAfter",fn:function(){return[o("verte",{staticStyle:{cursor:"pointer"},attrs:{model:"hex",picker:"square"},model:{value:e.form.model.color,callback:function(t){e.$set(e.form.model,"color",t)},expression:"form.model.color"}})]},proxy:!0}]),model:{value:e.form.model.color,callback:function(t){e.$set(e.form.model,"color",t)},expression:"form.model.color"}})],1),o("a-form-model-item",{attrs:{help:"* 在标签页面可展示,需要主题支持",label:"封面图:",prop:"thumbnail"}},[o("AttachmentInput",{attrs:{title:"选择封面图"},model:{value:e.form.model.thumbnail,callback:function(t){e.$set(e.form.model,"thumbnail",t)},expression:"form.model.thumbnail"}})],1),o("a-form-model-item",[e.isUpdateMode?o("a-button-group",[o("ReactiveButton",{attrs:{errored:e.form.errored,loading:e.form.saving,erroredText:"更新失败",loadedText:"更新成功",text:"更新",type:"primary"},on:{callback:e.handleSavedCallback,click:e.handleCreateOrUpdateTag}}),o("a-button",{attrs:{type:"dashed"},on:{click:function(t){e.form.model={}}}},[e._v("返回添加")])],1):o("ReactiveButton",{attrs:{errored:e.form.errored,loading:e.form.saving,erroredText:"保存失败",loadedText:"保存成功",text:"保存",type:"primary"},on:{callback:e.handleSavedCallback,click:e.handleCreateOrUpdateTag}}),e.isUpdateMode?o("a-popconfirm",{attrs:{title:"你确定要删除【"+e.form.model.name+"】标签?",cancelText:"取消",okText:"确定"},on:{confirm:function(t){return e.handleDeleteTag(e.form.model.id)}}},[o("a-button",{staticClass:"float-right",attrs:{type:"danger"}},[e._v("删除")])],1):e._e()],1)],1)],1)],1),o("a-col",{staticClass:"pb-3",attrs:{lg:14,md:14,sm:24,xl:14,xs:24}},[o("a-card",{attrs:{bodyStyle:{padding:"16px"},title:"所有标签"}},[o("a-spin",{attrs:{spinning:e.list.loading}},[0===e.list.data.length?o("a-empty"):e._l(e.list.data,(function(t){return o("a-tooltip",{key:t.id,attrs:{placement:"topLeft"}},[o("template",{slot:"title"},[o("span",[e._v(e._s(t.postCount)+" 篇文章")])]),o("post-tag",{staticStyle:{"margin-bottom":"8px",cursor:"pointer"},attrs:{tag:t},nativeOn:{click:function(o){e.form.model=t}}})],2)}))],2)],1)],1)],1)],1)},r=[],l=(o(31875),o(27474)),n=o(17132),i=o(82676),m=o(43154),d={components:{PageView:l.B4,Verte:m.Z},data:function(){return{list:{data:[],loading:!1},form:{model:{color:"#cfd3d7"},saving:!1,errored:!1,rules:{name:[{required:!0,message:"* 标签名称不能为空",trigger:["change"]},{max:255,message:"* 标签名称的字符长度不能超过 255",trigger:["change"]}],slug:[{max:255,message:"* 标签别名的字符长度不能超过 255",trigger:["change"]}],thumbnail:[{max:1023,message:"* 封面图链接的字符长度不能超过 1023",trigger:["change"]}],color:[{max:7,pattern:i.aX,message:"仅支持 hex 颜色值"}]}}}},computed:{title:function(){return this.isUpdateMode?"修改标签":"添加标签"},isUpdateMode:function(){return!!this.form.model.id}},created:function(){this.handleListTags()},methods:{handleListTags:function(){var e=this;this.list.loading=!0,n.Z.tag.list({more:!0}).then((function(t){e.list.data=t.data})).finally((function(){e.list.loading=!1}))},handleDeleteTag:function(e){var t=this;n.Z.tag["delete"](e).finally((function(){t.form.model={color:"#cfd3d7"},t.handleListTags()}))},handleCreateOrUpdateTag:function(){var e=this,t=this;t.$refs.tagForm.validate((function(o){o&&(e.form.saving=!0,t.isUpdateMode?n.Z.tag.update(t.form.model.id,t.form.model).catch((function(){e.form.errored=!0})).finally((function(){setTimeout((function(){t.form.saving=!1}),400)})):n.Z.tag.create(t.form.model).catch((function(){e.form.errored=!0})).finally((function(){setTimeout((function(){t.form.saving=!1}),400)})))}))},handleSavedCallback:function(){var e=this;e.form.errored?e.form.errored=!1:(e.form.model={color:"#cfd3d7"},e.handleListTags())}}},s=d,c=o(42177),f=(0,c.Z)(s,a,r,!1,null,null,null),u=f.exports}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long