【问题标题】:How to center an image using blogdown?如何使用 blogdown 使图像居中?
【发布时间】:2022-01-07 18:22:54
【问题描述】:

所以我正在使用 RStudio 和 Blogdown 构建我的第一个数据博客,但我严重卡在了一些小而令人愤怒的事情上。

https://data-issues.netlify.app/

上面是我正在建设的网站。我为它做了一个标志,但我想让它居中。我将如何在我的 markdown (.md) 文件中这样做。

代码在这里:

---
# Homepage
type: widget_page

# Homepage is headless, other widget pages are not.
headless: true

weight: 1

design:
  columns: "1"
---

{{< figure src=/datavision.png theme="light" class="center">}}


编辑:添加这个也无济于事

<p align="center">
![datavision](datavision.png)
</p>

我正在使用 .md 文件,如果不在这里,我应该在哪里定义 p 的简码?

【问题讨论】:

  • 我有两个问题,第一个问题,你在用 Hugo 吗?我认为您没有使用它,但您放置了标签。第二个问题,命名为 center 的 CSS 类是否正确?我打开了您的网站,并在图像上使用开发人员控制台进行了检查,但我没有看到该类被使用。如果对解决您的问题有帮助,您可以在 RStudio 社区查看此issue
  • 嗨@MalwareWerewolf,是的,博客依赖于 Hugo 的构建。我对 css 知之甚少,我只是在谷歌上搜索了如何居中,并添加了该参数,但看起来它什么也没做
  • @MalwareWerewolf 我也从您分享的帖子中添加了这个,但无济于事

    ![datavision](datavision.png) 。错误:无法提取简码:找不到简码“p”的模板

  • 两种解决方案(我没有时间发布正式答案): 1. 如果使用原始 HTML,则必须使用完整 HTML,因为 Hugo 不支持混淆 Markdown 和 HTML (将![]() 更改为&lt;img .../&gt;); 2. 如果你喜欢我的图片居中理念,你可以在你的 Hugo 模板中添加center-img.jsgithub.com/yihui/misc.js 这样,图片会自动居中。
  • 我喜欢后者的想法@YihuiXie;但是我应该将这个文件放在项目中的哪个位置以使其正常工作?

标签: html markdown hugo blogdown


【解决方案1】:

正如 @YihuiXie 在下面的评论部分中所说,您实际上不需要为原始 HTML 使用简码,您可以使用多种解决方案。


编辑您的配置以在 Markdown 中使用原始 HTML

在您的config.toml 中输入:

[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

如果您的项目中有config.yaml,请使用:

markup:
  goldmark:
    renderer:
      unsafe: true

这会在 markdown 文件中启用原始 html 支持,这样您就不需要使用短代码。

https://gohugo.io/news/0.60.0-relnotes/


使用简码的原始 HTML

根据您的项目结构,应该有某种layouts 文件夹。我有一个用 Hugo 制作的项目,我有一个类似 ../layouts/shortcodes/rawhtml.html 的代码:

{{.Inner}}

例如,在您的代码中,您已经在使用Hugo’s Built-in shortcode。创建文件后,您只需在 Markdown 中以这种方式插入短代码:

{{< rawhtml >}}
  <img src=/datavision.png class="center">
{{< /rawhtml >}}

自定义CSS代码应该定义在../static/css/,在你的config.toml中,只要检查是否有变量来设置你的自定义CSS代码,例如:

# Custom CSS
customCSS = ["/css/custom.css"]

我使用此配置是因为主题需要它,但在您的项目中可能会有所不同,因此请记住这一点。如果您不想使用其他文件来保存您的 CSS 代码,您可以像我对 HTML 所做的那样简单地将其插入到您的短代码中,例如:

{{< rawhtml >}}
<style>
    .center{
        /* your code here */
    }
</style>

{{< /rawhtml >}}

对内容页面使用 HTML 而不是 Markdown

使用 Hugo,您还可以在项目中使用 HTML 而不是 md 文件。它只是遵循相同的语法,但您必须使用 HTML 而不是 Markdown 语法,例如:

---
title: "Contact me"
---

<p>
    Some text here
</p>

在这种情况下,您从已经使用 HTML 的那一刻起就不需要短代码。

【讨论】:

  • 你真的不需要原始 HTML 的简码。 Hugo 的 Markdown 渲染器支持原始 HTML,尽管此功能默认关闭(请参阅github.com/rstudio/blogdown/issues/447#issuecomment-613196974)。
  • 我在文档上读到了一些关于该功能的内容,但我从未使用过该功能,感谢您提供另一个可以使用的好功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 2016-04-23
  • 2021-03-25
  • 2020-11-04
相关资源
最近更新 更多