mirror of https://github.com/c3d2/slidenado/
moar generation goodness
This commit is contained in:
parent
642833bbab
commit
86fef07844
7
Makefile
7
Makefile
|
@ -1,5 +1,6 @@
|
||||||
ALL: $(patsubst lectures/%.yaml, lectures/%, $(wildcard lectures/*.yaml))
|
ALL: $(patsubst dates/%.yaml, dates/%, $(wildcard dates/*.yaml))
|
||||||
|
|
||||||
lectures/%: lectures/%.yaml
|
dates/%: dates/%.yaml
|
||||||
mkdir $@
|
mkdir -p $@
|
||||||
./generate.rb $< $@
|
./generate.rb $< $@
|
||||||
|
make -C $@
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
\title{Digitale Selbstverteidigung}
|
|
||||||
\author{\small Marius \\\large Chaos Computer Club Dresden}
|
|
||||||
\date{22.06.2016}
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
title: Digitale Selbstverteidigung
|
||||||
|
author: Marius
|
||||||
|
organization: Chaos Computer Club Dresden
|
||||||
|
date: 22.06.2016
|
||||||
|
|
||||||
|
deck: digitale-selbstverteidigung.yaml
|
32
generate.rb
32
generate.rb
|
@ -1,19 +1,29 @@
|
||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
require 'yaml'
|
require 'yaml'
|
||||||
|
require 'erb'
|
||||||
|
|
||||||
|
# Load files
|
||||||
lecture_path = ARGV[0]
|
lecture_path = ARGV[0]
|
||||||
lecture = YAML::load_file lecture_path
|
lecture = YAML.load_file lecture_path
|
||||||
sections = YAML::load_file File.join(File.dirname(lecture_path), lecture['sections'])
|
deck = YAML.load_file File.join("decks", lecture['deck'])
|
||||||
section_files = []
|
|
||||||
sections.each do |name, files|
|
# Convert pathes to be relative to outdir_path
|
||||||
p :name => name, :files => files
|
deck.each do |name, files|
|
||||||
section_files.push *files
|
files.map! do |f|
|
||||||
|
File.join("..", "..", "content", f)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Prepare flat list of included .tex files
|
||||||
|
deck_files = []
|
||||||
|
deck.each do |name, files|
|
||||||
|
deck_files.push *files
|
||||||
end
|
end
|
||||||
|
|
||||||
outdir_path = ARGV[1]
|
outdir_path = ARGV[1]
|
||||||
# TODO: convert to erb as well?
|
makefile_template = ERB.new(File.read("makefile_template.erb"))
|
||||||
File.write File.join(outdir_path, "Makefile"), <<EOF
|
File.write File.join(outdir_path, "Makefile"), makefile_template.result
|
||||||
slides.pdf: slides.tex #{section_files.join " "}
|
|
||||||
\tpdflatex $<
|
latex_template = ERB.new(File.read("latex_template.tex.erb"))
|
||||||
EOF
|
File.write File.join(outdir_path, "slides.tex"), latex_template.result
|
||||||
|
|
|
@ -28,11 +28,11 @@
|
||||||
\begin{document}
|
\begin{document}
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
<% @deck.each do |section, snippets| %>
|
<% deck.each do |section, snippets| %>
|
||||||
\section{<%= section %>}
|
\section{<%= section %>}
|
||||||
\subsection{}
|
\subsection{}
|
||||||
<% snippets.each do |snippet| %>
|
<% snippets.each do |snippet| %>
|
||||||
\include{<%= snippet %>}
|
\input{<%= snippet.sub(/\.tex$/, "") %>}
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
slides.pdf: slides.tex <%= deck_files.join " " %>
|
||||||
|
pdflatex $<
|
Loading…
Reference in New Issue