vault backup: 2026-04-11 08:38:27

This commit is contained in:
KT
2026-04-11 08:38:27 +10:00
parent 20deab3b19
commit e63ee15f67
3 changed files with 26 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
// Automatic Table Of Contents 1.8.0 (https://github.com/johansatge)
"use strict";var g=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var $=(i,e)=>{for(var t in e)g(i,t,{get:e[t],enumerable:!0})},N=(i,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of H(e))!F.call(i,n)&&n!==t&&g(i,n,{get:()=>e[n],enumerable:!(s=I(e,n))||s.enumerable});return i};var A=i=>N(g({},"__esModule",{value:!0}),i);var J={};$(J,{default:()=>q});module.exports=A(J);var p=class{},d={},m=class{},f=class{},D=class{},h=class{},v=i=>i;if(W())try{let i=require("obsidian");p=i.Plugin,d=i.MarkdownRenderer,m=i.MarkdownRenderChild,f=i.PluginSettingTab,D=i.Setting,h=i.SettingGroup||class{},v=i.htmlToMarkdown}catch{}function W(){return typeof process!="object"?!0:!process.env||!process.env.JEST_WORKER_ID}function y(i,e){return e.include?e.include.test(i):e.exclude?!e.exclude.test(i):!0}function b(i,e){if(e.includeLinks){let t=i;t=w(t),t=_(t),t=k(t,!1);let s=i;return s=k(s,!0),s=R(s),`[[#${s}|${t}]]`}return i}function w(i){return i.replaceAll("*","").replaceAll(/(\W|^)_+(\S)(.*?\S)?_+(\W|$)/g,"$1$2$3$4").replaceAll("`","").replaceAll("==","").replaceAll("~~","").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1")}function _(i){return w(v(i))}function k(i,e){return i.replace(/\[\[([^\]]+)\|([^\]]+)\]\]/g,e?"$1 $2":"$2").replace(/\[\[([^\]]+)\]\]/g,"$1").replaceAll("[[","").replaceAll("| ",e?"":"- ").replaceAll("|",e?" ":"-")}function R(i){return i.replaceAll("#"," ")}function x(i,e){let t={nestedList:V,nestedOrderedList:j,inlineFirstLevel:U},s="";if(e.title&&e.title.length>0){let l=e.style==="inlineFirstLevel"?" ":`
`;s+=`${e.title}${l}`}let n=t[e.style](i,e);return n===null?e.hideWhenEmpty?"":`${s}_Table of contents: no headings found_`:s+n}function V(i,e){return S(i,!1,e)}function j(i,e){return S(i,!0,e)}function S(i,e,t){let s=e?"1.":"-",n=[],l=t.minLevel>0?t.minLevel:Math.min(...i.map(r=>r.level)),o=0;for(let r of i)if(!(o>0&&r.level>o)){if(r.level<=o&&(o=0),!y(r.heading,t)){o=r.level;continue}r.level<l||t.maxLevel>0&&r.level>t.maxLevel||r.heading.length!==0&&n.push(`${" ".repeat(r.level-l)}${s} ${b(r.heading,t)}`)}return n.length>0?n.join(`
`):null}function U(i,e){let t=e.minLevel>0?e.minLevel:Math.min(...i.map(n=>n.level)),s=i.filter(n=>n.level===t).filter(n=>n.heading.length>0).filter(n=>y(n.heading,e)).map(n=>b(n.heading,e));return s.length>0?s.join(" | "):null}var a={title:"",style:"nestedList",minLevel:0,maxLevel:0,include:null,exclude:null,includeLinks:!0,hideWhenEmpty:!1,debugInConsole:!1};var L={title:{type:"string",default:a.title,comment:""},style:{type:"value",default:a.style,values:["nestedList","nestedOrderedList","inlineFirstLevel"],comment:"TOC style (nestedList|nestedOrderedList|inlineFirstLevel)"},minLevel:{type:"number",default:a.minLevel,comment:"Include headings from the specified level"},maxLevel:{type:"number",default:a.maxLevel,comment:"Include headings up to the specified level"},include:{type:"regexp",default:null,comment:""},exclude:{type:"regexp",default:null,comment:""},includeLinks:{type:"boolean",default:a.includeLinks,comment:"Make headings clickable"},hideWhenEmpty:{type:"boolean",default:a.hideWhenEmpty,comment:"Hide TOC if no headings are found"},debugInConsole:{type:"boolean",default:!1,comment:"Print debug info in Obsidian console"}};function M(){let i=[];for(let e of Object.keys(L)){let t=L[e],s=t.comment.length>0?` # ${t.comment}`:"",n=t.default!==null?t.default:"";i.push(`${e}: ${n}${s}`)}return i.join(`
`)}function P(i="",e=null){let t={title:a.title,style:a.style,minLevel:a.minLevel,maxLevel:a.maxLevel,include:a.include,exclude:a.exclude,includeLinks:a.includeLinks,hideWhenEmpty:a.hideWhenEmpty,debugInConsole:a.debugInConsole};e&&(t.title=e.defaultTitle,t.style=e.defaultStyle,t.minLevel=e.defaultMinLevel,t.maxLevel=e.defaultMaxLevel,t.includeLinks=e.defaultIncludeLinks,t.hideWhenEmpty=e.defaultHideWhenEmpty);for(let s of i.split(`
`)){let n=G(s);n!==null&&(t[n.name]=n.value)}return t}function G(i){let e=i.match(/([a-zA-Z0-9._ ]+):(.*)/);if(i.startsWith("#")||!e||!e[1]||!e[2])return null;let t=e[1].trim(),s=L[t],n=e[2].trim();(!s||!["string","regexp"].includes(s.type))&&(n=n.replace(/#[^#]*$/,"").trim());let l=new Error(`Invalid value for \`${t}\``);if(s&&s.type==="number"){let o=Number.parseInt(n,10);if(o<0)throw l;return{name:t,value:o}}if(s&&s.type==="boolean"){if(!["true","false"].includes(n))throw l;return{name:t,value:n==="true"}}if(s&&s.type==="value"){if(s.values&&!s.values.includes(n))throw l;return{name:t,value:n}}if(s&&s.type==="string")return n==="null"||n==='""'||n==="''"?{name:t,value:""}:{name:t,value:n};if(s&&s.type==="regexp"){if(n==="null"||n.length===0)return null;try{let o=/^\/(.*)\/([a-z]*)/.exec(n);if(!o||!o[1])throw new Error("Invalid regexp");let r=new RegExp(o[1],o[2]??"");return{name:t,value:r}}catch{throw l}}return null}var E={defaultTitle:a.title,defaultStyle:a.style,defaultMinLevel:a.minLevel,defaultMaxLevel:a.maxLevel,defaultIncludeLinks:a.includeLinks,defaultHideWhenEmpty:a.hideWhenEmpty},u=class extends f{constructor(e,t){super(e,t),this.plugin=t}display(){let{containerEl:e}=this;e.empty();let t=document.createDocumentFragment();t.createDiv({cls:"setting-item-name",text:"Default options"}),t.createDiv({cls:"setting-item-description",text:"Configure default options. They can be overridden per codeblock when inserting the table of contents in a page."}),new h(e).setHeading(t).addSetting(s=>s.setName("Title").setDesc("Title to display before the table of contents (supports Markdown). Use empty string for no title.").addText(n=>n.setPlaceholder("").setValue(this.plugin.settings.defaultTitle).onChange(async l=>{this.plugin.settings.defaultTitle=l,await this.plugin.saveSettings()}))).addSetting(s=>s.setName("Style").setDesc("Table of contents style").addDropdown(n=>n.addOption("nestedList","Nested List").addOption("nestedOrderedList","Nested Ordered List").addOption("inlineFirstLevel","Inline First Level").setValue(this.plugin.settings.defaultStyle).onChange(async l=>{this.plugin.settings.defaultStyle=l,await this.plugin.saveSettings()}))).addSetting(s=>s.setName("Minimum level").setDesc("Include headings from the specified level (0 for no limit)").addText(n=>n.setPlaceholder("0").setValue(String(this.plugin.settings.defaultMinLevel)).onChange(async l=>{let o=Number.parseInt(l,10);!Number.isNaN(o)&&o>=0?(this.plugin.settings.defaultMinLevel=o,await this.plugin.saveSettings()):n.setValue(String(this.plugin.settings.defaultMinLevel))}))).addSetting(s=>s.setName("Maximum level").setDesc("Include headings up to the specified level (0 for no limit)").addText(n=>n.setPlaceholder("0").setValue(String(this.plugin.settings.defaultMaxLevel)).onChange(async l=>{let o=Number.parseInt(l,10);!Number.isNaN(o)&&o>=0?(this.plugin.settings.defaultMaxLevel=o,await this.plugin.saveSettings()):n.setValue(String(this.plugin.settings.defaultMaxLevel))}))).addSetting(s=>s.setName("Include links").setDesc("Make headings clickable").addToggle(n=>n.setValue(this.plugin.settings.defaultIncludeLinks).onChange(async l=>{this.plugin.settings.defaultIncludeLinks=l,await this.plugin.saveSettings()}))).addSetting(s=>s.setName("Hide when empty").setDesc("Hide TOC if no headings are found").addToggle(n=>n.setValue(this.plugin.settings.defaultHideWhenEmpty).onChange(async l=>{this.plugin.settings.defaultHideWhenEmpty=l,await this.plugin.saveSettings()})))}};var C="table-of-contents",B="toc",O=class extends p{async onload(){await this.loadSettings();let e=(t,s,n)=>{n.addChild(new T(this.app,s,n.sourcePath,t,this.settings))};this.registerMarkdownCodeBlockProcessor(C,e),this.registerMarkdownCodeBlockProcessor(B,e),this.addCommand({id:"insert-automatic-table-of-contents",name:"Insert table of contents",editorCallback:z}),this.addCommand({id:"insert-automatic-table-of-contents-docs",name:"Insert table of contents (with available options)",editorCallback:K}),this.addSettingTab(new u(this.app,this))}onunload(){}async loadSettings(){this.settings=Object.assign({},E,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}};function z(i,e){let t=`\`\`\`${C}
\`\`\``;i.replaceRange(t,i.getCursor())}function K(i,e){let t=[`\`\`\`${C}
${M()}
\`\`\``];i.replaceRange(t.join(`
`),i.getCursor())}var T=class extends m{constructor(e,t,s,n,l){super(t),this.app=e,this.element=t,this.sourcePath=s,this.sourceText=n,this.pluginSettings=l}onload(){this.render(),this.registerEvent(this.app.metadataCache.on("changed",e=>{e.path===this.sourcePath&&this.onMetadataChange()}))}onMetadataChange(){this.render()}render(){try{let e=P(this.sourceText,this.pluginSettings);e.debugInConsole&&c("Options",e);let t=this.app.metadataCache.getCache(this.sourcePath),s=t?.headings?t.headings:[];e.debugInConsole&&c("Headings",s);let n=x(s,e);e.debugInConsole&&c("Markdown",n),this.element.empty(),d.renderMarkdown(n,this.element,this.sourcePath,this)}catch(e){c("Error",e);let s=`_\u{1F4A5} Could not render table of contents (${e instanceof Error?e.message:String(e)})_`;d.renderMarkdown(s,this.element,this.sourcePath,this)}}};function c(i,e){console.log(`%cAutomatic Table Of Contents %c${i}:
`,"color: orange; font-weight: bold","font-weight: bold",e)}var q=O;
/* nosourcemap */

View File

@@ -0,0 +1,10 @@
{
"id": "automatic-table-of-contents",
"name": "Automatic Table Of Contents",
"version": "1.8.0",
"minAppVersion": "1.5.0",
"description": "Create a table of contents in a note, that updates itself when the note changes",
"author": "Johan Satgé",
"authorUrl": "https://github.com/johansatge",
"isDesktopOnly": false
}

3
Seighell/index.md Normal file
View File

@@ -0,0 +1,3 @@
---
title: Welcome to Seighell
---