2015-09-02 49 views
5

Korzystam z pandoc (nie z pliku wykonywalnego z linii poleceń, ale z biblioteki programu haskell) i generuję dane wyjściowe HTML. Nie mogę wyświetlić spisu treści na wyjściu. Mniej więcej, mam to:Pandoc HTML Spis treści Wyjście

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

czuję się tak samo powinno być wystarczające, aby uzyskać wyjście HTML z prostego spisu treści (jeden, który ma tylko link do sekcji Luki). Jeśli ktokolwiek zobaczy, co przeoczyłem, byłbym wdzięczny za pomoc.

EDIT

Wierzę, że problem jest związany z me potrzeby ustawić writerStandalone = True, ale kiedy to zrobić, otrzymany dokument jest całkowicie pusty.

Odpowiedz

5

Wyliczyłem to. Musisz włączyć tryb autonomiczny i ustawić szablon:

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

A szablon powinien wyglądać mniej więcej tak:

<!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>