vault backup: 2023-04-16 20:30:09
19
.obsidian/community-plugins.json
vendored
@@ -4,5 +4,22 @@
|
|||||||
"better-pdf-plugin",
|
"better-pdf-plugin",
|
||||||
"table-editor-obsidian",
|
"table-editor-obsidian",
|
||||||
"obsidian-plugin-toc",
|
"obsidian-plugin-toc",
|
||||||
"obsidian-dynamic-toc"
|
"obsidian-dynamic-toc",
|
||||||
|
"obsidian-livesync",
|
||||||
|
"obsidian-advanced-slides",
|
||||||
|
"calendar",
|
||||||
|
"obsidian-completr",
|
||||||
|
"code-block-copy",
|
||||||
|
"drawio-obsidian",
|
||||||
|
"obsidian-dictionary-plugin",
|
||||||
|
"cm-editor-syntax-highlight-obsidian",
|
||||||
|
"obsidian-excel-to-markdown-table",
|
||||||
|
"execute-code",
|
||||||
|
"obsidian-icons-plugin",
|
||||||
|
"obsidian-image-toolkit",
|
||||||
|
"juggl",
|
||||||
|
"obsidian-languagetool-plugin",
|
||||||
|
"nldates-obsidian",
|
||||||
|
"url-into-selection",
|
||||||
|
"quick-latex"
|
||||||
]
|
]
|
||||||
4
.obsidian/core-plugins-migration.json
vendored
@@ -12,10 +12,10 @@
|
|||||||
"templates": true,
|
"templates": true,
|
||||||
"note-composer": true,
|
"note-composer": true,
|
||||||
"command-palette": true,
|
"command-palette": true,
|
||||||
"slash-command": false,
|
"slash-command": true,
|
||||||
"editor-status": true,
|
"editor-status": true,
|
||||||
"starred": true,
|
"starred": true,
|
||||||
"markdown-importer": false,
|
"markdown-importer": true,
|
||||||
"zk-prefixer": false,
|
"zk-prefixer": false,
|
||||||
"random-note": false,
|
"random-note": false,
|
||||||
"outline": true,
|
"outline": true,
|
||||||
|
|||||||
2
.obsidian/core-plugins.json
vendored
@@ -12,8 +12,10 @@
|
|||||||
"templates",
|
"templates",
|
||||||
"note-composer",
|
"note-composer",
|
||||||
"command-palette",
|
"command-palette",
|
||||||
|
"slash-command",
|
||||||
"editor-status",
|
"editor-status",
|
||||||
"starred",
|
"starred",
|
||||||
|
"markdown-importer",
|
||||||
"outline",
|
"outline",
|
||||||
"word-count",
|
"word-count",
|
||||||
"file-recovery"
|
"file-recovery"
|
||||||
|
|||||||
10
.obsidian/graph.json
vendored
@@ -12,11 +12,11 @@
|
|||||||
"textFadeMultiplier": 0,
|
"textFadeMultiplier": 0,
|
||||||
"nodeSizeMultiplier": 1,
|
"nodeSizeMultiplier": 1,
|
||||||
"lineSizeMultiplier": 1,
|
"lineSizeMultiplier": 1,
|
||||||
"collapse-forces": false,
|
"collapse-forces": true,
|
||||||
"centerStrength": 1,
|
"centerStrength": 0.518713248970312,
|
||||||
"repelStrength": 0,
|
"repelStrength": 10,
|
||||||
"linkStrength": 0,
|
"linkStrength": 1,
|
||||||
"linkDistance": 500,
|
"linkDistance": 250,
|
||||||
"scale": 1,
|
"scale": 1,
|
||||||
"close": false
|
"close": false
|
||||||
}
|
}
|
||||||
19
.obsidian/hotkeys.json
vendored
@@ -1 +1,18 @@
|
|||||||
{}
|
{
|
||||||
|
"obsidian-git:commit": [
|
||||||
|
{
|
||||||
|
"modifiers": [
|
||||||
|
"Alt"
|
||||||
|
],
|
||||||
|
"key": "C"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"obsidian-git:push2": [
|
||||||
|
{
|
||||||
|
"modifiers": [
|
||||||
|
"Alt"
|
||||||
|
],
|
||||||
|
"key": "P"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -2,73 +2,73 @@
|
|||||||
|
|
||||||
var obsidian = require('obsidian');
|
var obsidian = require('obsidian');
|
||||||
|
|
||||||
/*! *****************************************************************************
|
/*! *****************************************************************************
|
||||||
Copyright (c) Microsoft Corporation.
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted.
|
purpose with or without fee is hereby granted.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
***************************************************************************** */
|
***************************************************************************** */
|
||||||
/* global Reflect, Promise */
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
var extendStatics = function(d, b) {
|
var extendStatics = function(d, b) {
|
||||||
extendStatics = Object.setPrototypeOf ||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||||
return extendStatics(d, b);
|
return extendStatics(d, b);
|
||||||
};
|
};
|
||||||
|
|
||||||
function __extends(d, b) {
|
function __extends(d, b) {
|
||||||
if (typeof b !== "function" && b !== null)
|
if (typeof b !== "function" && b !== null)
|
||||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||||
extendStatics(d, b);
|
extendStatics(d, b);
|
||||||
function __() { this.constructor = d; }
|
function __() { this.constructor = d; }
|
||||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
}
|
}
|
||||||
|
|
||||||
function __awaiter(thisArg, _arguments, P, generator) {
|
function __awaiter(thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function __generator(thisArg, body) {
|
function __generator(thisArg, body) {
|
||||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||||
function step(op) {
|
function step(op) {
|
||||||
if (f) throw new TypeError("Generator is already executing.");
|
if (f) throw new TypeError("Generator is already executing.");
|
||||||
while (_) try {
|
while (_) try {
|
||||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||||
switch (op[0]) {
|
switch (op[0]) {
|
||||||
case 0: case 1: t = op; break;
|
case 0: case 1: t = op; break;
|
||||||
case 4: _.label++; return { value: op[1], done: false };
|
case 4: _.label++; return { value: op[1], done: false };
|
||||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||||
default:
|
default:
|
||||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||||
if (t[2]) _.ops.pop();
|
if (t[2]) _.ops.pop();
|
||||||
_.trys.pop(); continue;
|
_.trys.pop(); continue;
|
||||||
}
|
}
|
||||||
op = body.call(thisArg, _);
|
op = body.call(thisArg, _);
|
||||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var codemirror = CodeMirror;
|
var codemirror = CodeMirror;
|
||||||
@@ -2,71 +2,71 @@
|
|||||||
|
|
||||||
var obsidian = require('obsidian');
|
var obsidian = require('obsidian');
|
||||||
|
|
||||||
/*! *****************************************************************************
|
/*! *****************************************************************************
|
||||||
Copyright (c) Microsoft Corporation.
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted.
|
purpose with or without fee is hereby granted.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
***************************************************************************** */
|
***************************************************************************** */
|
||||||
/* global Reflect, Promise */
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
var extendStatics = function(d, b) {
|
var extendStatics = function(d, b) {
|
||||||
extendStatics = Object.setPrototypeOf ||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||||
return extendStatics(d, b);
|
return extendStatics(d, b);
|
||||||
};
|
};
|
||||||
|
|
||||||
function __extends(d, b) {
|
function __extends(d, b) {
|
||||||
extendStatics(d, b);
|
extendStatics(d, b);
|
||||||
function __() { this.constructor = d; }
|
function __() { this.constructor = d; }
|
||||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
}
|
}
|
||||||
|
|
||||||
function __awaiter(thisArg, _arguments, P, generator) {
|
function __awaiter(thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function __generator(thisArg, body) {
|
function __generator(thisArg, body) {
|
||||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||||
function step(op) {
|
function step(op) {
|
||||||
if (f) throw new TypeError("Generator is already executing.");
|
if (f) throw new TypeError("Generator is already executing.");
|
||||||
while (_) try {
|
while (_) try {
|
||||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||||
switch (op[0]) {
|
switch (op[0]) {
|
||||||
case 0: case 1: t = op; break;
|
case 0: case 1: t = op; break;
|
||||||
case 4: _.label++; return { value: op[1], done: false };
|
case 4: _.label++; return { value: op[1], done: false };
|
||||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||||
default:
|
default:
|
||||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||||
if (t[2]) _.ops.pop();
|
if (t[2]) _.ops.pop();
|
||||||
_.trys.pop(); continue;
|
_.trys.pop(); continue;
|
||||||
}
|
}
|
||||||
op = body.call(thisArg, _);
|
op = body.call(thisArg, _);
|
||||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var excludeLangs = [
|
var excludeLangs = [
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"id": "drawio-obsidian",
|
"id": "drawio-obsidian",
|
||||||
"name": "Diagrams",
|
"name": "Diagrams",
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
"minAppVersion": "0.9.12",
|
"minAppVersion": "0.9.12",
|
||||||
"description": "Draw.io diagrams for Obsidian. This plugin introduces diagrams that can be included within notes or as stand-alone files. Diagrams are created as SVG files (although .drawio extensions are also supported).",
|
"description": "Draw.io diagrams for Obsidian. This plugin introduces diagrams that can be included within notes or as stand-alone files. Diagrams are created as SVG files (although .drawio extensions are also supported).",
|
||||||
"author": "Sam Greenhalgh",
|
"author": "Sam Greenhalgh",
|
||||||
"authorUrl": "https://www.radicalresearch.co.uk/",
|
"authorUrl": "https://www.radicalresearch.co.uk/",
|
||||||
"isDesktopOnly": true
|
"isDesktopOnly": true
|
||||||
}
|
}
|
||||||
@@ -1,28 +1,28 @@
|
|||||||
.progress-bar-line {
|
.progress-bar-line {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
left: 0;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-bar-indicator {
|
.progress-bar-indicator {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
margin: 0 10%;
|
margin: 0 10%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.diagram-view svg {
|
.diagram-view svg {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.diagram-view svg a:link,
|
.diagram-view svg a:link,
|
||||||
.diagram-view svg a:visited {
|
.diagram-view svg a:visited {
|
||||||
color: var(--interactive-accent, #00f);
|
color: var(--interactive-accent, #00f);
|
||||||
filter: drop-shadow(
|
filter: drop-shadow(
|
||||||
0 0 3px rgba(var(--interactive-accent-rgb, "0, 0, 255"), 0.5)
|
0 0 3px rgba(var(--interactive-accent-rgb, "0, 0, 255"), 0.5)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
.diagram-view svg a:hover {
|
.diagram-view svg a:hover {
|
||||||
color: var(--interactive-accent-hover, #00f);
|
color: var(--interactive-accent-hover, #00f);
|
||||||
filter: drop-shadow(0 0 3px var(--interactive-accent-hover, #00f));
|
filter: drop-shadow(0 0 3px var(--interactive-accent-hover, #00f));
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"id": "execute-code",
|
"id": "execute-code",
|
||||||
"name": "Execute Code",
|
"name": "Execute Code",
|
||||||
"version": "1.8.0",
|
"version": "1.8.0",
|
||||||
"minAppVersion": "0.12.0",
|
"minAppVersion": "0.12.0",
|
||||||
"description": "Allows to execute code snippets within a note. Supported programming languages: C, CPP, Dart, Golang, Groovy, Kotlin, Java, JavaScript, TypeScript, Lean, Lua, CSharp, Prolog, Rust, Python, R, Ruby, Wolfram Mathematica, Haskell, Scala, Racket, F#, Batch, Shell & Powershell.",
|
"description": "Allows to execute code snippets within a note. Supported programming languages: C, CPP, Dart, Golang, Groovy, Kotlin, Java, JavaScript, TypeScript, Lean, Lua, CSharp, Prolog, Rust, Python, R, Ruby, Wolfram Mathematica, Haskell, Scala, Racket, F#, Batch, Shell & Powershell.",
|
||||||
"author": "twibiral",
|
"author": "twibiral",
|
||||||
"authorUrl": "https://www.github.com/twibiral",
|
"authorUrl": "https://www.github.com/twibiral",
|
||||||
"isDesktopOnly": true
|
"isDesktopOnly": true
|
||||||
}
|
}
|
||||||
@@ -1,218 +1,218 @@
|
|||||||
/* @settings
|
/* @settings
|
||||||
|
|
||||||
name: Execute Code Settings
|
name: Execute Code Settings
|
||||||
id: obsidian-execute-code
|
id: obsidian-execute-code
|
||||||
settings:
|
settings:
|
||||||
-
|
-
|
||||||
id: color-section-title
|
id: color-section-title
|
||||||
title: Color Settings
|
title: Color Settings
|
||||||
type: heading
|
type: heading
|
||||||
level: 3
|
level: 3
|
||||||
-
|
-
|
||||||
id: use-custom-output-color
|
id: use-custom-output-color
|
||||||
title: Custom Code Output Color
|
title: Custom Code Output Color
|
||||||
description: Use a custom color for the output of code blocks
|
description: Use a custom color for the output of code blocks
|
||||||
type: class-toggle
|
type: class-toggle
|
||||||
default: false
|
default: false
|
||||||
-
|
-
|
||||||
id: code-output-text-color
|
id: code-output-text-color
|
||||||
title: Output Text Color
|
title: Output Text Color
|
||||||
type: variable-color
|
type: variable-color
|
||||||
format: hex
|
format: hex
|
||||||
opacity: false
|
opacity: false
|
||||||
default: '#FFFFFF'
|
default: '#FFFFFF'
|
||||||
-
|
-
|
||||||
id: use-custom-error-color
|
id: use-custom-error-color
|
||||||
title: Custom Code Error Color
|
title: Custom Code Error Color
|
||||||
description: Use a custom color for the error output of code blocks
|
description: Use a custom color for the error output of code blocks
|
||||||
type: class-toggle
|
type: class-toggle
|
||||||
default: false
|
default: false
|
||||||
-
|
-
|
||||||
id: code-error-text-color
|
id: code-error-text-color
|
||||||
title: Error Text Color
|
title: Error Text Color
|
||||||
type: variable-color
|
type: variable-color
|
||||||
format: hex
|
format: hex
|
||||||
opacity: false
|
opacity: false
|
||||||
default: '#FF0000'
|
default: '#FF0000'
|
||||||
*/
|
*/
|
||||||
|
|
||||||
button.run-code-button {
|
button.run-code-button {
|
||||||
display: none;
|
display: none;
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
padding: 5px 20px 5px 20px;
|
padding: 5px 20px 5px 20px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.clear-button {
|
button.clear-button {
|
||||||
display: none;
|
display: none;
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
padding: 5px 20px 5px 20px;
|
padding: 5px 20px 5px 20px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre:hover .run-code-button, pre:hover .clear-button {
|
pre:hover .run-code-button, pre:hover .clear-button {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre:hover .run-button-disabled, pre:hover .clear-button-disabled {
|
pre:hover .run-button-disabled, pre:hover .clear-button-disabled {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.run-button-disabled, .clear-button-disabled {
|
.run-button-disabled, .clear-button-disabled {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre:hover code.language-output {
|
pre:hover code.language-output {
|
||||||
margin-bottom: 28px;
|
margin-bottom: 28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
:not(.use-custom-output-color) code.language-output span.stdout {
|
:not(.use-custom-output-color) code.language-output span.stdout {
|
||||||
color: var(--text-muted) !important;
|
color: var(--text-muted) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.use-custom-output-color code.language-output span.stdout {
|
.use-custom-output-color code.language-output span.stdout {
|
||||||
color: var(--code-output-text-color) !important;
|
color: var(--code-output-text-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
:not(.use-custom-error-color) code.language-output span.stderr {
|
:not(.use-custom-error-color) code.language-output span.stderr {
|
||||||
color: red !important;
|
color: red !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.use-custom-error-color code.language-output span.stderr {
|
.use-custom-error-color code.language-output span.stderr {
|
||||||
color: var(--code-error-text-color) !important;
|
color: var(--code-error-text-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
code.language-output hr {
|
code.language-output hr {
|
||||||
margin: 0 0 1em;
|
margin: 0 0 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-code-input-box textarea, .settings-code-input-box input {
|
.settings-code-input-box textarea, .settings-code-input-box input {
|
||||||
min-width: 400px;
|
min-width: 400px;
|
||||||
min-height: 100px;
|
min-height: 100px;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
resize: vertical;
|
resize: vertical;
|
||||||
}
|
}
|
||||||
|
|
||||||
input.interactive-stdin {
|
input.interactive-stdin {
|
||||||
font: inherit;
|
font: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view h3 {
|
.manage-executors-view h3 {
|
||||||
margin: 1em;
|
margin: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view ul {
|
.manage-executors-view ul {
|
||||||
margin: 1em;
|
margin: 1em;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view ul li {
|
.manage-executors-view ul li {
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
background: var(--background-primary-alt);
|
background: var(--background-primary-alt);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
display: grid;
|
display: grid;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view small {
|
.manage-executors-view small {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 0.1ch;
|
letter-spacing: 0.1ch;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view .filename {
|
.manage-executors-view .filename {
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view li button {
|
.manage-executors-view li button {
|
||||||
grid-column: 2;
|
grid-column: 2;
|
||||||
grid-row: 1 / 3;
|
grid-row: 1 / 3;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0.25em;
|
padding: 0.25em;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
background: none;
|
background: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view li button:hover {
|
.manage-executors-view li button:hover {
|
||||||
background: var(--background-tertiary);
|
background: var(--background-tertiary);
|
||||||
color: var(--icon-color-hover);
|
color: var(--icon-color-hover);
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view > div {
|
.manage-executors-view > div {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.manage-executors-view .empty-state {
|
.manage-executors-view .empty-state {
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.has-run-code-button {
|
.has-run-code-button {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.has-run-code-button pre {
|
.has-run-code-button pre {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.load-state-indicator {
|
.load-state-indicator {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0.1em;
|
top: 0.1em;
|
||||||
left: -2em;
|
left: -2em;
|
||||||
width: 2em;
|
width: 2em;
|
||||||
height: 2em;
|
height: 2em;
|
||||||
background: var(--background-primary-alt);
|
background: var(--background-primary-alt);
|
||||||
border-top-left-radius: 4px;
|
border-top-left-radius: 4px;
|
||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
color: var(--tx1);
|
color: var(--tx1);
|
||||||
transform: translateX(2em);
|
transform: translateX(2em);
|
||||||
transition: transform 0.25s, opacity 0.25s;
|
transition: transform 0.25s, opacity 0.25s;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.load-state-indicator svg {
|
.load-state-indicator svg {
|
||||||
width: 1.5em;
|
width: 1.5em;
|
||||||
height: 1.5em;
|
height: 1.5em;
|
||||||
margin: 0.25em;
|
margin: 0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.load-state-indicator.visible {
|
.load-state-indicator.visible {
|
||||||
transform: translateX(0);
|
transform: translateX(0);
|
||||||
transform: translateX(var(--folding-offset, 0));
|
transform: translateX(var(--folding-offset, 0));
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.load-state-indicator::before {
|
.load-state-indicator::before {
|
||||||
content: "";
|
content: "";
|
||||||
box-shadow: -1em 0 1em -0.75em inset var(--background-modifier-box-shadow);
|
box-shadow: -1em 0 1em -0.75em inset var(--background-modifier-box-shadow);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
transform: translateX(-2em);
|
transform: translateX(-2em);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: transform 0.25s, opacity 0.25s;
|
transition: transform 0.25s, opacity 0.25s;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.load-state-indicator.visible::before {
|
.load-state-indicator.visible::before {
|
||||||
transform: translateX(0);
|
transform: translateX(0);
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
@@ -6,83 +6,83 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|||||||
|
|
||||||
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
|
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
|
||||||
|
|
||||||
/*! *****************************************************************************
|
/*! *****************************************************************************
|
||||||
Copyright (c) Microsoft Corporation.
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted.
|
purpose with or without fee is hereby granted.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
***************************************************************************** */
|
***************************************************************************** */
|
||||||
/* global Reflect, Promise */
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
var extendStatics = function(d, b) {
|
var extendStatics = function(d, b) {
|
||||||
extendStatics = Object.setPrototypeOf ||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||||
return extendStatics(d, b);
|
return extendStatics(d, b);
|
||||||
};
|
};
|
||||||
|
|
||||||
function __extends(d, b) {
|
function __extends(d, b) {
|
||||||
if (typeof b !== "function" && b !== null)
|
if (typeof b !== "function" && b !== null)
|
||||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||||
extendStatics(d, b);
|
extendStatics(d, b);
|
||||||
function __() { this.constructor = d; }
|
function __() { this.constructor = d; }
|
||||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
}
|
}
|
||||||
|
|
||||||
function __awaiter(thisArg, _arguments, P, generator) {
|
function __awaiter(thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function __generator(thisArg, body) {
|
function __generator(thisArg, body) {
|
||||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||||
function step(op) {
|
function step(op) {
|
||||||
if (f) throw new TypeError("Generator is already executing.");
|
if (f) throw new TypeError("Generator is already executing.");
|
||||||
while (_) try {
|
while (_) try {
|
||||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||||
switch (op[0]) {
|
switch (op[0]) {
|
||||||
case 0: case 1: t = op; break;
|
case 0: case 1: t = op; break;
|
||||||
case 4: _.label++; return { value: op[1], done: false };
|
case 4: _.label++; return { value: op[1], done: false };
|
||||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||||
default:
|
default:
|
||||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||||
if (t[2]) _.ops.pop();
|
if (t[2]) _.ops.pop();
|
||||||
_.trys.pop(); continue;
|
_.trys.pop(); continue;
|
||||||
}
|
}
|
||||||
op = body.call(thisArg, _);
|
op = body.call(thisArg, _);
|
||||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function __spreadArray(to, from, pack) {
|
function __spreadArray(to, from, pack) {
|
||||||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
||||||
if (ar || !(i in from)) {
|
if (ar || !(i in from)) {
|
||||||
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
||||||
ar[i] = from[i];
|
ar[i] = from[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return to.concat(ar || Array.prototype.slice.call(from));
|
return to.concat(ar || Array.prototype.slice.call(from));
|
||||||
}
|
}
|
||||||
|
|
||||||
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"id": "nldates-obsidian",
|
"id": "nldates-obsidian",
|
||||||
"name": "Natural Language Dates",
|
"name": "Natural Language Dates",
|
||||||
"description": "Create date-links based on natural language",
|
"description": "Create date-links based on natural language",
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"author": "Argentina Ortega Sainz",
|
"author": "Argentina Ortega Sainz",
|
||||||
"authorUrl": "https://argentinaos.com/",
|
"authorUrl": "https://argentinaos.com/",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"minAppVersion": "0.13.0"
|
"minAppVersion": "0.13.0"
|
||||||
}
|
}
|
||||||
@@ -1,160 +1,160 @@
|
|||||||
# Chalkboard
|
# Chalkboard
|
||||||
|
|
||||||
With this plugin you can add a chalkboard to reveal.js. The plugin provides two possibilities to include handwritten notes to your presentation:
|
With this plugin you can add a chalkboard to reveal.js. The plugin provides two possibilities to include handwritten notes to your presentation:
|
||||||
|
|
||||||
- you can make notes directly on the slides, e.g. to comment on certain aspects,
|
- you can make notes directly on the slides, e.g. to comment on certain aspects,
|
||||||
- you can open a chalkboard or whiteboard on which you can make notes.
|
- you can open a chalkboard or whiteboard on which you can make notes.
|
||||||
|
|
||||||
The main use case in mind when implementing the plugin is classroom usage in which you may want to explain some course content and quickly need to make some notes.
|
The main use case in mind when implementing the plugin is classroom usage in which you may want to explain some course content and quickly need to make some notes.
|
||||||
|
|
||||||
The plugin records all drawings made so that they can be play backed using the `autoSlide` feature or the `audio-slideshow` plugin.
|
The plugin records all drawings made so that they can be play backed using the `autoSlide` feature or the `audio-slideshow` plugin.
|
||||||
|
|
||||||
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/chalkboard-demo.html)
|
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/chalkboard-demo.html)
|
||||||
|
|
||||||
The chalkboard effect is based on [Chalkboard](https://github.com/mmoustafa/Chalkboard) by Mohamed Moustafa.
|
The chalkboard effect is based on [Chalkboard](https://github.com/mmoustafa/Chalkboard) by Mohamed Moustafa.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Copy the file `plugin.js` and the `img` directory into the plugin folder of your reveal.js presentation, i.e. `plugin/chalkboard` and load the plugin as shown below.
|
Copy the file `plugin.js` and the `img` directory into the plugin folder of your reveal.js presentation, i.e. `plugin/chalkboard` and load the plugin as shown below.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="plugin/chalkboard/plugin.js"></script>
|
<script src="plugin/chalkboard/plugin.js"></script>
|
||||||
<script src="plugin/chalkboard/customcontrols.js"></script>
|
<script src="plugin/chalkboard/customcontrols.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
// ...
|
// ...
|
||||||
plugins: [ RevealChalkboard, RevealCustomControls ],
|
plugins: [ RevealChalkboard, RevealCustomControls ],
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
The following stylesheet
|
The following stylesheet
|
||||||
```html
|
```html
|
||||||
<link rel="stylesheet" href="plugin/chalkboard/style.css">
|
<link rel="stylesheet" href="plugin/chalkboard/style.css">
|
||||||
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
||||||
```
|
```
|
||||||
has to be included to the `head` section of you HTML-file.
|
has to be included to the `head` section of you HTML-file.
|
||||||
|
|
||||||
|
|
||||||
In order to include buttons for opening and closing the notes canvas or the chalkboard you should make sure that `font-awesome` is available. The easiest way is to include
|
In order to include buttons for opening and closing the notes canvas or the chalkboard you should make sure that `font-awesome` is available. The easiest way is to include
|
||||||
```
|
```
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
|
||||||
```
|
```
|
||||||
to the ```head``` section of you HTML-file.
|
to the ```head``` section of you HTML-file.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Mouse or touch
|
### Mouse or touch
|
||||||
- Click on the pen symbols at the bottom left to toggle the notes canvas or chalkboard
|
- Click on the pen symbols at the bottom left to toggle the notes canvas or chalkboard
|
||||||
- Click on the color picker at the left to change the color (the color picker is only visible if the notes canvas or chalkboard is active)
|
- Click on the color picker at the left to change the color (the color picker is only visible if the notes canvas or chalkboard is active)
|
||||||
- Click on the up/down arrows on the left to the switch among multiple chalkboardd (the up/down arrows are only available for the chlakboard)
|
- Click on the up/down arrows on the left to the switch among multiple chalkboardd (the up/down arrows are only available for the chlakboard)
|
||||||
- Click the left mouse button and drag to write on notes canvas or chalkboard
|
- Click the left mouse button and drag to write on notes canvas or chalkboard
|
||||||
- Click the right mouse button and drag to wipe away previous drawings
|
- Click the right mouse button and drag to wipe away previous drawings
|
||||||
- Touch and move to write on notes canvas or chalkboard
|
- Touch and move to write on notes canvas or chalkboard
|
||||||
- Touch and hold for half a second, then move to wipe away previous drawings
|
- Touch and hold for half a second, then move to wipe away previous drawings
|
||||||
|
|
||||||
### Keyboard
|
### Keyboard
|
||||||
- Press the 'BACKSPACE' key to delete all chalkboard drawings
|
- Press the 'BACKSPACE' key to delete all chalkboard drawings
|
||||||
- Press the 'DEL' key to clear the notes canvas or chalkboard
|
- Press the 'DEL' key to clear the notes canvas or chalkboard
|
||||||
- Press the 'c' key to toggle the notes canvas
|
- Press the 'c' key to toggle the notes canvas
|
||||||
- Press the 'b' key to toggle the chalkboard
|
- Press the 'b' key to toggle the chalkboard
|
||||||
- Press the 'd' key to download drawings
|
- Press the 'd' key to download drawings
|
||||||
- Press the 'x' key to cycle colors forward
|
- Press the 'x' key to cycle colors forward
|
||||||
- Press the 'y' key to cycle colors backward
|
- Press the 'y' key to cycle colors backward
|
||||||
|
|
||||||
## Playback
|
## Playback
|
||||||
|
|
||||||
If the `autoSlide` feature is set or if the `audio-slideshow` plugin is used, pre-recorded chalkboard drawings can be played. The slideshow plays back the user interaction with the chalkboard in the same way as it was conducted when recording the data.
|
If the `autoSlide` feature is set or if the `audio-slideshow` plugin is used, pre-recorded chalkboard drawings can be played. The slideshow plays back the user interaction with the chalkboard in the same way as it was conducted when recording the data.
|
||||||
|
|
||||||
## Multiplexing
|
## Multiplexing
|
||||||
|
|
||||||
The plugin supports multiplexing via the [`multiplex` plugin](https://github.com/reveal/multiplex) or the [`seminar` plugin](https://github.com/rajgoel/reveal.js-plugins/tree/master/seminar).
|
The plugin supports multiplexing via the [`multiplex` plugin](https://github.com/reveal/multiplex) or the [`seminar` plugin](https://github.com/rajgoel/reveal.js-plugins/tree/master/seminar).
|
||||||
|
|
||||||
## PDF-Export
|
## PDF-Export
|
||||||
|
|
||||||
If the slideshow is opened in [print mode](https://revealjs.com/pdf-export/), the chalkboard drawings in the session storage (see `storage` option - print version must be opened in the same tab or window as the original slideshow) or provided in a file (see `src` option) are included in the PDF-file. Each drawing on the chalkboard is added after the slide that was shown when opening the chalkboard. Drawings on the notes canvas are not included in the PDF-file.
|
If the slideshow is opened in [print mode](https://revealjs.com/pdf-export/), the chalkboard drawings in the session storage (see `storage` option - print version must be opened in the same tab or window as the original slideshow) or provided in a file (see `src` option) are included in the PDF-file. Each drawing on the chalkboard is added after the slide that was shown when opening the chalkboard. Drawings on the notes canvas are not included in the PDF-file.
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
The plugin has several configuration options:
|
The plugin has several configuration options:
|
||||||
|
|
||||||
- ```boardmarkerWidth```: an integer, the drawing width of the boardmarker; larger values draw thicker lines.
|
- ```boardmarkerWidth```: an integer, the drawing width of the boardmarker; larger values draw thicker lines.
|
||||||
- ```chalkWidth```: an integer, the drawing width of the chalk; larger values draw thicker lines.
|
- ```chalkWidth```: an integer, the drawing width of the chalk; larger values draw thicker lines.
|
||||||
- ```chalkEffect```: a float in the range ```[0.0, 1.0]```, the intesity of the chalk effect on the chalk board. Full effect (default) ```1.0```, no effect ```0.0```.
|
- ```chalkEffect```: a float in the range ```[0.0, 1.0]```, the intesity of the chalk effect on the chalk board. Full effect (default) ```1.0```, no effect ```0.0```.
|
||||||
- ```storage```: Optional variable name for session storage of drawings.
|
- ```storage```: Optional variable name for session storage of drawings.
|
||||||
- ```src```: Optional filename for pre-recorded drawings.
|
- ```src```: Optional filename for pre-recorded drawings.
|
||||||
- ```readOnly```: Configuation option allowing to prevent changes to existing drawings. If set to ```true``` no changes can be made, if set to false ```false``` changes can be made, if unset or set to ```undefined``` no changes to the drawings can be made after returning to a slide or fragment for which drawings had been recorded before. In any case the recorded drawings for a slide or fragment can be cleared by pressing the 'DEL' key (i.e. by using the ```RevealChalkboard.clear()``` function).
|
- ```readOnly```: Configuation option allowing to prevent changes to existing drawings. If set to ```true``` no changes can be made, if set to false ```false``` changes can be made, if unset or set to ```undefined``` no changes to the drawings can be made after returning to a slide or fragment for which drawings had been recorded before. In any case the recorded drawings for a slide or fragment can be cleared by pressing the 'DEL' key (i.e. by using the ```RevealChalkboard.clear()``` function).
|
||||||
- ```transition```: Gives the duration (in milliseconds) of the transition for a slide change, so that the notes canvas is drawn after the transition is completed.
|
- ```transition```: Gives the duration (in milliseconds) of the transition for a slide change, so that the notes canvas is drawn after the transition is completed.
|
||||||
- ```theme```: Can be set to either ```"chalkboard"``` or ```"whiteboard"```.
|
- ```theme```: Can be set to either ```"chalkboard"``` or ```"whiteboard"```.
|
||||||
|
|
||||||
The following configuration options allow to change the appearance of the notes canvas and the chalkboard. All of these options require two values, the first gives the value for the notes canvas, the second for the chalkboard.
|
The following configuration options allow to change the appearance of the notes canvas and the chalkboard. All of these options require two values, the first gives the value for the notes canvas, the second for the chalkboard.
|
||||||
|
|
||||||
- ```background```: The first value expects a (semi-)transparent color which is used to provide visual feedback that the notes canvas is enabled, the second value expects a filename to a background image for the chalkboard.
|
- ```background```: The first value expects a (semi-)transparent color which is used to provide visual feedback that the notes canvas is enabled, the second value expects a filename to a background image for the chalkboard.
|
||||||
- ```grid```: By default whiteboard and chalkboard themes include a grid pattern on the background. This pattern can be modified by setting the color, the distance between lines, and the line width, e.g. ```{ color: 'rgb(127,127,255,0.1)', distance: 40, width: 2}```. Alternatively, the grid can be removed by setting the value to ```false```.
|
- ```grid```: By default whiteboard and chalkboard themes include a grid pattern on the background. This pattern can be modified by setting the color, the distance between lines, and the line width, e.g. ```{ color: 'rgb(127,127,255,0.1)', distance: 40, width: 2}```. Alternatively, the grid can be removed by setting the value to ```false```.
|
||||||
- ```eraser```: An image path and radius for the eraser.
|
- ```eraser```: An image path and radius for the eraser.
|
||||||
- ```boardmarkers```: A list of boardmarkers with given color and cursor.
|
- ```boardmarkers```: A list of boardmarkers with given color and cursor.
|
||||||
- ```chalks```: A list of chalks with given color and cursor.
|
- ```chalks```: A list of chalks with given color and cursor.
|
||||||
- ```rememberColor```: Whether to remember the last selected color for the slide canvas or the board.
|
- ```rememberColor```: Whether to remember the last selected color for the slide canvas or the board.
|
||||||
|
|
||||||
All of the configurations are optional and the default values shown below are used if the options are not provided.
|
All of the configurations are optional and the default values shown below are used if the options are not provided.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
// ...
|
// ...
|
||||||
chalkboard: {
|
chalkboard: {
|
||||||
boardmarkerWidth: 3,
|
boardmarkerWidth: 3,
|
||||||
chalkWidth: 7,
|
chalkWidth: 7,
|
||||||
chalkEffect: 1.0,
|
chalkEffect: 1.0,
|
||||||
storage: null,
|
storage: null,
|
||||||
src: null,
|
src: null,
|
||||||
readOnly: undefined,
|
readOnly: undefined,
|
||||||
transition: 800,
|
transition: 800,
|
||||||
theme: "chalkboard",
|
theme: "chalkboard",
|
||||||
background: [ 'rgba(127,127,127,.1)' , path + 'img/blackboard.png' ],
|
background: [ 'rgba(127,127,127,.1)' , path + 'img/blackboard.png' ],
|
||||||
grid: { color: 'rgb(50,50,10,0.5)', distance: 80, width: 2},
|
grid: { color: 'rgb(50,50,10,0.5)', distance: 80, width: 2},
|
||||||
eraser: { src: path + 'img/sponge.png', radius: 20},
|
eraser: { src: path + 'img/sponge.png', radius: 20},
|
||||||
boardmarkers : [
|
boardmarkers : [
|
||||||
{ color: 'rgba(100,100,100,1)', cursor: 'url(' + path + 'img/boardmarker-black.png), auto'},
|
{ color: 'rgba(100,100,100,1)', cursor: 'url(' + path + 'img/boardmarker-black.png), auto'},
|
||||||
{ color: 'rgba(30,144,255, 1)', cursor: 'url(' + path + 'img/boardmarker-blue.png), auto'},
|
{ color: 'rgba(30,144,255, 1)', cursor: 'url(' + path + 'img/boardmarker-blue.png), auto'},
|
||||||
{ color: 'rgba(220,20,60,1)', cursor: 'url(' + path + 'img/boardmarker-red.png), auto'},
|
{ color: 'rgba(220,20,60,1)', cursor: 'url(' + path + 'img/boardmarker-red.png), auto'},
|
||||||
{ color: 'rgba(50,205,50,1)', cursor: 'url(' + path + 'img/boardmarker-green.png), auto'},
|
{ color: 'rgba(50,205,50,1)', cursor: 'url(' + path + 'img/boardmarker-green.png), auto'},
|
||||||
{ color: 'rgba(255,140,0,1)', cursor: 'url(' + path + 'img/boardmarker-orange.png), auto'},
|
{ color: 'rgba(255,140,0,1)', cursor: 'url(' + path + 'img/boardmarker-orange.png), auto'},
|
||||||
{ color: 'rgba(150,0,20150,1)', cursor: 'url(' + path + 'img/boardmarker-purple.png), auto'},
|
{ color: 'rgba(150,0,20150,1)', cursor: 'url(' + path + 'img/boardmarker-purple.png), auto'},
|
||||||
{ color: 'rgba(255,220,0,1)', cursor: 'url(' + path + 'img/boardmarker-yellow.png), auto'}
|
{ color: 'rgba(255,220,0,1)', cursor: 'url(' + path + 'img/boardmarker-yellow.png), auto'}
|
||||||
],
|
],
|
||||||
chalks: [
|
chalks: [
|
||||||
{ color: 'rgba(255,255,255,0.5)', cursor: 'url(' + path + 'img/chalk-white.png), auto'},
|
{ color: 'rgba(255,255,255,0.5)', cursor: 'url(' + path + 'img/chalk-white.png), auto'},
|
||||||
{ color: 'rgba(96, 154, 244, 0.5)', cursor: 'url(' + path + 'img/chalk-blue.png), auto'},
|
{ color: 'rgba(96, 154, 244, 0.5)', cursor: 'url(' + path + 'img/chalk-blue.png), auto'},
|
||||||
{ color: 'rgba(237, 20, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-red.png), auto'},
|
{ color: 'rgba(237, 20, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-red.png), auto'},
|
||||||
{ color: 'rgba(20, 237, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-green.png), auto'},
|
{ color: 'rgba(20, 237, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-green.png), auto'},
|
||||||
{ color: 'rgba(220, 133, 41, 0.5)', cursor: 'url(' + path + 'img/chalk-orange.png), auto'},
|
{ color: 'rgba(220, 133, 41, 0.5)', cursor: 'url(' + path + 'img/chalk-orange.png), auto'},
|
||||||
{ color: 'rgba(220,0,220,0.5)', cursor: 'url(' + path + 'img/chalk-purple.png), auto'},
|
{ color: 'rgba(220,0,220,0.5)', cursor: 'url(' + path + 'img/chalk-purple.png), auto'},
|
||||||
{ color: 'rgba(255,220,0,0.5)', cursor: 'url(' + path + 'img/chalk-yellow.png), auto'}
|
{ color: 'rgba(255,220,0,0.5)', cursor: 'url(' + path + 'img/chalk-yellow.png), auto'}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
customcontrols: {
|
customcontrols: {
|
||||||
controls: [
|
controls: [
|
||||||
{ icon: '<i class="fa fa-pen-square"></i>',
|
{ icon: '<i class="fa fa-pen-square"></i>',
|
||||||
title: 'Toggle chalkboard (B)',
|
title: 'Toggle chalkboard (B)',
|
||||||
action: 'RevealChalkboard.toggleChalkboard();'
|
action: 'RevealChalkboard.toggleChalkboard();'
|
||||||
},
|
},
|
||||||
{ icon: '<i class="fa fa-pen"></i>',
|
{ icon: '<i class="fa fa-pen"></i>',
|
||||||
title: 'Toggle notes canvas (C)',
|
title: 'Toggle notes canvas (C)',
|
||||||
action: 'RevealChalkboard.toggleNotesCanvas();'
|
action: 'RevealChalkboard.toggleNotesCanvas();'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT licensed
|
MIT licensed
|
||||||
|
|
||||||
Copyright (C) 2021 Asvin Goel
|
Copyright (C) 2021 Asvin Goel
|
||||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
@@ -1,129 +1,129 @@
|
|||||||
# Chart
|
# Chart
|
||||||
|
|
||||||
A plugin for [Reveal.js](https://github.com/hakimel/reveal.js) allowing to easily add charts using [Chart.js](http://www.chartjs.org/).
|
A plugin for [Reveal.js](https://github.com/hakimel/reveal.js) allowing to easily add charts using [Chart.js](http://www.chartjs.org/).
|
||||||
|
|
||||||
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/chart-demo.html)
|
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/chart-demo.html)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Copy the file `plugin.js` into the plugin folder of your reveal.js presentation, i.e. `plugin/chart`.
|
Copy the file `plugin.js` into the plugin folder of your reveal.js presentation, i.e. `plugin/chart`.
|
||||||
|
|
||||||
Add the plugin and Chart.js to the dependencies in your presentation, as below.
|
Add the plugin and Chart.js to the dependencies in your presentation, as below.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.2.0/chart.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.2.0/chart.min.js"></script>
|
||||||
<script src="plugin/chart/plugin.js"></script>
|
<script src="plugin/chart/plugin.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
// ...
|
// ...
|
||||||
plugins: [ RevealChart ],
|
plugins: [ RevealChart ],
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
The plugin has several parameters that you can set for your presentation by providing an `chart` option in the reveal.js initialization options. Note that all configuration parameters are optional and the defaults of Chart.js will be used for parameters that are not specified.
|
The plugin has several parameters that you can set for your presentation by providing an `chart` option in the reveal.js initialization options. Note that all configuration parameters are optional and the defaults of Chart.js will be used for parameters that are not specified.
|
||||||
|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
// ...
|
// ...
|
||||||
chart: {
|
chart: {
|
||||||
defaults: {
|
defaults: {
|
||||||
color: 'lightgray', // color of labels
|
color: 'lightgray', // color of labels
|
||||||
scale: {
|
scale: {
|
||||||
beginAtZero: true,
|
beginAtZero: true,
|
||||||
ticks: { stepSize: 1 },
|
ticks: { stepSize: 1 },
|
||||||
grid: { color: "lightgray" } , // color of grid lines
|
grid: { color: "lightgray" } , // color of grid lines
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
line: { borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ], "borderDash": [ [5,10], [0,0] ] },
|
line: { borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ], "borderDash": [ [5,10], [0,0] ] },
|
||||||
bar: { backgroundColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ]},
|
bar: { backgroundColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ]},
|
||||||
pie: { backgroundColor: [ ["rgba(0,0,0,.8)" , "rgba(220,20,20,.8)", "rgba(20,220,20,.8)", "rgba(220,220,20,.8)", "rgba(20,20,220,.8)"] ]},
|
pie: { backgroundColor: [ ["rgba(0,0,0,.8)" , "rgba(220,20,20,.8)", "rgba(20,220,20,.8)", "rgba(220,220,20,.8)", "rgba(20,20,220,.8)"] ]},
|
||||||
},
|
},
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
The `defaults` parameter will overwrite `Chart.defaults`. Furthermore, for any chart type, e.g. line, bar, etc., the parameters for the individual datasets can be specified. Where Chart.js allows to specify a single parameter for a particular dataset, the plugin allows to specify an array of values for this parameter, which will automatically be assigned to the different datasets. Note that if there are more datasets than elements in the array, the plugin will start again with the first value in the array.
|
The `defaults` parameter will overwrite `Chart.defaults`. Furthermore, for any chart type, e.g. line, bar, etc., the parameters for the individual datasets can be specified. Where Chart.js allows to specify a single parameter for a particular dataset, the plugin allows to specify an array of values for this parameter, which will automatically be assigned to the different datasets. Note that if there are more datasets than elements in the array, the plugin will start again with the first value in the array.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
A chart can be included in a slide by adding a `canvas` element with the `data-chart` attribute set to the desired chart type.
|
A chart can be included in a slide by adding a `canvas` element with the `data-chart` attribute set to the desired chart type.
|
||||||
|
|
||||||
The chart can be configured within the canvas body by a JSON string embedded into an HTML comment.
|
The chart can be configured within the canvas body by a JSON string embedded into an HTML comment.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<canvas data-chart="line" >
|
<canvas data-chart="line" >
|
||||||
<!--
|
<!--
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"labels": ["January"," February"," March"," April"," May"," June"," July"],
|
"labels": ["January"," February"," March"," April"," May"," June"," July"],
|
||||||
"datasets":[
|
"datasets":[
|
||||||
{
|
{
|
||||||
"data":[65,59,80,81,56,55,40],
|
"data":[65,59,80,81,56,55,40],
|
||||||
"label":"My first dataset","backgroundColor":"rgba(20,220,220,.8)"
|
"label":"My first dataset","backgroundColor":"rgba(20,220,220,.8)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data":[28,48,40,19,86,27,90],
|
"data":[28,48,40,19,86,27,90],
|
||||||
"label":"My second dataset","backgroundColor":"rgba(220,120,120,.8)"
|
"label":"My second dataset","backgroundColor":"rgba(220,120,120,.8)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-->
|
-->
|
||||||
</canvas>
|
</canvas>
|
||||||
```
|
```
|
||||||
It is possible to provide the chart data by comma separated values and use the JSON string within the HTML comment to configure the chart layout.
|
It is possible to provide the chart data by comma separated values and use the JSON string within the HTML comment to configure the chart layout.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<canvas class="stretch" data-chart="line">
|
<canvas class="stretch" data-chart="line">
|
||||||
My first dataset, 65, 59, 80, 81, 56, 55, 40
|
My first dataset, 65, 59, 80, 81, 56, 55, 40
|
||||||
<!-- This is a comment that will be ignored -->
|
<!-- This is a comment that will be ignored -->
|
||||||
My second dataset, 28, 48, 40, 19, 86, 27, 90
|
My second dataset, 28, 48, 40, 19, 86, 27, 90
|
||||||
<!--
|
<!--
|
||||||
{
|
{
|
||||||
"data" : {
|
"data" : {
|
||||||
"labels" : ["Enero", "Febrero", "Marzo", "Avril", "Mayo", "Junio", "Julio"],
|
"labels" : ["Enero", "Febrero", "Marzo", "Avril", "Mayo", "Junio", "Julio"],
|
||||||
"datasets" : [{ "borderColor": "#0f0", "borderDash": ["5","10"] }, { "borderColor": "#0ff" } ]
|
"datasets" : [{ "borderColor": "#0f0", "borderDash": ["5","10"] }, { "borderColor": "#0ff" } ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-->
|
-->
|
||||||
</canvas>
|
</canvas>
|
||||||
```
|
```
|
||||||
|
|
||||||
The layout configuration provided in `chart` parameter (see Configuration) will be used by default and only those parameters that are specified in a JSON string are used to overwrite the default values. If no JSON string is provided to configure the chart layout the default configuration is used. Note, that if no labels for the data points are provided by a JSON string, the plugin expects that the first row provides table headers.
|
The layout configuration provided in `chart` parameter (see Configuration) will be used by default and only those parameters that are specified in a JSON string are used to overwrite the default values. If no JSON string is provided to configure the chart layout the default configuration is used. Note, that if no labels for the data points are provided by a JSON string, the plugin expects that the first row provides table headers.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<canvas data-chart="line">
|
<canvas data-chart="line">
|
||||||
Month, January, February, March, April, May, June, July
|
Month, January, February, March, April, May, June, July
|
||||||
My first dataset, 65, 59, 80, 81, 56, 55, 40
|
My first dataset, 65, 59, 80, 81, 56, 55, 40
|
||||||
My second dataset, 28, 48, 40, 19, 86, 27, 90
|
My second dataset, 28, 48, 40, 19, 86, 27, 90
|
||||||
</canvas>
|
</canvas>
|
||||||
```
|
```
|
||||||
|
|
||||||
The chart data can also be provided in an external CSV file. To include external data, the filename must be specified using the `data-chart-src` attribute of the `canvas` element. The CSV file is expected to only contain data values, whereas options for drawing the chart can be given as described above.
|
The chart data can also be provided in an external CSV file. To include external data, the filename must be specified using the `data-chart-src` attribute of the `canvas` element. The CSV file is expected to only contain data values, whereas options for drawing the chart can be given as described above.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<canvas data-chart="bar" data-chart-src="chart/data.csv">
|
<canvas data-chart="bar" data-chart-src="chart/data.csv">
|
||||||
<!--
|
<!--
|
||||||
{
|
{
|
||||||
"data" : {
|
"data" : {
|
||||||
"datasets" : [{ "backgroundColor": "#0f0" }, { "backgroundColor": "#0ff" } ]
|
"datasets" : [{ "backgroundColor": "#0f0" }, { "backgroundColor": "#0ff" } ]
|
||||||
},
|
},
|
||||||
"options": { "scales": { "x": { "stacked": true }, "y": { "stacked": true } } }
|
"options": { "scales": { "x": { "stacked": true }, "y": { "stacked": true } } }
|
||||||
}
|
}
|
||||||
-->
|
-->
|
||||||
</canvas>
|
</canvas>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT licensed
|
MIT licensed
|
||||||
|
|
||||||
Copyright (C) 2021 Asvin Goel
|
Copyright (C) 2021 Asvin Goel
|
||||||
@@ -1,72 +1,72 @@
|
|||||||
# Custom controls
|
# Custom controls
|
||||||
|
|
||||||
This plugin allows to add responsive custom controls to reveal.js which allow arbitrary positioning, layout, and behaviour of the controls.
|
This plugin allows to add responsive custom controls to reveal.js which allow arbitrary positioning, layout, and behaviour of the controls.
|
||||||
|
|
||||||
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/customcontrols-demo.html)
|
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/customcontrols-demo.html)
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Copy the files `plugin.js` and `style.css` into the plugin folder of your reveal.js presentation, i.e. ```plugin/customcontrols``` and load the plugin as shown below.
|
Copy the files `plugin.js` and `style.css` into the plugin folder of your reveal.js presentation, i.e. ```plugin/customcontrols``` and load the plugin as shown below.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
||||||
<script src="plugin/customcontrols/plugin.js"></script>
|
<script src="plugin/customcontrols/plugin.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
// ...
|
// ...
|
||||||
plugins: [ RevealCustomControls ],
|
plugins: [ RevealCustomControls ],
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
Note, without configuration you need to add
|
Note, without configuration you need to add
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
|
||||||
```
|
```
|
||||||
|
|
||||||
between ```<head>``` and ```</head>``` of your HTML file because the defaults use [Font Awesome](http://fontawesome.io/).
|
between ```<head>``` and ```</head>``` of your HTML file because the defaults use [Font Awesome](http://fontawesome.io/).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
The plugin can be configured by adding custom controls and changing the layout of the slide number, e.g., by:
|
The plugin can be configured by adding custom controls and changing the layout of the slide number, e.g., by:
|
||||||
|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
// ...
|
// ...
|
||||||
customcontrols: {
|
customcontrols: {
|
||||||
controls: [
|
controls: [
|
||||||
{
|
{
|
||||||
id: 'toggle-overview',
|
id: 'toggle-overview',
|
||||||
title: 'Toggle overview (O)',
|
title: 'Toggle overview (O)',
|
||||||
icon: '<i class="fa fa-th"></i>',
|
icon: '<i class="fa fa-th"></i>',
|
||||||
action: 'Reveal.toggleOverview();'
|
action: 'Reveal.toggleOverview();'
|
||||||
},
|
},
|
||||||
{ icon: '<i class="fa fa-pen-square"></i>',
|
{ icon: '<i class="fa fa-pen-square"></i>',
|
||||||
title: 'Toggle chalkboard (B)',
|
title: 'Toggle chalkboard (B)',
|
||||||
action: 'RevealChalkboard.toggleChalkboard();'
|
action: 'RevealChalkboard.toggleChalkboard();'
|
||||||
},
|
},
|
||||||
{ icon: '<i class="fa fa-pen"></i>',
|
{ icon: '<i class="fa fa-pen"></i>',
|
||||||
title: 'Toggle notes canvas (C)',
|
title: 'Toggle notes canvas (C)',
|
||||||
action: 'RevealChalkboard.toggleNotesCanvas();'
|
action: 'RevealChalkboard.toggleNotesCanvas();'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
The `id` and `title` are optional. The configuration should be self explaining and any number of controls can be added. The style file can be altered to control the layout and responsiveness of the custom controls.
|
The `id` and `title` are optional. The configuration should be self explaining and any number of controls can be added. The style file can be altered to control the layout and responsiveness of the custom controls.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT licensed
|
MIT licensed
|
||||||
|
|
||||||
Copyright (C) 2020 Asvin Goel
|
Copyright (C) 2020 Asvin Goel
|
||||||