Dear juh,
"'juh' via pandoc-discuss" <pandoc-discuss@googlegroups.com> writes:
> Many markdown-files hierarchically ordered in folders.
> Every file starts with the top-level headline mark "#".
>
> I want to convert these files like this:
>
> pandoc $(cat outline.txt) -o target.html
>
> where outline.txt contains the relative pathes to all files.
>
>
> 00.md
> 01/00.md
> 01/01/00.md
> 01/01/01.md
> 01/01/02.md
>
> Is there a way to tell pandoc that it should regard the headline levels
> according to the folder structure?
Pandoc can't do this out of the box, but you could use a custom reader
to correct the headings. The below requires the current dev version
(nightly build), but could be rewritten to work with a released version,
too.
The script
- iterates over all input files,
- parses their contents as a separate document,
- shifts headers in each document by the number of subdirs the
respective file is in, and
- concatenates the individual per-file documents into a single
document that is then returned.
Pass the reader file to pandoc via the `--from` parameter.
``` lua
local format = 'markdown+smart'
function Reader (sources, opts)
local doc = pandoc.Pandoc{}
for _, source in ipairs(sources) do
local path_components = #pandoc.path.split(source.name)
-- last path component is the filename
local depth = path_components - 1
doc = doc .. pandoc.read(source, format, opts):walk {
Header = function (h)
h.level = h.level + depth
return h
end
}
end
return doc
end
```
--
Albert Krewinkel
GPG: 8eed e3e2 e8c5 6f18 81fe e836 388d c0b2 1f63 1124
--
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/87ilojbqsp.fsf%40zeitkraut.de.