main
iOS 3 years ago
parent 1c00020593
commit 7e50515993

@ -24,5 +24,6 @@
"obsidian42-brat", "obsidian42-brat",
"code-block-copy", "code-block-copy",
"obsidian-lineup-builder", "obsidian-lineup-builder",
"emoji-shortcodes",
"obsidian-crypto-lookup" "obsidian-crypto-lookup"
] ]

File diff suppressed because one or more lines are too long

@ -2,7 +2,7 @@
"id": "buttons", "id": "buttons",
"name": "Buttons", "name": "Buttons",
"description": "Create Buttons in your Obsidian notes to run commands, open links, and insert templates", "description": "Create Buttons in your Obsidian notes to run commands, open links, and insert templates",
"version": "0.4.15", "version": "0.4.16",
"author": "shabegom", "author": "shabegom",
"authorUrl": "https://shbgm.ca", "authorUrl": "https://shbgm.ca",
"isDesktopOnly": false, "isDesktopOnly": false,

File diff suppressed because one or more lines are too long

@ -1,7 +1,7 @@
{ {
"id": "dataview", "id": "dataview",
"name": "Dataview", "name": "Dataview",
"version": "0.4.19", "version": "0.4.20",
"minAppVersion": "0.12.0", "minAppVersion": "0.12.0",
"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>",

@ -93,9 +93,10 @@
}, },
"syntaxHighlight": false, "syntaxHighlight": false,
"copyButton": true, "copyButton": true,
"version": "6.4.1", "version": "6.5.1",
"autoCollapse": false, "autoCollapse": false,
"defaultCollapseType": "open", "defaultCollapseType": "open",
"syncLinks": true, "syncLinks": true,
"enableMarkdownProcessor": false "enableMarkdownProcessor": false,
"injectColor": true
} }

File diff suppressed because one or more lines are too long

@ -1,10 +1,10 @@
{ {
"id": "obsidian-admonition", "id": "obsidian-admonition",
"name": "Admonition", "name": "Admonition",
"version": "6.4.1", "version": "6.5.1",
"minAppVersion": "0.11.0", "minAppVersion": "0.11.0",
"description": "Admonition block-styled content for Obsidian.md", "description": "Admonition block-styled content for Obsidian.md",
"author": "Jeremy Valentine", "author": "Jeremy Valentine",
"authorUrl": "", "authorUrl": "",
"isDesktopOnly": false "isDesktopOnly": false
} }

@ -231,6 +231,14 @@ input.is-invalid {
width: 1em; width: 1em;
} }
.admonition-color-settings .setting-item-control {
gap: 1rem;
}
.admonition-color-settings input[type="color"]:disabled {
opacity: 0.75;
cursor: not-allowed;
}
/** Internal */ /** Internal */
.admonition li.task-list-item.is-checked p { .admonition li.task-list-item.is-checked p {

File diff suppressed because one or more lines are too long

@ -1,10 +1,10 @@
{ {
"id": "obsidian-dice-roller", "id": "obsidian-dice-roller",
"name": "Dice Roller", "name": "Dice Roller",
"version": "7.1.4", "version": "7.1.5",
"minAppVersion": "0.12.15", "minAppVersion": "0.12.15",
"description": "Inline dice rolling for Obsidian.md", "description": "Inline dice rolling for Obsidian.md",
"author": "Jeremy Valentine", "author": "Jeremy Valentine",
"authorUrl": "", "authorUrl": "",
"isDesktopOnly": false "isDesktopOnly": false
} }

File diff suppressed because one or more lines are too long

@ -4,6 +4,6 @@
"author": "aidurber", "author": "aidurber",
"description": "An Obsidian plugin to generate Tables of Contents that stay up to date with your document outline.", "description": "An Obsidian plugin to generate Tables of Contents that stay up to date with your document outline.",
"minAppVersion": "0.11.0", "minAppVersion": "0.11.0",
"version": "0.0.16", "version": "0.0.17",
"repo": "aidurber/obsidian-plugin-dynamic-toc" "repo": "aidurber/obsidian-plugin-dynamic-toc"
} }

