Justin3go

第三次重构个人博客(基于 Vitepress)

  •  1
     
  •   Justin3go · Jul 31, 2024 · 5298 views
    This topic created in 830 days ago, the information mentioned may be changed or developed.

    原文内容:justin3go.com

    摘要:

    笔者在这篇文章中记录了自己第三次重构个人博客的过程,基于 Vitepress 进行了一系列的改进和优化。自 2022 年初开始使用 Vitepress 搭建博客,随着版本的更新,笔者逐渐感受到原有风格的不适,决定进行重新设计。本次重构的主要内容包括:

    1. 首页设计:采用简单的博客分页列表,利用 createContentLoader 提取文章摘要等信息。
    2. 部署与域名管理:将博客从 Github Pages 迁移至 Cloudflare Pages ,并更改 DNS 服务器。
    3. 国际化支持:实现 Vitepress 和评论系统 Giscus 的国际化,支持中英双语。
    4. 内容迁移:对博客文章进行迁移,生成摘要和标签,确保旧路径的兼容性以避免外链失效。
    5. 优化用户体验:自定义字体并进行预加载,提升页面加载速度。

    通过这些调整,笔者希望博客不仅在内容上丰富,同时在视觉和使用体验上也能给读者带来更好的感受。最终,笔者强调了博客设计对写作心情的重要性,认为整理环境能够促进创作灵感的流动。

    博客网站是开源的: https://github.com/Justin3go/justin3go.com

    Supplement 1  ·  Aug 11, 2024

    博客更新:新增了一个归档页面,大家有的我也要有!

    justin3go.com/archive

    54 replies  •  2024-08-08 16:33:52 +08:00
    NavsSite
    NavsSite
    Jul 31, 2024
    1
    00 后,厉害了
    37Y37
    37Y37
    Jul 31, 2024 via Android
    2
    周末也更新了博客,主要是所有图片路径修改,折腾了一下,写了个检验程序,保证所有更改都正常
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    3
    @NavsSite #1 过奖了 hhhh🥰
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    4
    @37Y37 #2 迁移就是费力,东西太多容易出错,担心丢失外链,写个校验程序来机器化来判断
    37Y37
    37Y37
    Jul 31, 2024
    5
    @Justin3go #4 可以翻着看看,人肉检查下是不是有漏网之鱼 https://blog.ops-coffee.cn/
    1KTN90lKW9gVJ9vX
    1KTN90lKW9gVJ9vX
    Jul 31, 2024 via Android
    6
    我也有个博客 www.sl
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    7
    @hemingcn #6 这是什么牛逼的域名
    dford
    dford
    Jul 31, 2024
    8
    怎么这么快?
    keepfun
    keepfun
    Jul 31, 2024 via Android
    9
    看到楼上发域名 我也发个相关的 justgo.run
    cutiechi
    cutiechi
    Jul 31, 2024
    10
    中英文之间无间距
    michaeljackson
    michaeljackson
    Jul 31, 2024
    11
    我用的 ihewro.com 这家的基于 typecho 的
    cvooc
    cvooc
    Jul 31, 2024
    12
    @fenglangjuxu 还是我这个好一点 哈哈 https://foo.run
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    13
    @dford #8 啥快
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    14
    @fenglangjuxu #9 我还有个 jsgo.dev 的域名哈哈哈有点像
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    15
    @superchijinpeng #10 细节,确实该这样排版,下次写文章会注意的🤡
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    16
    flashBee233
    flashBee233
    Jul 31, 2024
    17
    不错,很简洁👍
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    18
    @flashBee233 #17 谢谢!🥰
    keepfun
    keepfun
    Jul 31, 2024
    19
    @retrocode 这个域名不错 抛开 run 我还有更好的 xing.ren yun.fan dong.ge hello.men 看你拿什么和我比🤣
    CHTuring
    CHTuring
    Jul 31, 2024
    20


    为啥跳转页面还有个 messge 提示~
    CHTuring
    CHTuring
    Jul 31, 2024
    21
    要不你用 Astro 再重构一次,Lighhouse 性能起码能到 100% 。虽然 VitePress 的 seo 也不错,但是起码套了个 Vue ,数据 HTML 看起来了也挺恶心的。
    cue
    cue
    Jul 31, 2024
    22
    蛮漂亮的,不过感觉日期有点太淡了我眼神不大好
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    23
    @CHTuring #20 这里从组件库 demo 里面 copy 过来的,我感觉还行就没删,是觉得提示太重了吗?
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    24
    @cue #22 故意淡化了一下,标题重要一些所以就想突出一下主题;
    后面会专门增加一个归档列表,那里日期时间就会更加重要一些
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    25
    @CHTuring #21 换技术栈还没想过,太麻烦了
    CHTuring
    CHTuring
    Jul 31, 2024
    26
    @Justin3go #25 无缓存加载,纯静态的博客,太大了。
    CHTuring
    CHTuring
    Jul 31, 2024
    27
    虽然说你有加载字体文件
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    28
    @CHTuring #27 主要就是这个中文字体文件太大了
    cvooc
    cvooc
    Jul 31, 2024
    29
    @fenglangjuxu #19 大佬 大佬, 秀啊
    v2NPC
    v2NPC
    Jul 31, 2024
    30
    https://weekly0.comm/

    链接多写了个 m
    laoertongzhi
    laoertongzhi
    Jul 31, 2024
    31
    老哥,怎么 vitepress 部署周刊网站啊,我也想弄一个。
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    32
    @XiaMuCoder #30 wc ,大意了啊🤡
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    33
    @laoertongzhi #31 周刊网站仓库在这里: https://github.com/Justin3go/FAV0

    部署的话实用 cloudflare ,配置如下:

    ![]( https://oss.justin3go.com/blogs/Justin3go_2024-07-31_16-47-00.png)
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    34
    ThomasChan
    ThomasChan
    Jul 31, 2024
    35
    vitepress 默认配置的 local minisearch 搜索中文有点儿不好用,最近刚研究过,可以参考 https://github.com/lucaong/minisearch/issues/201#issuecomment-2227591121
    zhengkk
    zhengkk
    Jul 31, 2024
    36
    怎么还有人折腾博客,感觉替代品很多啊
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    37
    @ThomasChan #35 感谢,后面花时间去研究研究
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    38
    @zhengkk #36 折腾也可以实践一些技术,博客算是比较方便的项目
    bug51
    bug51
    Jul 31, 2024
    39
    就是怕被别人把整个博客文章都爬下来了。目前没啥办法。
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    40
    @bug51 #39 爬呗,本来就是开源的
    subframe75361
    subframe75361
    Jul 31, 2024
    41
    @ThomasChan 那用啥,flexsearch ?
    ThomasChan
    ThomasChan
    Jul 31, 2024❤️2
    42
    @subframe75361 就还是 minisearch ,我说的研究的意思是指看了下 vitepress 源码怎么使用 minisearch 的,最后发现是分词的配置问题,在 vitepress 里像下边这样配置就可以了

    ```js
    ...
    export default defineConfig({
    ...
    themeConfig: {
    search: {
    options: {
    miniSearch: {
    options: {
    tokenize: (term) => {
    if (typeof term === 'string') term = term.toLowerCase();
    // @ts-ignore
    const segmenter = Intl.Segmenter && new Intl.Segmenter("zh", { granularity: "word" });
    if (!segmenter) return [term];
    const tokens = [];
    for (const seg of segmenter.segment(term)) {
    // @ts-ignore
    tokens.push(seg.segment);
    }
    return tokens;
    },
    },
    searchOptions: {
    combineWith: 'AND', // important for search chinese
    processTerm: (term) => {
    if (typeof term === 'string') term = term.toLowerCase();
    // @ts-ignore
    const segmenter = Intl.Segmenter && new Intl.Segmenter("zh", { granularity: "word" });
    if (!segmenter) return term;
    const tokens = [];
    for (const seg of segmenter.segment(term)) {
    // @ts-ignore
    tokens.push(seg.segment);
    }
    return tokens;
    },
    },
    },
    },
    },
    },
    ...
    });
    ```
    nagisaushio
    nagisaushio
    Jul 31, 2024 via Android❤️1
    43
    @Justin3go 中文字体建议按汉字词频做字体切分
    Justin3go
    Justin3go
    OP
    Jul 31, 2024
    44
    @nagisaushio #43 了解到了新知识,谢谢!❤️
    1rv013c6aiWPGt24
    1rv013c6aiWPGt24
    Jul 31, 2024 via Android
    45
    看看我的 simple blog
    yuanj.top
    Justin3go
    Justin3go
    OP
    Aug 1, 2024
    46
    @UncleCAT4 #45
    Tink
    Tink
    Aug 1, 2024
    47
    laoertongzhi
    laoertongzhi
    Aug 1, 2024
    48
    @Justin3go #34 非常感谢!
    Justin3go
    Justin3go
    OP
    Aug 1, 2024
    49
    @Tink #47 搞基男
    1rv013c6aiWPGt24
    1rv013c6aiWPGt24
    Aug 1, 2024 via Android
    50
    @Tink 你这个吊,
    dif
    dif
    Aug 2, 2024
    51
    @UncleCAT4 敦煌老乡?
    1rv013c6aiWPGt24
    1rv013c6aiWPGt24
    Aug 2, 2024 via Android
    52
    @dif 怎么说?哥们也是敦煌的?
    dif
    dif
    Aug 8, 2024
    53
    @UncleCAT4 必须的~~
    1rv013c6aiWPGt24
    1rv013c6aiWPGt24
    Aug 8, 2024 via Android
    54
    @dif 认识一下?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1637 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 12:38 · PVG 20:38 · LAX 04:38 · JFK 07:38
    ♥ Do have faith in what you're doing.