Go to file
guqing 3adf5b8a95
refactor: change from manual publishing to automatic publishing (#2659)
#### What type of PR is this?
/kind improvement
/milestone 2.0
/area core
/kind api-change

#### What this PR does / why we need it:
- 通过修改 `spec.publish=true` 且 `spec.releasedSnapshot = spec.headSnapshot` 来实现通过 reconciler 异步发布
- Snapshot 中的 subjectRef 类型改为了 Ref 类型,因为之前的 Snapshot.SubjectRef 只包含了 kind 和 name 可能会冲突

#### Which issue(s) this PR fixes:

Fixes #2650

#### Special notes for your reviewer:
how to test it?
1. 通过 `POST /apis/console.halo.run/v1alpha1/posts` 创建文章并将 `spec.publish=true`,创建后查询可以看到 `spec.baseSnapshot`、`spec.headSnapshot`、`spec.releasedSnapshot` 三个值都相等,且 `status.phase=PUBLISHED`(此过程相当于创建即发布没有保存过程)
2. 先通过 `POST /apis/console.halo.run/v1alpha1/posts` 创建一篇草稿(`spec.publish=false`),在获取它并设置 `spec.publish=true` ,更新后期望文章为发布状态 `spec.headSnapshot`, `spec.releasedSnapshot` 都不等于空且等于 `spec.baseSnapshot`),且 `spec.version=1`(此过程相当于先保存后发布且之前从未发布过)
3. 在步骤2的基础上修改`spec.releasedSnapshot=spec.headSnapshot`并更新,期望 `spec.version=2`且`spec.releasedSnapshot` 对应的 Snapshot 数据具有 publishTime(此过程相当于发布后编辑内容在发布的场景)
4. 自定义页面亦如是

/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?
```release-note
重构文章发布以解决创建与发布 API 几乎同时调用时无法成功发布文章的问题
```
2022-11-10 14:44:10 +00:00
.github Build console with release tag when releasing (#2665) 2022-11-07 16:03:15 +08:00
config/checkstyle chore: add checkstyle rule (#2091) 2022-05-17 06:46:11 +00:00
docs Refine logic of form login and logout (#2528) 2022-10-11 08:04:14 +00:00
gradle/wrapper Create basic project structure for halo 2.0 (#1699) 2022-03-04 15:04:11 +08:00
hack chore: add cherry_pick_pull.sh for cherry-picking pull request (#1554) 2021-12-03 10:21:24 +08:00
src refactor: change from manual publishing to automatic publishing (#2659) 2022-11-10 14:44:10 +00:00
.editorconfig refactor: next line config (#1844) 2022-04-14 07:49:17 +00:00
.gitattributes Refactor .gitignore 2019-04-03 11:37:59 +08:00
.gitignore Fix the problem of generating permalink due to special filename (#2462) 2022-09-24 04:50:15 +00:00
CODE_OF_CONDUCT.md docs: add CODE_OF_CONDUCT.md (#2150) 2022-06-12 08:10:12 +00:00
CONTRIBUTING.md chore: add cherry_pick_pull.sh for cherry-picking pull request (#1554) 2021-12-03 10:21:24 +08:00
Dockerfile Refactor CICD for Halo next (#2236) 2022-07-12 11:01:00 +08:00
LICENSE Create LICENSE 2018-03-21 21:39:46 +08:00
OWNERS feat: add OWNERS file for prow (#1840) 2022-04-13 17:06:22 +08:00
README.md Update README.md due to 2.0.0-alpha.3 released (#2634) 2022-10-26 09:36:09 +00:00
SECURITY.md Update SECURITY.md 2021-09-29 20:43:15 +08:00
build.gradle Bump jasync-r2dbc-mysql to 2.1.7 (#2631) 2022-10-26 04:24:09 +00:00
gradle.properties Create basic project structure for halo 2.0 (#1699) 2022-03-04 15:04:11 +08:00
gradlew Create basic project structure for halo 2.0 (#1699) 2022-03-04 15:04:11 +08:00
gradlew.bat Create basic project structure for halo 2.0 (#1699) 2022-03-04 15:04:11 +08:00
settings.gradle Bump Spring Boot to 3.0.0-RC1 (#2620) 2022-10-25 02:56:11 +00:00

README.md

Halo logo

Halo [ˈheɪloʊ],一款现代化的开源博客/CMS系统值得一试。

GitHub release GitHub All Releases Docker pulls GitHub last commit GitHub Workflow Status
官网 文档2.0 Alpha 社区 Gitee Telegram 频道


注意

当前分支为 Halo 2.0 的开发分支,目前 Halo 2.0 处于 Alpha 测试阶段,无法从 1.5 直接升级也不建议在生产环境使用。稳定版本Halo 1.x请查阅以下地址

快速开始

Docker

docker run -it -d --name halo-next -p 8090:8090 -v ~/halo-next:/root/halo-next --restart=unless-stopped halohub/halo-dev:2.0.0-alpha.3

详细部署文档请查阅:https://docs.halo.run/2.0.0-SNAPSHOT/getting-started/install/docker

在线体验

生态

可访问 awesome-halo 查看已经适用于 Halo 2.0 的主题和插件,以及适用于 Halo 1.x 的相关仓库。

许可证

license

Halo 使用 GPL-v3.0 协议开源,请遵守开源协议。

贡献

参考 CONTRIBUTING

状态

Repobeats analytics