Markdown 使用Jekyll 3,我可以转换一个post';在实际标记解析之前,是否进行标记?
我想使用为我的帖子图像生成具有Markdown 使用Jekyll 3,我可以转换一个post';在实际标记解析之前,是否进行标记?,markdown,jekyll,jekyll-extensions,responsive-images,kramdown,Markdown,Jekyll,Jekyll Extensions,Responsive Images,Kramdown,我想使用为我的帖子图像生成具有srcset/size属性的适当响应图像 但我也希望能够在一个提供实时预览的软件中编辑我的帖子,该软件只理解图像的标准标记语法 这就是为什么我想知道是否有一种方法-某种插件-告诉Jekyll转换图像的标准标记语法,我会将其放入我的标记文件中 ![alt text](path/to/image.jpg) …转换为以下特定的语法: {%responsive_图像路径:path/to/image.jpg alt:“alt text”%} 然后,Jekyll可以继续使用Kr
srcset
/size
属性的适当响应图像
但我也希望能够在一个提供实时预览的软件中编辑我的帖子,该软件只理解图像的标准标记语法
这就是为什么我想知道是否有一种方法-某种插件-告诉Jekyll转换图像的标准标记语法,我会将其放入我的标记文件中
![alt text](path/to/image.jpg)
…转换为以下特定的语法:
{%responsive_图像路径:path/to/image.jpg alt:“alt text”%}
然后,Jekyll可以继续使用Kramdown生成HTML
我也创建了,但一个更一般的答案也不错,可能对其他需求有用。最简单的解决方案是使用新的 一个非常原始的插件可以是:
Jekyll::Hooks.register :posts, :pre_render do |post, payload|
docExt = post.extname.tr('.', '')
# only process if we deal with a markdown file
if payload['site']['markdown_ext'].include? docExt
newContent = post.content.gsub(/\!\[(.+)\]\((.+)\)/, '{% responsive_image path: \2 alt: \1 %}')
post.content = newContent
end
end
将其存储在plugins/img tag transform.rb中是的,这是绝对可能的。自Jekyll 3以来,每个文件扩展名可以有多个转换器。这允许您创建一个转换器,如:
class ResponsiveImageify < Jekyll::Converter
priority :high
def matches(ext)
ext.downcase == ".md"
end
def convert(content)
content.gsub(/\!\[(.+)\]\((.+)\)/, '{% responsive_image path: \2 alt: \1 %}')
end
end
class-ResponsiveImageify
该转换器将gsub
任何.md
文件的内容
希望这有帮助 这里发布的示例打破了alt标记。 alt字符串需要被引用,否则会被截断为一个单词 e、 g.
content.gsub(/\!\[(.+)\]\((.+)\)/,“{%responsive\u图像路径:\2 alt:“\1”%}”)
另外,Nicolas Hoizey的帖子是我在最新版本的Jekyll(3.7)上唯一可以使用的帖子,我似乎无法让其他示例输出html。Markdown似乎是在插入液体标签之前呈现的。我更喜欢的是的响应,但这一次也给了我新的想法,所以非常感谢!谢谢你!FWIW,我使用namedmatched修改了regex,还解析出了
标题
,并且alt
和标题
都是可选的。所以在我的例子中,那一行是这样的:gsub
-行:new\u content=post.content.gsub(/\!\[(?+)?\]\((?\S+)?(?*?)????)/,“{%responsive\u图像路径:\k alt:“\k”title:“\k”%}”)
。我试图在一个新插件中使用它,但我用my生成的流畅语法之后似乎没有被解析。我是否应该明确地称之为Kramdown?相关: