include Mdtex::load_config
verbose false
desc “Build #{PDF_FILE} into #{File.basename(DEST_DIR)}” task build: File.join(DEST_DIR, PDF_FILE)
directory TEMP_DIR directory DEST_DIR
# Copy SRC_DIR/* (exclude *.md) to TEMP_DIR rule %r{^#{TEMP_DIR}/(?!.+.md$)} => “%{^#{TEMP_DIR},#{SRC_DIR}}p” do |task|
Mdtex::make_target_directory(task.name) puts "copy #{Mdtex.relative_path(task.source)} => #{Mdtex.relative_path(task.name)}" cp_r task.source, task.name
end
# Convert SRC_DIR/*.md to TEMP_DIR/*.tex“ rule %r{#{TEMP_DIR}/.+.tex} => ”%{^#{TEMP_DIR},#{SRC_DIR}}X.md“ do |task|
Mdtex::make_target_directory(task.name) puts "convert #{Mdtex.relative_path(task.source)} => #{Mdtex.relative_path(task.name)}" Mdtex::md2latex(task.source, task.name)
end
# Build DVI_FILE from ROOT_FILE into TEMP_DIR file File.join(TEMP_DIR, DVI_FILE) => [TEMP_DIR, TEX_FILES, MISC_FILES].flatten do |task|
puts "build #{File.basename(task.name)}" cd TEMP_DIR do sh "#{TEX2DVI_COMMAND} #{ROOT_FILE} > /dev/null" if DO_BIBTEX sh "#{BIBTEX_COMMAND} #{AUX_FILE} > /dev/null" sh "#{TEX2DVI_COMMAND} #{ROOT_FILE} > /dev/null" end end
end
# Build PDF_FILE from DVI_FILE into TEMP_DIR file File.join(TEMP_DIR, PDF_FILE) => File.join(TEMP_DIR, DVI_FILE) do |task|
puts "build #{File.basename(task.name)}" cd TEMP_DIR do stderr = capture(:stderr) { sh "#{DVI2PDF_COMMAND} #{DVI_FILE}" } # get file size and number of pages from stderr of dvipdfmx if stderr.split("\n")[1] =~ /\[(\d+)\]$/ puts "#{$1} page#{$1.to_i > 1 ? 's' : ''}, #{stderr.split("\n")[2]}" end end
end
# Copy PDF_FILE to DEST_DIR file File.join(DEST_DIR, PDF_FILE) => [File.join(TEMP_DIR, PDF_FILE), DEST_DIR] do |task|
cp task.prerequisites[0], DEST_DIR
end