vault backup: 2024-02-17 23:27:17

This commit is contained in:
2024-02-17 23:27:17 +08:00
parent b579c616cf
commit 20846242bb
36 changed files with 64670 additions and 49980 deletions

View File

@@ -9,5 +9,7 @@
"periodic-notes", "periodic-notes",
"obsidian-git", "obsidian-git",
"obsidian-quiet-outline", "obsidian-quiet-outline",
"obsidian-tracker" "obsidian-tracker",
"find-unlinked-files",
"janitor"
] ]

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{ {
"id": "dataview", "id": "dataview",
"name": "Dataview", "name": "Dataview",
"version": "0.5.46", "version": "0.5.64",
"minAppVersion": "0.13.11", "minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.", "description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>", "author": "Michael Brenan <blacksmithgu@gmail.com>",

View File

@@ -3,6 +3,10 @@
line-height: 1.0; line-height: 1.0;
} }
.block-language-dataview {
overflow-y: auto;
}
/*****************/ /*****************/
/** Table Views **/ /** Table Views **/
/*****************/ /*****************/
@@ -19,7 +23,7 @@
} }
.table-view-table > tbody > tr:hover { .table-view-table > tbody > tr:hover {
background-color: var(--text-selection) !important; background-color: var(--table-row-background-hover);
} }
.table-view-table > thead > tr > th { .table-view-table > thead > tr > th {

View File

@@ -0,0 +1,27 @@
{
"outputFileName": "orphaned files output",
"disableWorkingLinks": false,
"directoriesToIgnore": [],
"filesToIgnore": [],
"fileTypesToIgnore": [],
"linksToIgnore": [],
"tagsToIgnore": [],
"fileTypesToDelete": [],
"ignoreFileTypes": true,
"ignoreDirectories": true,
"unresolvedLinksIgnoreDirectories": true,
"unresolvedLinksOutputFileName": "broken links output",
"unresolvedLinksDirectoriesToIgnore": [],
"unresolvedLinksFilesToIgnore": [],
"unresolvedLinksFileTypesToIgnore": [],
"unresolvedLinksLinksToIgnore": [],
"unresolvedLinksTagsToIgnore": [],
"withoutTagsDirectoriesToIgnore": [],
"withoutTagsFilesToIgnore": [],
"withoutTagsOutputFileName": "files without tags",
"emptyFilesOutputFileName": "empty files",
"emptyFilesDirectories": [],
"emptyFilesFilesToIgnore": [],
"emptyFilesIgnoreDirectories": true,
"openOutputFile": true
}

63
.obsidian/plugins/janitor/main.js vendored Normal file

File diff suppressed because one or more lines are too long

11
.obsidian/plugins/janitor/manifest.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"id": "janitor",
"name": "Janitor",
"version": "1.0.7",
"minAppVersion": "0.15.0",
"description": "Performs cleanup tasks on the Obsidian vault",
"author": "Gabriele Cannata",
"authorUrl": "https://github.com/Canna71",
"fundingUrl": "https://www.buymeacoffee.com/gcannata",
"isDesktopOnly": false
}

98
.obsidian/plugins/janitor/styles.css vendored Normal file
View File

@@ -0,0 +1,98 @@
/*
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
If your plugin does not need CSS, delete this file.
*/
.janitor-modal-footer {
/* float: right; */
padding: 10pt;
display: flex;
}
.janitor-modal-footer button {}
.janitor-modal-footer .janitor-footer-buttons {
flex: 1;
justify-content: flex-end;
display: flex;
}
.janitor-scan-section-title {
font-size: larger;
margin-bottom: 5pt;
font-weight: 600;
}
.janitor-modal-title {
text-align: center;
font-size: 150%;
margin-bottom: 10px;
}
.janitor-file {
margin-left: 1em;
position: relative;
}
.janitor-file:hover {
background-color: var(--background-primary);
}
.janitor-file .openFileIcon {
right: 0px;
position: absolute;
/* cursor: pointer; */
visibility: hidden;
}
.janitor-file label {
width: 100%;
/* cursor: pointer; */
}
.janitor-file:hover .openFileIcon {
visibility: visible;
}
.janitor-file:focus {
outline: auto;
}
.janitor-scan-results {
overflow-y: auto;
max-height:250px;
}
.janitor-files-wrapper {
/* overflow-y: auto; */
/* max-height: 180px; */
/* border: 1px solid; */
padding: 5px;
}
.janitor-date-picker {
padding: 5px;;
}
.janitor-date-picker label span {
margin-right: 1em;;
}
.janitor-date-picker-buttons {
float: right;
}
.janitor-date-shortcuts {
white-space: nowrap;
margin-top: 1em;
text-align: center;
}
.janitor-date-shortcuts .janitor-date-picker-buttons {
display: inline-block;
}

View File

@@ -3,343 +3,16 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin if you want to view the source, please visit the github repository of this plugin
*/ */
var __create = Object.create; var V=Object.create;var w=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var b=n=>w(n,"__esModule",{value:!0});var _=(n,t)=>{b(n);for(var e in t)w(n,e,{get:t[e],enumerable:!0})},K=(n,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of z(t))!W.call(n,l)&&l!=="default"&&w(n,l,{get:()=>t[l],enumerable:!(e=q(t,l))||e.enumerable});return n},N=n=>K(b(w(n!=null?V(j(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var p=(n,t,e)=>new Promise((l,i)=>{var r=a=>{try{o(e.next(a))}catch(u){i(u)}},s=a=>{try{o(e.throw(a))}catch(u){i(u)}},o=a=>a.done?l(a.value):Promise.resolve(a.value).then(r,s);o((e=e.apply(n,t)).next())});_(exports,{ColumnInsertModal:()=>v,default:()=>x});var g=N(require("obsidian"));var L=N(require("obsidian")),J=n=>n=="yes"||n=="true",Q=(n,t)=>{if(t=="string")return n;if(t=="boolean")return J(n);if(t=="number")return parseFloat(n)};function E(n,t,e,l){let i=new L.Setting(n).setName(t[1].name).setDesc(t[1].desc);typeof t[1].value=="boolean"?i.addToggle(r=>r.setValue(e).onChange(s=>{l(s,t[0])})):i.addText(r=>r.setPlaceholder(String(t[1].value)).setValue(String(e)).onChange(s=>{l(Q(s,typeof t[1].value),t[0])}))}function I(n,t,e){let{containerEl:l}=n;l.empty(),l.createEl("h2",{text:"Settings for "+e});let i=Object.entries(t);for(let r of i)E(l,r,n.plugin.settings[r[0]].value,(s,o)=>{n.plugin.settings[o].value=s,n.plugin.saveSettings()})}function A(n,t){return p(this,null,function*(){return new Promise((e,l)=>{n.settings=t,n.loadData().then(i=>{i&&Object.entries(i).forEach(s=>{n.settings[s[0]].value=s[1]})}).then(e).catch(l)})})}function D(n,t){return p(this,null,function*(){let e={};Object.entries(n.settings).forEach(l=>{e[l[0]]=l[1].value,l[1].onChange(l[1].value)}),yield n.saveData(e)})}var X="Obsidian Columns",T="col",P=T+"-md",Y="!!!",O="===";var k="--obsidian-columns-min-width",G="--obsidian-columns-def-span",Z="`",M={wrapSize:{value:100,name:"Minimum width of column",desc:"Columns will have this minimum width before wrapping to a new row. 0 disables column wrapping. Useful for smaller devices",onChange:n=>{document.querySelector(":root").style.setProperty(k,n.toString()+"px")}},defaultSpan:{value:1,name:"The default span of an item",desc:"The default width of a column. If the minimum width is specified, the width of the column will be multiplied by this setting.",onChange:n=>{document.querySelector(":root").style.setProperty(G,n.toString())}}},H=(n,t=["`"],e=O)=>{let l=n.split(`
var __defProp = Object.defineProperty; `),i=!1;e:for(let r of l)for(let s of t){if(r.contains(s))break e;if(r==e){let o=n.split(e+`
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; `);if(o.length>1)return{settings:o[0],source:o.slice(1).join(e+`
var __getOwnPropNames = Object.getOwnPropertyNames; `)};break e}}return{settings:"",source:n}},B=n=>{let t={};return n.split(`
var __getProtoOf = Object.getPrototypeOf; `).map(e=>e.split(";")).reduce((e,l)=>(e.push(...l),e)).map(e=>e.split("=").map(l=>l.trim()).slice(0,2)).forEach(e=>{t[e[0]]=e[1]}),t},$=n=>{let t=0,e=n.split("");for(let l of e)if(l==Z)t++;else break;return t},ee=n=>{let t=n.split(`
var __hasOwnProp = Object.prototype.hasOwnProperty; `),e=[],l=0,i=0,r=[];for(let s of t){let o=$(s);if(i=o<3?0:o,l==0&&i==0&&s.startsWith(O)){e.push(r.join(`
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); `)),r=[];continue}else l==0?l=i:l==i&&(l=0);r.push(s)}return e.push(r.join(`
var __export = (target, all) => { `)),e},F=n=>parseFloat(n.split("").filter(t=>"0123456789.".contains(t)).join("")),x=class extends g.Plugin{constructor(){super(...arguments);this.generateCssString=t=>{let e={};return e.flexGrow=t.toString(),e.flexBasis=(this.settings.wrapSize.value*t).toString()+"px",e.width=(this.settings.wrapSize.value*t).toString()+"px",e};this.applyStyle=(t,e)=>{Object.assign(t.style,e)};this.processChild=t=>{t.firstChild!=null&&"tagName"in t.firstChild&&t.firstChild.tagName=="BR"&&t.removeChild(t.firstChild);let e=t;for(;e!=null;)"style"in e&&(e.style.marginTop="0px"),e=e.firstChild;let l=t;for(;l!=null;)"style"in l&&(l.style.marginBottom="0px"),l=l.lastChild}}onload(){return p(this,null,function*(){yield this.loadSettings(),this.addSettingTab(new R(this.app,this)),this.registerMarkdownCodeBlockProcessor(P,(e,l,i)=>{let r=H(e),s=B(r.settings);e=r.source;let o=i.sourcePath,a=l.createDiv(),u=new g.MarkdownRenderChild(a);if(i.addChild(u),g.MarkdownRenderer.renderMarkdown(e,a,o,u),s.flexGrow!=null){let d=parseFloat(s.flexGrow),f=this.generateCssString(d);delete f.width,this.applyStyle(a,f)}if(s.height!=null){let d={};d.height=s.height.toString(),d.overflow="scroll",this.applyStyle(a,d)}if(s.textAlign!=null){let d={};d.textAlign=s.textAlign,this.applyStyle(a,d)}}),this.registerMarkdownCodeBlockProcessor(T,(e,l,i)=>p(this,null,function*(){let r=H(e),s=B(r.settings),o=ee(r.source);console.log(o);for(let a of o){let u=i.sourcePath,d=createDiv(),f=new g.MarkdownRenderChild(d);i.addChild(f);let C=g.MarkdownRenderer.renderMarkdown(a,d,u,f),m=l.createEl("div",{cls:"columnParent"});if(Array.from(d.children).forEach(c=>{let h=m.createEl("div",{cls:"columnChild"}),y=new g.MarkdownRenderChild(h);i.addChild(y),this.applyStyle(h,this.generateCssString(this.settings.defaultSpan.value)),h.appendChild(c),c.classList.contains("block-language-"+P)&&c.childNodes[0].style.flexGrow!=""&&(h.style.flexGrow=c.childNodes[0].style.flexGrow,h.style.flexBasis=c.childNodes[0].style.flexBasis,h.style.width=c.childNodes[0].style.flexBasis),this.processChild(c)}),s.height!=null){let c=s.height;if(c=="shortest"){yield C;let h=Math.min(...Array.from(m.children).map(S=>S.childNodes[0]).map(S=>F(getComputedStyle(S).height)+F(getComputedStyle(S).lineHeight))),y={};y.height=h+"px",y.overflow="scroll",Array.from(m.children).map(S=>S.childNodes[0]).forEach(S=>{this.applyStyle(S,y)})}else{let h={};h.height=c,h.overflow="scroll",this.applyStyle(m,h)}}if(s.textAlign!=null){let c={};c.textAlign=s.textAlign,this.applyStyle(m,c)}}})),this.addCommand({id:"insert-column-wrapper",name:"Insert column wrapper",editorCallback:(e,l)=>{new v(this.app,i=>{let r=i.numberOfColumns.value,s="````col\n";for(let o=0;o<r;o++)s+="```col-md\nflexGrow=1\n===\n# Column "+o+"\n```\n";s+="````\n",e.replaceSelection(s)}).open()}}),this.addCommand({id:"insert-quick-column-wrapper",name:"Insert quick column wrapper",editorCallback:(e,l)=>{let i=e.getSelection(),r=e.getCursor(),s="````col\n```col-md\nflexGrow=1\n===\n"+i+"\n```\n````\n";if(e.replaceSelection(s),i==="")e.setCursor({line:r.line+4,ch:0});else{let o=i.split(`
__markAsModule(target); `).length;e.setCursor({line:r.line+4+o-1,ch:i.length-i.lastIndexOf(`
for (var name in all) `)-1})}}}),this.addCommand({id:"insert-column",name:"Insert column",editorCallback:(e,l)=>{let i=e.getSelection(),r=e.getCursor(),s;if(i==="")s="```col-md\nflexGrow=1\n===\n# New Column\n\n```",e.replaceSelection(s),e.setCursor({line:r.line+4,ch:0});else{s="```col-md\nflexGrow=1\n===\n"+i+"\n```",e.replaceSelection(s);let o=i.split(`
__defProp(target, name, { get: all[name], enumerable: true }); `).length;e.setCursor({line:r.line+o+2,ch:i.length-i.lastIndexOf(`
}; `)-1})}}});let t=(e,l)=>{for(let i of Array.from(e.children))if(i!=null&&!(i.nodeName!="UL"&&i.nodeName!="OL"))for(let r of Array.from(i.children)){if(r==null)continue;if(!r.textContent.trim().startsWith(Y+T)){t(r,l);continue}i.removeChild(r);let s=e.createEl("div",{cls:"columnParent"}),o=new g.MarkdownRenderChild(s);l.addChild(o);let a=r.querySelector("ul, ol");if(a!=null)for(let u of Array.from(a.children)){let d=s.createEl("div",{cls:"columnChild"}),f=new g.MarkdownRenderChild(d);l.addChild(f);let C=parseFloat(u.textContent.split(`
var __reExport = (target, module2, desc) => { `)[0].split(" ")[0]);isNaN(C)&&(C=this.settings.defaultSpan.value),this.applyStyle(d,this.generateCssString(C));let m=!1;t(u,l);for(let c of Array.from(u.childNodes))m&&d.appendChild(c),c.nodeName=="#text"&&(m=!0);this.processChild(d)}}};this.registerMarkdownPostProcessor((e,l)=>{t(e,l)})})}onunload(){}loadSettings(){return p(this,null,function*(){yield A(this,M);let t=document.querySelector(":root");console.log(this.settings.wrapSize.value.toString()),t.style.setProperty(k,this.settings.wrapSize.value.toString()+"px"),t.style.setProperty(G,this.settings.defaultSpan.value.toString())})}saveSettings(){return p(this,null,function*(){yield D(this,M)})}},U={numberOfColumns:{value:2,name:"Number of Columns",desc:"Number of Columns to be made"}},v=class extends g.Modal{constructor(t,e){super(t);this.onSubmit=e}onOpen(){let{contentEl:t}=this;t.createEl("h1",{text:"Create a Column Wrapper"});let e=U,l=Object.entries(U);for(let i of l)E(t,i,"",(r,s)=>{e[s].value=r});new g.Setting(t).addButton(i=>i.setButtonText("Submit").setCta().onClick(()=>{this.close(),this.onSubmit(e)}))}onClose(){let{contentEl:t}=this;t.empty()}},R=class extends g.PluginSettingTab{constructor(t,e){super(t,e);this.plugin=e}display(){I(this,M,X)}};
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
for (let key of __getOwnPropNames(module2))
if (!__hasOwnProp.call(target, key) && key !== "default")
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
}
return target;
};
var __toModule = (module2) => {
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
};
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
// main.ts
__export(exports, {
ColumnInsertModal: () => ColumnInsertModal,
default: () => ObsidianColumns
});
var import_obsidian2 = __toModule(require("obsidian"));
// obsidian-settings/settings.ts
var import_obsidian = __toModule(require("obsidian"));
var parseBoolean = (value) => {
return value == "yes" || value == "true";
};
var parseObject = (value, typ) => {
if (typ == "string") {
return value;
}
if (typ == "boolean") {
return parseBoolean(value);
}
if (typ == "number") {
return parseFloat(value);
}
};
function createSetting(containerEl, keyval, currentValue, onChange) {
let setting = new import_obsidian.Setting(containerEl).setName(keyval[1].name).setDesc(keyval[1].desc);
if (typeof keyval[1].value == "boolean") {
setting.addToggle((toggle) => toggle.setValue(currentValue).onChange((bool) => {
onChange(bool, keyval[0]);
}));
} else {
setting.addText((text) => text.setPlaceholder(String(keyval[1].value)).setValue(String(currentValue)).onChange((value) => {
onChange(parseObject(value, typeof keyval[1].value), keyval[0]);
}));
}
}
function display(obj, DEFAULT_SETTINGS2, name) {
const { containerEl } = obj;
containerEl.empty();
containerEl.createEl("h2", { text: "Settings for " + name });
let keyvals = Object.entries(DEFAULT_SETTINGS2);
for (let keyval of keyvals) {
createSetting(containerEl, keyval, obj.plugin.settings[keyval[0]].value, (value, key) => {
obj.plugin.settings[key].value = value;
obj.plugin.saveSettings();
});
}
}
function loadSettings(obj, DEFAULT_SETTINGS2) {
obj.settings = DEFAULT_SETTINGS2;
obj.loadData().then((data) => {
if (data) {
let items = Object.entries(data);
items.forEach((item) => {
obj.settings[item[0]].value = item[1];
});
}
});
}
function saveSettings(obj, DEFAULT_SETTINGS2) {
return __async(this, null, function* () {
let saveData = {};
Object.entries(obj.settings).forEach((i) => {
saveData[i[0]] = i[1].value;
});
yield obj.saveData(saveData);
});
}
// main.ts
var NAME = "Obsidian Columns";
var COLUMNNAME = "col";
var COLUMNMD = COLUMNNAME + "-md";
var TOKEN = "!!!";
var SETTINGSDELIM = "\n===\n";
var DEFAULT_SETTINGS = {
wrapSize: { value: 100, name: "Minimum width of column", desc: "Columns will have this minimum width before wrapping to a new row. 0 disables column wrapping. Useful for smaller devices" },
defaultSpan: { value: 1, name: "The default span of an item", desc: "The default width of a column. If the minimum width is specified, the width of the column will be multiplied by this setting." }
};
var parseSettings = (settings) => {
let o = {};
settings.split("\n").map((i) => {
return i.split(";");
}).reduce((a, b) => {
a.push(...b);
return a;
}).map((i) => {
return i.split("=").map((j) => {
return j.trim();
}).slice(0, 2);
}).forEach((i) => {
o[i[0]] = i[1];
});
return o;
};
var ObsidianColumns = class extends import_obsidian2.Plugin {
constructor() {
super(...arguments);
this.generateCssString = (span) => {
let o = {};
o.flexGrow = span.toString();
o.flexBasis = (this.settings.wrapSize.value * span).toString() + "px";
o.width = (this.settings.wrapSize.value * span).toString() + "px";
return o;
};
this.applyStyle = (el, styles) => {
Object.assign(el.style, styles);
};
this.processChild = (c) => {
if (c.firstChild != null && "tagName" in c.firstChild && c.firstChild.tagName == "BR") {
c.removeChild(c.firstChild);
}
let firstChild = c;
while (firstChild != null) {
if ("style" in firstChild) {
firstChild.style.marginTop = "0px";
}
firstChild = firstChild.firstChild;
}
let lastChild = c;
while (lastChild != null) {
if ("style" in lastChild) {
lastChild.style.marginBottom = "0px";
}
lastChild = lastChild.lastChild;
}
};
}
onload() {
return __async(this, null, function* () {
yield this.loadSettings();
this.addSettingTab(new ObsidianColumnsSettings(this.app, this));
this.registerMarkdownCodeBlockProcessor(COLUMNMD, (source, el, ctx) => {
let split = source.split(SETTINGSDELIM);
let settings = {};
if (split.length > 1) {
source = split.slice(1).join(SETTINGSDELIM);
settings = parseSettings(split[0]);
}
const sourcePath = ctx.sourcePath;
let child = el.createDiv();
let renderChild = new import_obsidian2.MarkdownRenderChild(child);
ctx.addChild(renderChild);
import_obsidian2.MarkdownRenderer.renderMarkdown(source, child, sourcePath, renderChild);
if ("flexGrow" in settings) {
let flexGrow = parseFloat(settings.flexGrow);
let CSS = this.generateCssString(flexGrow);
delete CSS.width;
this.applyStyle(child, CSS);
}
});
this.registerMarkdownCodeBlockProcessor(COLUMNNAME, (source, el, ctx) => {
const sourcePath = ctx.sourcePath;
let child = createDiv();
let renderChild = new import_obsidian2.MarkdownRenderChild(child);
ctx.addChild(renderChild);
import_obsidian2.MarkdownRenderer.renderMarkdown(source, child, sourcePath, renderChild);
let parent = el.createEl("div", { cls: "columnParent" });
Array.from(child.children).forEach((c) => {
let cc = parent.createEl("div", { cls: "columnChild" });
let renderCc = new import_obsidian2.MarkdownRenderChild(cc);
ctx.addChild(renderCc);
this.applyStyle(cc, this.generateCssString(this.settings.defaultSpan.value));
cc.appendChild(c);
if (c.classList.contains("block-language-" + COLUMNMD) && c.childNodes[0].style.flexGrow != "") {
cc.style.flexGrow = c.childNodes[0].style.flexGrow;
cc.style.flexBasis = c.childNodes[0].style.flexBasis;
cc.style.width = c.childNodes[0].style.flexBasis;
}
this.processChild(c);
});
});
this.addCommand({
id: "insert-column-wrapper",
name: "Insert column wrapper",
editorCallback: (editor, view) => {
new ColumnInsertModal(this.app, (result) => {
let num = result.numberOfColumns.value;
let outString = "````col\n";
for (let i = 0; i < num; i++) {
outString += "```col-md\nflexGrow=1\n===\n# Column " + i + "\n```\n";
}
outString += "````\n";
editor.replaceSelection(outString);
}).open();
}
});
this.addCommand({
id: "insert-column",
name: "Insert column",
editorCallback: (editor, view) => {
editor.replaceSelection("```col-md\nflexGrow=1\n===\n# New Column\n```");
}
});
let processList = (element, context) => {
for (let child of Array.from(element.children)) {
if (child == null) {
continue;
}
if (child.nodeName != "UL" && child.nodeName != "OL") {
continue;
}
for (let listItem of Array.from(child.children)) {
if (listItem == null) {
continue;
}
if (!listItem.textContent.trim().startsWith(TOKEN + COLUMNNAME)) {
processList(listItem, context);
continue;
}
child.removeChild(listItem);
let colParent = element.createEl("div", { cls: "columnParent" });
let renderColP = new import_obsidian2.MarkdownRenderChild(colParent);
context.addChild(renderColP);
let itemList = listItem.querySelector("ul, ol");
if (itemList == null) {
continue;
}
for (let itemListItem of Array.from(itemList.children)) {
let childDiv = colParent.createEl("div", { cls: "columnChild" });
let renderColC = new import_obsidian2.MarkdownRenderChild(childDiv);
context.addChild(renderColC);
let span = parseFloat(itemListItem.textContent.split("\n")[0].split(" ")[0]);
if (isNaN(span)) {
span = this.settings.defaultSpan.value;
}
this.applyStyle(childDiv, this.generateCssString(span));
let afterText = false;
processList(itemListItem, context);
for (let itemListItemChild of Array.from(itemListItem.childNodes)) {
if (afterText) {
childDiv.appendChild(itemListItemChild);
}
if (itemListItemChild.nodeName == "#text") {
afterText = true;
}
}
this.processChild(childDiv);
}
}
}
};
this.registerMarkdownPostProcessor((element, context) => {
processList(element, context);
});
});
}
onunload() {
}
loadSettings() {
return __async(this, null, function* () {
loadSettings(this, DEFAULT_SETTINGS);
});
}
saveSettings() {
return __async(this, null, function* () {
yield saveSettings(this, DEFAULT_SETTINGS);
});
}
};
var DEFAULT_MODAL_SETTINGS = {
numberOfColumns: { value: 2, name: "Number of Columns", desc: "Number of Columns to be made" }
};
var ColumnInsertModal = class extends import_obsidian2.Modal {
constructor(app, onSubmit) {
super(app);
this.onSubmit = onSubmit;
}
onOpen() {
const { contentEl } = this;
contentEl.createEl("h1", { text: "Create a Column Wrapper" });
let modalSettings = DEFAULT_MODAL_SETTINGS;
let keyvals = Object.entries(DEFAULT_MODAL_SETTINGS);
for (let keyval of keyvals) {
createSetting(contentEl, keyval, "", (value, key) => {
modalSettings[key].value = value;
});
}
new import_obsidian2.Setting(contentEl).addButton((btn) => btn.setButtonText("Submit").setCta().onClick(() => {
this.close();
this.onSubmit(modalSettings);
}));
}
onClose() {
let { contentEl } = this;
contentEl.empty();
}
};
var ObsidianColumnsSettings = class extends import_obsidian2.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
display(this, DEFAULT_SETTINGS, NAME);
}
};

View File

@@ -6,5 +6,5 @@
"author": "Trevor Nichols", "author": "Trevor Nichols",
"authorUrl": "https://github.com/tnichols217/obsidian-columns", "authorUrl": "https://github.com/tnichols217/obsidian-columns",
"isDesktopOnly": false, "isDesktopOnly": false,
"version": "1.2.0" "version": "1.5.2"
} }

