######## Stellar info ########
stellar:
  version: '1.44.0'
  homepage: 'https://xaoxuu.com/wiki/stellar/'
  repo: 'https://github.com/xaoxuu/hexo-theme-stellar'
  main_css: /css/main.css
  main_js: /js/main.js


######## head tags ########
preconnect:
  - https://gcore.jsdelivr.net
  - https://unpkg.com
  - https://cdn.jsdelivr.net
  - https://cdnjs.cloudflare.com

# 一旦设置源站地址，非源站地址将不会被SEO收录，并且访问时弹出提示
# 如果访问地址不在备用站主机列表，则警告信息为非法克隆
canonical:
  originalHost: # 主站点域名主机，例如 xaoxuu.com
  officialHosts: # 官方主机列表，每行一个，例如 xaoxuu.vercel.app
    - localhost

open_graph:
  enable: true
  twitter_id: # for open_graph meta

structured_data:
  links: [] # your social links.


######## Sidebar ########
# 左上角显示的 logo 区域，包含图标、大标题、副标题
logo:
  avatar: '[{config.avatar}](/about/)' # you can set avatar link in _config.yml or '[https://xxx.png](/about/)'
  title: '[{config.title}](/)' # you can set html tag like: '[<img no-lazy height="32px" src="xxx"/>](/)'
  subtitle: '{config.subtitle}' # '文字1 | 文字2' (鼠标放上去会切换到文字2)

# 侧边栏主功能导航菜单
menubar:
  items: # 可按照自己需求增加，符合以下格式即可
    # id: 页面中高亮的 menu_id 
    # theme: 高亮时的颜色，仅 svg 中 fill="currentColor" 时有效
    # icon: 支持 svg/img 标签，可以定义在 icons.yml 文件中，也支持外部图片的 URL
    # title: 标题
    # url: 点击跳转到哪，支持相对路径和绝对路径
    # - id: post
    #   theme: '#1BCDFC'
    #   icon: default:documents
    #   title: 博客
    #   url: /
    # - id: wiki
    #   theme: '#3DC550'
    #   icon: example:notebook
    #   title: 文档
    #   url: /wiki/
    # - id: explore
    #   theme: '#FA6400'
    #   icon: example:planet
    #   title: 探索
    #   url: /explore/
    # - id: social
    #   theme: '#F44336'
    #   icon: example:chat
    #   title: 社交
    #   url: /friends/


######## Main ########
# 站点主结构树
site_tree:
  # -- 列表类页面 -- #
  # 主页配置
  home:
    leftbar: welcome, recent
    rightbar: 
    # 首页评论区，默认不显示。可设为 true 使用全局评论服务，
    # 或参考页面 front-matter 覆盖评论参数：
    # service、comment_title、comment_id 及 beaudar/utterances/giscus/twikoo/waline/artalk 各服务参数。
    comments:
  # 博客列表页配置
  index_blog:
    base_dir: blog # 只影响自动生成的页面路径
    menu_id: post # 未在 front-matter 中指定 menu_id 时，layout 为 post 的页面默认使用这里配置的 menu_id
    leftbar: welcome, recent # for categories/tags/archives
    rightbar: 
    nav_tabs:  # 近期发布 分类 标签 专栏 归档 and ...
      # '朋友文章': /friends/rss/
  # 博客专栏列表页配置
  index_topic:
    base_dir: topic # 只影响自动生成的页面路径
    menu_id: post # 未在 front-matter 中指定 menu_id 时，layout 为 topic 的页面默认使用这里配置的 menu_id
  # 文档列表页配置
  index_wiki:
    base_dir: wiki # 只影响自动生成的页面路径
    menu_id: wiki # 未在 front-matter 中指定 menu_id 时，layout 为 wiki 的页面默认使用这里配置的 menu_id
    leftbar: related, recent # for wiki
    rightbar: 
    nav_tabs:
      # 'more': https://github.com/xaoxuu
  # -- 内容类页面 -- #
  # 博客文章内页配置
  post:
    menu_id: post # 未在 front-matter 中指定 menu_id 时，layout 为 post 的页面默认使用这里配置的 menu_id
    leftbar: related, recent # for pages using 'layout:post'
    rightbar: ghrepo, toc
  # 博客专栏文章内页配置
  topic:
    menu_id: post
  # 文档内页配置
  wiki:
    menu_id: wiki # 未在 front-matter 中指定 menu_id 时，layout 为 wiki 的页面默认使用这里配置的 menu_id
    leftbar: tree, related, recent # for wiki
    rightbar: ghrepo, toc
  # 笔记本列表页配置
  notebooks:
    base_dir: notebooks # 笔记本列表页的路径。以及未指定 base_dir 的笔记本的路径前缀。
    menu_id: notebooks # 笔记本列表页高亮的主导航栏菜单按钮。
    # 笔记本列表页的左侧栏和右侧栏。
    leftbar: recent # recent within all notebooks
    rightbar: null
  # 笔记列表页配置
  notes:
    # 笔记列表页和笔记页高亮的主导航栏菜单按钮。
    # 可以在笔记本 yaml 的 menu_id 字段中覆盖此参数。
    # 可以在笔记的 front-matter/menu_id 中覆盖此参数。
    menu_id: notebooks
    # 笔记列表页的左侧栏和右侧栏。可以在笔记本 yaml 的 leftbar 和 rightbar 字段中覆盖此参数。
    leftbar: tagtree, recent # recent of current notebook
    rightbar: null
  # 笔记页配置
  note:
    # 笔记页的左侧栏和右侧栏
    # 可以在笔记本 yaml 的 note_leftbar 和 note_rightbar 字段中覆盖此参数。
    # 可以在笔记的 front-matter/leftbar 和 rightbar 字段中覆盖此参数。
    leftbar: tagtree, recent # recent of current notebook
    rightbar: toc
  # 作者信息配置
  author: 
    base_dir: author # 只影响自动生成的页面路径
    menu_id: post
    leftbar: recent
    rightbar: 
  # 错误页配置
  error_page:
    menu_id: post
    '404': '/404.html'
    leftbar: recent
    rightbar: 
  # 其它自定义页面配置 layout: page
  page:
    leftbar: recent
    rightbar: toc


