diff options
Diffstat (limited to 'lib/olddoc/merge.rb')
-rw-r--r-- | lib/olddoc/merge.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/olddoc/merge.rb b/lib/olddoc/merge.rb new file mode 100644 index 0000000..da5bd07 --- /dev/null +++ b/lib/olddoc/merge.rb @@ -0,0 +1,26 @@ +# Copyright (C) 2015, all contributors <olddoc-public@80x24.org> +# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt) + +class Olddoc::Merge + def initialize(opts) + @merge_html = opts["merge_html"] || {} + end + + # FIXME: generate manpages directly from rdoc instead of relying on + # pandoc to do it via markdown. + def run + @merge_html.each do |file, source| + rdoc_html = "doc/#{file}.html" + fragment = File.read(source) + File.open(rdoc_html, "a+") { |fp| + html = fp.read + if html.sub!(%r{\s*<p>\s*olddoc_placeholder\s*</p>\s*}sm, fragment) + fp.truncate(0) + fp.write(html) + else + warn "olddoc_placeholder not found in #{rdoc_html}" + end + } + end + end +end |