Jekyll插件jekyll-spaceship首页遍历文章时功能失效如何修复?
问题根因
jekyll-spaceship的自定义视频语法解析逻辑默认仅绑定单篇文章详情页的渲染流程,jekyll-paginate-v2生成分页列表时拉取的paginator.posts内容仅经过Jekyll基础Markdown解析,未触发视频语法转换,所以会被识别为普通图片。
修复方案
方案1:添加渲染钩子补丁(推荐)
在项目根目录新建_plugins/patch_spaceship.rb文件,添加如下代码:
Jekyll::Hooks.register :posts, :pre_render do |post| return unless post.content.include? '![Video]' Jekyll::Spaceship::Processors::VideoProcessor.process post end
修改后重启Jekyll服务即可,该补丁会强制所有文章在任意场景渲染前,都先执行jekyll-spaceship的视频解析逻辑,分页列表和详情页都可以正常转换视频语法。
方案2:手动触发完整渲染
如果不想新增插件补丁,可以修改首页模板的内容输出逻辑:
将原代码中
<div class="entry-content">{{ post.content }}</div>
替换为:
<div class="entry-content">{{ post.raw_content | markdownify }}</div>
如果主题不支持raw_content变量,可以安装对应插件获取文章未渲染的原始Markdown内容,再通过markdownify过滤器触发完整的扩展解析流程。
方案3:调整插件加载顺序
在_config.yml中调整插件加载优先级,确保jekyll-spaceship加载在分页插件之前:
plugins: - jekyll-spaceship - jekyll-paginate-v2
该方案适配性有限,仅对特定版本的插件组合生效,优先尝试前两种方案即可。
内容的提问来源于stack exchange,提问作者Ferhat Pektas
相关产品推荐
相关产品推荐