######## Notebook ########
notebook:
  # 如果没有指定 excerpt 和 description，将自动取多长的内容作为文章摘要。
  auto_excerpt: 128
  # 可以为某个 tag 设定图标（显示在标签树中）。
  tagcons:
    '': quot:hashtag
  # 每页显示多少篇笔记。0 表示不分页，null 则 fallback 到 hexo 的配置。
  # 可以在笔记本 yaml 的 per_page 字段中覆盖此参数。
  per_page: null
  # 笔记的排序方式。默认按照 updated 降序排序。
  # 可以在笔记本 yaml 的 order_by 字段中覆盖此参数。
  # 注意：置顶的笔记会始终排在最前面。
  # 在 front-matter 中设置 pin:true|number 或 sticky:true|number 来置顶。
  order_by: -updated
  # 是否在笔记页面显示许可协议。false 表示不显示。true 表示沿用主题许可协议内容。也可以给定具体的文本指定协议内容。
  # 可以在笔记本 yaml 的 license 字段中覆盖此参数。
  # 可以在笔记的 front-matter/license 中覆盖此参数。
  license: false
  # 是否在笔记页面显示分享按钮。
  # 可以在笔记本 yaml 的 share 字段中覆盖此参数。
  # 可以在笔记的 front-matter/share 中覆盖此参数。
  share: false


######## Article ########
article:
  # 置顶文章样式：carousel = 轮播（默认）， flat = 平铺（不渲染轮播，置顶文章在首页文章列表靠前展示，排序规则与轮播一致）
  pin_style: carousel
  # 文章类型，决定布局风格，可以在 front-matter/topic/wiki 中覆盖此参数
  type: tech # tech: 默认技术类文章, story: 图文类文章，文字和段落间增距大
  # 缩进两个文字宽度，适合文字类博客，可以在 front-matter/topic/wiki 中覆盖此参数
  indent: # true / false
  # 封面图宽高比
  cover_ratio: 2
  # 文章卡片样式：hero = 全图文字封面卡片（有 cover 时标题 + 一行小字，文字区固定底部），classic = 普通卡片（封面/标题/摘要/meta）
  card_style: hero
  # 文章内横幅宽高比
  banner_ratio: 2.5
  # 如果没有指定 excerpt 和 description，将自动取多长的内容作为文章摘要？
  auto_excerpt: 128
  # 分类颜色
  category_color:
    '探索号': '#f44336'
  # 文章 AI 成分标签：front-matter 用 ai_label: manual / reviewed / polished / generated 标记，
  # 未设置时取 default（为空则不显示）；文案由多语言系统提供（languages/*.yml 的 meta.ai_label.*），
  # 此处配置各档文字颜色与可选 icon；文章页显示在顶部面包屑行最右（阅读时长右侧）
  ai_label:
    default:
    manual:
      color: '#03a9f4'
      icon: default:shield-user
    reviewed:
      color: '#4caf50'
      icon: default:shield-check
    polished:
      color: '#4caf50'
      icon: default:shield-up
    generated:
      color: '#ff9800'
      icon: default:shield-warning
  # 文章许可协议
  license: '本文采用 [署名-非商业性使用-相同方式共享 4.0 国际](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可协议，转载请注明出处。'
  # 分享
  share: # [wechat, weibo, email, link]
  # 相关文章，需要安装插件 (for layout: post)
  # npm i hexo-related-popular-posts
  related_posts:
    enable: false
    max_count: 5
  # 文章页是否显示字数和预计阅读时长（#302）
  reading_time: false
  # 文章卡片是否显示标签（最多 5 个，#580）
  card_tags: false
  # 文章末尾是否显示本文标签（位于 article-footer 之前）
  tags: true

