9 Commits

Author SHA1 Message Date
f400bcf486 BLOG-79 AI review bot (#83)
All checks were successful
Frontend CI / build (push) Successful in 1m5s
### Description

- Use Qudo Merge as self-hosted PR agent
- Add a workflow that auto comment /improve command to start the agent

### Package Changes

_No response_

### Screenshots

_No response_

### Reference

Resolves #79

### Checklist

- [x] A milestone is set
- [x] The related issuse has been linked to this branch

Reviewed-on: #83
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-07-26 07:01:50 +08:00
3cb69f6e7c BLOG-45 Post content page (#67)
All checks were successful
Frontend CI / build (push) Successful in 1m8s
### Description

- Implement the content page
  - Parse markdown formant content to html by `markdown-it`
  - Use `sanitize-html` to prevent from XSS attack
  - Style the html with `tailwindcss-typography`
- Fix the issue when backend parse the password to url
- Fix and make the post info list from backend always sorted by id

### Package Changes

### Rust

```toml
percent-encoding = "2.3.1"
```

### Node

```json
{
  "@types/markdown-it": "^14.1.2",
  "@types/sanitize-html": "^2.16.0",
  "markdown-it": "^14.1.0",
  "sanitize-html": "^2.17.0"
}
```

### Screenshots

|Desktop|Mobile|
|-|-|
|![image.png](/attachments/0ec5718a-f804-432f-8e4b-e9dc22c080d2)|![beta.squidspirit.com_post(iPhone 12 Pro) (1).png](/attachments/b30d1b96-d4a4-4b2b-b9bd-90fd2592ab52)|

### Reference

Resolves #45

### Checklist

- [x] A milestone is set
- [x] The related issuse has been linked to this branch

Reviewed-on: #67
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-07-24 22:20:58 +08:00
cefdc94e03 BLOG-58 fix: workflow node version
Some checks failed
PR Title Check / pr-title-check (pull_request) Successful in 17s
Frontend CI / build (push) Failing after 53s
2025-07-23 05:23:29 +08:00
0726b11fe2 BLOG-59 Enhance deployment workflow and backend server configuration (#60)
All checks were successful
Frontend CI / build (push) Successful in 1m37s
### Description

- Updated deployment.yaml to specify separate build and push steps for frontend and backend.
- Added Dockerfile for backend service to define build process.
- Modified main.rs to bind the server to all network interfaces (0.0.0.0) instead of localhost.

### Package Changes

_No response_

### Screenshots

_No response_

### Reference

Resolves #59

### Checklist

- [x] A milestone is set
- [x] The related issuse has been linked to this branch

Reviewed-on: #60
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-07-23 00:59:18 +08:00
f8cf40a3dc BLOG-36 Fix workflow buildx failed to push (#38)
All checks were successful
Frontend CI / build (push) Successful in 1m34s
### Description

- As the title.

### Package Changes

_No response_

### Screenshots

_No response_

### Reference

- Resolves #36
- Solution: https://stackoverflow.com/questions/75131872/error-failed-to-solve-failed-commit-on-ref-unexpected-status-400-bad-reques
- Docker document: https://docs.docker.com/build/ci/github-actions/attestations/#max-level-provenance
  > Note that adding attestations to an image means you must push the image to a registry directly, as opposed to loading the image to the local image store of the runner. This is because the local image store doesn't support loading images with attestations.

### Checklist

- [x] A milestone is set
- [x] The related issuse has been linked to this branch

Reviewed-on: #38
Reviewed-by: zoe <zoe@noreply.localhost>
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-01-28 13:23:46 +08:00
f0385a49a2 BLOG-34 Fix deployment workflow syntax error (#35)
Some checks failed
Frontend CI / build (push) Successful in 1m27s
Deployment / frontend-deployment (release) Failing after 3m6s
### Description

As the title.

### Package Changes

_No response_

### Screenshots

_No response_

### Reference

- Resolves #34
- [GitHub Action - Docker Build And Push](https://github.com/marketplace/actions/build-and-push-docker-images#customizing)

### Checklist

- [x] A milestone is set
- [x] The related issuse has been linked to this branch

Reviewed-on: #35
Reviewed-by: zoe <zoe@noreply.localhost>
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-01-27 19:35:54 +08:00
35af8fd090 BLOG-9 Automatical deployment (#33)
All checks were successful
Frontend CI / build (push) Successful in 1m27s
### Description

- Create a Dockerfile to build the docker image.
- Set up the workflow to run deployment, which is to build and upload image to remote registry.
- Add a head meta html tag to show the version.

### Package Changes

_No response_

### Screenshots

_No response_

### Reference

Resolves #9

### Checklist

- [x] A milestone is set
- [x] The related issuse has been linked to this branch

Reviewed-on: #33
Reviewed-by: zoe <zoe@noreply.localhost>
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-01-25 00:03:55 +08:00
fd3ba3bfb8 NO-ISSUE Create title check workflow (#30)
All checks were successful
Frontend CI / build (push) Successful in 1m20s
### Description

- The validation regex is `^(BLOG-[0-9]+|NO-ISSUE) [A-Z].+$`

### Package Changes

_No response_

### Screenshots

_No response_

### Reference

_No issue_

### Checklist

- [x] The title is meet the format `'BLOG-XXX Title title title'`
- [ ] A milestone is set
- [ ] The related issuse has been linked to this branch

Reviewed-on: #30
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-01-21 08:21:51 +08:00
1b48a61c05 BLOG-8 Set up gitea action (#22)
All checks were successful
Frontend CI / build (push) Successful in 1m20s
### Description

- I found a build error when setting up gitea action, which is caused by circular dependency.
- We couldn't call dispatch in reducer, so something like streaming, delay, set interval could not be use in reducer directly.
- As for async function, we can use [`createAsyncTank`](https://redux-toolkit.js.org/api/createAsyncThunk).

### Package Changes

_No response_

### Screenshots

_No response_

### Reference

Resolves #8

### Checklist

- [x] A milestone is set

Reviewed-on: #22
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-01-18 19:59:52 +08:00