/
main.js
87 lines (85 loc) · 6.99 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
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: () => AutoListStylesPlugin
});
module.exports = __toCommonJS(main_exports);
var import_obsidian = require("obsidian");
var AutoListStylesPlugin = class extends import_obsidian.Plugin {
async onload() {
this.registerMarkdownPostProcessor((el) => {
el.querySelectorAll("ol").forEach((list) => {
const firstText = getFirstTextNode(list.querySelector("li"));
if (firstText && firstText.textContent) {
const indentLevel = getIndentLevel(list);
const listStyleType = getListStyleType(indentLevel);
list.style.listStyleType = listStyleType;
firstText.textContent = firstText.textContent.trim();
}
});
});
}
};
function getFirstTextNode(node) {
if (node == null)
return null;
for (let i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].nodeType === Node.TEXT_NODE) {
return node.childNodes[i];
} else if (node.childNodes[i].hasChildNodes()) {
const childText = getFirstTextNode(node.childNodes[i]);
if (childText) {
return childText;
}
}
}
return null;
}
function getIndentLevel(list) {
let indentLevel = 0;
let parent = list.parentElement;
while (parent) {
if (parent.tagName === "OL") {
indentLevel++;
}
parent = parent.parentElement;
}
return indentLevel;
}
function getListStyleType(indentLevel) {
const defaultStyles = [
"decimal",
"lower-alpha",
"lower-roman",
"upper-alpha",
"upper-roman",
"decimal-leading-zero",
"disc",
"circle",
"square"
];
const defaultStyleIndex = indentLevel % defaultStyles.length;
return defaultStyles[defaultStyleIndex];
}
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgUGx1Z2luLCBNYXJrZG93blBvc3RQcm9jZXNzb3IgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dG9MaXN0U3R5bGVzUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcclxuICBhc3luYyBvbmxvYWQoKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKChlbCkgPT4ge1xyXG4gICAgICBlbC5xdWVyeVNlbGVjdG9yQWxsKFwib2xcIikuZm9yRWFjaCgobGlzdCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0VGV4dCA9IGdldEZpcnN0VGV4dE5vZGUobGlzdC5xdWVyeVNlbGVjdG9yKFwibGlcIikpO1xyXG4gICAgICAgIGlmIChmaXJzdFRleHQgJiYgZmlyc3RUZXh0LnRleHRDb250ZW50KSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRlbnRMZXZlbCA9IGdldEluZGVudExldmVsKGxpc3QpO1xyXG4gICAgICAgICAgY29uc3QgbGlzdFN0eWxlVHlwZSA9IGdldExpc3RTdHlsZVR5cGUoaW5kZW50TGV2ZWwpO1xyXG4gICAgICAgICAgbGlzdC5zdHlsZS5saXN0U3R5bGVUeXBlID0gbGlzdFN0eWxlVHlwZTtcclxuICAgICAgICAgIGZpcnN0VGV4dC50ZXh0Q29udGVudCA9IGZpcnN0VGV4dC50ZXh0Q29udGVudC50cmltKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxufVxyXG5cclxuLy8gUmV0cmVpdmVkIHRoZSBmaXJzdCB0ZXh0IG5vZGUgd2l0aGluIGEgZ2l2ZW4gRE9NIG5vZGUuIFxyXG5mdW5jdGlvbiBnZXRGaXJzdFRleHROb2RlKG5vZGU6IE5vZGUpOiBDaGlsZE5vZGUgfCBudWxsIHtcclxuICBpZiAobm9kZSA9PSBudWxsKVxyXG4gICAgcmV0dXJuIG51bGw7XHJcblxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAobm9kZS5jaGlsZE5vZGVzW2ldLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xyXG4gICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzW2ldO1xyXG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXNbaV0uaGFzQ2hpbGROb2RlcygpKSB7XHJcbiAgICAgIGNvbnN0IGNoaWxkVGV4dCA9IGdldEZpcnN0VGV4dE5vZGUobm9kZS5jaGlsZE5vZGVzW2ldKTtcclxuICAgICAgaWYgKGNoaWxkVGV4dCkge1xyXG4gICAgICAgIHJldHVybiBjaGlsZFRleHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8vIERldGVybWluZXMgdGhlIGluZGVudCBsZXZlbCBvZiB0aGUgY3VycmVudCBsaXN0IGJ5IGNvdW50aW5nIHRoZSBudW1iZXIgb2YgYW5jZXN0b3IgJ29sJyBlbGVtZW50c1xyXG5mdW5jdGlvbiBnZXRJbmRlbnRMZXZlbChsaXN0OiBIVE1MRWxlbWVudCk6IG51bWJlciB7XHJcbiAgbGV0IGluZGVudExldmVsID0gMDtcclxuICBsZXQgcGFyZW50ID0gbGlzdC5wYXJlbnRFbGVtZW50O1xyXG4gIHdoaWxlIChwYXJlbnQpIHtcclxuICAgIGlmIChwYXJlbnQudGFnTmFtZSA9PT0gXCJPTFwiKSB7XHJcbiAgICAgIGluZGVudExldmVsKys7XHJcbiAgICB9XHJcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcclxuICB9XHJcbiAgcmV0dXJuIGluZGVudExldmVsO1xyXG59XHJcblxyXG4vLyBhZGRpdGlvbmFsIGxpc3Qgc3R5bGVzIGNhbiBiZSBmb3VuZCBhdCBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvbGlzdC1zdHlsZS10eXBlXHJcbmZ1bmN0aW9uIGdldExpc3RTdHlsZVR5cGUoaW5kZW50TGV2ZWw6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgY29uc3QgZGVmYXVsdFN0eWxlcyA9IFtcclxuICAgIFwiZGVjaW1hbFwiLFxyXG4gICAgXCJsb3dlci1hbHBoYVwiLFxyXG4gICAgXCJsb3dlci1yb21hblwiLFxyXG4gICAgXCJ1cHBlci1hbHBoYVwiLFxyXG4gICAgXCJ1cHBlci1yb21hblwiLFxyXG4gICAgXCJkZWNpbWFsLWxlYWRpbmctemVyb1wiLFxyXG4gICAgXCJkaXNjXCIsXHJcbiAgICBcImNpcmNsZVwiLFxyXG4gICAgXCJzcXVhcmVcIlxyXG4gIF07XHJcbiAgY29uc3QgZGVmYXVsdFN0eWxlSW5kZXggPSBpbmRlbnRMZXZlbCAlIGRlZmF1bHRTdHlsZXMubGVuZ3RoO1xyXG4gIHJldHVybiBkZWZhdWx0U3R5bGVzW2RlZmF1bHRTdHlsZUluZGV4XTtcclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsc0JBQThDO0FBRTlDLElBQXFCLHVCQUFyQixjQUFrRCx1QkFBTztBQUFBLEVBQ3ZELE1BQU0sU0FBUztBQUNiLFNBQUssOEJBQThCLENBQUMsT0FBTztBQUN6QyxTQUFHLGlCQUFpQixJQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVM7QUFDMUMsY0FBTSxZQUFZLGlCQUFpQixLQUFLLGNBQWMsSUFBSSxDQUFDO0FBQzNELFlBQUksYUFBYSxVQUFVLGFBQWE7QUFDdEMsZ0JBQU0sY0FBYyxlQUFlLElBQUk7QUFDdkMsZ0JBQU0sZ0JBQWdCLGlCQUFpQixXQUFXO0FBQ2xELGVBQUssTUFBTSxnQkFBZ0I7QUFDM0Isb0JBQVUsY0FBYyxVQUFVLFlBQVksS0FBSztBQUFBLFFBQ3JEO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSCxDQUFDO0FBQUEsRUFDSDtBQUVGO0FBR0EsMEJBQTBCLE1BQThCO0FBQ3RELE1BQUksUUFBUTtBQUNWLFdBQU87QUFFVCxXQUFTLElBQUksR0FBRyxJQUFJLEtBQUssV0FBVyxRQUFRLEtBQUs7QUFDL0MsUUFBSSxLQUFLLFdBQVcsR0FBRyxhQUFhLEtBQUssV0FBVztBQUNsRCxhQUFPLEtBQUssV0FBVztBQUFBLElBQ3pCLFdBQVcsS0FBSyxXQUFXLEdBQUcsY0FBYyxHQUFHO0FBQzdDLFlBQU0sWUFBWSxpQkFBaUIsS0FBSyxXQUFXLEVBQUU7QUFDckQsVUFBSSxXQUFXO0FBQ2IsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNBLFNBQU87QUFDVDtBQUdBLHdCQUF3QixNQUEyQjtBQUNqRCxNQUFJLGNBQWM7QUFDbEIsTUFBSSxTQUFTLEtBQUs7QUFDbEIsU0FBTyxRQUFRO0FBQ2IsUUFBSSxPQUFPLFlBQVksTUFBTTtBQUMzQjtBQUFBLElBQ0Y7QUFDQSxhQUFTLE9BQU87QUFBQSxFQUNsQjtBQUNBLFNBQU87QUFDVDtBQUdBLDBCQUEwQixhQUE2QjtBQUNyRCxRQUFNLGdCQUFnQjtBQUFBLElBQ3BCO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGO0FBQ0EsUUFBTSxvQkFBb0IsY0FBYyxjQUFjO0FBQ3RELFNBQU8sY0FBYztBQUN2QjsiLAogICJuYW1lcyI6IFtdCn0K