search:
  service: local_search # local_search, algolia_search, todo...
  local_search: # 在 front-matter 中设置 indexing:false 来避免被搜索索引
    field: all # post, page, all
    path: /search.json # 搜索文件存放位置
    content: true # 是否搜索内容
    lazy_load: true # 懒加载：首次聚焦搜索框时才加载搜索数据（默认开启）；站点内容较多时建议关闭，防止首次搜索卡顿
    cache_ttl: 86400 # 搜索数据缓存时长（秒），默认 1 天；设为 0 表示不缓存，建议按内容更新频率调整
    skip_search:  # 指定 path 中的内容不被搜索。
  algolia_search: # Docsearch https://docsearch.algolia.com/apply/ 申请
    appId: 
    apiKey: 
    indexName: 
    js: https://gcore.jsdelivr.net/algoliasearch/3/algoliasearch.min.js


######## Comments ########
comments:
  service: # beaudar, utterances, giscus, twikoo, waline, artalk
  comment_title: 快来参与讨论吧~
  custom_css: # artalk,twikoo,... 可以为没有全局启用的评论加载自定义样式
  # beaudar
  # https://beaudar.lipk.org/
  beaudar:
    repo: xxx/xxx
    issue-term: pathname
    issue-number:
    theme: preferred-color-scheme
    label:
    input-position: top # top/bottom 评论框位置
    comment-order: desc # desc 排序
    keep-theme: # true/false
    loading: false
    branch: main
  # utterances
  # https://utteranc.es/
  utterances:
    repo: xxx/xxx
    issue-term: pathname
    issue-number:
    theme: preferred-color-scheme
    label:
  # giscus
  # https://giscus.app/zh-CN
  giscus:
    src: https://giscus.app/client.js
    data-repo: xxx/xxx # [在此输入仓库]
    data-repo-id: # [在此输入仓库 ID]
    data-category: # [在此输入分类名]
    data-category-id:
    data-mapping: pathname
    data-strict: 0
    data-reactions-enabled: 1
    data-emit-metadata: 0
    data-input-position: top # top, bottom
    data-theme: preferred_color_scheme
    data-lang: zh-CN
    data-loading: # lazy
    crossorigin: anonymous

  # Twikoo
  # https://twikoo.js.org/
  twikoo:
    js: https://gcore.jsdelivr.net/npm/twikoo@1.6/dist/twikoo.all.min.js # 建议锁定版本
    envId: https://xxx # vercel函数

  # Waline
  # https://waline.js.org/
  waline:
    js: https://gcore.jsdelivr.net/npm/@waline/client@3.15.2/dist/waline.js
    css: https://gcore.jsdelivr.net/npm/@waline/client@3.15.2/dist/waline.css
    meta_css: https://gcore.jsdelivr.net/npm/@waline/client@3.15.2/dist/waline-meta.css
    # Waline server address url, you should set this to your own link
    serverURL: https://waline.vercel.app
    # If false, comment count will only be displayed in post page, not in home page
    commentCount: true
    # Pageviews count, Note: You should not enable both `waline.pageview` and `leancloud_visitors`.
    pageview: false
    # Custom emoji
    # emoji:
    #   - https://unpkg.com/@waline/emojis@1.1.0/weibo
    #   - https://unpkg.com/@waline/emojis@1.1.0/alus
    #   - https://unpkg.com/@waline/emojis@1.1.0/bilibili
    #   - https://unpkg.com/@waline/emojis@1.1.0/qq
    #   - https://unpkg.com/@waline/emojis@1.1.0/tieba
    #   - https://unpkg.com/@waline/emojis@1.1.0/tw-emoji
    #   - https://unpkg.com/@waline/emojis@1.1.0/bmoji
    # 设置自己的图床服务，替换默认的 Base 64 编码嵌入（有体积大小限制），在评论中上传图片更加方便
    # imageUploader:
      # 适配了兰空图床V1、V2版本
      # 以兰空图床V1为例，下列填写内容为：
      # fileName: file
      # tokenName: Authorization
      # api: https://xxxxxx/api/v1/upload
      # token: Bearer xxxxxxxxxxxxxx
      # resp: data.links.url
      # 以兰空图床V2为例，下列填写内容为：
      # fileName: image
      # tokenName: token
      # api: https://xxxxxx/api/upload
      # token: xxxxxxxxxxxxxx
      # resp: data.url
    #   fileName: # 根据版本二选一
    #   tokenName: # 根据版本二选一
    #   api: # 图床 api 地址
    #   token: # 图床验证
    #   resp: # 图片地址返回值的字段

  # Artalk
  # https://artalk.js.org/
  artalk:
    css: https://unpkg.com/artalk@2.9/dist/artalk.css
    js: https://unpkg.com/artalk@2.9/dist/artalk.js
    server: # 后端服务地址
    site: '' # 站点名称
    darkMode: auto # 其它模式都有问题，慎用，否则后果自负
    # artalk 有三类图片：1.上传至服务端 2.上传至服务端后利用upgit上传至图床 3.前端上传至图床（本配置为此类）
    # 配置此项时将覆盖服务端上传能力
    imageUploader:
      # 以兰空图床为例，下列填写内容为：
      # api: 'https://xxxxxx/api/v1/upload' # 图床上传地址
      # token: 'Bearer xxxxxxxxxxxxxx' # 图床验证
      # resp: 'data.links.url' # 图片地址返回值的字段


