diff --git a/.gitignore b/.gitignore
index 063df847..8d545de0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@
/demo/server/Rocket.toml
Cargo.lock
.DS_Store
+target
# Editors
*.swp
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 00000000..ca3bda94
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,9 @@
+[workspace]
+members = [
+ "font-renderer",
+ "partitioner",
+ "path-utils",
+ "demo/server",
+ "utils/frontend",
+ "utils/gamma-lut",
+]
diff --git a/demo/client/build/rustdoc-webpack-plugin/index.js b/demo/client/build/rustdoc-webpack-plugin/index.js
index 5fbece99..a34ed592 100644
--- a/demo/client/build/rustdoc-webpack-plugin/index.js
+++ b/demo/client/build/rustdoc-webpack-plugin/index.js
@@ -1,24 +1,27 @@
const {spawn} = require('child_process');
+const process = require('process');
class RustdocPlugin {
constructor(options) {
- this.options = Object.assign({
- directories: [],
- onBeforeSetup: Function.prototype,
- onBeforeAddPartials: Function.prototype,
- onBeforeCompile: Function.prototype,
- onBeforeRender: Function.prototype,
- onBeforeSave: Function.prototype,
- onDone: Function.prototype
- }, options);
+ this.options = Object.assign({directories: [], flags: {}}, options);
}
apply(compiler) {
- compiler.plugin("make", (compilation, done) => {
+ let rustdocFlags = [];
+ for (let key in this.options.flags) {
+ if (this.options.flags.hasOwnProperty(key))
+ rustdocFlags.push("--" + key + "=" + this.options.flags[key]);
+ }
+ rustdocFlags = rustdocFlags.join(" ");
+
+ compiler.plugin('after-compile', (compilation, done) => {
let directoriesLeft = this.options.directories.length;
for (const directory of this.options.directories) {
console.log("Building documentation for `" + directory + "`...");
- const cargo = spawn("cargo", ["doc"], {cwd: directory});
+ const cargo = spawn("cargo", ["doc", "--no-deps"], {
+ cwd: directory,
+ env: Object.assign({RUSTDOCFLAGS: rustdocFlags}, process.env),
+ });
cargo.stdout.setEncoding('utf8');
cargo.stderr.setEncoding('utf8');
cargo.stdout.on('data', data => console.log(data));
diff --git a/demo/client/css/pathfinder-doc.css b/demo/client/css/pathfinder-doc.css
new file mode 100644
index 00000000..f95fd42c
--- /dev/null
+++ b/demo/client/css/pathfinder-doc.css
@@ -0,0 +1,29 @@
+body {
+ padding: 0 !important;
+}
+h1,
+h2,
+h3
+h4,
+.sidebar,
+a.source,
+.search-input,
+.content table :not(code) > a,
+.collapse-toggle,
+ul.item-list > li > .out-of-band {
+ font-family: inherit !important;
+}
+.content {
+ padding: 0 15px 0 0 !important;
+}
+nav.navbar {
+ max-width: inherit !important;
+ border: none !important;
+ margin: 0 !important;
+}
+nav.sidebar {
+ top: auto !important;
+}
+img {
+ max-width: inherit !important;
+}
diff --git a/demo/client/css/pathfinder.css b/demo/client/css/pathfinder.css
index 279e36be..8227034f 100644
--- a/demo/client/css/pathfinder.css
+++ b/demo/client/css/pathfinder.css
@@ -181,6 +181,7 @@ button > svg path {
margin: 2px 0 0;
}
+
/*
* Arrow
*
diff --git a/demo/client/html/doc-before-content.html.hbs b/demo/client/html/doc-before-content.html.hbs
new file mode 100644
index 00000000..b79d2080
--- /dev/null
+++ b/demo/client/html/doc-before-content.html.hbs
@@ -0,0 +1 @@
+{{>partials/navbar.html isDoc=true}}
diff --git a/demo/client/html/doc-header.html.hbs b/demo/client/html/doc-header.html.hbs
new file mode 100644
index 00000000..bc514e4d
--- /dev/null
+++ b/demo/client/html/doc-header.html.hbs
@@ -0,0 +1,2 @@
+{{>partials/header.html}}
+
diff --git a/demo/client/html/partials/navbar.html.hbs b/demo/client/html/partials/navbar.html.hbs
index 0585d7cc..8b61d3d0 100644
--- a/demo/client/html/partials/navbar.html.hbs
+++ b/demo/client/html/partials/navbar.html.hbs
@@ -1,4 +1,4 @@
-