ху go уценка в PDF - PullRequest
       43

ху go уценка в PDF

0 голосов
/ 01 апреля 2020

У меня проблема с lua фильтром в пандо c.

У меня есть этот код:

    {{% notice info %}}

    Частота RAM должна быть не менее **2133 Mhz**

    CPU не менее производительный, чем **Intel Xeon E5-2650V4**

    Производительность дисковой подсистемы не менее **300 IOPS**

    {{% /notice %}}

Правильно конвертируется с hu go в html. Теперь я хочу преобразовать его в PDF, используя pando c.

pandoc -i minimal_private_cloud.ru.md -o ~/Documents/tmp.ru.pdf --from markdown --template eisvogel --listings -V lang=ru-RU --pdf-engine=xelatex --lua-filter ~/tmp/replace_macro.lua --filter pandoc-latex-environment

содержимое моего lua -фильтра (~/tmp/replace_macro.lua):

function Para (el)
   content_str = pandoc.utils.stringify(el.content)
   local cont = string.match(content_str, "{{%% code file=(.*) %%}}")
   local notice_start = string.match(content_str, "{{%% notice info %%}}")
   local notice_end = string.match(content_str, "{{%% /notice %%}}")
   if cont ~= nil then
      local cont_cleared = string.match(cont, "([%w._/]+)")
      print(cont_cleared)
      cont = "/home/still/Documents/Documents Work/Currentwork/Doc" .. cont_cleared
      print(cont)
      local f = io.open(cont, 'r')
      local doc = pandoc.read(f:read('*a'))
      f:close()
      return doc.blocks
   else
      --print 'not a date'
   end
   if notice_start ~= nil then
      print("Notice info start finded!")
      local doc = pandoc.Plain("::: info")
      return {doc}
   end
   if notice_end ~= nil then
      print("Notice end finded!")
      local doc = pandoc.Plain(":::")
      return {doc}
   end
end

Теперь этот код генерирует PDF с уродливыми отметками типа ::: info. Второй фильтр (pandoc-latex-environment) должен генерировать красавицы с этими отметками.

Это работает, только если я написал эту отметку в оригинальном md. Если я попытаюсь изменить эту отметку с помощью lua - это не получится.

PS Извините за мой плохой английский sh.

...