######## Footer ########
footer:
  social:
    # github:
    #   icon: '<img src="https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/08a41b181ce68.svg"/>'
    #   url: /
    # music:
    #   icon: '<img src="https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/3845874.svg"/>'
    #   url: /
    # unsplash:
    #   icon: '<img src="https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/3616429.svg"/>'
    #   url: /
    # comments:
    #   icon: '<img src="https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/942ebbf1a4b91.svg"/>'
    #   url: /about/#comments
    # spacer: # 弹性占位项：将其后的 social 按钮推至右侧
    # links:
    #   type: dropdown
    #   icon: default:documents
    #   title: 更多链接
    #   items:
    #     - icon: default:documents
    #       title: 文档
    #       url: /wiki/
    #     - icon: default:github
    #       title: GitHub
    #       url: https://github.com/
  sitemap:
    # - title: 博客
    #   items:
    #     - '[近期发布](/)'
    #     - '[分类](/blog/categories/)'
    #     - '[标签](/blog/tags/)'
    #     - '[归档](/blog/archives/)'
    # - title: 项目
    #   items:
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    # - title: 社交
    #   items:
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    # - title: 关于
    #   items:
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    #     - '[xxx](/)'
    #     - '[xxx](/)'
  content: | # 支持 Markdown 格式
    本站由 [{author.name}](/) 使用 [{theme.name} {theme.version}]({theme.tree}) 主题创建。
    本博客所有文章除特别声明外，均采用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可协议，转载请注明出处。
  # 主题用户越多，开发者维护和更新的积极性就越高，如果您喜欢本主题，请在适当的位置显示主题信息和仓库链接以表支持。


######## Tag Plugins ########
tag_plugins:
  # {% box %} / {% note %}
  note:
    default_color: '' # light, dark, red, orange, yellow, green, cyan, blue, purple, warning, error
    border: true # true / false
  # {% checkbox %}
  checkbox:
    interactive: false # enable interactive for user
  # {% quot %}
  quot:
    default: # 可以自行配置多种图标方案，支持icons.yml中配置的图片key，也支持直接设置svg/png等文件链接
      prefix: quot:quote-left
      suffix: quot:quote-right
    hashtag:
      prefix: quot:hashtag
    question:
      prefix: quot:question
  # {% emoji %}
  emoji:
    default: https://gcore.jsdelivr.net/gh/cdn-x/emoticons@3.1/qq/{name}.gif
    twemoji: https://gcore.jsdelivr.net/gh/twitter/twemoji/assets/svg/{name}.svg
    qq: https://gcore.jsdelivr.net/gh/cdn-x/emoticons@3.1/qq/{name}.gif
    aru: https://gcore.jsdelivr.net/gh/cdn-x/emoticons@3.1/aru/{name}.gif
    tieba: https://gcore.jsdelivr.net/gh/cdn-x/emoticons@3.1/tieba/{name}.png
    blobcat: https://gcore.jsdelivr.net/gh/cdn-x/emoticons@3.1/blobcat/{name}.gif
  icon:
    # 留空时，图标和文字颜色相同
    default_color: accent # theme, accent, red, orange, yellow, green, cyan, blue, purple
  # {% button 标题 链接 %}
  button:
    default_color: theme # theme, accent, red, orange, yellow, green, cyan, blue, purple
  # {% image %}
  image:
    parse_markdown: false # true / false（自动将 markdown 图片转为 {% image %} 标签）
  # {% copy xxx %}
  copy:
    toast: 复制成功
  # {% timeline %}
  timeline:
    max-height: 80vh
  # {% mark %}
  mark:
    default_color: yellow # light, dark, red, orange, yellow, green, cyan, blue, purple, warning, error
  # {% hashtag %}
  hashtag:
    default_color: # red, orange, yellow, green, cyan, blue, purple
  # {% okr o1 percent:50 status:in_track/at_risk/off_track/finished/unfinished %}
  okr:
    border: true # 是否显示边框
    status: # 可以自行增加
      # 进行中状态
      in_track:
        color: blue # red, orange, yellow, green, cyan, blue, purple
        label: 正常
      at_risk: 
        color: yellow
        label: 风险
      off_track:
        color: orange
        label: 延期
      # 结果状态
      finished:
        color: green
        label: 已完成
      unfinished:
        color: red
        label: 未完成
  # {% gallery %}
  gallery:
    layout: grid # grid / flow
    size: mix # s / m / l / xl / mix
    ratio: square # origin / square
  chat:
    api: https://siteinfo.listentothewind.cn/api/v1


