Slugify URLs

Slugify 所有页面 URL,移除潜在冲突的字符

配置参数

extensions string[] *

The list of extensions this plugin applies to

Default:
[ ".html" ]

描述

slugify_urls 插件转换你的页面和文件中的所有 URL,通过移除或替换潜在冲突的字符,例如重音符号、空格等。

一旦启用,输出路径将自动 slugify:空格被替换为 -,诸如 ñá 这样的字符被替换为 ASCII 等效字符(na),并转换为小写:

/posts/My First Post.md  =>  /posts/my-first-post/index.html

安装

在你的 _config.ts 文件中导入此插件以使用它:

import lume from "lume/mod.ts";
import slugifyUrls from "lume/plugins/slugify_urls.ts";

const site = lume();

site.use(slugifyUrls());

export default site;

配置

默认情况下,仅 HTML 页面会被 slugify。 如果你想将此插件应用于其他文件,例如 jpg 图片,请使用 extensions 选项:

site.use(slugifyUrls({
  extensions: [".html", ".jpg"],
}));

或者设置 * 来 slugify 所有文件:

site.use(slugifyUrls({
  extensions: "*",
}));

Slugify 选项

你可以使用以下选项配置 slugifier:

/* 默认选项 */

site.use(slugifyUrls({
  lowercase: true, // 将所有字符转换为小写
  alphanumeric: true, // 将非字母数字字符替换为它们的等效字符。例如:ñ 替换为 n。
  separator: "-", // 用作单词分隔符的字符
  stopWords: ["and", "or", "the"], // 不包含在 slug 中的单词列表
  replace: { // 包含单个字符替换的对象
    "Ð": "D", // eth
    "ð": "d",
    "Đ": "D", // crossed D
    "đ": "d",
    "ø": "o",
    "ß": "ss",
    "æ": "ae",
    "œ": "oe",
}));