1
0
Fork 0
digital-art-composition-book/.obsidian/plugins/line-arrange/main.js

142 lines
15 KiB
JavaScript
Raw Normal View History

2024-09-14 15:25:13 +00:00
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// main.ts
var main_exports = {};
__export(main_exports, {
default: () => lineArrange
});
module.exports = __toCommonJS(main_exports);
var import_obsidian = require("obsidian");
var lineArrange = class extends import_obsidian.Plugin {
// Method called when the plugin is loaded
async onload() {
this.addCommand({
id: "lexisort-lines",
name: "Lexisort lines",
editorCallback: (editor) => {
const selection = editor.getSelection();
editor.replaceSelection(lexiSortLines(selection));
}
});
this.addCommand({
id: "reverse-lines",
name: "Reverse lines",
editorCallback: (editor) => {
const selection = editor.getSelection();
editor.replaceSelection(reverseLines(selection));
}
});
this.addCommand({
id: "sort-lines",
name: "Sort lines",
editorCallback: (editor) => {
const selection = editor.getSelection();
editor.replaceSelection(sortLines(selection));
}
});
this.addCommand({
id: "shuffle-lines",
name: "Shuffle lines",
editorCallback: (editor) => {
const selection = editor.getSelection();
editor.replaceSelection(shuffleLines(selection));
}
});
}
};
var textSize = getComputedStyle(document.body).getPropertyValue("--font-text-size");
var textFont = getComputedStyle(document.body).getPropertyValue("--font-text");
function lexiSortLines(orgText) {
const lines = orgText.split("\n");
lines.sort();
let srtLines = "";
lines.forEach((line) => {
if (line.length > 0) {
srtLines += line + "\n";
} else {
srtLines = "\n" + srtLines;
}
});
return srtLines.trimEnd();
}
function reverseLines(orgText) {
const lines = orgText.split("\n");
lines.reverse();
let revLines = "";
lines.forEach((line) => {
if (line.length > 0) {
revLines += line + "\n";
} else {
revLines = "\n" + revLines;
}
});
return revLines.trimEnd();
}
function sortLines(orgText) {
const lines = orgText.split("\n");
const arr1 = new Arrangement(lines, realLineWidth);
return orderedText(arr1);
}
function realLineWidth(line) {
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
if (!context) {
throw new Error("Failed to get 2D context");
}
context.font = textSize + " " + textFont;
return Math.round(1e4 * context.measureText(line).width);
}
function shuffleLines(orgText) {
const lines = orgText.split("\n");
const arr2 = new Arrangement(lines, randomLineWidth);
return orderedText(arr2);
}
function randomLineWidth(line) {
if (line.length > 0)
return Math.round(1e4 * (Math.random() + 1));
else
return 0;
}
var Arrangement = class {
// Creates a key for each unique line-width and associates line to respective slot
constructor(linesList, lineFunction) {
linesList.forEach((line) => {
const width = lineFunction(line);
if (!(width in this)) {
this[width] = line;
} else {
this[width] = this[width].concat("\n" + line);
}
});
}
};
function orderedText(orderedLines) {
let finalText = "";
for (const lineKey in orderedLines) {
finalText += orderedLines[lineKey] + "\n";
}
return finalText.trimEnd();
}
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgRWRpdG9yLCBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGxpbmVBcnJhbmdlIGV4dGVuZHMgUGx1Z2luIHtcbiAgICAvLyBNZXRob2QgY2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWRcbiAgICBhc3luYyBvbmxvYWQoKSB7XG5cbiAgICAgICAgLy8gQWRkIGEgY29tbWFuZCB0byBsZXhpY2FsbHkgc29ydCBsaW5lcyBpbiB0aGUgZWRpdG9yXG4gICAgICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICAgICAgICBpZDogJ2xleGlzb3J0LWxpbmVzJyxcbiAgICAgICAgICAgIG5hbWU6ICdMZXhpc29ydCBsaW5lcycsXG4gICAgICAgICAgICBlZGl0b3JDYWxsYmFjazogKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gZWRpdG9yLmdldFNlbGVjdGlvbigpOyAvLyBHZXQgdGhlIHNlbGVjdGVkIHRleHRcbiAgICAgICAgICAgICAgICBlZGl0b3IucmVwbGFjZVNlbGVjdGlvbihsZXhpU29ydExpbmVzKHNlbGVjdGlvbikpOyAvLyBSZXBsYWNlIHNlbGVjdGlvbiB3aXRoIGxleGljYWxseSBzb3J0ZWQgbGluZXNcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCBhIGNvbW1hbmQgdG8gcmV2ZXJzZSBsaW5lcyBpbiB0aGUgZWRpdG9yXG4gICAgICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICAgICAgICBpZDogJ3JldmVyc2UtbGluZXMnLFxuICAgICAgICAgICAgbmFtZTogJ1JldmVyc2UgbGluZXMnLFxuICAgICAgICAgICAgZWRpdG9yQ2FsbGJhY2s6IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGVkaXRvci5nZXRTZWxlY3Rpb24oKTsgLy8gR2V0IHRoZSBzZWxlY3RlZCB0ZXh0XG4gICAgICAgICAgICAgICAgZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24ocmV2ZXJzZUxpbmVzKHNlbGVjdGlvbikpOyAvLyBSZXBsYWNlIHNlbGVjdGlvbiB3aXRoIHJldmVyc2VkIGxpbmVzXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgYSBjb21tYW5kIHRvIHNvcnQgbGluZXMgaW4gdGhlIGVkaXRvclxuICAgICAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgICAgICAgaWQ6ICdzb3J0LWxpbmVzJyxcbiAgICAgICAgICAgIG5hbWU6ICdTb3J0IGxpbmVzJyxcbiAgICAgICAgICAgIGVkaXRvckNhbGxiYWNrOiAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSBlZGl0b3IuZ2V0U2VsZWN0aW9uKCk7IC8vIEdldCB0aGUgc2VsZWN0ZWQgdGV4dFxuICAgICAgICAgICAgICAgIGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKHNvcnRMaW5lcyhzZWxlY3Rpb24pKTsgLy8gUmVwbGFjZSBzZWxlY3Rpb24gd2l0aCBzb3J0ZWQgbGluZXNcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCBhIGNvbW1hbmQgdG8gc2h1ZmZsZSBsaW5lcyBpbiB0aGUgZWRpdG9yXG4gICAgICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICAgICAgICBpZDogJ3NodWZmbGUtbGluZXMnLFxuICAgICAgICAgICAgbmFtZTogJ1NodWZmbGUgbGluZXMnLFxuICAgICAgICAgICAgZWRpdG9yQ2FsbGJhY2s6IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGVkaXRvci5nZXRTZWxlY3Rpb24oKTsgLy8gR2V0IHRoZSBzZWxlY3RlZCB0ZXh0XG4gICAgICAgICAgICAgICAgZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oc2h1ZmZsZUxpbmVzKHNlbGVjdGlvbikpOyAvLyBSZXBsYWNlIHNlbGVjdGlvbiB3aXRoIHNodWZmbGVkIGxpbmVzXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmNvbnN0IHRleHRTaXplID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKTtcbmNvbnN0IHRleHRGb250ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHRcIik7XG5cbi8vIEZ1bmN0aW9uIHRvIGxleGljYWxseSBzb3J0IHRoZSBzZWxlY3RlZCBsaW5lcyBvZiB0ZXh0XG5mdW5jdGlvbiBsZXhpU29ydExpbmVzKG9yZ1RleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbGluZXMgPSBvcmdUZXh0LnNwbGl0KFwiXFxuXCIpOyAvLyBTcGxpdCB0aGUgb3JpZ2luYWwgdGV4dCBpbnRvIGxpbmVzXG4gICAgbGluZXMuc29ydCgpOyAvLyBTb3J0IHRoZSBhcnJheSBvZiBsaW5lc1xuICAgIGxldCBzcnRMaW5lcyA9IFwiXCI7XG4gICAgbGluZXMuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgaWYgKGxpbmUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3J0TGluZXMgKz0gKGxpbmUgKyAnXFxuJyk7IC8vIEFkZCBlYWNoIGxpbmUgdG8gdGhlIHJldHVybmluZyB0ZXh0IHN0cmluZ1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc3J0TGluZXMgPSAoJ1xcbicgKyBzcnRMaW5lcyk7IFxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHNydExpbmVzLnRyaW1FbmQoKTsgLy8gUmV0dXJuIHRoZSBsZXhpY2FsbHkgc29ydGVkIGxpbmVzXG59XG5cbi8vIEZ1bmN0aW9uIHRvIHJldmVyc2UgdGhlIHNlbGVjdGVkIGxpbmVzIG9mIHRleHRcbmZ1bmN0aW9uIHJldmVyc2VMaW5lcyhvcmdUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxpbmVzID0gb3JnVGV4dC5zcGxpdChcIlxcblwiKTsgLy8gU3BsaXQgdGhlIG9yaWdpbmFsIHRleHQgaW50byBsaW5lc1xuICAgIGxpbmVzLnJldmVyc2UoKTsgLy8gUmV2ZXJzZSB0aGUgYXJyYXkgb2YgbGluZXNcbiAgICBsZXQgcmV2TGluZXMgPSBcIlwiO1xuICAgIGxpbmVzLmZvckVhY2gobGluZSA9PiB7XG4gICAgICAgIGlmIChsaW5lLmxlbmd0aCA+IDApIHtcbiAgI