File diff suppressed because one or more lines are too long

@ -1,8 +1,8 @@
{ {
"id": "obsidian-metatable", "id": "obsidian-metatable",
"name": "Metatable", "name": "Metatable",
"version": "0.10.3", "version": "0.10.4",
"minAppVersion": "0.12.3", "minAppVersion": "0.12.19",
"description": "Displays the full frontmatter as a table.", "description": "Displays the full frontmatter as a table.",
"author": "Arnau Siches", "author": "Arnau Siches",
"authorUrl": "https://www.seachess.net/", "authorUrl": "https://www.seachess.net/",

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
{ {
"id": "obsidian42-brat", "id": "obsidian42-brat",
"name": "Obsidian42 - BRAT", "name": "Obsidian42 - BRAT",
"version": "0.5.0", "version": "0.5.6",
"minAppVersion": "0.9.12", "minAppVersion": "0.9.12",
"description": "Easily install a beta version of a plugin for testing.", "description": "Easily install a beta version of a plugin for testing.",
"author": "TfTHacker", "author": "TfTHacker",

@ -9,7 +9,7 @@
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "02.02 Paris/@Expositions, concerts et activités.md", "file": "03.03 Food & Wine/@@Recipes.md",
"mode": "preview" "mode": "preview"
} }
} }
@ -68,7 +68,7 @@
"state": { "state": {
"type": "backlink", "type": "backlink",
"state": { "state": {
"file": "02.02 Paris/@Expositions, concerts et activités.md", "file": "03.03 Food & Wine/@@Recipes.md",
"collapseAll": false, "collapseAll": false,
"extraContext": false, "extraContext": false,
"sortOrder": "alphabetical", "sortOrder": "alphabetical",
@ -79,14 +79,6 @@
} }
} }
}, },
{
"id": "51b6dd4b8c0c1449",
"type": "leaf",
"state": {
"type": "empty",
"state": {}
}
},
{ {
"id": "86a095cebfd3c99f", "id": "86a095cebfd3c99f",
"type": "leaf", "type": "leaf",
@ -96,7 +88,7 @@
} }
}, },
{ {
"id": "0d5625ecf366c4df", "id": "cc17c039396855b5",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "DICE_ROLLER_VIEW", "type": "DICE_ROLLER_VIEW",
@ -107,15 +99,15 @@
}, },
"active": "c252d60ecbda6bb3", "active": "c252d60ecbda6bb3",
"lastOpenFiles": [ "lastOpenFiles": [
"03.03 Food & Wine/@@Recipes.md",
"02.02 Paris/Le Barn.md",
"02.02 Paris/@Hotels Paris.md",
"02.02 Paris/@Expositions, concerts et activités.md", "02.02 Paris/@Expositions, concerts et activités.md",
"02.02 Paris/Circuit Sud.md",
"02.02 Paris/@@Paris.md", "02.02 Paris/@@Paris.md",
"02.02 Paris/Circuit Ouest.md", "02.01 London/@@London.md",
"02.02 Paris/Circuit Marais.md", "03.03 Food & Wine/!!Coffee.md",
"02.02 Paris/Circuit Montmartre.md",
"02.02 Paris/@Bars Paris.md", "02.02 Paris/@Bars Paris.md",
"01.02 Home/Life mementos 1.md", "01.01 Life Orga/@Life Organisation.md",
"01.02 Home/Life mementos.md", "01.02 Home/@Shopping list.md"
"00.01 Admin/Templates/Template Note.md"
] ]
} }

