View on GitHub

CoWeM

Static site generator for course websites, based on markdown

CoWeM: Course Websites from Markdown

CoWeM is a static site generator for for building course websites, including lecture notes, slides & organizational pages, from Markdown documents.

CoWeM is a small collection of Gradle plug-ins and associated support libraries.

CoWeM has been used to support both traditional face-to-face and web courses, examples of which can be found here.

The primary input document format for course content is Markdown – specifically multimarkdown.

Course content can be portrayed in various HTML-based formats, including single and multi-page documents and slides. Conditional text allows a single Markdown document to serve as the source for both a full set of lecture notes with explanations and a sparser set of slides. Support is provided for automatic pretty-printing of program source code and for the rendering of mathematics from LaTeX expressions.

This content can be deployed as an ordinary website or as a SCORM package suitable for importing into Blackboard or other Learning Management Systems.

Project Status

Usage

settings.gradle

pluginManagement {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        ivy { // Use my own CS dept repo
            url 'https://www.cs.odu.edu/~zeil/ivyrepo'
        }
        mavenCentral()
    }
}

def includeFrom = {
    dir ->  new File(rootDir,dir).eachFileRecurse { f ->
        if ( f.name == "build.gradle" ) {
            String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
            String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
            include projectName
        }
   }
}

// Don't touch anything above this line

rootProject.name = 'CS199'   // any short descriptive word or phrase - no blanks  


// The following lines establish the course groups.
includeFrom('Directory')
includeFrom('Public')
includeFrom('Protected')

build.gradle

plugins {
     id 'edu.odu.cs.cowem.course' version '1.19.0'
  }



course {
	courseName        = 'CS199'
	courseTitle       = 'Introduction to Software Testing'
	semester          = 'Spring 2021'
	sem               = 's21'
	instructor        = 'John Q. Instructor'
	email             = 'jqins001@whatever.edu'
	copyright         = '2015-2021, Whatever Univ.'
	baseURL           = 'https://whatever.edu/cs350/s21/'
	homeURL           = '../../Directory/outline/index.html'
	deployDestination = '/home/jqins001/secure_html/cs199/s21/'
	sshDeployURL      = 'jqins001@www.whatever.edu:/home/jqins001/secure_html/cs199/s21/'
    delivery          = 'online'
}

For more details, refer to the User Reference Manual