2015-09-02 1 views
5

Я использую pandoc (не исполняемый файл в командной строке, но библиотеку haskell), и я генерирую вывод HTML. Я не могу сделать оглавление в выводе. Грубо говоря, у меня есть это:Pandoc HTML Содержание Вывод

... 
writeHtml (def {writerTOCDepth = 4, writerTableOfContents = True} m) 
where m = 
    [ Header 1 ("myIdentifier",[],[]) [Str "Vulnerabilities"]           
    , Div nullAttr otherStuff                     
    ] 

Я чувствую, что это само по себе должно быть достаточно, чтобы получить выход HTML с простым оглавлении (тот, который имеет только ссылку на раздел Уязвимости). Если кто-то увидит то, что я пропустил, я был бы признателен за помощь.

EDIT

Я считаю, что проблема связана с меня необходимости установить writerStandalone = True, но когда я делаю это, итоговый документ полностью пустой.

ответ

5

Выяснил это. Вы должны включить автономный режим и установить шаблон:

loadReportPandocOpts :: IO WriterOptions                
loadReportPandocOpts = do 
    t <- readFile "resources/report-template.html"              
    return def 
    { writerTOCDepth = 4 
    , writerTableOfContents = True                  
    , writerHtml5 = True                    
    , writerStandalone = True                   
    , writerTemplate = t                    
    } 

И шаблон должен выглядеть следующим образом:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <meta http-equiv="Content-Style-Type" content="text/css" /> 
    <meta name="generator" content="pandoc" /> 
    </head> 
    <body> 
    <div>$toc$</div> 
    <div>$body$</div> 
    </body> 
</html>