@ -1,64 +1,83 @@
class globalFunc { class globalFunc {
DataCheck(arg1, arg2) {
DataCheck(/*luxon, */arg1, arg2) {
var iarg1 = arg1
if (moment(iarg1).isValid()) {iarg1 = arg1.toString()} let tempresult = false
var iarg2 = arg2 let iarg1 = arg1
if (moment(iarg2).isValid()) {iarg2 = arg2.toString()} let iarg2 = arg2
if (!Array.isArray(iarg2) && !Array.isArray(iarg1)) { switch(true) {
var resultdc = this.compareData(iarg1, iarg2) case Boolean(arg1.isValid):
} else if (!Array.isArray(iarg1)) { case Boolean(arg2.isValid):
let tempresult = false case (!Boolean(iarg2 instanceof Object) && !Boolean(iarg1 instanceof Object)):
for (let i = 0; i < iarg2.length; i++) { tempresult = this.compareData(/*luxon, */iarg1, iarg2)
tempresult = tempresult || this.compareData(iarg1, iarg2[i]) break;
} case (!Boolean(iarg1 instanceof Object)):
var resultdc = tempresult for (let i = 0; i < iarg2.length; i++) {
} else if (!Array.isArray(iarg2)) { tempresult = tempresult || this.compareData(/*luxon, */iarg1, iarg2[i])
let tempresult = false
for (let i = 0; i < iarg1.length; i++) {
tempresult = tempresult || this.compareData(iarg1[i], iarg2)
}
var resultdc = tempresult
} else {
let tempresult = false
for (let i = 0; i < arg2.length; i++) {
for (let j = 0; j < arg1.length; j++) {
tempresult = tempresult || this.compareData(iarg1[j], iarg2[i])
} }
} break;
case (!Boolean(iarg2 instanceof Object)):
var resultdc = tempresult for (let i = 0; i < iarg1.length; i++) {
tempresult = tempresult || this.compareData(/*luxon, */iarg1[i], iarg2)
}
break;
default:
for (let i = 0; i < iarg2.length; i++) {
for (let j = 0; j < iarg1.length; j++) {
tempresult = tempresult || this.compareData(/*luxon, */iarg1[j], iarg2[i])
}
}
break;
} }
return resultdc return tempresult
} }
compareData(arg1, arg2) { compareData(/*luxon, */arg1, arg2) {
let tempresult = false; let tempresult = false;
let targ1 = arg1
let toperator = ""
let targ2 = arg2
if (arg2.length > 1 && this.hasOperator(arg2)) { if (this.hasOperator(arg2.toString())) {
switch(this.getOperator(arg2)) { toperator = this.getOperator(arg2)
case '<': targ2 = arg2.replace(toperator, "")
tempresult = (parseFloat(arg1) < parseFloat(arg2.replace(this.getOperator(arg2), ""))) }
break;
case '<=': switch(true) {
tempresult = (parseFloat(arg1) <= parseFloat(arg2.replace(this.getOperator(arg2), ""))) case Boolean(arg1.isValid):
break; targ1 = arg1.toString() //startOf("day")
case '>': break;
tempresult = (parseFloat(arg1) > parseFloat(arg2.replace(this.getOperator(arg2), ""))) case Boolean(arg2.isValid):
break; targ2 = arg2.toString() // startOf("day") //(arg2.isValid) ? arg2.startOf("day") : (luxon.DateTime.fromISO(`${targ2}`)).startOf("day")
case '>=': break;
tempresult = (parseFloat(arg1) >= parseFloat(arg2.replace(this.getOperator(arg2), ""))) case (arg1.length == 0):
break; targ1 = ''
case '!': break;
if (isNaN(arg2.replace("!", ""))) { }
tempresult = !(arg1.search(new RegExp(arg2, "i")) > -1)
} else {tempresult = (parseFloat(arg1) != parseFloat(arg2.replace(this.getOperator(arg2), "")))} switch(toperator) {
break; case '<':
} tempresult = (targ1 < targ2)
} else {tempresult = (arg1.search(new RegExp(arg2, "i")) > -1)} break;
case '<=':
tempresult = (targ1 <= targ2)
break;
case '>':
tempresult = (targ1 > targ2)
break;
case '>=':
tempresult = (targ1 >= targ2)
break;
case '!':
tempresult = (typeof targ1 === 'string' || targ1 instanceof String) ? !(targ1.search(new RegExp(targ2, "i")) > -1) : (targ1 != targ2)
break;
default:
tempresult = (typeof targ1 === 'string' || targ1 instanceof String) ? (targ1.search(new RegExp(targ2, "i")) > -1) : (targ1 == targ2)
break;
}
return tempresult return tempresult
@ -70,6 +89,7 @@ class globalFunc {
case '<': case '<':
case '>': case '>':
case '!': case '!':
case '=':
tempresult = true tempresult = true
break; break;
} }
@ -77,11 +97,8 @@ class globalFunc {
} }
getOperator(arg1) { getOperator(arg1) {
let tempresult = arg1.charAt(0);
if (this.hasOperator(arg1.charAt(1))) { return (this.hasOperator(arg1.charAt(1))) ? arg1.charAt(0) + arg1.charAt(1) : arg1.charAt(0);
tempresult = tempresult + arg1.charAt(1)
}
return tempresult
} }
BuildList(arg1, construct) { BuildList(arg1, construct) {
@ -104,7 +121,7 @@ class globalFunc {
let TempS = "" let TempS = ""
if (Array.isArray(arg2)) { if (arg2 instanceof Object) {
for (let i = 0; i < arg1.length; i++) { for (let i = 0; i < arg1.length; i++) {
if (Boolean(arg1[i])) { if (Boolean(arg1[i])) {
if (TempS == "") { if (TempS == "") {
@ -134,11 +151,8 @@ class globalFunc {
} }
Get1stArg(arg3) { Get1stArg(arg3) {
if (!Array.isArray(arg3)) {
return arg3 return ((arg3 instanceof Object) || (arg3 instanceof Array)) ? arg3[0] : arg3
} else {
return arg3[0]
}
} }
topLevelFilter(pobj, DocType, subType) { topLevelFilter(pobj, DocType, subType) {
@ -155,7 +169,7 @@ class globalFunc {
} }
IsInSearch(pobj, DocType, darray, iarray) { IsInSearch(/*luxon, */pobj, DocType, darray, iarray) {
let ilength = iarray.length; let ilength = iarray.length;
let result = true let result = true
@ -169,7 +183,7 @@ class globalFunc {
if (Boolean(iarray[i])) { if (Boolean(iarray[i])) {
let pProp = this.GetpProp(pobj, DocType, darray[i]) let pProp = this.GetpProp(pobj, DocType, darray[i])
if (!Boolean(pProp)) { result = result && false } else { if (!Boolean(pProp)) { result = result && false } else {
result = result && this.DataCheck(pProp, iarray[i]) result = result && this.DataCheck(/*luxon, */pProp, iarray[i])
} }
} else {result = result && true} } else {result = result && true}
} }
@ -178,7 +192,7 @@ class globalFunc {
if (Boolean(iarray[i])) { if (Boolean(iarray[i])) {
let pProp = this.GetpProp(pobj, DocType, darray[i]) let pProp = this.GetpProp(pobj, DocType, darray[i])
if (!Boolean(pProp)) { result = result && false } else { if (!Boolean(pProp)) { result = result && false } else {
result = result && this.DataCheck(pProp, iarray[i]) result = result && this.DataCheck(/*luxon, */pProp, iarray[i])
} }
} else {result = result && true} } else {result = result && true}
break; break;
@ -188,14 +202,14 @@ class globalFunc {
return result return result
} }
getTable(dv, DocType, darray, iarray, tabletype) { getTable(dv, /*luxon, */DocType, darray, iarray, tabletype) {
let page = dv.pages() let page = dv.pages()
.filter(p => p && this.topLevelFilter(p, DocType, 0)) .filter(p => p && this.topLevelFilter(p, DocType, 0))
.where(p => p && this.IsInSearch(p, DocType, darray, iarray)) .where(p => p && this.IsInSearch(/*luxon, */p, DocType, darray, iarray))
if (typeof page == 'undefined' || typeof page == 'null' || page.length === 0) { if (page.length == 0) {
return this.EmptyQueryMessage() return this.EmptyQueryMessage(dv)
} }
dv.table(this.GetTableHeaders(DocType, tabletype), page dv.table(this.GetTableHeaders(DocType, tabletype), page
@ -204,7 +218,7 @@ class globalFunc {
} }
EmptyQueryMessage() { EmptyQueryMessage(dv) {
return dv.el('b', '⚠️ Warning:\nNo result matching your query!') return dv.el('b', '⚠️ Warning:\nNo result matching your query!')
} }
@ -429,7 +443,9 @@ class globalFunc {
toEmoji(label) { toEmoji(label) {
let tempresult = "" let tempresult = ""
if (Array.isArray(label)) { //other test for below: typeof label == 'object'
//return Object.entries(label)
if (label instanceof Object) {
for (let i = 0; i < label.length; i++) { for (let i = 0; i < label.length; i++) {
if (tempresult == '') { if (tempresult == '') {
tempresult = this.getEmoji(label[i]); tempresult = this.getEmoji(label[i]);
@ -517,7 +533,11 @@ class globalFunc {
break; break;
case 'Colombia': case 'Colombia':
tempresult = "🇨🇴" tempresult = "🇨🇴"
break; break;
case 'El Salvador':
case 'ElSalvador':
tempresult = "🇸🇻"
break;
case 'Pub': case 'Pub':
tempresult = "🍺" tempresult = "🍺"
break; break;
@ -1010,6 +1030,7 @@ class globalFunc {
break; break;
} }
return result return result
} }
} }

@ -3,4 +3,5 @@ const {globalFunc} = customJS
const DataType = 'Place' const DataType = 'Place'
let templacetype = globalFunc.Get1stArg(placetype) let templacetype = globalFunc.Get1stArg(placetype)
return globalFunc.getTable(dv, DataType, ["placetype", "dateadded", "style", "ambiance", "area", "theme", "country", "status"], [placetype, dateadded, style, ambiance, area, theme, country, status], templacetype) return globalFunc.getTable(dv, DataType, ["placetype", "dateadded", "style", "ambiance", "area", "theme", "country", "status"], [placetype, dateadded, style, ambiance, area, theme, country, status], templacetype)

@ -117,25 +117,10 @@ hide task count
&emsp; &emsp;
```dataview ```dataview
Table without id tags as "Tags" From "Family" Table without id tags as "Tags" From "01.03 Family"
Flatten file.tags as tags Flatten file.tags as tags
Group by tags Group by tags
``` ```
&emsp;
---
&emsp;
### TimeStamp check
&emsp;
```dataview
Table TimeStamp as "Time Stamp" from "Family"
Where TimeStamp > date(today) - dur(100 years)
Sort TimeStamp ascending
```
&emsp; &emsp;
&emsp; &emsp;

@ -1,6 +1,6 @@
--- ---
QPType: ["Hotel", "Restaurant", "Bar"] QPType: ["Restaurant", "Bar"]
QPStyle: QPStyle:
QPAmbiance: QPAmbiance:
QPKeyword: Terrace QPKeyword: Terrace

@ -7,7 +7,7 @@ QueryIngredient: ""
QueryTheme: Healthy QueryTheme: Healthy
QueryFavourite: QueryFavourite:
QueryRating: "" QueryRating: ""
QueryCookingTime: "" QueryCookingTime: "<40"
cssclass: recipeTable cssclass: recipeTable
Alias: ["Recipes"] Alias: ["Recipes"]
Tag: ["Lifestyle", "Food", "Cooking"] Tag: ["Lifestyle", "Food", "Cooking"]

Loading…
Cancel
Save