IkeqIkeq

The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts.

Inside 主题配置 - Misc

Feb 1, 2019

Overview

assets:
  • prefix
  • suffix
  • static_prefix:
  • data_prefix:
  • data_dir:
  • favicon:
  • ga:
  • seo:
    • structured_data
    pwa:
      workbox:
      • cdn
      • module_path_prefix
      • expire
      • name:
      • rules[]:
        • name
        • strategy
        • regex
        • expire
      manifest:
      • short_name
      • name
      • start_url
      • theme_color
      • background_color
      • icons[]:
        • src
        • sizes
        • type
  • plugins[]:
  • assets

    文章图片 CDN 设置。

    1
    2
    3
    assets:
    prefix: https://cdn.example.com
    suffix: '?m=webp&q=80'

    例如有如下 markdown:

    post.md
    1
    ![cat](images/cat.gif)

    则最终生成的 HTML 为:

    1
    <img src="https://cdn.example.com/images/cat.gif?m=webp&q=80" alt="cat">

    此外 front-matter 内设置的 thumbnail 也受此规则影响。

    static_prefix

    静态资源 URL 前缀,用于设置 CDN。

    1
    static_prefix: //cdn.jsdelivr.net/gh/ikeq/hexo-theme-inside@version/source

    data_dir

    设置 json 文件的目录,缺省值 api

    1
    data_dir: api

    data_prefix

    json 文件 URL 前缀,用于设置 CDN。

    1
    2
    3
    # 假如你的 json 文件放在 cdn.example.com,则设置
    data_prefix: //cdn.example.com/path/to/path/your_json_dir
    data_dir: your_json_dir

    favicon

    favicon,缺省值 favicon.ico

    1
    favicon: favicon.ico

    ga

    设置谷歌统计 ID。

    1
    ga: UA-00000000-0

    seo

    SEO 相关设置。

    1
    2
    3
    seo:
    # 于页面头部添加 structured data 标签,默认禁用
    structured_data: true

    pwa

    PWA 相关设置。

    pwa.workbox

    使用 workbox 来支持离线缓存,默认禁用。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    pwa:
    workbox:
    # workbox 脚本 URL,缺省值 `https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js`
    cdn: https://g.alicdn.com/kg/workbox/3.6.3/workbox-sw.js
    # workbox.modulePathPrefix
    module_path_prefix: https://g.alicdn.com/kg/workbox/3.6.3/
    # 过期时间(小时),缺省值 `4`,设置为 0 可持久缓存
    expire:
    # service worker 脚本名,缺省值 `sw.js`
    name:
    # 自定义缓存,注意是数组
    rules:
    -
    # 缓存名称(主要用于区分)
    name:
    # workbox 的缓存策略,见 https://developers.google.com/web/tools/workbox/modules/workbox-strategies
    strategy:
    # 用于路由匹配的正则
    regex:
    # 过期时间(小时),缺省值 `4`,设置为 0 可持久缓存
    expire:

    举例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    pwa:
    workbox:
    # 使用 alicdn
    cdn: https://g.alicdn.com/kg/workbox/3.6.3/workbox-sw.js
    module_path_prefix: https://g.alicdn.com/kg/workbox/3.6.3/
    name: sw.js
    rules:
    # 使用 staleWhileRevalidate 策略缓存 jsdelivr 请求
    - name: jsdelivr
    strategy: staleWhileRevalidate
    regex: https://cdn\\.jsdelivr\\.net
    # 使用 cacheFirst 策略缓存静态资源
    - name: theme
    strategy: cacheFirst
    regex: /.*\\.(?:js|css|woff2|png|jpg|gif)$
    # 使用 cacheFirst 策略缓存 json 文件
    - name: json
    strategy: cacheFirst
    regex: your_data_prefix/.*\\.json

    若启用了 workbox,则默认会对 HTML 页面请求进行拦截,以优化重定向问题(如 /path 会多一次重定向为 /path/),可通过配置 name: html 覆盖此行为。

    pwa.manifest

    配置 manifest.json,默认禁用,详见 Web App Manifest

    1
    2
    3
    4
    5
    6
    7
    8
    pwa:
    manifest:
    short_name:
    name:
    start_url:
    theme_color:
    background_color:
    icons: []

    See also

    Buy me a cup of milk 🥛.