Как обрезать строку в шаблонах Hugo - PullRequest
0 голосов
/ 05 июня 2018

Я всегда создаю свои сообщения с именами файлов, которые начинаются с "0001-", "0002-" и т. Д. Я бы хотел, чтобы заголовок по умолчанию убрал это.

В файле themes/Hugo-Octopress/./archetypes/post.md Iизменено:

---
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 символов строки в конвейере шаблона?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Решение состоит в том, чтобы обернуть ваш replace в парены и присвоить его в качестве параметра substr, например:

title: "{{ substr (replace .TranslationBaseName "-" " ") 11 | title }}"

Я проверил это, и эта работа дляя.

(источник: https://discourse.gohugo.io/t/how-to-trim-and-truncate-a-url/2639/3)

0 голосов
/ 07 июня 2018

Насколько я знаю, Хьюго не обрабатывает какие-либо функции в * .md файлах нормально, поэтому вам придется использовать "Шорткоды" - смотрите эти два для получения дополнительной информации:

Я вполне уверен, что где-то читал, что они не работают в первую очередь, то есть параметр "title".

Для своих сообщений, которые также нумеруются, я прибег к параметру "slug":

001-post-title.md

+++
title = "post title"
weight = "-999"
slug = "post title"
image = "fancy.jpg"
+++

Используя этот параметр, в моем случае постоянная ссылка выглядит следующим образом:

http://localhost:1313/post/post-title/

Я знаю, что это означает ручную печать, а также может быть источником ошибок, но это самый простой способ обойти эту проблему, я могнайти, когда я хотел решение.Может быть, есть лучший ответ, если вы спросите то же самое на форумах Гюго.

...