You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gatsby中实现西里尔文分类链接的转写?

可行,具体实现方案如下

核心思路

先把西里尔文分类转写为拉丁字母,再用_.kebabCase处理成符合URL规范的slug。借助成熟的转写库完成西里尔文到拉丁字母的转换,无需自行维护复杂的字符映射规则。

具体步骤

  1. 安装转写库
    推荐使用transliteration库,它对多语言转写的支持很完善,处理西里尔文精准度高。执行安装命令:
npm install transliteration
# 或使用yarn
yarn add transliteration
  1. 修改gatsby-node.js中的代码
    引入库后,先完成西里尔文到拉丁字母的转写,再做kebab-case格式化:
const _ = require('lodash');
const { transliterate } = require('transliteration');

exports.createPages = async ({ graphql, actions }) => {
  const { createPage } = actions;

  // 省略GraphQL查询及其他逻辑代码...

  // 处理分类slug的核心代码
  const rawCategory = node.frontmatter.category; // 示例值:"Сайт с нуля"
  // 先转写为小写拉丁字母,再生成kebab-case格式的slug
  const latinizedCategory = transliterate(rawCategory, { lowercase: true });
  const categorySlug = _.kebabCase(latinizedCategory); // 最终得到"sait-s-nulya"

  // 后续用categorySlug生成页面路由...
};

其他可选方案

如果偏好更轻量的库,也可以使用cyrillic-to-latin,用法类似:

npm install cyrillic-to-latin
const cyrillicToLatin = require('cyrillic-to-latin');

// 转换示例
const latinizedCategory = cyrillicToLatin("Сайт с нуля").toLowerCase();
const categorySlug = _.kebabCase(latinizedCategory);

内容的提问来源于stack exchange,提问作者Лео

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:15:39