# 基础依赖
dependencies:
  marked: https://gcore.jsdelivr.net/npm/marked@13.0/lib/marked.umd.min.js
  # 懒加载强制开启（无 enable 开关），图片默认懒加载，no-lazy 是唯一例外
  lazyload:
    js: https://gcore.jsdelivr.net/npm/vanilla-lazyload@19.1/dist/lazyload.min.js
    transition: fade # blur, fade
    fix_ratio: true # true / false

# 内置服务，按需加载（页面内用到了就会加载，没有用到就不会加载）
data_services:
  # 外部 md 渲染
  mdrender:
    js: /js/services/mdrender.js
  # 数据填充类
  siteinfo:
    js: /js/services/siteinfo.js
    # 设置 api 可以自动提取网页标题、图标，服务部署方法：https://github.com/xaoxuu/site-info-api/
    # 接口测试通过后，把按钮的 href 部分替换成 {href} 之后填写到下方，例如：https://api.xaox.cc/site_info/v1?url={href}
    api: 
  ghinfo:
    js: /js/services/ghinfo.js
  # 打分
  rating:
    js: /js/services/rating.js
    api: https://star-vote.xaox.cc/api/rating
  # 投票
  vote:
    js: /js/services/vote.js
    api: https://star-vote.xaox.cc/api/vote
  # 网格布局类
  sites:
    js: /js/services/sites.js
  friends:
    js: /js/services/friends.js
  friends_and_posts:
    js: /js/services/friends_and_posts.js
  # 列表布局类
  timeline:
    js: /js/services/timeline.js
  fcircle:
    js: /js/services/fcircle.js
  weibo:
    js: /js/services/weibo.js
  memos:
    js: /js/services/memos.js
  # chat
  voice: 
    js: /js/plugins/voice.js
  video: 
    js: /js/plugins/video.js
  download-file: 
    js: /js/plugins/download-file.js
  # 最新评论获取类
  twikoo:
    js: /js/services/twikoo_latest_comment.js
  waline:
    js: /js/services/waline_latest_comment.js
  artalk:
    js: /js/services/artalk_latest_comment.js
  giscus:
    js: /js/services/giscus_latest_comment.js
  contributors:
    edit_this_page: # 从开头开始匹配替换
      '_posts/': # https://github.com/xaoxuu/xaoxuu.com/blob/main/source/_posts/
      'wiki/stellar/': https://github.com/xaoxuu/hexo-theme-stellar-docs/blob/main/
    js: /js/services/contributors.js
  rss:
    js: /js/services/rss.js

# 动态数据缓存
# 将动态数据缓存到浏览器本地：TTL 未过期直接显示缓存，过期后先显示缓存再后台刷新
data_cache:
  enable: true # 总开关
  default_ttl: 3600 # 默认缓存时长（秒）
  ttl: # 按服务覆盖缓存时长（秒），未列出的服务使用 default_ttl；设为 0 表示该服务不缓存
    giscus: 600
    waline: 600
    artalk: 600
    memos: 600
    memos-user: 86400
    sites: 86400
    friends: 86400
    friends_and_posts: 86400
    siteinfo: 86400
  max_entries: 200 # 本地缓存条目上限，超出后按写入时间淘汰最旧的

