---

ChildrenType: ["Note", "Task", "Recipe"]
JSXExample: "Hello JSX!"
Number1: 1
Number2: 3
TimeStamp: 2022-01-15
---

`$= DateTime.now().toFormat("MMMM yyyy")`

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
}/>`

> [!command] test
> ```
> Command line test
> ```


Syntax

Description

---

### Calendar rendering (dataview x full calendar)

\```dataviewjs
this.container.style.minHeight = "500px"; const { renderCalendar } = app.plugins.plugins["obsidian-full-calendar"]; let calendar = renderCalendar(this.container, [[{start: new Date(), id: "id", title: "Now and for an hour"}]]); calendar.render()
\```

---

### Multi-column

\>[!multi-column]
\>>[!blank-container]
>
>> [!infobox] 
>> # SELF
>>![[175008.jpg|cover]]
>> #####
>> | |
>> | -- | 
>> |  [[000. Obsidian\|Obsidian]] - #:inbox_tray: |
>> |  [[100 Personal\|Personal]] - #Personal:crown: |
>> |  [[200 PKM  Library\|PKM Library]] - #PKM |
>> |  [[300 MOCS\|MOC Library]] - #MOC:map: |
>
>> [!infobox|]
>> # PERSONAL
>>![[174897.jpg|cover]]
>>#####
>> ||
>> | -- |
>> | [[900 Work\|Work]] - #Work
>> | [[600 Life Areas\|Life Areas]] - #Life |
>> | - |
>> | - |
>
>>[!blank-container]
>
>>[!infobox]
>># Activity
>>![[168494.jpg|cover landscape]]
>>![[Activity|clean]]
>
>>[!blank-container]



\=== 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)

- [b] bookmark checklist item

=== end-column ===

> citation example
> <div class="signature"> ~ Melchior de Villeneuve</div>

=== end-multi-column


&emsp;

- [b] ff

<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>

&emsp;

---

### Squares (dataview)

\```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);
\```

&emsp;

---

### Football formation


\```lineup
formation: 433
players: Donnarumma,Bernat,Marquinhos,Kimpembe,Hakimi,Villeneuve,Verratti,St Hilaire,MBappe,Solanet,Messi
\```

---

### dataview habit tracker

- [ ] Habit_1
- [ ] Habit_2
- [ ] Habit_3
- [ ] Habit_4

- [ ] this is seq task 1
^seqtask1

- [ ] this is seq task 2 [[Test sheet#^seqtask1|🔗]]
^seqtask2

- [ ] this is seq task 3 [[Test sheet#^seqtask2|🔗]]


- [x] tast test ✅ 2022-09-04
	- [ ] sub-task test
	- [ ] Sub-task test 2
	- [ ] sub-task test 3

---

### Checkboxes

- [ ] Unchecked `- [ ]`

- [x] Checked `- [x]`

- [>] Rescheduled `- [>]`

- [<] Scheduled `- [<]`

- [!] Important `- [!]`

- [-] Cancelled `- [-]`

- [/] In Progress `- [/]`

- [?] Question `- [?]`

- [*] Star `- [*]`

- [n] Note `- [n]`

- [l] Location `- [l]`

- [i] Information `- [i]`

- [I] Idea `- [I]`

- [S] Amount `- [S]`

- [p] Pro `- [p]`

- [c] Con `- [c]`

- [b] Bookmark `- [b]`

- [f] Fire `- [ f ]`

- [w] Win `- [w]`

- [k] Key `- [k]`

- [u] Up `- [u]`

- [d] down `- [d]`

- [F] Feature `- [F]`

- [r] Rule `- [r]`

- [m] Measurement `- [m]`

- [M] Medical `- [M]`

- [L] Language `- [L]`

- [t] Clock `- [t]`

- [T] Telephone `- [T]`

- [P] Person `- [P]`

- [#] Tags `- [#]`

- [W] World `- [W]`

- [U] Universe `- [U]`

↰ ↱ ↲ ↳  ↴ ↵

### Box Drawing

| Symbol | Alt Code |
|:------:|:--------:|
| ─ | +2500 |
| │ | +2502 |
| ┌ | +250c |
| ┐ | +2501 |
| └ | +2514 |
| ┘ | +2518 |
| ├ | +251c |
| ┤ | +2524 |
| ┬ | +252c |
| ┴ | +2534 |
| ┼ | +253c |

### Callouts

> [!quote] Quote, Cite

> [!note]

> [!shopping] Shopping List

> [!tldr]

> [!example]

> [!help]

> [!Related] Related

> [!Backstory] Backstory

> [!question] Question/FAQ

> [!abstract] Abstract

> [!Links] Links

> [!Translation] Translation

> [!info] Info

> [!todo]

> [!backlog] Backlog

> [!morning] Morning

> [!Meditate] Meditate

> [!currently] Currently

> [!tip] Tip

> [!hint]

> [!check] Check, Done

> [!money] Money

> [!pro] Pro

> [!World] World

> [!summary]

> [!doing] Doing, In Progress

> [!warning] Warning, Caution, Attention

> [!idea] Idea

> [!Feature] Feature

> [!target] Target

> [!con] Con

> [!important]

> [!failure] Failure, Fail, Missing

> [!Conflict] Conflict, Challenge, Encounter

> [!danger] Danger, Error

> [!error]

> [!bug]

> [!Resources] Resources

> [!celebrate] Celebrate

> [!success] Success

### Loading

10% `<progress value="10" max="100"></progress>`

<progress value="10" max="100"></progress>

20% `<progress value="20" max="100></progress>`

<progress value="20" max="100"></progress>

30% `<progress value="30" max="100"></progress>`

<progress value="30" max="100"></progress>

40% `<progress value="40" max="100"></progress>`

<progress value="40" max="100"></progress>

50% `<progress value="50" max="100"></progress>`

<progress value="50" max="100"></progress>

60% `<progress value="60" max="100"></progress>`

<progress value="60" max="100"></progress>

70% `<progress value="70" max="100"></progress>`

<progress value="70" max="100"></progress>

80% `<progress value="80" max="100"></progress>`

<progress value="80" max="100"></progress>

90% `<progress value="90" max="100"></progress>`

<progress value="90" max="100"></progress>

100% `<progress value="100" max="100"></progress>`

<progress value="100" max="100"></progress>

---


```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: true
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 


&emsp;
&emsp;
&emsp;
&emsp;


```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); }
```


&emsp;