View File

@@ -1,19 +1,126 @@
.columnParent { :root {
display: flex; --obsidian-columns-gap: 20px;
padding: 15px 20px; --obsidian-columns-padding: 15px 20px;
flex-wrap: wrap; --obsidian-columns-min-width: 100px;
gap: 20px; --obsidian-columns-def-span: 1;
} }
.columnParent { div[data-callout="col"].callout,
div[data-callout^="col-md"].callout {
background-color: rgba(0, 0, 0, 0);
padding: 0 0 0 0;
border-style: none;
}
.columnParent, div[data-callout="col"].callout > div.callout-content {
display: flex !important;
padding: var(--obsidian-columns-padding);
flex-wrap: wrap;
gap: var(--obsidian-columns-gap);
white-space: normal; white-space: normal;
} }
div[data-callout="col"].callout > div.callout-title, div[data-callout^="col-md"].callout > div.callout-title {
display: none;
}
.cm-preview-code-block .admonition-content .columnParent p { .cm-preview-code-block .admonition-content .columnParent p {
white-space: pre-wrap; white-space: pre-wrap;
} }
.columnChild { .columnChild, div[data-callout="col"].callout > div.callout-content > * {
flex-grow: 1; flex-grow: var(--obsidian-columns-def-span);
flex-basis: 0px; flex-basis: calc(var(--obsidian-columns-min-width) * var(--obsidian-columns-def-span));
width: calc(var(--obsidian-columns-min-width) * var(--obsidian-columns-def-span));
}
div[data-callout="col"].callout > div.callout-content > div[data-callout^="col-md" ].callout {
flex-grow: var(--obsidian-columns-custom-span);
flex-basis: calc(var(--obsidian-columns-min-width) * var(--obsidian-columns-custom-span));
width: calc(var(--obsidian-columns-min-width) * var(--obsidian-columns-custom-span));
background-color: rgba(0, 0, 0, 0);
padding: 0 0 0 0;
border-style: none;
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-0.5" ].callout {
--obsidian-columns-custom-span: 0.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-1" ].callout,
div[data-callout="col"].callout > div.callout-content > div[data-callout="col-md" ].callout {
--obsidian-columns-custom-span: 1
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-1.5" ].callout {
--obsidian-columns-custom-span: 1.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-2" ].callout {
--obsidian-columns-custom-span: 2
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-2.5" ].callout {
--obsidian-columns-custom-span: 2.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-3" ].callout {
--obsidian-columns-custom-span: 3
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-3.5" ].callout {
--obsidian-columns-custom-span: 3.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-4" ].callout {
--obsidian-columns-custom-span: 4
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-4.5" ].callout {
--obsidian-columns-custom-span: 4.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-5" ].callout {
--obsidian-columns-custom-span: 5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-5.5" ].callout {
--obsidian-columns-custom-span: 5.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-6" ].callout {
--obsidian-columns-custom-span: 6
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-6.5" ].callout {
--obsidian-columns-custom-span: 6.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-7" ].callout {
--obsidian-columns-custom-span: 7
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-7.5" ].callout {
--obsidian-columns-custom-span: 7.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-8" ].callout {
--obsidian-columns-custom-span: 8
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-8.5" ].callout {
--obsidian-columns-custom-span: 8.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-9" ].callout {
--obsidian-columns-custom-span: 9
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-9.5" ].callout {
--obsidian-columns-custom-span: 9.5
}
div[data-callout="col"].callout > div.callout-content > div[data-callout$="-10" ].callout {
--obsidian-columns-custom-span: 10
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{ {
"id": "obsidian-quiet-outline", "id": "obsidian-quiet-outline",
"name": "Quiet Outline", "name": "Quiet Outline",
"version": "0.3.14", "version": "0.3.24",
"minAppVersion": "0.15.6", "minAppVersion": "0.15.6",
"description": "Make outline quiet and more powerful, including no-auto-expand, rendering heading as markdown, and search support.", "description": "Make outline quiet and more powerful, including no-auto-expand, rendering heading as markdown, and search support.",
"author": "the_tree", "author": "the_tree",

View File

@@ -65,15 +65,21 @@
font-size: 22px; font-size: 22px;
} }
.quiet-outline code { .quiet-outline code {
color: var(--text-color-code, var(--code-normal));
font-weight: bold; font-weight: bold;
font-family: var(--font-monospace); font-family: var(--font-monospace);
background-color: var(--code-background); background-color: var(--code-background);
border-radius: var(--radius-s); border-radius: var(--radius-s);
} }
.quiet-outline .internal-link { .quiet-outline a.tag {
white-space: nowrap;
padding: 0.2em 0.6em;
}
.quiet-outline a:not(.tag) {
color: var(--link-external-color); color: var(--link-external-color);
} }
.quiet-outline span.internal-link {
color: var(--link-color);
}
.quiet-outline mark { .quiet-outline mark {
background-color: var(--text-highlight-bg); background-color: var(--text-highlight-bg);
color: var(--text-normal); color: var(--text-normal);
@@ -126,25 +132,28 @@
.quiet-outline .level-4 .n-tree-node-indent:first-child, .quiet-outline .level-4 .n-tree-node-indent:first-child,
.quiet-outline .level-5 .n-tree-node-indent:first-child, .quiet-outline .level-5 .n-tree-node-indent:first-child,
.quiet-outline .level-6 .n-tree-node-indent:first-child { .quiet-outline .level-6 .n-tree-node-indent:first-child {
border-right: var(--nav-indentation-guide-width) solid var(--762e1073-rainbowColor1); border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor1);
} }
.quiet-outline .level-3 .n-tree-node-indent, .quiet-outline .level-3 .n-tree-node-indent,
.quiet-outline .level-4 .n-tree-node-indent:nth-child(2), .quiet-outline .level-4 .n-tree-node-indent:nth-child(2),
.quiet-outline .level-5 .n-tree-node-indent:nth-child(2), .quiet-outline .level-5 .n-tree-node-indent:nth-child(2),
.quiet-outline .level-6 .n-tree-node-indent:nth-child(2) { .quiet-outline .level-6 .n-tree-node-indent:nth-child(2) {
border-right: var(--nav-indentation-guide-width) solid var(--762e1073-rainbowColor2); border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor2);
} }
.quiet-outline .level-4 .n-tree-node-indent, .quiet-outline .level-4 .n-tree-node-indent,
.quiet-outline .level-5 .n-tree-node-indent:nth-child(3), .quiet-outline .level-5 .n-tree-node-indent:nth-child(3),
.quiet-outline .level-6 .n-tree-node-indent:nth-child(3) { .quiet-outline .level-6 .n-tree-node-indent:nth-child(3) {
border-right: var(--nav-indentation-guide-width) solid var(--762e1073-rainbowColor3); border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor3);
} }
.quiet-outline .level-5 .n-tree-node-indent, .quiet-outline .level-5 .n-tree-node-indent,
.quiet-outline .level-6 .n-tree-node-indent:nth-child(4) { .quiet-outline .level-6 .n-tree-node-indent:nth-child(4) {
border-right: var(--nav-indentation-guide-width) solid var(--762e1073-rainbowColor4); border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor4);
} }
.quiet-outline .level-6 .n-tree-node-indent { .quiet-outline .level-6 .n-tree-node-indent {
border-right: var(--nav-indentation-guide-width) solid var(--762e1073-rainbowColor5); border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor5);
}
.n-tree-node.located p {
color: var(--8de97876-locatedColor);
} }
/* src/main.css */ /* src/main.css */

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,10 @@
{ {
"id": "obsidian-rollover-daily-todos", "id": "obsidian-rollover-daily-todos",
"name": "Rollover Daily Todos", "name": "Rollover Daily Todos",
"version": "1.0.5", "version": "1.1.8",
"minAppVersion": "0.12.12", "minAppVersion": "0.12.12",
"description": "This Obsidian.md plugin rolls over incomplete TODOs from the previous daily note to today's daily note. (https://obsidian.md)", "description": "This Obsidian.md plugin rolls over incomplete TODOs from the previous daily note to today's daily note. (https://obsidian.md). (Originally created by Matthew Sessions)",
"author": "Matthew Sessions", "author": "Lukas Mölschl",
"authorUrl": "https://matthewsessions.com", "authorUrl": "https://moelschl.com",
"isDesktopOnly": false "isDesktopOnly": false
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,12 @@
{ {
"id": "obsidian-tasks-plugin", "id": "obsidian-tasks-plugin",
"name": "Tasks", "name": "Tasks",
"version": "1.14.0", "version": "6.0.0",
"minAppVersion": "0.14.6", "minAppVersion": "1.1.1",
"description": "Task management for Obsidian", "description": "Task management for Obsidian",
"helpUrl": "https://publish.obsidian.md/tasks/",
"author": "Martin Schenck and Clare Macrae", "author": "Martin Schenck and Clare Macrae",
"authorUrl": "https://github.com/obsidian-tasks-group", "authorUrl": "https://github.com/obsidian-tasks-group",
"fundingUrl": "https://github.com/sponsors/claremacrae",
"isDesktopOnly": false "isDesktopOnly": false
} }

View File

@@ -1,66 +1,366 @@
.tasks-count { :root {
color: var(--text-faint); --tasks-details-icon: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z'/></svg>");
padding-left: 20px;
} }
/* Pencil icon. */ /* Fix indentation of wrapped task lines in Tasks search results, when in Live Preview. */
.tasks-edit { ul.contains-task-list .task-list-item-checkbox {
background-color: var(--text-faint); margin-inline-start: calc(var(--checkbox-size) * -1.5) !important;
mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%20width%3D%221em%22%20height%3D%221em%22%20style%3D%22-ms-transform%3A%20rotate(360deg)%3B%20-webkit-transform%3A%20rotate(360deg)%3B%20transform%3A%20rotate(360deg)%3B%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20viewBox%3D%220%200%201536%201536%22%3E%3Cpath%20d%3D%22M363%201408l91-91l-235-235l-91%2091v107h128v128h107zm523-928q0-22-22-22q-10%200-17%207l-542%20542q-7%207-7%2017q0%2022%2022%2022q10%200%2017-7l542-542q7-7%207-17zm-54-192l416%20416l-832%20832H0v-416zm683%2096q0%2053-37%2090l-166%20166l-416-416l166-165q36-38%2090-38q53%200%2091%2038l235%20234q37%2039%2037%2091z%22%20fill%3D%22%23626262%22%2F%3E%3C%2Fsvg%3E"); }
-webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%20width%3D%221em%22%20height%3D%221em%22%20style%3D%22-ms-transform%3A%20rotate(360deg)%3B%20-webkit-transform%3A%20rotate(360deg)%3B%20transform%3A%20rotate(360deg)%3B%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20viewBox%3D%220%200%201536%201536%22%3E%3Cpath%20d%3D%22M363%201408l91-91l-235-235l-91%2091v107h128v128h107zm523-928q0-22-22-22q-10%200-17%207l-542%20542q-7%207-7%2017q0%2022%2022%2022q10%200%2017-7l542-542q7-7%207-17zm-54-192l416%20416l-832%20832H0v-416zm683%2096q0%2053-37%2090l-166%20166l-416-416l166-165q36-38%2090-38q53%200%2091%2038l235%20234q37%2039%2037%2091z%22%20fill%3D%22%23626262%22%2F%3E%3C%2Fsvg%3E");
-webkit-mask-size: contain; .plugin-tasks-query-explanation{
display: inline-block; /* Prevent long explanation lines wrapping, so they are more readable,
width: 1em; especially on small screens.
height: 1em;
vertical-align: middle; A horizontal scroll bar will be displayed, if the explanation
margin-left: 0.5em; is too wide to fit.
cursor: pointer; */
} --code-white-space: pre;
}
/* Urgency score */
.tasks-urgency { .tasks-count {
font-size: var(--font-ui-smaller); color: var(--text-faint);
font-family: var(--font-interface); padding-left: 20px;
padding: 2px 6px; }
border-radius: var(--radius-s);
color: var(--text-normal); /* Tooltip pop up above the description in short mode */
background-color: var(--background-secondary); .tooltip.pop-up {
margin-left: 0.5em; animation: pop-up-animation 200ms forwards ease-in-out;
line-height: 1; }
} @keyframes pop-up-animation {
0% {
.internal-link.internal-link-short-mode { opacity: 0;
text-decoration: none; transform: translateY(-100%) scale(1);
} }
20% {
.tasks-list-text { opacity: 0.7;
position: relative; transform: translateY(-100%) scale(1.02);
} }
40% {
.tasks-list-text .tooltip { opacity: 1;
position: absolute; transform: translateY(-100%) scale(1.05);
top: 0px; }
left: 0px; 100% {
white-space: nowrap; opacity: 1;
} transform: translateY(-100%) scale(1);
}
.tasks-setting-important { }
color: red;
font-weight: bold; /* Edit and postpone */
} .tasks-edit, .tasks-postpone {
width: 1em;
.tasks-modal label { height: 1em;
margin: 5px 0 5px 0; vertical-align: middle;
} margin-left: .33em;
cursor: pointer;
.tasks-modal input[type=text] { font-family: var(--font-interface);
width: 100%; color: var(--text-accent);
} }
.tasks-modal hr { a.tasks-edit, a.tasks-postpone {
margin: 10px 0 10px 0; text-decoration: none;
} }
.tasks-modal-date { .tasks-edit::after {
margin-bottom: 10px; content: '📝';
} }
.tasks-postpone::after {
content: '⏩';
}
/* Urgency score */
.tasks-urgency {
font-size: var(--font-ui-smaller);
font-family: var(--font-interface);
padding: 2px 6px;
border-radius: var(--radius-s);
color: var(--text-normal);
background-color: var(--background-secondary);
margin-left: 0.5em;
line-height: 1;
}
.internal-link.internal-link-short-mode {
text-decoration: none;
}
.tasks-list-text {
position: relative;
}
.tasks-list-text .tooltip {
position: absolute;
top: 0px;
left: 0px;
white-space: nowrap;
}
/* Hide tags that Obsidian recognises, if `hide tags` instruction was used. */
.tasks-layout-hide-tags .task-description a.tag {
display: none;
}
/* Workaround for issue #2073: Enabling the plugin causes blockIds to be not hidden in reading view
https://github.com/obsidian-tasks-group/obsidian-tasks/issues/2073 */
.task-list-item .task-block-link{
display: none;
}
.tasks-setting-important {
color: red;
font-weight: bold;
}
/**------------------------------------------------------------------------
** MODAL
*------------------------------------------------------------------------**/
.tasks-modal-section + .tasks-modal-section {
margin-top: 16px;
}
.tasks-modal-section label {
display: inline-block;
margin-bottom: 4px;
}
.tasks-modal-section label > span {
display: inline-block;
}
.tasks-modal .with-accesskeys .accesskey-first::first-letter,
.tasks-modal .with-accesskeys .accesskey {
text-decoration: underline;
text-underline-offset: 1pt;
}
.tasks-modal-buttons {
position: sticky;
bottom: 0;
background-color: var(--modal-background);
padding-bottom: 16px;
padding-top: 16px;
display: grid;
grid-template-columns: 3fr 1fr;
column-gap: .5em;
}
.tasks-modal label + input[type="checkbox"] {
margin-left: 0.67em;
top: 2px;
}
.tasks-modal input[type="text"] {
width: 100%;
}
.tasks-modal textarea {
width: 100%;
min-height: calc(var(--input-height) * 2);
resize: vertical;
}
.tasks-modal-priorities {
display: grid;
grid-template-columns: 4em 8em 8em 8em;
grid-column-gap: 1.33em;
}
.tasks-modal-priorities span {
line-height: 1.41;
white-space: nowrap;
}
.tasks-modal-priorities label {
border-radius: var(--input-radius);
padding: 2px 3px;
grid-column: 1;
grid-row-start: 1;
grid-row-end: 7;
}
.tasks-modal-priorities input:focus + label {
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
border-color: var(--background-modifier-border-focus);
}
.tasks-modal-priorities input:checked + label > span {
font-weight: bold;
}
.tasks-modal-priorities input:not(:checked) + label > span:nth-child(4) {
filter: grayscale(100%) opacity(60%);
}
.tasks-modal-dates {
display: grid;
grid-template-columns: 5.5em auto;
column-gap: .5em;
row-gap: 5px;
}
.tasks-modal-dates > label {
grid-column: 1;
margin-top: 6px;
}
.tasks-modal-dates > input, .tasks-modal-dates > code {
grid-column: 2;
align-items: stretch;
}
.tasks-modal-dates > code {
margin-bottom: 5px;
}
.tasks-modal-dates > div {
grid-column-start: 1;
grid-column-end: 3;
}
.tasks-modal-status {
padding-bottom: 6px;
margin-bottom: -16px;
display: flex;
justify-content: space-between;
}
.tasks-modal-error {
border: 1px solid red !important;
}
.tasks-modal-warning {
color: var(--text-warning) !important;
background-color: rgba(var(--background-modifier-warning-rgb), 0.2) !important;
}
.tasks-modal button:disabled {
pointer-events: none !important;
opacity: 0.3 !important;
}
@media (max-width: 649px) {
.tasks-modal-priorities {
grid-template-columns: 4em 7.5em 5em;
margin-bottom: -10px;
}
.tasks-modal-priorities > label {
grid-row: 1 / span 7;
}
.tasks-modal-dates {
grid-template-columns: 1fr;
}
.tasks-modal-dates > label {
margin: 0;
}
.tasks-modal-dates > input, .tasks-modal-dates > code {
grid-column: 1;
}
.tasks-modal-dates > div {
grid-column-end: 1;
}
.tasks-modal-status {
display: block;
}
}
@media (max-width: 399px) {
.tasks-modal-priorities {
grid-template-columns: 4em auto;
}
.tasks-modal-priorities > label {
grid-row: 1 / span 7;
}
}
@media (max-width: 259px) {
.tasks-modal-priorities {
grid-template-columns: 1fr;
margin-bottom: 0;
}
.tasks-modal-priorities > label {
grid-row: 1;
}
}
/**------------------------------------------------------------------------
** SETTINGS
*------------------------------------------------------------------------**/
.tasks-settings-is-invalid {
/* Dark red text on pale background*/
color: var(--text-error) !important;
background-color: rgba(var(--background-modifier-error-rgb), 0.2) !important;
}
.tasks-settings .additional {
margin: 6px 12px;
}
.tasks-settings .additional > .setting-item {
border-top: 0;
padding-top: 9px;
}
.tasks-settings details > summary {
outline: none;
display: block !important;
list-style: none !important;
list-style-type: none !important;
min-height: 1rem;
border-top-left-radius: 0.1rem;
border-top-right-radius: 0.1rem;
cursor: pointer;
position: relative;
}
.tasks-settings details > summary::-webkit-details-marker,
.tasks-settings details > summary::marker {
display: none !important;
}
.tasks-settings details > summary > .collapser {
position: absolute;
top: 50%;
right: 8px;
transform: translateY(-50%);
content: "";
}
.tasks-settings details > summary > .collapser > .handle {
transform: rotate(0deg);
transition: transform 0.25s;
background-color: currentColor;
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-size: contain;
mask-size: contain;
-webkit-mask-image: var(--tasks-details-icon);
mask-image: var(--tasks-details-icon);
width: 20px;
height: 20px;
}
.tasks-settings details[open] > summary > .collapser > .handle {
transform: rotate(90deg);
}
.tasks-nested-settings .setting-item {
border: 0px;
padding-bottom: 0;
}
.tasks-nested-settings {
padding-bottom: 18px;
}
.tasks-nested-settings[open] .setting-item-heading,
.tasks-nested-settings:not(details) .setting-item-heading {
border-top: 0px;
border-bottom: 1px solid var(--background-modifier-border);
}
.tasks-settings .row-for-status {
margin-top: 0px;
margin-bottom: 0px;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,10 @@
{ {
"id": "obsidian-tracker", "id": "obsidian-tracker",
"name": "Tracker", "name": "Tracker",
"version": "1.10.9", "version": "1.13.2",
"minAppVersion": "0.9.12", "minAppVersion": "0.9.12",
"description": "A plugin tracks occurrences and numbers in your notes", "description": "A plugin tracks occurrences and numbers in your notes",
"author": "pyrochlore", "author": "pyrochlore",
"authorUrl": "", "authorUrl": "",
"isDesktopOnly": false "isDesktopOnly": false
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,11 @@
{ {
"id": "oz-image-plugin", "id": "oz-image-plugin",
"name": "Ozan's Image in Editor Plugin", "name": "Image in Editor",
"version": "2.1.4", "version": "2.2.6",
"minAppVersion": "0.15.0", "minAppVersion": "0.15.0",
"description": "View Images, Transclusions, iFrames and PDF Files within the Editor without a necessity to switch to Preview.", "description": "View Images, Transclusions, iFrames and PDF Files within the Editor without a necessity to switch to Preview.",
"author": "Ozan Tellioglu", "author": "Ozan Tellioglu",
"authorUrl": "https://ozan.pl/aboutme/", "authorUrl": "https://ozan.pl/aboutme/",
"fundingUrl": "https://ko-fi.com/ozante",
"isDesktopOnly": false "isDesktopOnly": false
} }

View File

@@ -1,3 +1,55 @@
/* @settings
name: Ozan's Image in Editor Plugin
id: oz-image-in-editor-plugin
settings:
-
id: oz-img-in-editor-max-transclusion-height
title: Transclusion Embed Maximum Height
description: Set the max height of transclusion render in editor as px
type: variable-number
default: 600
format: px
-
id: oz-img-in-editor-max-msg-height
title: MSG Embed Maximum Height
description: Set the max height of msg render in editor as px
type: variable-number
default: 300
format: px
-
id: oz-img-in-editor-img-size-xx-small
title: Alt Text "#xx-small" Maximum Image Width
description: Set the max width of images with "#xx-small" alt text
type: variable-number
default: 25
format: "%"
-
id: oz-img-in-editor-img-size-x-small
title: Alt Text "#x-small" Maximum Image Width
description: Set the max width of images with "#x-small" alt text
type: variable-number
default: 50
format: "%"
-
id: oz-img-in-editor-img-size-small
title: Alt Text "#small" Maximum Image Width
description: Set the max width of images with "#small" alt text
type: variable-number
default: 75
format: "%"
*/
.theme-light,
.theme-dark {
--oz-img-in-editor-max-msg-height: 300px;
--oz-img-in-editor-max-transclusion-height: 600px;
--oz-img-in-editor-img-size-xx-small: 25%;
--oz-img-in-editor-img-size-x-small: 50%;
--oz-img-in-editor-img-size-small: 75%;
}
.CodeMirror-linewidget img { .CodeMirror-linewidget img {
margin-top: 5px; margin-top: 5px;
margin-bottom: 5px; margin-bottom: 5px;
@@ -13,7 +65,7 @@
.oz-transclusion-widget-cm6 { .oz-transclusion-widget-cm6 {
padding: 3px 3px 3px 19px; padding: 3px 3px 3px 19px;
border: 0.7px solid var(--text-muted); border: 0.7px solid var(--text-muted);
max-height: 600px; max-height: var(oz-img-in-editor-max-transclusion-height);
overflow: auto; overflow: auto;
border-radius: 7px; border-radius: 7px;
margin-top: 5px; margin-top: 5px;
@@ -190,20 +242,17 @@ div.oz-transclusion-widget-cm6 pre {
div.oz-image-widget > img[alt$='#small'], div.oz-image-widget > img[alt$='#small'],
div.oz-image-widget-cm6 > img[alt$='#small'] { div.oz-image-widget-cm6 > img[alt$='#small'] {
max-width: 75% !important; max-width: var(--oz-img-in-editor-img-size-small) !important;
min-width: 200pt !important;
} }
div.oz-image-widget > img[alt$='#x-small'], div.oz-image-widget > img[alt$='#x-small'],
div.oz-image-widget-cm6 > img[alt$='#x-small'] { div.oz-image-widget-cm6 > img[alt$='#x-small'] {
max-width: 50% !important; max-width: var(--oz-img-in-editor-img-size-x-small) !important;
min-width: 100pt !important;
} }
div.oz-image-widget > img[alt$='#xx-small'], div.oz-image-widget > img[alt$='#xx-small'],
div.oz-image-widget-cm6 > img[alt$='#xx-small'] { div.oz-image-widget-cm6 > img[alt$='#xx-small'] {
max-width: 25% !important; max-width: var(--oz-img-in-editor-img-size-xx-small) !important;
min-width: 50pt !important;
} }
/* Style For CM6 */ /* Style For CM6 */
@@ -273,3 +322,28 @@ div.oz-pdf-widget-cm6 + br {
text-transform: capitalize; text-transform: capitalize;
display: block; display: block;
} }
.oz-transclusion-widget-cm6 span.hashtag {
background-color: var(--tag-background);
border: var(--tag-border-width) solid var(--tag-border-color);
border-radius: var(--tag-radius);
color: var(--tag-color);
font-size: var(--tag-size);
text-decoration: var(--tag-decoration);
padding: var(--tag-padding-y) var(--tag-padding-x);
line-height: 1;
}
.oz-custom-html-widget-cm6 .msg-handler-plugin-renderer {
max-height: var(--oz-img-in-editor-max-msg-height);
overflow-y: scroll;
border: 0.1px solid var(--text-muted);
padding: 10px;
}
.cm-line:has(div.is-collapsed) .oz-custom-html-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-image-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-pdf-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-transclusion-widget-cm6 {
display: none;
}

File diff suppressed because one or more lines are too long

View File

@@ -5,7 +5,13 @@
"authorUrl": "https://grosinger.net", "authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas", "description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false, "isDesktopOnly": false,
"minAppVersion": "0.13.8", "minAppVersion": "1.0.0",
"version": "0.17.3", "version": "0.21.0",
"js": "main.js" "js": "main.js",
} "fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger"
},
"donation": "https://buymeacoffee.com/tgrosinger"
}

View File

@@ -1,5 +1,55 @@
:root {
--advanced-tables-helper-size: 28px;
}
.HyperMD-table-row span.cm-inline-code { .HyperMD-table-row span.cm-inline-code {
font-size: 100%; font-size: 100%;
padding: 0px;
}
.advanced-tables-buttons>div>.title {
font-weight: var(--font-medium);
font-size: var(--nav-item-size);
color: var(--nav-item-color);
text-decoration: underline;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
column-gap: 0.2rem;
margin: 0.2rem 0 0.2rem 0;
justify-content: start;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
min-width: 2.6rem;
line-height: var(--advanced-tables-helper-size);
font-size: var(--nav-item-size);
font-weight: var(--nav-item-weight);
color: var(--nav-item-color);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
height: var(--advanced-tables-helper-size);
line-height: var(--advanced-tables-helper-size);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
width: var(--advanced-tables-helper-size);
height: var(--advanced-tables-helper-size);
display: flex;
justify-content: center;
align-items: center;
border-radius: var(--radius-s);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
background-color: var(--nav-item-background-hover);
color: var(--nav-item-color-hover);
font-weight: var(--nav-item-weight-hover);
}
.advanced-tables-row-label {
width: 50px;
} }
.widget-icon { .widget-icon {
@@ -25,4 +75,4 @@
.advanced-tables-donate-button { .advanced-tables-donate-button {
margin: 10px; margin: 10px;
} }

View File

@@ -2,11 +2,13 @@
"fadeToggle": true, "fadeToggle": true,
"autoRefreshToggle": false, "autoRefreshToggle": false,
"autoRefreshInterval": 60, "autoRefreshInterval": 60,
"renderDescription": true,
"renderDate": true, "renderDate": true,
"renderDateIcon": true, "renderDateIcon": true,
"renderProject": true, "renderProject": true,
"renderProjectIcon": true, "renderProjectIcon": true,
"renderLabels": true, "renderLabels": true,
"renderLabelsIcon": true, "renderLabelsIcon": true,
"shouldWrapLinksInParens": false,
"debugLogging": false "debugLogging": false
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,8 @@
{ {
"id": "todoist-sync-plugin", "id": "todoist-sync-plugin",
"name": "Todoist Plugin", "name": "Todoist Sync",
"version": "1.9.0", "version": "1.12.0",
"minAppVersion": "0.12.2", "minAppVersion": "1.0.0",
"description": "Materialize Todoist tasks within Obsidian notes.", "description": "Materialize Todoist tasks within Obsidian notes.",
"author": "Jamie Brynes", "author": "Jamie Brynes",
"authorUrl": "https://github.com/jamiebrynes7/obsidian-todoist-plugin", "authorUrl": "https://github.com/jamiebrynes7/obsidian-todoist-plugin",

View File

@@ -3,15 +3,36 @@
font-size: 1.25em; font-size: 1.25em;
} }
.todoist-refresh-button { .is-live-preview .todoist-refresh-button {
display: inline; /* The refresh button sits next to the built-in 'Edit' button. So we need to place this excatly to the right of that one. But with --size-2-2 as buffer to it. */
margin-left: 8px; margin-right: calc(var(--icon-size) + 3 * var(--size-2-2));
margin-right: 8px;
float: right;
} }
.todoist-refresh-spin { .is-live-preview .todoist-add-button {
animation: spin 1s linear infinite; /* The add button is two buttons in, so we need to double the padding size */
margin-right: calc(2 * var(--icon-size) + 6 * var(--size-2-2));
}
.markdown-reading-view .todoist-add-button,
.markdown-reading-view .todoist-refresh-button {
float: right;
margin-left: 8px;
color: var(--text-muted);
border-radius: var(--radius-s);
padding: var(--size-2-2) var(--size-2-3);
}
.markdown-reading-view .todoist-add-button:hover,
.markdown-reading-view .todoist-refresh-button:hover {
background-color: var(--background-modifier-hover);
}
.is-live-preview .todoist-refresh-button.todoist-refresh-fetching {
opacity: 1!important;
}
.todoist-refresh-fetching > div {
animation: spin 1s linear infinite reverse;
} }
@-webkit-keyframes spin { @-webkit-keyframes spin {
@@ -20,19 +41,26 @@
} }
} }
.task-metadata { .markdown-reading-view .task-metadata,
margin-left: 30px; .markdown-reading-view .todoist-task-description {
margin-left: 6px;
} }
.task-calendar-icon, .is-live-preview .task-metadata,
.task-project-icon, .is-live-preview .todoist-task-description {
.task-labels-icon { margin-left: 34px;
vertical-align: middle;
height: 17px;
width: 17px;
} }
.task-date.task-overdue { .task-metadata-item {
display: flex;
align-items: center;
}
.task-metadata-item > * + * {
margin-left: 0.25rem;
}
.task-metadata-item.task-overdue {
color: var(--text-error); color: var(--text-error);
} }
@@ -63,16 +91,71 @@
.todoist-task-content { .todoist-task-content {
display: inline; display: inline;
text-indent: 0px;
} }
ul.todoist-task-list { ul.todoist-task-list {
white-space: normal; white-space: normal;
padding-inline-start: calc(var(--list-indent) - 11px);
} }
.markdown-reading-view .hide-in-reading-view { .markdown-reading-view .hide-in-reading-view {
display: none; display: none;
} }
.is-live-preview .block-language-todoist { .theme-dark {
padding-left: 15px; --todoist-p1-border: #ff7066;
--todoist-p1-border-hover: #ff706680;
--todoist-p1-background: rgba(255,112,102, .1);
--todoist-p2-border: #ff9a14;
--todoist-p2-border-hover: #ff9a1480;
--todoist-p2-background: rgba(255,154,20, .1);
--todoist-p3-border: #5297ff;
--todoist-p3-border-hover: #5297ff80;
--todoist-p3-background: rgba(82,151,255, .1);
} }
.theme-light {
--todoist-p1-border: #d1453b;
--todoist-p1-border-hover: #d1453b80;
--todoist-p1-background: rgba(209,69,59, .1);
--todoist-p2-border: #eb8909;
--todoist-p2-border-hover: #eb890980;
--todoist-p2-background: rgba(235,137,9, .1);
--todoist-p3-border: #246fe0;
--todoist-p3-border-hover: #246fe080;
--todoist-p3-background: rgba(36,111,224, .1);
}
.todoist-p1 input {
--checkbox-border-color: var(--todoist-p1-border);
--checkbox-border-color-hover: var(--todoist-p1-border-hover);
background-color: var(--todoist-p1-background);
}
.todoist-p2 input {
--checkbox-border-color: var(--todoist-p2-border);
--checkbox-border-color-hover: var(--todoist-p2-border-hover);
background-color: var(--todoist-p2-background);
}
.todoist-p3 input {
--checkbox-border-color: var(--todoist-p3-border);
--checkbox-border-color-hover: var(--todoist-p3-border-hover);
background-color: var(--todoist-p3-background);
}
.todoist-task-description {
font-size: 80%;
color: var(--text-muted);
}
.todoist-project-title {
margin: 1em 0;
font-weight: 700;
}

View File

@@ -112,7 +112,7 @@ sudo journalctl --vacuum-size=400M # 保留最後400M
修改後記得重啟 `journalctl` 修改後記得重啟 `journalctl`
![[journalctl#重啟日誌]] ![[journalctl#重啟日誌]]
也請記得[[確認日誌的完整性]] 也請記得[[journalctl#確認日誌的完整性]]
### 確認日誌的完整性 ### 確認日誌的完整性
```bash ```bash

19
broken links output.md Normal file
View File

@@ -0,0 +1,19 @@
Don't forget that creating the file from here may create the file in the wrong directory!
- [[軟體保護]] in [[02. 個人Daily/2020/12/2020-12-03(Thu)]]
- [[01. TODO#KongQA]] in [[02. 個人Daily/2020/12/2020-12-04(Fri)]], [[02. 個人Daily/2020/12/2020-12-17(Thu)]]
- [[frp]] in [[02. 個人Daily/2020/12/2020-12-05(Sat)]]
- [[PARA筆記]] in [[02. 個人Daily/2020/12/2020-12-05(Sat)]]
- [[Make Google Docs Look Like Dropbox Paper]] in [[02. 個人Daily/2020/12/2020-12-12(Sat)]]
- [[01. TODO]] in [[02. 個人Daily/2020/12/2020-12-13(Sun)]]
- [[每週外食#^98f39d]] in [[02. 個人Daily/2020/12/2020-12-13(Sun)]]
- [[01. TODO#RobotRunDoc Online]] in [[02. 個人Daily/2020/12/2020-12-17(Thu)]]
- [[003. LBRY]] in [[02. 個人Daily/2020/12/2020-12-18(Fri)]]
- [[每週外食#^a0b44c]] in [[02. 個人Daily/2020/12/2020-12-21(Mon)]]
- [[每週外食#^347d91]] in [[02. 個人Daily/2021/01/2021-01-06(Wed)]]
- [[每週外食#2021-01-14 - Coco睿睿]] in [[02. 個人Daily/2021/01/2021-01-18(Mon)]]
- [[01. TODO#^1947d6]] in [[02. 個人Daily/2021/02/2021-02-22(Mon)]]
- [[核芯達]] in [[02. 個人Daily/2021/07/2021-07-28(週三)]]
- [[01. TODO#^fce519]] in [[02. 個人Daily/2023/04/2023-04-17(週一)]]
- [[01. TODO#^cb68ca]] in [[02. 個人Daily/2023/04/2023-04-17(週一)]]
- [[An example that use categorical_crossentropy and softmax]] in [[05. 資料收集/Programming/Keras/categorical_crossentropy]], [[05. 資料收集/Programming/Keras/Machine Learning]]
- [[確認日誌的完整性]] in [[05. 資料收集/Linux/journalctl]]

9
empty files.md Normal file
View File

@@ -0,0 +1,9 @@
- [[98. templates/note.md]]
- [[98. templates/front matter.md]]
- [[02. 個人Daily/2021/02/2021-02-04(Thu).md]]
- [[02. 個人Daily/2021/02/2021-02-03(Wed).md]]
- [[02. 個人Daily/2021/01/2021-01-28(Thu).md]]
- [[02. 個人Daily/2021/01/2021-01-25(Mon).md]]
- [[02. 個人Daily/2021/01/2021-01-14(Thu).md]]
- [[02. 個人Daily/2020/12/2020-12-27(Sun).md]]
- [[02. 個人Daily/2020/12/2020-12-22(Tue).md]]

526
orphaned files output.md Normal file
View File

@@ -0,0 +1,526 @@
- [[IMG_5696.jpg]]
- [[IMG_5679.jpg]]
- [[IMG_5678.jpg]]
- [[IMG_5697.jpg]]
- [[20221226_105250522_iOS.jpeg]]
- [[20221226_105220549_iOS.jpeg]]
- [[messageImage_1622109654852.jpg]]
- [[Pasted image 20230418111423.png]]
- [[Pasted image 20230418111420.png]]
- [[Pasted image 20230426213611.png]]
- [[Pasted image 20230426213616.png]]
- [[Pasted image 20230418111538.png]]
- [[Pasted image 20230418111512.png]]
- [[Pasted image 20230426213513.png]]
- [[Pasted image 20230426213640.png]]
- [[Pasted image 20201212234315.png]]
- [[Pasted image 20201212234307.png]]
- [[20240217_214001_chrome_2604x1716 1.png]]
- [[Pasted image 20210728112504.png]]
- [[Pasted image 20230426213534.png]]
- [[Pasted image 20220815135026.png]]
- [[Pasted image 20201212234340.png]]
- [[20240217_212806_chrome_1894x1254.png]]
- [[Pasted image 20230426213547.png]]
- [[fireball_usb_info.png]]
- [[tablehub_usb_info.png]]
- [[bolide_audio_usb_info.png]]
- [[Pasted image 20201212234325.png]]
- [[Pasted image 20201212234335.png]]
- [[Pasted image 20230504183439.png]]
- [[十字型四像素自動對焦.jpg]]
- [[Pasted image 20230426214323.png]]
- [[Pasted image 20220815134750.png]]
- [[Pasted image 20220516152230.png]]
- [[Pasted image 20210728112028.png]]
- [[Pasted image 20220815135248.png]]
- [[para_example.png]]
- [[messageImage_1675136536288.jpg]]
- [[万字避坑指南C++ 的缺陷与思考(上).md]]
- [[Pasted image 20210125183754.png]]
- [[messageImage_1675136506785.jpg]]
- [[Poetry.md]]
- [[Pasted image 20220506145247.png]]
- [[Pasted image 20230504183452.png]]
- [[卡片盒筆記.jpg]]
- [[Pasted image 20210722093705.png]]
- [[Pasted image 20210422205534.png]]
- [[Pasted image 20210818115458.png]]
- [[Qt.md]]
- [[05. 資料收集/Programming/OpenCV/OpenCV.md]]
- [[Pasted image 20220908123355.png]]
- [[Pasted image 20210722145433.png]]
- [[FFMpeg.md]]
- [[Proxmox VE.md]]
- [[Visual Studio Code.md]]
- [[GCC.md]]
- [[Service.md]]
- [[20210119 - 中產悲歌.md]]
- [[Structure.md]]
- [[logging.md]]
- [[Obisidian.md]]
- [[2021-11-15(週一).md]]
- [[Windows 11 重灌.md]]
- [[Android programming.md]]
- [[Flask.md]]
- [[Sentinel.md]]
- [[chrono.md]]
- [[UML.md]]
- [[智慧指標.md]]
- [[05. 資料收集/樹莓派/_Map.canvas]]
- [[cut.md]]
- [[Grafana.md]]
- [[自我成長.canvas]]
- [[20230214 - 日本福岡旅遊.md]]
- [[MySQL.md]]
- [[HEIF.md]]
- [[2019-09-12(週四).md]]
- [[tkinter.md]]
- [[2018-10-12(週五).md]]
- [[20240101 - 筆記的魔力.canvas]]
- [[Profiles & levels.md]]
- [[05. 資料收集/Windows/_Map.canvas]]
- [[numpy axis 運算.md]]
- [[檢測工具.md]]
- [[AudioTrack.md]]
- [[05. 資料收集/Linux/_Map.canvas]]
- [[Apache.md]]
- [[2023-10-30(週一).md]]
- [[class.md]]
- [[2021-12-01(週三).md]]
- [[2021-07-11(週日).md]]
- [[argparse.ArgumentParser.md]]
- [[C++20.md]]
- [[2023-03-08(週三).md]]
- [[2022-10-18(週二).md]]
- [[AtomicBoolean.md]]
- [[05. 資料收集/Programming/Python/opencv.md]]
- [[2021-12-16(週四).md]]
- [[scp.md]]
- [[2022-07-15(週五).md]]
- [[如何作筆記?.md]]
- [[2021-01-17(Sun).md]]
- [[2023-05-03(週三).md]]
- [[2022-10-17(週一).md]]
- [[AutoStation.md]]
- [[2022-10-22(週六).md]]
- [[tag.md]]
- [[Chrome.md]]
- [[subprocess.md]]
- [[2021-01-10(Sun).md]]
- [[Datas.md]]
- [[20210723 - 高手學習.md]]
- [[20210320 - 最高學以致用法.md]]
- [[2020-05-16(週六).md]]
- [[2021-09-01(週三).md]]
- [[2018-12-03(週一).md]]
- [[2022年度目標.md]]
- [[move operator.md]]
- [[2020-03-12(週四).md]]
- [[decorator.md]]
- [[2023-11-26(週日).md]]
- [[2021-09-27(週一).md]]
- [[20220619 - 精確的力量.md]]
- [[2023-12-12(週二).md]]
- [[OpenCV API.md]]
- [[2020-12-24(Thu).md]]
- [[2023-05-11(週四).md]]
- [[2023-01-31(週二).md]]
- [[舊化作例.md]]
- [[2020-05-09(週六).md]]
- [[2021-07-15(週四).md]]
- [[Machine Learning.md]]
- [[2023-11-29(週三).md]]
- [[2022-04-14(週四).md]]
- [[2023-02-04(週六).md]]
- [[filebrowser.md]]
- [[Structured binding declaration.md]]
- [[2023-10-24(週二).md]]
- [[Bolide.md]]
- [[2022-12-23(週五).md]]
- [[2023-04-06(週四).md]]
- [[Brown noise.md]]
- [[2023-12-22(週五).md]]
- [[2021-09-28(週二).md]]
- [[Nextcloud.md]]
- [[DS1513 安裝 tailscale.md]]
- [[2020-12-17(Thu).md]]
- [[2021-04-08(週四).md]]
- [[2021-07-10(週六).md]]
- [[2023-11-10(週五).md]]
- [[C++17.md]]
- [[2021-08-04(週三).md]]
- [[2018-10-05(週五).md]]
- [[2023-02-08(週三).md]]
- [[2023-11-15(週三).md]]
- [[2023-11-13(週一).md]]
- [[2023-05-10(週三).md]]
- [[2018-12-07(週五).md]]
- [[2021-08-07(週六).md]]
- [[2023-11-12(週日).md]]
- [[2021-01-06(Wed).md]]
- [[ffmpeg command.md]]
- [[2022-01-08(週六).md]]
- [[2020-03-06(週五).md]]
- [[01. Setup.md]]
- [[2023-04-16(週日).md]]
- [[2023-09-04(週一).md]]
- [[2023-11-01(週三).md]]
- [[2023-03-05(週日).md]]
- [[2023-11-20(週一).md]]
- [[2020-12-03(Thu).md]]
- [[2023-01-17(週二).md]]
- [[2023-11-11(週六).md]]
- [[2023-08-01(週二).md]]
- [[2022-01-01(週六).md]]
- [[sqlite.md]]
- [[2023-08-16(週三).md]]
- [[2023-01-10(週二).md]]
- [[2023-01-15(週日).md]]
- [[2023-11-16(週四).md]]
- [[2021-08-10(週二).md]]
- [[2023年度目標.md]]
- [[2021-08-08(週日).md]]
- [[AV_CODEC_FLAG_GLOBAL_HEADER.md]]
- [[2022-04-06(週三).md]]
- [[2018-11-30(週五).md]]
- [[2023-11-06(週一).md]]
- [[2023-01-13(週五).md]]
- [[Dropdown button.md]]
- [[設定CPU Power mode.md]]
- [[2023-11-21(週二).md]]
- [[2021-08-02(週一).md]]
- [[2023-02-12(週日).md]]
- [[2023-01-11(週三).md]]
- [[2023-02-02(週四).md]]
- [[2023-11-17(週五).md]]
- [[2022-06-06(週一).md]]
- [[Pelican blog.md]]
- [[ADB 取得 APK 的 icon.md]]
- [[2023-12-18(週一).md]]
- [[2022-12-25(週日).md]]
- [[2021-03-01(Mon).md]]
- [[submodule.md]]
- [[2023-01-23(週一).md]]
- [[TestCam.md]]
- [[2023-10-26(週四).md]]
- [[2023-10-27(週五).md]]
- [[2022-06-01(週三).md]]
- [[vue.js.md]]
- [[2022-12-27(週二).md]]
- [[2021-09-24(週五).md]]
- [[MkDocs.md]]
- [[2023-02-09(週四).md]]
- [[2021-02-02(Tue).md]]
- [[2023-04-07(週五).md]]
- [[2021-08-09(週一).md]]
- [[2023-02-01(週三).md]]
- [[Gitzo 腳架編號規則.md]]
- [[2023-02-06(週一).md]]
- [[2022-12-31(週六).md]]
- [[2023-01-20(週五).md]]
- [[2023-01-21(週六).md]]
- [[Docker.md]]
- [[2020-05-18(週一).md]]
- [[2018-10-08(週一).md]]
- [[2021-02-22(Mon).md]]
- [[Keras.tensorflow - Dataset.md]]
- [[2022-02-10(週四).md]]
- [[2021-10-04(週一).md]]
- [[2021-09-02(週四).md]]
- [[2023-12-01(週五).md]]
- [[backup_docker_gitea.sh.md]]
- [[2021-07-09(週五).md]]
- [[2023-10-25(週三).md]]
- [[Gitea.md]]
- [[2021-02-01(Mon).md]]
- [[2021-05-24(週一).md]]
- [[SublimeText.md]]
- [[smb client.md]]
- [[2021-09-09(週四).md]]
- [[00. Introduction.md]]
- [[2023-11-08(週三).md]]
- [[2023-11-09(週四).md]]
- [[2024-01-01(週一).md]]
- [[使用 librosa 做 FFT.md]]
- [[2023-11-22(週三).md]]
- [[2020-12-12(Sat).md]]
- [[youtube-dl.md]]
- [[2023-11-19(週日).md]]
- [[2023-02-03(週五).md]]
- [[2023-05-12(週五).md]]
- [[2023-01-02(週一).md]]
- [[使用 librosa 做 mel spectrogram.md]]
- [[2020-04-19(週日).md]]
- [[2023-02-05(週日).md]]
- [[QVariant.md]]
- [[2021-12-23(週四).md]]
- [[2021-10-20(週三).md]]
- [[Modern C++ The good parts.md]]
- [[log.md]]
- [[2021-12-20(週一).md]]
- [[2023-10-31(週二).md]]
- [[2021-02-21(Sun).md]]
- [[2021-02-16(Tue).md]]
- [[Application Icon.md]]
- [[2021-06-28(週一).md]]
- [[2020-12-13(Sun).md]]
- [[2023-08-03(週四).md]]
- [[2021-01-22(Fri).md]]
- [[2023-12-05(週二).md]]
- [[for_each.md]]
- [[2020-04-15(週三).md]]
- [[libsndfile.md]]
- [[2023-11-30(週四).md]]
- [[2023-10-28(週六).md]]
- [[2023-01-12(週四).md]]
- [[2018-10-06(週六).md]]
- [[2023-12-08(週五).md]]
- [[2023-12-14(週四).md]]
- [[2022-12-28(週三).md]]
- [[2021-05-26(週三).md]]
- [[2022-12-13(週二).md]]
- [[2021-01-16(Sat).md]]
- [[2021-04-05(週一).md]]
- [[2023-11-14(週二).md]]
- [[2023-08-14(週一).md]]
- [[2020-03-25(週三).md]]
- [[固定型心態.md]]
- [[2020-12-11(Fri).md]]
- [[2021-03-17(週三).md]]
- [[2021-02-13(Sat).md]]
- [[2021-01-13(Wed).md]]
- [[2018-10-13(週六).md]]
- [[2020-12-30(Wed).md]]
- [[2023-01-08(週日).md]]
- [[2023-02-11(週六).md]]
- [[2021-01-09(Sat).md]]
- [[freshrss.md]]
- [[2023-01-16(週一).md]]
- [[00. 景點收集.md]]
- [[2021-05-25(週二).md]]
- [[2021-08-03(週二).md]]
- [[2020-12-09(Wed).md]]
- [[2022-12-15(週四).md]]
- [[timer.md]]
- [[2023-04-17(週一).md]]
- [[2023-01-22(週日).md]]
- [[Tools.md]]
- [[2021-08-16(週一).md]]
- [[2022-03-28(週一).md]]
- [[2022-12-26(週一).md]]
- [[timedatectl.md]]
- [[2023-12-13(週三).md]]
- [[2021-01-15(Fri).md]]
- [[Sega.md]]
- [[2020-12-05(Sat).md]]
- [[backup_pi.sh.md]]
- [[2022-01-10(週一).md]]
- [[2023-01-24(週二).md]]
- [[2021-07-18(週日).md]]
- [[2024-01-02(週二).md]]
- [[2021-04-06(週二).md]]
- [[2021-07-28(週三).md]]
- [[2021-07-24(週六).md]]
- [[虎式.md]]
- [[2021-08-06(週五).md]]
- [[powercfg powerthrottling.md]]
- [[2021-01-30(Sat).md]]
- [[Class template.md]]
- [[2021-08-13(週五).md]]
- [[2021-12-13(週一).md]]
- [[2021-09-13(週一).md]]
- [[2023-11-23(週四).md]]
- [[2020-05-15(週五).md]]
- [[2021-06-26(週六).md]]
- [[2021-11-04(週四).md]]
- [[2023-08-02(週三).md]]
- [[Android External Storage - Read, Write, Save File.md]]
- [[av_opt_set.md]]
- [[2021-01-11(Mon).md]]
- [[2021-07-23(週五).md]]
- [[2020-04-18(週六).md]]
- [[2023-01-01(週日).md]]
- [[QA Sustaining Automation.md]]
- [[2021-07-27(週二).md]]
- [[2021-03-15(週一).md]]
- [[20220526 - 深入淺出設計模式.md]]
- [[threading.md]]
- [[稼動率.md]]
- [[2021-09-16(週四).md]]
- [[AE Team.md]]
- [[2021-05-27(週四).md]]
- [[vim.md]]
- [[2021-04-10(週六).md]]
- [[2021-03-20(週六).md]]
- [[numpy - 同樣順序打亂多個array.md]]
- [[2021-01-21(Thu).md]]
- [[UI.md]]
- [[2021-01-27(Wed).md]]
- [[2021-10-14(週四).md]]
- [[皮質醇.md]]
- [[2020-12-19(Sat).md]]
- [[2021-07-25(週日).md]]
- [[2021-07-17(週六).md]]
- [[2022-02-11(週五).md]]
- [[2021-01-24(Sun).md]]
- [[2023-02-07(週二).md]]
- [[2021-08-05(週四).md]]
- [[2023-03-09(週四).md]]
- [[2023-02-22(週三).md]]
- [[C++20, How Hard Could It Be.md]]
- [[2023-08-15(週二).md]]
- [[2023-11-07(週二).md]]
- [[2021-12-17(週五).md]]
- [[2020-02-14(週五).md]]
- [[成長型心態.md]]
- [[2021-07-20(週二).md]]
- [[2021-05-28(週五).md]]
- [[演算法.md]]
- [[Use av_opt_set to setup profile.md]]
- [[2021-07-06(週二).md]]
- [[2021-12-18(週六).md]]
- [[Tiny.md]]
- [[2021-08-25(週三).md]]
- [[2022-12-11(週日).md]]
- [[2020-12-18(Fri).md]]
- [[2021-07-22(週四).md]]
- [[2022-12-06(週二).md]]
- [[2020-05-17(週日).md]]
- [[Traxxas Sledge.md]]
- [[日記.md]]
- [[2021-09-23(週四).md]]
- [[2020-03-24(週二).md]]
- [[2020-04-27(週一).md]]
- [[2020-12-26(Sat).md]]
- [[2021-07-16(週五).md]]
- [[2020-03-23(週一).md]]
- [[2023-01-19(週四).md]]
- [[2022-12-02(週五).md]]
- [[2021-09-22(週三).md]]
- [[blogHeader.md]]
- [[freefilesync.md]]
- [[2021-04-12(週一).md]]
- [[2020-04-02(週四).md]]
- [[Juice.md]]
- [[2021-07-29(週四).md]]
- [[Modern C++ use in Chromium.md]]
- [[AOSP.md]]
- [[ME.md]]
- [[2021-08-14(週六).md]]
- [[thisWeek.md]]
- [[2021-08-26(週四).md]]
- [[安裝.md]]
- [[2021-08-24(週二).md]]
- [[2021-07-26(週一).md]]
- [[A cheatsheet of modern C++ language and library features.md]]
- [[2021-07-02(週五).md]]
- [[設定日誌大小.md]]
- [[table.md]]
- [[sample().md]]
- [[2021-04-11(週日).md]]
- [[SSIM.md]]
- [[QTableWidget.md]]
- [[好盈電變調整中立點.md]]
- [[00. OurTeam.md]]
- [[2021-07-30(週五).md]]
- [[知識管理.md]]
- [[2022-12-04(週日).md]]
- [[2020-05-19(週二).md]]
- [[Logitech.md]]
- [[2020-12-06(Sun).md]]
- [[2020-12-25(Fri).md]]
- [[2020-03-22(週日).md]]
- [[差速器調教教學.md]]
- [[設定Cloudflare DDNS.md]]
- [[2022-04-12(週二).md]]
- [[2022-04-08(週五).md]]
- [[2022-03-04(週五).md]]
- [[2022-02-15(週二).md]]
- [[2022-02-14(週一).md]]
- [[2022-01-26(週三).md]]
- [[2022-01-24(週一).md]]
- [[2022-01-19(週三).md]]
- [[2022-01-13(週四).md]]
- [[2020-03-29(週日).md]]
- [[2021-08-20(週五).md]]
- [[Meetup.md]]
- [[2020-12-16(Wed).md]]
- [[界面外觀.md]]
- [[2020-02-07(週五).md]]
- [[讀書筆記.md]]
- [[bashrc.md]]
- [[2021-12-24(週五).md]]
- [[2021-12-21(週二).md]]
- [[2021-12-15(週三).md]]
- [[2021-03-21(週日).md]]
- [[IPFS.md]]
- [[2020-05-13(週三).md]]
- [[台語諺語.md]]
- [[更新與安裝工具.md]]
- [[2021-11-01(週一).md]]
- [[2021-11-12(週五).md]]
- [[2021-10-28(週四).md]]
- [[2021-10-06(週三).md]]
- [[2021-08-17(週二).md]]
- [[2021-08-11(週三).md]]
- [[2021-07-31(週六).md]]
- [[2021-07-21(週三).md]]
- [[2021-07-19(週一).md]]
- [[2021-07-14(週三).md]]
- [[2021-07-07(週三).md]]
- [[2020-05-14(週四).md]]
- [[2021-01-18(Mon).md]]
- [[2020-12-10(Thu).md]]
- [[raspi-config.md]]
- [[2021-06-03(週四).md]]
- [[2020-04-22(週三).md]]
- [[2021-02-20(Sat).md]]
- [[布萊茲‧帕斯卡Blaise Pascal.md]]
- [[2021-07-04(週日).md]]
- [[2020-12-04(Fri).md]]
- [[2021-05-02(週日).md]]
- [[2020-07-10(週五).md]]
- [[2020-10-06(週二).md]]
- [[note.md]]
- [[2col.md]]
- [[2020-12-21(Mon).md]]
- [[2020-09-12(週六).md]]
- [[2020-08-13(週四).md]]
- [[2020-12-02(週三).md]]
- [[2020-11-10(週二).md]]
- [[2020-10-22(週四).md]]
- [[2020-05-20(週三).md]]
- [[2020-07-24(週三).md]]
- [[2021-01-26(Tue).md]]
- [[README.md]]
- [[2021-05-29(週六).md]]
- [[2021-03-28(週日).md]]
- [[2021-07-05(週一).md]]
- [[2021-07-01(週四).md]]
- [[2021-06-15(週二).md]]
- [[2021-06-12(週六).md]]
- [[2021-06-11(週五).md]]
- [[2021-06-10(週四).md]]
- [[2021-06-09(週三).md]]
- [[2021-06-08(週二).md]]
- [[2021-06-07(週一).md]]
- [[2021-06-06(週日).md]]
- [[2021-06-04(週五).md]]
- [[2021-06-05(週六).md]]
- [[2021-06-02(週三).md]]
- [[2021-06-01(週二).md]]
- [[2021-02-08(Mon).md]]
- [[2021-03-13(週六).md]]
- [[2021-03-27(週六).md]]
- [[date.md]]
- [[2021-02-15(Mon).md]]
- [[2021-05-22(週六).md]]
- [[2021-01-23(Sat).md]]
- [[2021-02-04(Thu).md]]
- [[2021-02-03(Wed).md]]
- [[2021-01-28(Thu).md]]
- [[2021-01-25(Mon).md]]
- [[2021-01-14(Thu).md]]
- [[2020-12-27(Sun).md]]
- [[2020-12-22(Tue).md]]