Compare commits
No commits in common. "5925062d9de83c833c84898d7849a496f3d70505" and "a256a574e3c1a034c0f0d62a0fd4195a9067cee4" have entirely different histories.
5925062d9d
...
a256a574e3
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -74,7 +74,6 @@
|
|||||||
"lastmod",
|
"lastmod",
|
||||||
"lazyload",
|
"lazyload",
|
||||||
"linuxapi",
|
"linuxapi",
|
||||||
"longluo",
|
|
||||||
"loveness",
|
"loveness",
|
||||||
"luoli",
|
"luoli",
|
||||||
"luxon",
|
"luxon",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import mdx from '@astrojs/mdx';
|
import mdx from '@astrojs/mdx';
|
||||||
import zeabur from '@zeabur/astro-adapter/serverless';
|
import node from '@astrojs/node';
|
||||||
import { uploader } from 'astro-uploader';
|
import { uploader } from 'astro-uploader';
|
||||||
import { defineConfig, envField } from 'astro/config';
|
import { defineConfig, envField } from 'astro/config';
|
||||||
import rehypeExternalLinks from 'rehype-external-links';
|
import rehypeExternalLinks from 'rehype-external-links';
|
||||||
@ -31,7 +31,6 @@ export default defineConfig({
|
|||||||
// Artalk Comment
|
// Artalk Comment
|
||||||
ARTALK_HOST: envField.string({ context: 'server', access: 'secret' }),
|
ARTALK_HOST: envField.string({ context: 'server', access: 'secret' }),
|
||||||
},
|
},
|
||||||
validateSecrets: true,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
integrations: [
|
integrations: [
|
||||||
@ -47,7 +46,9 @@ export default defineConfig({
|
|||||||
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY as string,
|
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY as string,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
adapter: zeabur(),
|
adapter: node({
|
||||||
|
mode: 'standalone',
|
||||||
|
}),
|
||||||
markdown: {
|
markdown: {
|
||||||
gfm: true,
|
gfm: true,
|
||||||
shikiConfig: {
|
shikiConfig: {
|
||||||
|
@ -186,7 +186,7 @@ const options: z.input<typeof Options> = {
|
|||||||
server: 'https://comment.yufan.me',
|
server: 'https://comment.yufan.me',
|
||||||
size: 10,
|
size: 10,
|
||||||
avatar: {
|
avatar: {
|
||||||
mirror: 'https://gravatar.webp.se/avatar',
|
mirror: 'https://weavatar.com/avatar',
|
||||||
size: 120,
|
size: 120,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
2545
package-lock.json
generated
2545
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
31
package.json
31
package.json
@ -41,46 +41,41 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/mdx": "^3.1.3",
|
"@astrojs/mdx": "^3.1.2",
|
||||||
|
"@astrojs/node": "^8.3.2",
|
||||||
"@astrojs/rss": "^4.0.7",
|
"@astrojs/rss": "^4.0.7",
|
||||||
"@zeabur/astro-adapter": "^1.0.6",
|
"astro": "^4.11.5",
|
||||||
"astro": "^4.12.3",
|
"drizzle-orm": "^0.31.3",
|
||||||
"drizzle-orm": "^0.32.1",
|
|
||||||
"fuse.js": "^7.0.0",
|
"fuse.js": "^7.0.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"luxon": "^3.4.4",
|
"luxon": "^3.4.4",
|
||||||
"marked": "^13.0.3",
|
"marked": "^13.0.2",
|
||||||
"pg": "^8.12.0",
|
"pg": "^8.12.0",
|
||||||
"qrcode-svg": "^1.1.0",
|
"qrcode-svg": "^1.1.0",
|
||||||
"ultrahtml": "^1.5.3"
|
"ultrahtml": "^1.5.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@astrojs/check": "^0.8.3",
|
"@astrojs/check": "^0.8.0",
|
||||||
"@biomejs/biome": "^1.8.3",
|
"@biomejs/biome": "^1.8.3",
|
||||||
"@napi-rs/canvas": "^0.1.53",
|
"@napi-rs/canvas": "^0.1.53",
|
||||||
"@types/lodash": "^4.17.7",
|
"@types/lodash": "^4.17.6",
|
||||||
"@types/luxon": "^3.4.2",
|
"@types/luxon": "^3.4.2",
|
||||||
"@types/node": "^22.0.0",
|
"@types/node": "^20.14.10",
|
||||||
"@types/pg": "^8.11.6",
|
"@types/pg": "^8.11.6",
|
||||||
"@types/qrcode-svg": "^1.1.5",
|
"@types/qrcode-svg": "^1.1.4",
|
||||||
"@types/unist": "^3.0.2",
|
"@types/unist": "^3.0.2",
|
||||||
"aplayer": "^1.10.1",
|
"aplayer": "^1.10.1",
|
||||||
"astro-uploader": "^1.1.3",
|
"astro-uploader": "^1.1.3",
|
||||||
"bootstrap": "^5.3.3",
|
"bootstrap": "^5.3.3",
|
||||||
"patch-package": "^8.0.0",
|
"prettier": "^3.3.2",
|
||||||
"prettier": "^3.3.3",
|
"prettier-plugin-astro": "^0.14.0",
|
||||||
"prettier-plugin-astro": "^0.14.1",
|
|
||||||
"prettier-plugin-astro-organize-imports": "^0.4.9",
|
"prettier-plugin-astro-organize-imports": "^0.4.9",
|
||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"rehype-external-links": "^3.0.0",
|
"rehype-external-links": "^3.0.0",
|
||||||
"resize-sensor": "^0.0.6",
|
"resize-sensor": "^0.0.6",
|
||||||
"rimraf": "^6.0.1",
|
"rimraf": "^5.0.8",
|
||||||
"sharp": "^0.33.4",
|
"sharp": "^0.33.4",
|
||||||
"typescript": "^5.5.4",
|
"typescript": "^5.5.3",
|
||||||
"unist-util-select": "^5.1.0"
|
"unist-util-select": "^5.1.0"
|
||||||
},
|
|
||||||
"packageManager": "npm@10.8.2",
|
|
||||||
"engines": {
|
|
||||||
"node": "22.5.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 47 KiB |
4
renovate.json
Normal file
4
renovate.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": ["config:recommended"]
|
||||||
|
}
|
@ -151,7 +151,7 @@ if (typeof comments !== 'undefined' && comments !== null) {
|
|||||||
const email = event.target.value;
|
const email = event.target.value;
|
||||||
if (email !== '' && email.includes('@')) {
|
if (email !== '' && email.includes('@')) {
|
||||||
// Replace the avatar after typing the email.
|
// Replace the avatar after typing the email.
|
||||||
actions.avatar({ email }).then(({ data, error }) => {
|
actions.avatar.safe({ email }).then(({ data, error }) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
return handleActionError(error);
|
return handleActionError(error);
|
||||||
}
|
}
|
||||||
@ -167,7 +167,7 @@ if (typeof comments !== 'undefined' && comments !== null) {
|
|||||||
// Loading more comments from server.
|
// Loading more comments from server.
|
||||||
if (event.target === comments.querySelector('#comments-next-button')) {
|
if (event.target === comments.querySelector('#comments-next-button')) {
|
||||||
const { size, offset, key } = event.target.dataset;
|
const { size, offset, key } = event.target.dataset;
|
||||||
const { data, error } = await actions.comments({ offset: Number(offset), page_key: key });
|
const { data, error } = await actions.comments.safe({ offset: Number(offset), page_key: key });
|
||||||
if (error) {
|
if (error) {
|
||||||
return handleActionError(error);
|
return handleActionError(error);
|
||||||
}
|
}
|
||||||
@ -223,7 +223,7 @@ if (typeof comments !== 'undefined' && comments !== null) {
|
|||||||
}
|
}
|
||||||
request.rid = request.rid === undefined ? 0 : Number(request.rid);
|
request.rid = request.rid === undefined ? 0 : Number(request.rid);
|
||||||
|
|
||||||
const { data, error } = await actions.comment(request);
|
const { data, error } = await actions.comment.safe(request);
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
return handleActionError(error);
|
return handleActionError(error);
|
||||||
@ -279,7 +279,7 @@ const likeButton = document.querySelector('button.post-like');
|
|||||||
|
|
||||||
const increaseLikes = (count, permalink) => {
|
const increaseLikes = (count, permalink) => {
|
||||||
count.textContent = Number.parseInt(count.textContent) + 1;
|
count.textContent = Number.parseInt(count.textContent) + 1;
|
||||||
actions.like({ action: 'increase', key: permalink }).then(({ data, error }) => {
|
actions.like.safe({ action: 'increase', key: permalink }).then(({ data, error }) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
return handleActionError(error);
|
return handleActionError(error);
|
||||||
}
|
}
|
||||||
@ -295,7 +295,7 @@ const decreaseLikes = (count, permalink) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
count.textContent = Number.parseInt(count.textContent) - 1;
|
count.textContent = Number.parseInt(count.textContent) - 1;
|
||||||
actions.like({ action: 'decrease', key: permalink, token }).then(({ data, error }) => {
|
actions.like.safe({ action: 'decrease', key: permalink, token }).then(({ data, error }) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
return handleActionError(error);
|
return handleActionError(error);
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -4,7 +4,7 @@ import options from '@/options';
|
|||||||
import { ARTALK_HOST } from 'astro:env/server';
|
import { ARTALK_HOST } from 'astro:env/server';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { marked } from 'marked';
|
import { marked } from 'marked';
|
||||||
import querystring from 'node:querystring';
|
import * as querystring from 'node:querystring';
|
||||||
import { ELEMENT_NODE, transform, walk } from 'ultrahtml';
|
import { ELEMENT_NODE, transform, walk } from 'ultrahtml';
|
||||||
import sanitize from 'ultrahtml/transformers/sanitize';
|
import sanitize from 'ultrahtml/transformers/sanitize';
|
||||||
|
|
||||||
|
@ -61,8 +61,3 @@
|
|||||||
homepage: https://blog.luoli.net
|
homepage: https://blog.luoli.net
|
||||||
poster: /images/links/luoli.net.jpg
|
poster: /images/links/luoli.net.jpg
|
||||||
favicon: https://blog.luoli.net/usr/themes/MUltraMoe/images/favicon.png
|
favicon: https://blog.luoli.net/usr/themes/MUltraMoe/images/favicon.png
|
||||||
- website: LongLuo's Life Notes
|
|
||||||
description: 每一天都是奇迹
|
|
||||||
homepage: https://www.longluo.me
|
|
||||||
poster: /images/links/longluo.me.jpg
|
|
||||||
favicon: https://www.longluo.me/assets/logo/favicon-32x32.png
|
|
||||||
|
@ -33,11 +33,3 @@ published: true
|
|||||||
无论过了多久,无论白天与黑夜,博客是永恒的长亭,任你来来去去,悲欢离合,它只在那里。不悲,不喜。
|
无论过了多久,无论白天与黑夜,博客是永恒的长亭,任你来来去去,悲欢离合,它只在那里。不悲,不喜。
|
||||||
|
|
||||||
我说,我只想做个博客里面的守望者,我会陪你们一起,我们一起守望幸福,等待下一次遇见……
|
我说,我只想做个博客里面的守望者,我会陪你们一起,我们一起守望幸福,等待下一次遇见……
|
||||||
|
|
||||||
## 博客信息
|
|
||||||
|
|
||||||
1. 博客名称:且听书吟
|
|
||||||
2. 博客简介:诗与梦想的远方
|
|
||||||
3. 博客网址:https://yufan.me
|
|
||||||
4. 博客 LOGO:https://yufan.me/logo.svg
|
|
||||||
5. 博客 Banner:https://github.com/syhily/yufan.me/blob/astro/docs/poster/github-poster.png
|
|
||||||
|
@ -16,7 +16,7 @@ summary: 还未从忙碌中回神,八月就这么不知不觉地过去,周
|
|||||||
|
|
||||||
——题记
|
——题记
|
||||||
|
|
||||||
今年的八月,没有去年那般湿热,不知是不是因为毕业的日子早已离我远去,印象中的毕业季总是在热火朝天的季节里,热得烦躁不堪却也要坚持穿上累赘的学士服四处拍照。就和初到北京时住的地下室一样,湿漉漉的地板墙壁,湿漉漉的被单床铺,像是初面职场时内心焦急的大汗淋漓。
|
今年的八月,没有去年那般湿热,不知是不是因为毕业的日子早已离我远去,印象中 里 的毕业季总是在热火朝天的季节里,热得烦躁不堪却也要坚持穿上累赘的学士服四处拍照。就和初到北京时住的地下室一样,湿漉漉的地板墙壁,湿漉漉的被单床铺,像是初面职场时内心焦急的大汗淋漓。
|
||||||
|
|
||||||
那时的我,面对着陌生的职场,从来没接触的知识和技能,内心焦躁不安并自我怀疑。那样烦躁的日子里,睡前唯一能做的事,就是强迫自己阅读几页《 Java 编程思想》,每多掌握一点知识的时候,心中的焦虑便会被抚平一些。后来习惯了在公司通宵加班,大多时候,其实都是在看书,看设计模式,看关系数据库,看 NoSQL ,看并发编程……
|
那时的我,面对着陌生的职场,从来没接触的知识和技能,内心焦躁不安并自我怀疑。那样烦躁的日子里,睡前唯一能做的事,就是强迫自己阅读几页《 Java 编程思想》,每多掌握一点知识的时候,心中的焦虑便会被抚平一些。后来习惯了在公司通宵加班,大多时候,其实都是在看书,看设计模式,看关系数据库,看 NoSQL ,看并发编程……
|
||||||
|
|
||||||
|
@ -270,9 +270,9 @@ API 的所有服务请求域名是相同的,区别在于Request Path等。请
|
|||||||
|
|
||||||
## 3.3 常见框架
|
## 3.3 常见框架
|
||||||
|
|
||||||
1. Kong: [https://github.com/Mashape/kong](https://github.com/Mashape/kong)
|
1. Kong:[https://github.com/Mashape/kong](https://github.com/Mashape/kong)
|
||||||
2. Zuul: [https://github.com/Netflix/zuul](https://github.com/Netflix/zuul)
|
2. Zuul:[https://github.com/Netflix/zuul](https://github.com/Netflix/zuul)
|
||||||
3. ROP: [https://github.com/itstamen/rop](https://github.com/itstamen/rop)
|
3. ROP:[https://github.com/itstamen/rop](https://github.com/itstamen/rop)
|
||||||
4. Resty: [https://github.com/Dreampie/Resty](https://github.com/Dreampie/Resty)
|
4. Resty: [https://github.com/Dreampie/Resty](https://github.com/Dreampie/Resty)
|
||||||
|
|
||||||
# 四、优劣
|
# 四、优劣
|
||||||
|
@ -19,6 +19,8 @@ github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3k
|
|||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
|
golang.org/x/image v0.17.0 h1:nTRVVdajgB8zCMZVsViyzhnMKPwYeroEERRC64JuLco=
|
||||||
|
golang.org/x/image v0.17.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
|
||||||
golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ=
|
golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ=
|
||||||
golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
|
golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
Loading…
Reference in New Issue
Block a user