|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
ChildrenType: ["Note", "Task", "Recipe"]
|
|
|
|
|
JSXExample: "Hello JSX!"
|
|
|
|
|
Number1: 1
|
|
|
|
|
Number2: 3
|
|
|
|
|
TimeStamp: 2022-01-15
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await dv.io.load(dv.page("02.02 Paris/Abri"))
|
|
|
|
|
|
|
|
|
|
`jsx-<LoadiFrameButton title="" src="img_0950.jpg" />`
|
|
|
|
|
|
|
|
|
|
`jsx- <WithFrontMatter render={({JSXExample})=><h1>The value of hello is "{JSXExample}"</h1>}/>`
|
|
|
|
|
|
|
|
|
|
`jsx- <WithFrontMatter render={({Number1, Number2})=> (Number1 + Number2) * 100
|
|
|
|
|
}/>`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
not found: ☀️ 🌡️-7°C 🌬️↙3km/h
|
|
|
|
|
|
|
|
|
|
not found: ☀️ 🌡️-7°C 🌬️↙3km/h
|
|
|
|
|
|
|
|
|
|
=== start-multi-column: Testlist
|
|
|
|
|
```column-settings
|
|
|
|
|
number of columns: 2
|
|
|
|
|
largest column: standard
|
|
|
|
|
border: disabled
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
My Meggi-mo is never going to give up on me
|
|
|
|
|
|
|
|
|
|
[Forum](https://forum.obsidian.md)
|
|
|
|
|
|
|
|
|
|
=== end-column ===
|
|
|
|
|
|
|
|
|
|
> citation example
|
|
|
|
|
> <div class="signature"> ~ Melchior de Villeneuve</div>
|
|
|
|
|
|
|
|
|
|
=== end-multi-column
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 
|
|
|
|
|
|
|
|
|
|
<p id="counter"></p>
|
|
|
|
|
<div id="commentThread">
|
|
|
|
|
</div>
|
|
|
|
|
<h3>Comment</h3>
|
|
|
|
|
<form id="formField">
|
|
|
|
|
<input type="hidden" id="threadID">
|
|
|
|
|
<input type="text" id="commenterName" placeholder="name"><br><br>
|
|
|
|
|
<textarea id="commentBody" placeholder="Write here..."></textarea><br><br>
|
|
|
|
|
<input type="submit" value="Add">
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
 
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```dataviewjs
|
|
|
|
|
let stepSize = 40;
|
|
|
|
|
|
|
|
|
|
let bigStepSize = 200;
|
|
|
|
|
|
|
|
|
|
if (app.isMobile) {
|
|
|
|
|
|
|
|
|
|
stepSize = 15;
|
|
|
|
|
|
|
|
|
|
bigStepSize = 100;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let completeSquare = '🟩';
|
|
|
|
|
|
|
|
|
|
let notCompleteSquare = '⬛';
|
|
|
|
|
|
|
|
|
|
let results = [];
|
|
|
|
|
|
|
|
|
|
let pages = dv.pages('"00.01 Admin"');
|
|
|
|
|
|
|
|
|
|
for (let page of pages) {
|
|
|
|
|
|
|
|
|
|
let link = page.file.link;
|
|
|
|
|
|
|
|
|
|
link.display = completeSquare;
|
|
|
|
|
|
|
|
|
|
let rank = parseInt(page.file.name.slice(0, 4));
|
|
|
|
|
|
|
|
|
|
if (rank) {
|
|
|
|
|
|
|
|
|
|
results.push({
|
|
|
|
|
|
|
|
|
|
rank: rank,
|
|
|
|
|
|
|
|
|
|
name: page.file.name,
|
|
|
|
|
|
|
|
|
|
link: page.file.link
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
results.sort((a, b) => a.rank - b.rank);
|
|
|
|
|
|
|
|
|
|
let current = 2000;
|
|
|
|
|
|
|
|
|
|
let mapList = [];
|
|
|
|
|
|
|
|
|
|
for (let result of results) {
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < result.rank - current - 1; i++) {
|
|
|
|
|
|
|
|
|
|
mapList.push(notCompleteSquare);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mapList.push(result.link);
|
|
|
|
|
|
|
|
|
|
current = result.rank;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let displayString = '';
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < mapList.length; i = i + stepSize) {
|
|
|
|
|
|
|
|
|
|
let startBigStep = Math.ceil((i) / bigStepSize);
|
|
|
|
|
|
|
|
|
|
let endBigStep = Math.ceil((i + stepSize) / bigStepSize);
|
|
|
|
|
|
|
|
|
|
if (endBigStep > startBigStep) {
|
|
|
|
|
|
|
|
|
|
displayString += ((endBigStep - 1) * bigStepSize).toString().padStart(4, ' ');
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
displayString += ' '.repeat(4);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
displayString += ' ' + mapList.slice(i, i + stepSize).join('') + '<br>';
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dv.el('pre', displayString);
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
 
|
|
|
|
|
|
|
|
|
|
```lineup
|
|
|
|
|
formation: 433
|
|
|
|
|
players: Donnarumma,Bernat,Marquinhos,Kimpembe,Hakimi,Villeneuve,Verratti,St Hilaire,MBappe,Solanet,Messi
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```dataviewjs
|
|
|
|
|
const {shoppingFunc} = customJS
|
|
|
|
|
shoppingFunc.getItems2Change({app: app, dv: dv, luxon: luxon, that:this, theme: "to0"})
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```button
|
|
|
|
|
name Create Note
|
|
|
|
|
type append template
|
|
|
|
|
action SendMail
|
|
|
|
|
color blue
|
|
|
|
|
templater true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
const subject = tp.file.title
|
|
|
|
|
const body = tp.file.content
|
|
|
|
|
tR += "[Send as email](readdle-spark://compose?body=" + encodeURI(body) + ""&subject=" + encodeURI(subject) + ")"
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
const {templaterFunc} = this.app.plugins.plugins["customjs"].api
|
|
|
|
|
templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType)
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tR += const {templaterFunc} = this.app.plugins.plugins["customJS"]
|
|
|
|
|
templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType)
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
tR += const {templaterFunc} = this.app.plugins.plugins["customJS"].api
|
|
|
|
|
templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType)
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
tR += const {templaterFunc} = this.app.plugins.plugins["CustomJS"].api
|
|
|
|
|
templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType)
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
tR += const {templaterFunc} = tp.obsidian.plugins.plugins.CustomJS
|
|
|
|
|
%>
|
|
|
|
|
<% templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType) %>
|
|
|
|
|
|
|
|
|
|
tR += const {templaterFunc} = customJS
|
|
|
|
|
%>
|
|
|
|
|
<% templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType) %>
|
|
|
|
|
|
|
|
|
|
const templaterFunc = customJS
|
|
|
|
|
tR += templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType)
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
const templaterFunc = tp.obsidian.plugins.plugins.CustomJS
|
|
|
|
|
tR += templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType)
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
const {templaterFunc} = tp.obsidian.plugins.plugins.CustomJS
|
|
|
|
|
tR += templaterFunc.createNewFile(tp, tp.frontmatter.ChildrenType)
|
|
|
|
|
%>
|
|
|
|
|
|
|
|
|
|
CollapseMetaTable: yes
|
|
|
|
|
Groceries: ["🍶 6 bottle(s) Coke 0", "🍿 1 whole Snacks", "🧈 packet(s) Beurre", "🫒 0 bottle(s) Olive oil", "🍺 0 bottle(s) Beers", "🥯 0 packet(s) Bagels", "🍯 1 jar(s) Bonne Maman", "🍌 6 whole Bananas", "🧀 0 packet(s) Fromage rape", "🥩 2 packet(s) Cured meat", "🍐 6 whole Fruit", "🍝 2 packet(s) Pasta", "🌶️ 1 bottle(s) Tabasco"]
|
|
|
|
|
Health:
|
|
|
|
|
- 🚿 1 whole shower gel
|
|
|
|
|
- 🧴 1 whole shampoo
|
|
|
|
|
- 🪥 whole toothbrush
|
|
|
|
|
- 🦷 1 whole toothpaste
|
|
|
|
|
- 👂 whole earbuds
|
|
|
|
|
- 🪒 1 whole razor blades (mach3)
|
|
|
|
|
- 🍦 whole shaving cream
|
|
|
|
|
- 🧻 6 whole loo rolls
|
|
|
|
|
- 🦨 whole deo
|
|
|
|
|
Household:
|
|
|
|
|
- 👔 1 whole Washing gel
|
|
|
|
|
- 🧻 4 whole Kitchen towel
|
|
|
|
|
- 🧽 whole Sponge
|
|
|
|
|
- 👕 2 whole Softener
|
|
|
|
|
- 🍽️ whole Dishwasher tablets
|
|
|
|
|
- 🧂 1 whole Dishwasher salt
|
|
|
|
|
- 🚰 0 whole Dishwasher rinsing aid
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 
|
|
|
|
|
 
|
|
|
|
|
 
|
|
|
|
|
 
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```dataviewjs
|
|
|
|
|
const app = this.app;
|
|
|
|
|
const metaedit = app.plugins.plugins["metaedit"];
|
|
|
|
|
const init_dom = (row) => { const sel = `table.dataview.table-view-table td > span > a[data-href='${row.file.path}']`;
|
|
|
|
|
const tr = dv.container.querySelector(sel).closest("tr");
|
|
|
|
|
const labels = tr.querySelectorAll("._dataview-labels"); for (let i = 0; i < labels.length; i++) { const data = labels[i].data
|
|
|
|
|
const file = app.vault.getAbstractFileByPath(row.file.path);
|
|
|
|
|
const prop = {key: data.name, content:data.actual, type: data.type};
|
|
|
|
|
labels[i].addEventListener('click', async (evt) => { metaedit.controller.editMetaElement(prop, [], file); }); } }
|
|
|
|
|
const field = (row, name, type) => {
|
|
|
|
|
let data = {};
|
|
|
|
|
data.row = row;
|
|
|
|
|
data.name = name;
|
|
|
|
|
data.actual = row[name];
|
|
|
|
|
data.value = row[name];
|
|
|
|
|
data.type = type || 1;
|
|
|
|
|
const el = this.container.createEl('span', {"text": row[name] || "-"});
|
|
|
|
|
el.classList.add("_dataview-labels");
|
|
|
|
|
el.data = data; return el; };
|
|
|
|
|
try { var workspace = dv.container.closest("div.workspace-leaf");
|
|
|
|
|
var title = workspace.querySelector("div.view-header-title");
|
|
|
|
|
let pages = dv.pages('"03.03 Food & Wine"') .sort(t => t.file.name) .where(t => field(t, 'DocType') == "Recipe");
|
|
|
|
|
dv.table( ["Name", "Course", "Category", "Collection", "Cooking Time", "Rating", ""], pages .map(t => [ t.file.link, field(t, 'Recipe.Course'), field(t, 'Recipe.Category'), field(t, 'Recipe.Collection'), field(t, 'Recipe.CookingTime'), field(t, 'Meta.Rating') ]) );
|
|
|
|
|
setTimeout(function(){
|
|
|
|
|
for (let i = 0; i < pages.length; i++) {
|
|
|
|
|
init_dom(pages[i]); } }, 0);
|
|
|
|
|
}
|
|
|
|
|
catch (err) { window.console.info(err); }
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 
|