legends5e/build_epub
2024-02-21 21:38:10 +11:00

38 lines
840 B
Ruby
Executable file

#!/usr/bin/env ruby
require 'pathname'
chapters = %w(
Races
Classes
Characterizations
Gameplay
Equipment
Gamemastering
Spells\ (Alt)
Treasure\ (Alt)
Monsters\ (Alt)
)
# chapter = h1
# file = h2
`rm chapters/*.md`
chapters.each_with_index do |chapter, i|
s = "# #{chapter.split.first}\n\n" +
Pathname(chapter).children.sort.map do |f|
data = f.read
data[/^#+ /] = '' # remove initial heading (it will be re-added as h2)
hs = data.scan(/^#+ /).sort.uniq.map {|hdg| hdg.size - 1 }
(hs.length - 1).downto(0) do |h|
data.gsub! /^\#{#{hs[h]}}/, '#' * (h + 3)
end
"\n\n## " + data
end.join
File.write "chapters/#{i+1}_#{chapter.split.first}.md", s
end
pandoc_cmd = "pandoc -o Dungeons_and_Dragons_SRD_5.1.epub title.txt chapters/*"
puts pandoc_cmd
system pandoc_cmd