# 扩展插件接入方法：(插件名下面用 #plugin# 代替)
# 1. 在这里增加 #plugin# 配置，至少应含有 enable 字段，默认为空（不启用）
# 2. 新建文件 layout/_plugins/#plugin#.ejs 文件中设置编写加载代码。
# 2.1. 在该文件中可以直接使用 conf 来读取用户在【步骤 1】填写的配置字段内容
# 2.2. 如果需要引入 css 或 js，可以使用 utils.css(xxx)、utils.js(xxx)，具体可参考 layout/_plugins/fancybox.ejs
# 2.3. 如果需要本地 js 文件，请放入 /source/js/plugins 文件夹中，引入方式为：utils.js('/js/plugins/xxx.js');
# 3. 如果这个插件只需要引入外部文件，可以在【步骤 1】处增加 inject 字段，而无需进入【步骤 2】创建 ejs，参考 katex
plugins:

  # preload
  preload:
    enable: true
    service: flying_pages # flying_pages
    flying_pages: https://gcore.jsdelivr.net/npm/flying-pages@2/flying-pages.min.js

  # https://fancyapps.com/docs/ui/fancybox/
  # available for {% image xxx %}
  # mode: auto=按需（页面有可弹窗图片才加载）/ global=全局（所有页面加载）
  fancybox:
    enable: true # 插件注册必需字段，恒为 true（不再支持关闭）
    mode: auto # auto / global
    js: https://gcore.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.umd.js
    css: https://gcore.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.css
    # 让 md 语法图片支持放大可以这样写: .md-text img:not([class]), .md-text .image img
    # 可以处理评论区的图片（不支持 iframe 类评论系统）例如：
    # 使用 twikoo 评论可以写: .tk-content img:not([class*="emo"])
    # 使用 waline 评论可以写: #waline_container .vcontent img
    selector: .timenode p>img # 多个选择器用英文逗号隔开

  # swiper
  swiper:
    enable: true
    css: https://unpkg.com/swiper@10.3/swiper-bundle.min.css
    js: https://unpkg.com/swiper@10.3/swiper-bundle.min.js

  # https://scrollrevealjs.org/api/reveal.html
  scrollreveal:
    enable: true
    js: https://gcore.jsdelivr.net/npm/scrollreveal@4.0/dist/scrollreveal.min.js
    distance: 8px
    duration: 1000 # ms
    interval: 100 # ms
    scale: 1 # 0.1~1
  
  # AI 摘要
  # https://github.com/qxchuckle/Post-Summary-AI
  tianli_gpt: 
    enable: #true
    js: https://jsd.onmicrosoft.cn/gh/qxchuckle/Post-Summary-AI@6.0/chuckle-post-ai.min.js
    field: post # all, post, wiki
    key: 5Q5mpqRK5DkwT1X9Gi5e # tianli_gpt key
    total_length: 1000 # 设置提交的字数限制，默认为1000字，上限为5000，超过5000字符将被截断
    typewriter: true # 打字机动画 
    summary_directly: true # 是否直接显示摘要，否则显示 AI 简介
    rec_method: all # all, web # 文章推荐方式，all：匹配数据库内所有文章进行推荐，web：仅当前站内的文章，默认all
    hide_shuttle: true # 是否隐藏矩阵穿梭
    summary_toggle: false
    interface:
      name: AI摘要
      introduce: '我是文章辅助AI: QX-AI，点击下方的按钮，让我生成本文简介、推荐相关文章等。'
      version: TianliGPT
      button: ["介绍自己", "推荐文章", "生成摘要", "矩阵穿梭"]


  # Katex - The fastest math typesetting library for the web
  # https://katex.org/docs/autorender.html
  # https://github.com/KaTeX/KaTeX
  # 使用 hexo-renderer-markdown-it-plus 作为公式渲染器：npm uninstall hexo-renderer-marked --save npm install hexo-renderer-markdown-it-plus --save
  katex:
    enable: #true # hexo-renderer-markdown-it-plus 默认开启 katex，此选项仅用于引入样式
    inject: |
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.23/dist/katex.min.css" integrity="sha384-//SZkxyB7axjCAopkAL1E1rve+ZSPKapD89Lo/lLhcsXR+zOYl5z6zJZEFXil+q0" crossorigin="anonymous">

  # MathJax
  # 需在Markdown文件开头加入mathjax: true
  # 推荐使用Pandoc: npm uninstall hexo-renderer-marked --save & npm install hexo-renderer-pandoc --save
  mathjax:
    v3: false # 若使用 v3，需將 js 設置為 https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.min.js
    enable: # true # 可以在特定文章的 front-matter 中设置 mathjax: true 来开启，也可以在这里设置全局开启
    js: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-AMS-MML_HTMLorMML

  # Mermaid - markdwon to flow chart, seq chart, class chart ...
  # 需要安装 npm install --save hexo-filter-mermaid-diagrams
  # 使用时 需要在Markdown文件开头加入 mermaid: true
  # 使用示例：
  # ```mermaid
  # graph LR
  #   A(Section A) -->|option 1| B(Section A)
  #   B -->|option 2| C(Section C)
  # ```
  mermaid:
    enable: # true # 可以在特定文章的 front-matter 中设置 mermaid: true 来开启，也可以在这里设置全局开启
    style_optimization: false # true: use custom style in Stellar; false: use Mermaid official theme
    # js: https://unpkg.com/mermaid@11/dist/mermaid.min.js
    js: https://gcore.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js
    # Available themes: default | dark | forest | neutral
    theme: neutral
  
  # 代码块复制按钮
  copycode:
    enable: true
    default_text: 'Copy'
    success_text: 'Copied'
    toast: 复制成功

  # 文字自适应颜色：背景图/背景色上方的文字随背景亮度自适应
  # 页面存在 [data-text-adaptive] 元素时才按需加载（theme：背景图平均色 lighten/darken；contrast：黑白对比）
  adaptive_text:
    enable: true

  # 卡片鼠标跟随光斑与 3D 倾斜：通过 card-hover 组合类按组件接入
  card_hover:
    enable: false
    spotlight_color: 'rgba(255, 255, 255, 0.25)'
    max_tilt: 3 # 最大倾斜角度（deg），运行时限制在 0~8
  
  # 赫蹏 (Heti) - 专为中文网页内容设计的排版样式增强
  # https://github.com/sivan/heti
  heti:
    enable: false # 此插件会和代码块冲突，仅适用于纯中文博主。
    css: https://unpkg.com/heti@0.9/umd/heti.min.css
    js: https://unpkg.com/heti@0.9/umd/heti-addon.min.js



