我刚开始接触Markdown。我喜欢它,但有一件事困扰着我:如何使用Markdown更改图像的大小?

文档仅为图像提供以下建议:

![drawing](drawing.jpg)

如果可能的话,我希望图片也居中。我问的是Markdown将军,而不仅仅是GitHub是如何做到的。


当前回答

当使用Flask时(我将其用于平面页面)。。。我发现,在markdown调用中的扩展中显式地启用(由于某种原因,默认情况下不是这样)“attr_list”可以实现这一点,然后可以使用属性(对于访问CSS也非常有用-例如,class=“my class”…)。

FLATPAGES_HML_RENDERER=prerender_jinja

以及功能:

def prerender_jinja(text):
    prerendered_body = render_template_string(Markup(text))
    pygmented_body   = markdown.markdown(prerendered_body, extensions=['codehilite', 'fenced_code', 'tables', 'attr_list'])
    return pygmented_body

然后在Markdown中:

![image](https://octodex.github.com/images/yaktocat.png "This is a tooltip"){: width=200px}

其他回答

如果使用markdown,首先需要启用HTML渲染:

const md = require("markdown-it")({
  html: true,
});

然后可以在.md文件中使用:

<img src="" alt="drawing" width="100%" height="200"/>

通过纯向后兼容MD:

![<alt>](<imguri>#<w>x<h> "<title>")

其中w,h定义了要纵横适配的边界框,例如在Flutter包中https://pub.dev/packages/flutter_markdown

代码:https://github.com/flutter/packages/blob/9e8f5227ac14026c419f481ed1dfcb7b53961475/packages/flutter_markdown/lib/src/builder.dart#L473

重新考虑破坏兼容性的html解决方案,因为人们可能会使用本机/非html组件/应用程序来显示标记。

结合两个答案,我得出了一个解决方案,看起来可能没那么漂亮,但它奏效了!

它创建了一个具有特定大小的缩略图,可以单击该缩略图以获得最高分辨率的图像。

[<img src="image.png" width="250"/>](image.png)

这是一个例子!我在Visual Code和Github上测试了它。

由于反馈,我们知道这也适用于:

GitLab公司Jupyter笔记本

对于某些Markdown实现(包括Mou和Marked 2(仅限macOS)),您可以在图形文件的URL后添加=WIDTHxHEIGHT以调整图像大小。不要忘记=前面的空格。

![](./pic/pic1_50.png =100x20)

您可以跳过高度

![](./pic/pic1s.png =250x)

和宽度

![](./pic/pic1s.png =x250)

Tieme的答案在大多数情况下都是最好的。

在我的例子中,我使用pandoc将markdown转换为乳胶。HTML标记在这里不起作用。

我的解决方案是重新实现includegraphics

\let\maxincludegraphics\includegraphics
\renewcommand{\includegraphics}[1]{\maxincludegraphics[max width=\textwidth]{#1}}

类似于在转换为HTML后使用CSS。