【发布时间】:2019-01-10 02:25:06
【问题描述】:
有没有办法为每篇博文生成一个随机字符串,这样就可以 http://example.com/posts/(randomstring) 或者 http://example.com/posts/aoJqo198@
而不是 URL 的 slug。
我找遍了这个,找不到任何东西。
【问题讨论】:
-
你为什么要这样做?我真的无法想象这种不利于可访问性和 seo 的 url 格式的好处在哪里。
有没有办法为每篇博文生成一个随机字符串,这样就可以 http://example.com/posts/(randomstring) 或者 http://example.com/posts/aoJqo198@
而不是 URL 的 slug。
我找遍了这个,找不到任何东西。
【问题讨论】:
有很多方法可以生成随机字符串。如果你愿意,Jekyll 也可以为你做这件事。您只需要编写一个设置永久链接的插件。以前没有人这样做过……我敢肯定。
问题仍然存在……为什么?因为这似乎是个坏主意。
但是,如果您想这样做,最简单的方法是在您的文本编辑器中生成随机字符串。无论如何,您都必须(手动)创建博客文章。只需找到一个好的随机字符串创建器并将其安装在您的计算机上或将其保存在浏览器中即可。只需将字符串粘贴到永久链接 YML 变量即可。
您还可以创建一个命令行脚本,将您的文件重命名为随机字符串。那也应该很容易。再一次……你不会在网上找到这个……但是从命令行重命名非常容易。也可能生成一个随机字符串。将两者结合起来,您就有了解决方案。
无论如何...只是我的想法。希望能帮助到你。祝你好运!
【讨论】:
使用 Visual Studio Code (VScode),您可以创建 snippets。
只需在.vscode 文件夹中创建一个文件jekyll.code-snippets。格式就是json。
{
"Insert a Post Header for Jekyll in markdown":{
"prefix": "kw-jekyll-postheader",
"scope": "markdown",
"body": [
"---",
"layout: post",
"title: \"${TM_FILENAME_BASE/\\d{4}-\\d{2}-\\d{2}-//gi}\"",
"date: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND +0200",
"categories: kargware",
"tags: [ \"jekyll\" ]",
"post_key6: $RANDOM_HEX",
"---"
],
"description": "Insert a post header for jekyll in markdown"
}
}
当您在打开的markdown-file 上键入kw-jekyll-postheader(定义在前缀中)并启动tab-completion 时,您将看到前面的代码-sn-p,并放置了 random 值在post_key6。
【讨论】:
您还可以使用新的 sample 过滤器获取数组的随机元素,它发布在 here。
{% assign prefix = page.prefix | sample: 2 %}
【讨论】: