7

有没有办法在 Markdown 文件中引用图像,以便它们 1)在编辑时正确预览和 2)在使用 Pelican 处理时正确生成?

我尝试 Pelican 的全部原因是尽可能简单地使用各种编辑器在本地/离线编辑文件,而无需运行本地服务器。这些编辑器理解常见的图像语法,如下所示:

![Pelican](images/pelican.jpg)

但是为了让 Pelican 生成正确的路径,我必须使用:

![Pelican]({filename}/images/pelican.jpg)

哪些编辑不理解,所以预览只显示损坏的图像。这不太理想。链接到具有完整地址的图像不起作用,因为我经常离线工作。

是否有一些设置组合——缺少运行本地服务器,当我在 ipad/etc 上编辑文件时,这对我没有一点帮助——这将允许我使用相同的图像标记来编辑和正确发布?

4

4 回答 4

9

鉴于您描述的用例,我相信唯一的解决方案是本地和生产环境中的 URL 路径相同。例如,给定以下层次结构:

- content
    - images
        - dinosaur.jpg
    - posts
        - my-dinosaur.md

...您可以通过以下方式从内部链接到图像my-dinosaur.md

Title: My Dinosaur
Date: 2013-03-28
URL: /posts/my-dinosaur.html
Save_as: posts/my-dinosaur.html

Here is an image of my dinosaur:

![Pelican](../images/dinosaur.jpg)

在这种情况下,生成的 HTML 将包含一个指向图像的链接,如下所示:

<img src="../images/dinosaur.jpg" />

只要之间的相对位置:

  • 源文档 <-> 图像
  • 生成的 HTML <-> 图像

...是相同的,上述技术应该可以让你实现你的目标。

当然,根据您选择的生产 URL 结构,这可能可行,也可能不可行。如果您不想更改 URL 结构以匹配源内容组织结构,则在不运行本地服务器的情况下很难在两种环境中渲染图像。

于 2014-02-23T15:48:06.887 回答
5

{filename}方法似乎不适用于当前版本的 Pelican 中的图像。

以下是如何去做:

从 Pelican 3.5 开始,您可以使用{attach}标签将任何文件类型附加到您的静态站点。内容文件夹的相对路径约定保持不变。

![MyImage]({attach}images/MyImage.jpg)

只需在您打算链接图像的任何地方将上述短语插入您的Markdown文章中,您就可以开始使用了。

让我知道结果如何!

于 2015-02-16T19:30:29.300 回答
4

您可以在 Markdown 帖子中使用 Jinja{{ SITEURL }}变量来引用图像:

![Pelican]({{SITEURL}}/images/pelican.jpg)

这应该解决(2)。但是,如果没有有关您正在使用的编辑器以及它们如何将图像路径转换为渲染图像的更多信息,则无法知道这是否会解决 (1)。

于 2015-06-15T08:01:58.940 回答
0

{filename}指令用于在发布期间创建超链接,一旦发布,您的图像应链接到输出文件夹中的图像文件夹。

根据您在 中配置静态路径的方式pelicanconf.py,例如

# Path to static folders
STATIC_PATHS = ["images", "extra/SW.js"]

根据文档的正确方法是

![Pelican]({static}/images/pelican.jpg)

static包含图像的静态文件夹的路径在哪里。

于 2021-10-29T05:18:26.053 回答