style:
  prefers_theme: auto # auto / light / dark
  page_transition:
    enable: true # 同源整页导航使用原生 View Transition；旧浏览器自动回退普通导航
  font-size:
    root: 16px # 桌面端全局字号基准；移动端自动增加 2px
    code: 85% # 相较于其所在行的文本大小，建议用百分比
    codeblock: 0.8125rem # 13px
  font-family:
    body: 'system-ui, "Microsoft Yahei", "Segoe UI", Arial, sans-serif'
    code: 'Menlo, Monaco, Consolas, system-ui, monospace, sans-serif'
    codeblock: 'Menlo, Monaco, Consolas, system-ui, monospace, sans-serif'
  text-align: left
  prefix:
    h2: https://api.iconify.design/ci:heading-h2.svg
  border-radius:
    card-l: 24px # 侧边栏、文章横幅位置的圆角
    card: 16px # 文章内大部分卡片的圆角
    card-s: 12px # 文章内小型卡片的圆角
    bar: 12px # 横条类元素的圆角
    image-l: 24px # 非技术类文章插图圆角
    image: 16px # 技术类文章插图圆角
    image-s: 8px # 评论区图片圆角（部分评论支持）
  corner-shape: superellipse(1.25) # 连续曲率圆角（仅 Chromium 139+ 支持，其余浏览器自动回退普通圆角）：superellipse(1.x) 开启，round 关闭
  color:
    # 主题色配置（不会根据明暗动态调整，请设置为通用的颜色）
    theme: 'hsl(192 98% 55%)' # 主题色
    accent: 'hsl(14 100% 57%)' # 强调色
    link: 'hsl(207 90% 54%)' # 超链接颜色
  animated_avatar:
    animate: auto # auto, always
  codeblock:
    scrollbar: 4px
    highlightjs_theme: https://gcore.jsdelivr.net/gh/highlightjs/cdn-release@11.9/build/styles/atom-one-dark.min.css
  loading:
    loading: 正在加载
    error: 加载失败，请稍后重试。
  gradient: # https://webgradients.com/
    start: 'linear-gradient(to right, hsl(215, 95%, 64%), hsl(195, 95%, 60%), hsl(165, 95%, 56%), hsl(165, 95%, 56%), hsl(195 95% 60%), hsl(215, 95%, 64%))'
    searchbar: 'linear-gradient(to right, #04f3ff, #08ffc6, #ddf730, #ffbd19, #ff1fe0, #c418ff, #3b5bff, #04f3ff)' # 搜索条激活时底部横条的渐变色（彩虹，收尾经蓝色平滑过渡）
    avatar: 'conic-gradient(from 0deg, #04f3ff, #08ffc6, #ddf730, #ffbd19, #ff1fe0, #c418ff, #3b5bff, #04f3ff)' # 头像 hover 时旋转光环的渐变色（彩虹，首尾同色保证旋转无缝）
    angle: 210deg # 主题色渐变的角度（0=向上，顺时针；225deg = 右上角 → 左下角）
  leftbar:
    ui-style: card # glass（背景图+磨砂玻璃效果）/ card（纯色卡片：var(--card) 实色背景 + 中间阴影）
    # 可以设置：纯色/渐变色/图片作为背景
    # 设置为纯色时，可以分别设置浅色和深色模式背景色
    background-color-light: var(--card) # var(--block) #'rgb(#C3C3C3)'
    background-color-dark: var(--card) # var(--block) #'rgb(#3C3C3C)'
    background-image: url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.13/image/sidebar-bg1@small.jpg)
    blur-px: 100px
    blur-bg: var(--bg-a60)
    background-opacity: 0.8
  error_page: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/404/1c830bfcd517d.svg
  site: # 使用 background-image 后，blur 设置才有效
    # background-image: url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.14/image/site-bg1@small.webp)
    blur-px: 100px
    blur-bg: var(--bg-a75)
    blur-sat: 300%
  # 技术文章内页各级标题前面的符号
  header_prefix:
    h2: '#'
    h3: '='
    h4: '|'
    h5: ':'


