Как разместить ссылку на свои собственные статьи в блоге Pelican?

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

[Title](./this-is-the-file.html)

Но возможно, что другая статья появится в другой папке из-за шаблона ARTICLE_URL. Примеры:

[Title 1](/2014/02/article1.html)
[Title 2](/2014/01/25/article2.html)

Можно ли ссылаться на собственные статьи со ссылкой на слаг? Любое другое лучшее решение, чем сгенерированное имя файла HTML?


person jordiburgos    schedule 18.02.2014    source источник
comment
Я не думаю, что сейчас есть простой способ сделать это. Хотелось бы, чтобы кто-нибудь создал плагин для этого.   -  person mawenbao    schedule 21.02.2014


Ответы (3)


Как указано в документации, вы можете связать к другим файлам исходного контента через:

[a link relative to content root]({filename}/this-is-the-source-file.md)

... or ...

[a link relative to current file]({filename}../this-is-the-source-file.md)

Pelican включит выбранную вами схему URL-адресов и автоматически определит правильный способ ссылки на другую статью.

person Justin Mayer    schedule 23.02.2014
comment
Это работает так же при написании в reStructuredText вместо Markdown: This is `a link <{filename}/somefile.rst`_ to somewhere else. - person Snorfalorpagus; 11.11.2015

Я делаю это, указав свои собственные краткие строки с помощью тега метаданных save_as. Итак, если у меня есть запись в блоге под названием my_post.md, она будет выглядеть так:

Title: My Blog Post
save_as: myblogpost.html

This is the world's most boring blog post.

Это гарантирует, что я могу сослаться на него по адресу /myblogpost.html. Затем в каком-то другом сообщении в блоге я могу сказать:

Title: My Second Blog Post
save_as: mysecondblogpost.html

This is the world's second most boring blog post. The most boring blog post is [here]({{ SITEURL }}/myblogpost.html).

Это более гибкое и элегантное решение, обеспечивающее более точный контроль. И если вы не используете Pelican для блога, это очень важно.

person charlesreid1    schedule 06.06.2015
comment
Вы уверены, что можете использовать SITEURL в содержании? Я могу использовать его только в шаблонах, иначе я получаю WARNING: Replacement Indicator '{ SITEURL ' not recognized, skipping replacement - person Pierre; 28.07.2018

Работа со ссылкой в ​​первом/реструктурированном тексте.

Допустим, вы хотите, чтобы ваш второй пост был связан с первым. Вот фрагмент контекста из второго поста:

If you wish to see my first blog post click `here`_

.. _here: first-blog-post

И первый пост в блоге должен иметь правильный слаг:

First blog post
########################################
:date: 2019-02-18 20:31
:category: entry
:tags: python, blog, first
:slug: first-blog-post

У меня есть конфигурация:

ARTICLE_URL = '{date:%Y}/{date:%m}/{slug}.html'

и он имеет дело с дополнительными вещами, такими как год и месяц. Скорее всего, вы можете придерживаться slug вместо того, чтобы отслеживать HTML.

person Michał Zaborowski    schedule 19.02.2019