+ The graph from vis.js visualizes graphs and networks with
+ customizable styles.
+
diff --git a/updateversion.js b/updateversion.js
new file mode 100644
index 00000000..99a21d1a
--- /dev/null
+++ b/updateversion.js
@@ -0,0 +1,102 @@
+// Update the version numbers and library sizes in index.md
+
+var fs = require('fs'),
+ zlib = require('zlib');
+
+var VIS = 'vis.js',
+ VIS_MIN = 'vis.min.js',
+ INDEX = 'index.html';
+
+// get development size
+function developmentSize(callback) {
+ fs.readFile(VIS, function (err, data) {
+ if (!err) {
+ var size = Math.round(data.length / 1024) + ' kB';
+ callback(null, size);
+ }
+ else {
+ callback(err);
+ }
+ });
+}
+
+// get (gzipped) production size
+function productionSize(callback) {
+ fs.readFile(VIS_MIN, function (err, data) {
+ if (!err) {
+ zlib.gzip(data, function (err, data) {
+ if (!err) {
+ var size = Math.round(data.length / 1024) + ' kB';
+ callback(null, size)
+ }
+ else {
+ callback(err);
+ }
+ });
+ }
+ else {
+ callback(err);
+ }
+ });
+}
+
+// get version
+function version(callback) {
+ fs.readFile(VIS_MIN, function (err, data) {
+ if (!err) {
+ var match = /@version\s*([\w\.-]*)/i.exec(data);
+ var version = undefined;
+ if (match) {
+ version = match[1];
+ }
+ callback(null, version);
+ }
+ else {
+ callback(err);
+ }
+ });
+}
+
+// update version and library sizes in index.md
+function updateVersion(developmentSize, productionSize, version, callback) {
+ fs.readFile(INDEX, function (err, data) {
+ if (!err) {
+ data = String(data);
+ data = data.replace(/([\w\s]*)<\/span>/g,
+ '' + developmentSize + '');
+
+ data = data.replace(/([\w\s]*)<\/span>/g,
+ '' + productionSize + '');
+
+ data = data.replace(/([\w\.-]*)<\/span>/g,
+ '' + version + '');
+
+ fs.writeFile(INDEX, data, callback);
+ }
+ else {
+ callback(err);
+ }
+ });
+}
+
+developmentSize(function (err, devSize) {
+ console.log('development size: ' + devSize);
+ productionSize(function (err, prodSize) {
+ console.log('production size: ' + prodSize);
+ version(function (err, version) {
+ console.log('version: ' + version);
+ if (devSize && prodSize && version) {
+ updateVersion(devSize, prodSize, version, function (err, res) {
+ if (err) {
+ console.log(err);
+ }
+ else {
+ console.log('done');
+ }
+ });
+ }
+ else {
+ }
+ });
+ });
+});