Я всегда создаю свои сообщения с именами файлов, которые начинаются с «0001-», «0002-» и т. д. Я бы хотел, чтобы заголовок по умолчанию убрал это.
В файле themes/Hugo-Octopress/./archetypes/post.md поменял:
---
title: "{{ replace .TranslationBaseName "-" " " | title }}"
к
---
title: "{{ replace .TranslationBaseName "-" " " | substr 6 | title }}"
Я думал, что это пропустит заголовок через «substr 6», который удалит первые 5 символов из файла.
Однако сообщение об ошибке, которое я получил, было следующим:
Error: Failed to process archetype file "[redacted]/themes/Hugo-Octopress/archetypes/post.md": template: post:2:50: executing "post" at <substr 6>: error calling substr: start argument must be integer
Как удалить первые 5 символов строки в конвейере шаблона?





Насколько я знаю, Hugo обычно не обрабатывает какие-либо функции в файлах * .md, поэтому вам придется использовать «шорткоды» - см. Эти два кода для получения дополнительной информации:
Хотя я совершенно уверен, что где-то читал, что они не работают, например, параметр "title".
Для моих постов, которые также пронумерованы, я прибегал к параметру "slug":
001-post-title.md
+++
title = "post title"
weight = "-999"
slug = "post title"
image = "fancy.jpg"
+++
В моем случае постоянная ссылка с этим параметром выглядит так:
http://localhost:1313/post/post-title/
Я знаю, что это означает ручной ввод, а также может быть источником ошибок, но это самый простой способ обойти эту проблему, который я мог найти, когда мне нужно было решение. Может быть, есть лучший ответ, если вы спросите то же самое на форумах Hugo.
Я модифицирую существующий файл post.md, и он действительно работает. У меня вопрос, почему сделанное мной дополнение не работает.
Решение состоит в том, чтобы заключить ваш replace в скобки и передать это в качестве параметра для substr, например:
title: "{{ substr (replace .TranslationBaseName "-" " ") 11 | title }}"
Я протестировал это, и эта работа у меня.
(источник: https://discourse.gohugo.io/t/how-to-trim-and-truncate-a-url/2639/3)
Я опубликовал решение, которое работает ниже.