module diode.driver

Code Map

module diode.driver;


//! Main focal point of Diode.
class DiodeDriver : Driver
{
public:
	this(settings: Settings) { }
	fn setConfig(source: string, filename: string) { }
	fn addBuiltins() { }
	fn processDoc() { }
	fn addLayout(source: string, filename: string) { }
	fn addInclude(source: string, filename: string) { }
	fn renderFile(source: string, filename: string, output: string) { }
	fn addDoc(source: string, filename: string) { }
	fn addDocTemplate(source: string, filename: string) { }
	fn verbose(fmt: string) { }
	fn info(fmt: string) { }
	fn warning(fmt: string) { }
	fn addInclude(file: File, filename: string) { }
	fn addLayout(file: File, filename: string) { }
	fn addDocTemplate(file: File, filename: string) { }
	fn renderFileTo(file: File, output: string) { }


protected:
	mLayouts: File[string];
	mRoot: Set;
	mSite: Set;
	mVdoc: VdocRoot;
	mModules: Array;
	mEngine: DriverEngine;
	mDocGroup: File;
	mDocModule: File;
	mDocModules: File;
	mVerbose: bool;
	mSiteSettings: json.Value;
	mPrintUndocumented: bool;


protected:
	fn tag(val: Value, parentWithUrl: Parent, prev: Value) { }
	fn setUrl(named: Named, parentWithUrl: Named) { }
	fn getTag(base: string) string { }
	fn getUrl(named: Named, parentWithUrl: Named) string { }
	fn getName(dir: string, base: string) string { }
	fn createFile(source: string, filename: string) File { }
	fn selectType(layout: File, contents: File) Contents { }
	fn getAndCheckExt(base: string) File.Ext { }
	fn getLayout(key: string) File { }
	fn getNeededLayout(file: File) File { }
	fn buildRootEnv() { }
}

class DriverEngine : Engine
{
public:
	file: File;


public:
	this(d: DiodeDriver, root: Set) { }
	fn addInclude(f: File, filename: string) { }
	fn renderFile(f: File, sink: scope (Sink)) { }
	fn handleFilter(n: ir.Node, ident: string, child: Value, args: Value[], sink: scope (Sink)) { }
	fn handleInclude(p: ir.Include, e: Set, sink: scope (Sink)) { }
}

//! A file to be rendered. Used for includes and layouts as well.
class File
{
public:
	enum Ext
	{
		HTML,
		Markdown,
	}


public:
	filename: string;
	fullName: string;
	layout: string;
	header: Header;
	file: ir.File;
	ext: Ext;


public:
	this() { }
	fn getOption(key: string, def: string) string { }
}

//! Special Value for the contents value.
class Contents : Value
{
public:
	engine: DriverEngine;
	file: File;
	env: Set;


public:
	this() { }
	fn toText(n: ir.Node, sink: scope (Sink)) { }
}

//! Special Value for Markdown to HTML contents.
class MarkdownContents : Contents
{
public:
	this() { }
	fn toText(n: ir.Node, sink: scope (Sink)) { }
}

//! Implementation of relative_url filter, appends baseurl.
fn filterRelativeUrl(drv: Driver, str: string) string { }
//! Implementation of absolute_url filter, appends url and baseurl.
fn filterAbsoluteUrl(drv: Driver, str: string) string { }
class DiodeDriver : Driver

Main focal point of Diode.

mTagCounter: u64

Counter for tagging of vdoc objects.

fn filterRelativeUrl(drv: Driver, str: string) string

Implementation of relative_url filter, appends baseurl.

fn filterAbsoluteUrl(drv: Driver, str: string) string

Implementation of absolute_url filter, appends url and baseurl.

class DriverEngine : Engine
class File

A file to be rendered. Used for includes and layouts as well.

class Contents : Value

Special Value for the contents value.

class MarkdownContents : Contents

Special Value for Markdown to HTML contents.