3.9k字5 分钟
# 引言 Hexo 资源文件夹 启用后,Markdown 采取相对路径引用图片以便于本地预览 和 Hexo 发布时资源路径重定向冲突。 本文主要解决两者之间的冲突,使得二者能够兼得. # 需求整理 # Hexo资源文件夹 如果你的 Hexo 项目中只有少量图片,那最简单的方法就是将它们放在 source/images 文件夹中。然后通过类似于  的方法访问它们。 但是这样不利于 维护 也不够 优雅,Hexo 资源文件夹就主要解决了这个痛点, 资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图
文章针对启用 Hexo 资源文件夹后,图片相对路径难以兼顾 Markdown 本地预览与发布访问的问题,给出 Shoka 主题集成方案。在主题脚本中注册文章渲染后过滤器,解析图片的 data-src,并按文章永久链接重建资源路径,统一处理正文与摘要,保留原有本地写作方式。
文章讨论 Hexo 启用资源文件夹后,Markdown 用相对路径引用图片便于本地预览,却与生成发布时的资源路径重定向冲突,官方方案又会破坏本地预览。作者提出利用 Hexo 的 after_post_render 过滤器,通过 cheerio 处理文章内容中的 img 标签,将 data-src 修改为指向文章资源文件夹的正确路径,从而兼顾本地预览和发布重定向。
文章针对 Hexo 启用资源文件夹后,Markdown 相对路径引用图片导致本地预览与发布路径重定向冲突的问题提出解决方案。官方的标签插件或 hexo-renderer-marked 插件虽可正确生成路径,但破坏了本地相对路径预览。作者利用 Hexo 的过滤器机制,注册 after_post_render 过滤器,在主题 scripts 目录新增脚本,借助 cheerio 遍历文章的 excerpt、more、content 中的 img 标签,将相对路径的 data-src 属性重定向到文章同名资源文件夹的正确路径,同时跳过外链和绝对路径图片,从而兼得本地预览与发布路径正确。
more...