plugins { id "lecture" // for debugging task dependencies // https://plugins.gradle.org/plugin/org.barfuin.gradle.taskinfo // id "org.barfuin.gradle.taskinfo" version "2.0.0" } // Configure the lecture. lecture { // TYPICAL CONFIGURATION // Specify the document targets for this lecture. Defaults to // ["slides", "handout", "notes", "examples"], which are also the // only valid values. Remove any you don't need. docTargets = [ "slides", "handout", // "notes", // "examples", ] // Specify the list of images used (\includegraphics) in the lecture // documents. Defaults to []. These will become dependencies of the // lecture documents. If the images are generated, use the name of // the generated product, NOT the source file (e.g., use "foo.pdf", // not "foo.puml"). // slidesImages = [ // "image1.png", // "image2.pdf", // "image3.pdf", // ] // ADVANCED CONFIGURATION // (i.e., DON'T TOUCH unless you know what you're doing!) // Set the lecture number. This defaults to the numeric prefix of // the lecture folder (e.g., "01_whatever"), but you can override // it if needed. Use a zero-padded string. // lectureNum = "01" // Set the filename prefix for lecture documents. Defaults to "lecture". // Lecture document filenames are formatted as "prefix_whatever.foo" // e.g., "lecture_slides.tex". // docPrefix = "foo" // Set the images directory where included images are kept. Default // "images". A lot of other things derive from this! // imageDir = project.projectDir.dir("foo") // Set the PDFs directory where the numbered versions of the lecture // documents are written. Default "pdfs". // pdfDir = project.projectDir.dir("foo") // Specify the list of files used (\input) in the lecture documents. // Defaults to ["paper_init.tex", "lecturedates.tex", "doc_init.tex"] // (which are generally all REQUIRED). All files in the list will // become dependencies of the lecture documents. // slidesFiles.add("foo.tex") // slidesFiles.addAll(["bar.tex", "baz.tex"]) // Also: // examplesImages: list of images used in the examples document // examplesFiles: list of files used in the examples document // cleanFiles: list of files to be removed by the "clean" targets // cleanDirs: list of directories to be removed by the "clean" targets // latexFlags: list of LaTeX flags } // Typical task to generate images from PlantUML. // By convention the task name is "images.whatever", but it can really be // anything you like. Gradle will find these tasks by class name if need be. // // By default this includes all files matching *.pu, *.puml, or *.plantuml. // You can ADD files, e.g., include "foo.uml", "*.pml". // You can EXCLUDE files, e.g., exclude "bar.pu", "*.plantuml". // You can REPLACE the defaults, e.g., setIncludes(["foo.uml", "*.pml"]). // (There is also a setExcludes() but that defaults to empty anyway.) // Note that the argument is a list value. // // Other options: // outputFormat can be one of "pdf", "png", or "svg" // add "salt = true" if there are Salt diagrams // sourceDir and outputDir default to lecture.imageDir but can be overidden def pu2pdf = tasks.register("images.plantuml2pdf", nz.stanger.lecture.GenerateImageFromPlantumlTask) { outputFormat = "pdf" description = "Generate PDF from PlantUML." // Uncomment the following line if there are any Salt diagrams. // salt = true } // Typical task to generate images from SVG. The name is again arbitrary. // By default this includes all files matching *.svg, You can include and // exclude as outlined above. // // Other options: // outputFormat can be one of "pdf" or "png" def svg2pdf = tasks.register("images.svg2pdf", nz.stanger.lecture.GenerateImageFromSvgTask) { outputFormat = "pdf" description = "Generate PDF from SVG." // If you have multiple image tasks, you have to specify their order to // avoid "implicit dependency" errors. It usually doesn't matter what // order they run in, but the order must be specified. // mustRunAfter pu2pdf }