При вложении дополнительного Span в Pando c фильтр исчезает изображение - PullRequest
0 голосов
/ 06 февраля 2020

В настоящее время я работаю над массированием HTML выходного сигнала фильтра Pando c из-за некоторых раздражающих ограничений в CMS, которая в конечном итоге является бенефициаром моей тяжелой работы.

Мой рабочий фильтр (сейчас с очевидными объявлениями) выглядит следующим образом:

local List = require 'pandoc.List'

local Emph = pandoc.Emph
local Quoted = pandoc.Quoted
local Span = pandoc.Span
local Str = pandoc.Str
local Strong = pandoc.Strong

local image_base = "http://my.website.example/images/"
local image_author = "Someone Not Stigma"

function process_images(el)
  el.src = el.src:gsub("^file:images/", image_base)
  el.caption = {
    Strong( Quoted( "DoubleQuote", el.caption ) ),
    Str(" by "),
    Emph(image_author)
  }
  return el
end

return {{Image = process_images}}

В конечном итоге HTML, это дает мне хорошую фигуру с элементами img и figcaption внутри. Чудесно. К сожалению, моя CMS разрушает figcaption (как будто он имеет тенденцию разрушать другие вещи), и поэтому я решил, что я оберну все в дополнительный промежуток, чтобы вместо этого я мог его стилизовать.

function process_images(el)
  el.src = el.src:gsub("^file:images/", image_base)
  el.caption = {
    Span(
      {
        Strong( Quoted( "DoubleQuote", el.caption ) ),
        Str(" by "),
        Emph(image_author)
      },
      { class="img-caption" }
    )
  }
  return el
end

И все же каким-то образом это заставляет Pando c полностью удалить изображение из полученного HTML.

. Я попытался заменить синтаксисы таблиц синтаксисами List ({}), но это только вызывает жалобы на повышение стоимости. Я посмотрел руководство, но насколько я могу судить, я все делаю правильно.

Что мне здесь не хватает?

Я называю pando c следующим образом:

pandoc --from=markdown-tex_math_dollars "Content.pure.txt" --lua-filter=".\pandoc-filter.lua" --to=html5 --template=".\pandoc-template.txt" -o "Content.txt"

Расширения имеют формат .txt (поскольку эти файлы не готовы для браузера). Используемый шаблон довольно длинный (есть немало переменных YAML и соответствующей разметки), но будьте уверены: там можно найти $ body $.

1 Ответ

1 голос
/ 06 февраля 2020

Я не мудрец. Всегда обновляйте до последней версии , прежде чем отправлять вопросы, ребята.

Я работал на более старой версии Pando c (v2.6), и обновление до v2.9.1.1 внезапно заставило выход появиться снова. Это много версий, выпущенных в течение года!

(В мою защиту мой Pando c -filter-fu не особенно силен, поэтому имеет смысл предположить, что ошибка пользователя, а не программа Почему каждый раз, когда вы допускаете ошибку, это ошибка пользователя, а каждый раз, когда вы допускаете ошибку пользователя, это полная ошибка?)

...