mirror of
https://github.com/abrendan/MicDropMessages.git
synced 2025-08-25 22:12:02 +02:00
Initial commit
This commit is contained in:
131
node_modules/server/Gruntfile.js
generated
vendored
Normal file
131
node_modules/server/Gruntfile.js
generated
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
const filters = require("./docs/filters.js");
|
||||
const files = require("./docs/files.js");
|
||||
const sass = require("node-sass");
|
||||
|
||||
const fs = require("fs");
|
||||
|
||||
function extract(src) {
|
||||
const data = {};
|
||||
const readme = fs.readFileSync(src + "README.md", "utf-8");
|
||||
data.title = (readme.match(/^\#\s(.+)/gm) || []).map(one =>
|
||||
one.replace(/^\#\s/, "")
|
||||
)[0];
|
||||
if (!data.title)
|
||||
throw new Error("Your file " + file + "/README.md has no h1 in markdown");
|
||||
data.sections = (readme.match(/^\#\#[\s](.+)/gm) || []).map(one =>
|
||||
one.replace(/^\#\#\s/, "")
|
||||
);
|
||||
return data;
|
||||
}
|
||||
|
||||
function getInfo(src) {
|
||||
delete require.cache[require.resolve(src)];
|
||||
const info = {};
|
||||
if (/documentation/.test(src)) {
|
||||
const base = { title: "Introduction", url: "/documentation/" };
|
||||
info.introduction = Object.assign({}, extract(src), base);
|
||||
}
|
||||
return require(src).reduce((obj, one) => {
|
||||
return Object.assign({}, obj, { [one]: extract(src + one + "/") });
|
||||
}, info);
|
||||
}
|
||||
|
||||
// Generate the documentation final:origin pairs
|
||||
const transform = dir =>
|
||||
files(__dirname + "/" + dir)
|
||||
.filter(str => /\.html\.pug$/.test(str))
|
||||
.reduce((docs, one) => {
|
||||
docs[one.replace(/\.pug$/, "")] = one;
|
||||
return docs;
|
||||
}, {});
|
||||
|
||||
// This builds the library itself
|
||||
module.exports = function(grunt) {
|
||||
// Configuration
|
||||
grunt.initConfig({
|
||||
bytesize: {
|
||||
all: {
|
||||
src: ["docs/assets/style.min.css", "docs/assets/javascript.js"]
|
||||
}
|
||||
},
|
||||
|
||||
jshint: {
|
||||
options: { esversion: 6 },
|
||||
src: ["Gruntfile.js", "server.js", "src"]
|
||||
},
|
||||
|
||||
// Launch a small static server
|
||||
connect: {
|
||||
server: {
|
||||
options: {
|
||||
port: 3000,
|
||||
hostname: "*",
|
||||
base: "docs",
|
||||
livereload: true,
|
||||
useAvailablePort: false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
sass: {
|
||||
dist: {
|
||||
options: { implementation: sass, outputStyle: "compressed" },
|
||||
files: { "docs/assets/style.min.css": "docs/assets/style.scss" }
|
||||
}
|
||||
},
|
||||
|
||||
pug: {
|
||||
compile: {
|
||||
options: {
|
||||
client: false,
|
||||
data: file => {
|
||||
return {
|
||||
require,
|
||||
file,
|
||||
tutorials: getInfo("./docs/tutorials/"),
|
||||
documentation: getInfo("./docs/documentation/"),
|
||||
slug: str => str.toLowerCase().replace(/[^\w]+/g, "-")
|
||||
};
|
||||
},
|
||||
filters: filters
|
||||
},
|
||||
files: transform("docs")
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
scripts: {
|
||||
files: [
|
||||
"Gruntfile.js",
|
||||
|
||||
// Docs
|
||||
"docs/**/*.*",
|
||||
"README.md",
|
||||
|
||||
// For testing:
|
||||
"server.js",
|
||||
"src/**/*.js",
|
||||
|
||||
// To bump versions
|
||||
"package.js"
|
||||
],
|
||||
tasks: ["default"],
|
||||
options: {
|
||||
spawn: false,
|
||||
livereload: true
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks("grunt-contrib-connect");
|
||||
grunt.loadNpmTasks("grunt-contrib-jshint");
|
||||
grunt.loadNpmTasks("grunt-contrib-pug");
|
||||
grunt.loadNpmTasks("grunt-contrib-watch");
|
||||
grunt.loadNpmTasks("grunt-bytesize");
|
||||
grunt.loadNpmTasks("grunt-sass");
|
||||
|
||||
grunt.registerTask("build", ["sass", "pug"]);
|
||||
grunt.registerTask("test", ["bytesize"]);
|
||||
grunt.registerTask("default", ["build", "test", "connect"]);
|
||||
};
|
Reference in New Issue
Block a user