锦方的个人网页 · 如果有一天你突然想起了我


从dokuwiki切换到quartz

目录

欢迎来到我的新网站!

这是我从 DokuWiki 迁移到 Quartz 后写的第一段话。

为什么选择 Quartz?

主要是我的水平不够切换到Quartz,文件在本地会更清晰结构比较简单。

在mac安装Quartz

需要先安装Node.js

git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create
npx quartz build --serve

侧边栏的排序

在文件顶部加上 order 属性:

---
title: 2025
order: 1
---

修改 quartz.layout.ts 配置文件

import { PageLayout, SharedLayout } from "./quartz/cfg"
import * as Component from "./quartz/components"

// --- 提取出来的公共排序规则 ---
const mySortFn = (a: any, b: any) => {
  // 1. 获取 order 属性,没写的话默认给 100
  const orderA = (a.file?.frontmatter?.order as number) ?? 100;
  const orderB = (b.file?.frontmatter?.order as number) ?? 100;

  // 2. 如果设置了 order,按 order 从小到大排
  if (orderA !== orderB) {
    return orderA - orderB;
  }

  // 3. 如果没设置 order,按名字【从大到小】(倒序)排列!注意这里是 b 对比 a
  return b.displayName.localeCompare(a.displayName, undefined, {
    numeric: true,
    sensitivity: "base",
  });
};
// ------------------------------

// components shared across all pages
export const sharedPageComponents: SharedLayout = {
  head: Component.Head(),
  header: [],
  afterBody: [],
  footer: Component.Footer({
    links: {
      GitHub: "https://github.com/jackyzha0/quartz",
      "Discord Community": "https://discord.gg/cRFFHYye7t",
    },
  }),
}

// 单篇文章页的布局
export const defaultContentPageLayout: PageLayout = {
  beforeBody: [
    Component.ConditionalRender({
      component: Component.Breadcrumbs(),
      condition: (page) => page.fileData.slug !== "index",
    }),
    Component.ArticleTitle(),
    Component.ContentMeta(),
    Component.TagList(),
  ],
  left: [
    Component.PageTitle(),
    Component.MobileOnly(Component.Spacer()),
    Component.Flex({
      components: [
        { Component: Component.Search(), grow: true },
        { Component: Component.Darkmode() },
        { Component: Component.ReaderMode() },
      ],
    }),
    // 【修复点 1】:应用自定义排序
    Component.Explorer({ sortFn: mySortFn }), 
  ],
  right: [
    Component.Graph(),
    Component.DesktopOnly(Component.TableOfContents()),
    Component.Backlinks(),
  ],
}

// 文件夹/标签列表页的布局
export const defaultListPageLayout: PageLayout = {
  beforeBody: [Component.Breadcrumbs(), Component.ArticleTitle(), Component.ContentMeta()],
  left: [
    Component.PageTitle(),
    Component.MobileOnly(Component.Spacer()),
    Component.Flex({
      components: [
        { Component: Component.Search(), grow: true },
        { Component: Component.Darkmode() },
      ],
    }),
    // 【修复点 2】:这里也必须应用自定义排序,否则进入文件夹后排序会乱
    Component.Explorer({ sortFn: mySortFn }), 
  ],
  right: [],
}

发布到网络

系列:note

该系列自动来自分类: note

  1. macOS 外置硬盘为什么会出现 ._* 文件
  2. 小众工具软件应该免费、买断还是订阅
  3. 用iPhone和iPad维护Git静态网站可行吗
  4. 一个Mac截图工具,从能截图到能上架还差多远
  5. 重复文件清理工具最危险的不是漏扫,而是误删
  6. 备份dokuwiki数据
  7. grep 命令
  8. zola的Front Matter完整字段的意思
  9. 从dokuwiki切换到quartz (当前)
  10. 安装immich记录
  11. 修改dokuwiki时区
  12. macos安装dokuwiki
  13. Debian创建新用户和设置防火墙
  14. mac在Debian安装wireguard和使用
  15. 再也不买不能解bl的手机了
  16. Firefox设置
  17. debian安装FFmpeg来合并youtube音频
  18. css 扩散列表
  19. 两个练习
  20. css RWD
  21. css 图片
  22. css 提示
  23. css 下拉
  24. css 表单
  25. css 导航栏
  26. css 单词
  27. HTML SVG
  28. HTML Canvas
  29. HTML input
  30. HTML 结构
  31. 电气施工图说明
  32. china uses dropbox
  33. Nginx installs SSL certificates
  34. debian install shadowsocks
  35. Visual studio code set the python environment
  36. install hexo

下一篇推荐

系列继续阅读

安装immich记录