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",
"obsidian-git",
"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",
"name": "Dataview",
"version": "0.5.46",
"version": "0.5.64",
"minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>",

View File

@@ -3,6 +3,10 @@
line-height: 1.0;
}
.block-language-dataview {
overflow-y: auto;
}
/*****************/
/** Table Views **/
/*****************/
@@ -19,7 +23,7 @@
}
.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 {

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
*/
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
var __export = (target, all) => {
__markAsModule(target);
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __reExport = (target, module2, desc) => {
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);
}
};
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(`
`),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+`
`);if(o.length>1)return{settings:o[0],source:o.slice(1).join(e+`
`)};break e}}return{settings:"",source:n}},B=n=>{let t={};return n.split(`
`).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(`
`),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(`
`)),r=[];continue}else l==0?l=i:l==i&&(l=0);r.push(s)}return e.push(r.join(`
`)),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(`
`).length;e.setCursor({line:r.line+4+o-1,ch:i.length-i.lastIndexOf(`
`)-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(`
`).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(`
`)[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)}};

View File

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

View File

@@ -1,19 +1,126 @@
.columnParent {
display: flex;
padding: 15px 20px;
flex-wrap: wrap;
gap: 20px;
:root {
--obsidian-columns-gap: 20px;
--obsidian-columns-padding: 15px 20px;
--obsidian-columns-min-width: 100px;
--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;
}
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 {
white-space: pre-wrap;
}
.columnChild {
flex-grow: 1;
flex-basis: 0px;
.columnChild, div[data-callout="col"].callout > div.callout-content > * {
flex-grow: var(--obsidian-columns-def-span);
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",
"name": "Quiet Outline",
"version": "0.3.14",
"version": "0.3.24",
"minAppVersion": "0.15.6",
"description": "Make outline quiet and more powerful, including no-auto-expand, rendering heading as markdown, and search support.",
"author": "the_tree",

View File

@@ -65,15 +65,21 @@
font-size: 22px;
}
.quiet-outline code {
color: var(--text-color-code, var(--code-normal));
font-weight: bold;
font-family: var(--font-monospace);
background-color: var(--code-background);
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);
}
.quiet-outline span.internal-link {
color: var(--link-color);
}
.quiet-outline mark {
background-color: var(--text-highlight-bg);
color: var(--text-normal);
@@ -126,25 +132,28 @@
.quiet-outline .level-4 .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 {
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-4 .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) {
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-5 .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-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 {
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 */

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,10 @@
{
"id": "obsidian-rollover-daily-todos",
"name": "Rollover Daily Todos",
"version": "1.0.5",
"version": "1.1.8",
"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)",
"author": "Matthew Sessions",
"authorUrl": "https://matthewsessions.com",
"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": "Lukas Mölschl",
"authorUrl": "https://moelschl.com",
"isDesktopOnly": false
}

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -1,20 +1,72 @@
:root {
--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>");
}
/* Fix indentation of wrapped task lines in Tasks search results, when in Live Preview. */
ul.contains-task-list .task-list-item-checkbox {
margin-inline-start: calc(var(--checkbox-size) * -1.5) !important;
}
.plugin-tasks-query-explanation{
/* Prevent long explanation lines wrapping, so they are more readable,
especially on small screens.
A horizontal scroll bar will be displayed, if the explanation
is too wide to fit.
*/
--code-white-space: pre;
}
.tasks-count {
color: var(--text-faint);
padding-left: 20px;
}
/* Pencil icon. */
.tasks-edit {
background-color: var(--text-faint);
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;
display: inline-block;
/* Tooltip pop up above the description in short mode */
.tooltip.pop-up {
animation: pop-up-animation 200ms forwards ease-in-out;
}
@keyframes pop-up-animation {
0% {
opacity: 0;
transform: translateY(-100%) scale(1);
}
20% {
opacity: 0.7;
transform: translateY(-100%) scale(1.02);
}
40% {
opacity: 1;
transform: translateY(-100%) scale(1.05);
}
100% {
opacity: 1;
transform: translateY(-100%) scale(1);
}
}
/* Edit and postpone */
.tasks-edit, .tasks-postpone {
width: 1em;
height: 1em;
vertical-align: middle;
margin-left: 0.5em;
margin-left: .33em;
cursor: pointer;
font-family: var(--font-interface);
color: var(--text-accent);
}
a.tasks-edit, a.tasks-postpone {
text-decoration: none;
}
.tasks-edit::after {
content: '📝';
}
.tasks-postpone::after {
content: '⏩';
}
/* Urgency score */
@@ -44,23 +96,271 @@
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;
}
.tasks-modal label {
margin: 5px 0 5px 0;
/**------------------------------------------------------------------------
** MODAL
*------------------------------------------------------------------------**/
.tasks-modal-section + .tasks-modal-section {
margin-top: 16px;
}
.tasks-modal input[type=text] {
.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 hr {
margin: 10px 0 10px 0;
.tasks-modal textarea {
width: 100%;
min-height: calc(var(--input-height) * 2);
resize: vertical;
}
.tasks-modal-date {
margin-bottom: 10px;
.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,7 +1,7 @@
{
"id": "obsidian-tracker",
"name": "Tracker",
"version": "1.10.9",
"version": "1.13.2",
"minAppVersion": "0.9.12",
"description": "A plugin tracks occurrences and numbers in your notes",
"author": "pyrochlore",

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,11 @@
{
"id": "oz-image-plugin",
"name": "Ozan's Image in Editor Plugin",
"version": "2.1.4",
"name": "Image in Editor",
"version": "2.2.6",
"minAppVersion": "0.15.0",
"description": "View Images, Transclusions, iFrames and PDF Files within the Editor without a necessity to switch to Preview.",
"author": "Ozan Tellioglu",
"authorUrl": "https://ozan.pl/aboutme/",
"fundingUrl": "https://ko-fi.com/ozante",
"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 {
margin-top: 5px;
margin-bottom: 5px;
@@ -13,7 +65,7 @@
.oz-transclusion-widget-cm6 {
padding: 3px 3px 3px 19px;
border: 0.7px solid var(--text-muted);
max-height: 600px;
max-height: var(oz-img-in-editor-max-transclusion-height);
overflow: auto;
border-radius: 7px;
margin-top: 5px;
@@ -190,20 +242,17 @@ div.oz-transclusion-widget-cm6 pre {
div.oz-image-widget > img[alt$='#small'],
div.oz-image-widget-cm6 > img[alt$='#small'] {
max-width: 75% !important;
min-width: 200pt !important;
max-width: var(--oz-img-in-editor-img-size-small) !important;
}
div.oz-image-widget > img[alt$='#x-small'],
div.oz-image-widget-cm6 > img[alt$='#x-small'] {
max-width: 50% !important;
min-width: 100pt !important;
max-width: var(--oz-img-in-editor-img-size-x-small) !important;
}
div.oz-image-widget > img[alt$='#xx-small'],
div.oz-image-widget-cm6 > img[alt$='#xx-small'] {
max-width: 25% !important;
min-width: 50pt !important;
max-width: var(--oz-img-in-editor-img-size-xx-small) !important;
}
/* Style For CM6 */
@@ -273,3 +322,28 @@ div.oz-pdf-widget-cm6 + br {
text-transform: capitalize;
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",
"description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false,
"minAppVersion": "0.13.8",
"version": "0.17.3",
"js": "main.js"
"minAppVersion": "1.0.0",
"version": "0.21.0",
"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 {
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 {

View File

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

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -3,15 +3,36 @@
font-size: 1.25em;
}
.todoist-refresh-button {
display: inline;
margin-left: 8px;
margin-right: 8px;
float: right;
.is-live-preview .todoist-refresh-button {
/* 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-right: calc(var(--icon-size) + 3 * var(--size-2-2));
}
.todoist-refresh-spin {
animation: spin 1s linear infinite;
.is-live-preview .todoist-add-button {
/* 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 {
@@ -20,19 +41,26 @@
}
}
.task-metadata {
margin-left: 30px;
.markdown-reading-view .task-metadata,
.markdown-reading-view .todoist-task-description {
margin-left: 6px;
}
.task-calendar-icon,
.task-project-icon,
.task-labels-icon {
vertical-align: middle;
height: 17px;
width: 17px;
.is-live-preview .task-metadata,
.is-live-preview .todoist-task-description {
margin-left: 34px;
}
.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);
}
@@ -63,16 +91,71 @@
.todoist-task-content {
display: inline;
text-indent: 0px;
}
ul.todoist-task-list {
white-space: normal;
padding-inline-start: calc(var(--list-indent) - 11px);
}
.markdown-reading-view .hide-in-reading-view {
display: none;
}
.is-live-preview .block-language-todoist {
padding-left: 15px;
.theme-dark {
--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#確認日誌的完整性]]
### 確認日誌的完整性
```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]]