default:
  avatar: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/avatar/round/3442075.svg
  link: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/link/8f277b4ee0ecd.svg
  cover: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/cover/76b86c0226ffd.svg
  image: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/image/2659360.svg
  project: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/image/2779789.png
  banner: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/banner/books.jpg
  topic: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/image/10433048.png
  # image_onerror 兼容回退：新值位于 _data/icons.yml（image:onerror）
  image_onerror: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2rem' height='2rem' viewBox='0 0 24 24'%3E%3C!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --%3E%3Cpath fill='%23F44336' d='M22 12.698c-.002 1.47-.013 2.718-.096 3.743c-.097 1.19-.296 2.184-.74 3.009a4.2 4.2 0 0 1-.73.983c-.833.833-1.893 1.21-3.237 1.39C15.884 22 14.2 22 12.053 22h-.106c-2.148 0-3.83 0-5.144-.177c-1.343-.18-2.404-.557-3.236-1.39c-.738-.738-1.12-1.656-1.322-2.795c-.2-1.12-.236-2.512-.243-4.241Q1.999 12.737 2 12v-.054c0-2.148 0-3.83.177-5.144c.18-1.343.557-2.404 1.39-3.236s1.893-1.21 3.236-1.39c1.168-.157 2.67-.175 4.499-.177a.697.697 0 1 1 0 1.396c-1.855.002-3.234.018-4.313.163c-1.189.16-1.906.464-2.436.994S3.72 5.8 3.56 6.99C3.397 8.2 3.395 9.788 3.395 12v.784l.932-.814a2.14 2.14 0 0 1 2.922.097l3.99 3.99a1.86 1.86 0 0 0 2.385.207l.278-.195a2.79 2.79 0 0 1 3.471.209l2.633 2.37c.265-.557.423-1.288.507-2.32c.079-.972.09-2.152.091-3.63a.698.698 0 0 1 1.396 0' opacity='.5'/%3E%3Cpath fill='%23F44336' fill-rule='evenodd' d='M17.5 11c-2.121 0-3.182 0-3.841-.659S13 8.621 13 6.5s0-3.182.659-3.841S15.379 2 17.5 2s3.182 0 3.841.659S22 4.379 22 6.5s0 3.182-.659 3.841S19.621 11 17.5 11m-1.47-7.03a.75.75 0 1 0-1.06 1.06l1.47 1.47l-1.47 1.47a.75.75 0 0 0 1.06 1.06l1.47-1.47l1.47 1.47a.75.75 0 1 0 1.06-1.06L18.56 6.5l1.47-1.47a.75.75 0 0 0-1.06-1.06L17.5 5.44z' clip-rule='evenodd'/%3E%3C/svg%3E"

api_host:
  ghapi: api.github.com
  ghraw: raw.githubusercontent.com
  gist: gist.github.com
  # https://github.com/anuraghazra/github-readme-stats
  ghcard: github-readme-stats.vercel.app



# 非资深hexo开发者尽量不要动这块
system:
  # hexo 支持输出的链接格式众多，维护成本高，为了减少出错，统一成推荐的格式。
  override_pretty_urls: true
