10 KiB
ChildrenType | JSXExample | Number1 | Number2 | TimeStamp | |||
---|---|---|---|---|---|---|---|
|
Hello JSX! | 1 | 3 | 2022-01-15 |
$= DateTime.now().toFormat("MMMM yyyy")
await dv.io.load(dv.page("02.02 Paris/Abri"))
[!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
000. Obsidian - #📥 100 Personal - #Personal👑 200 PKM Library - #PKM 300 MOCS - #MOC:map: [!infobox|]
PERSONAL
900 Work - #Work 600 Life Areas - #Life - - [!blank-container]
[!infobox]
Activity
[!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
- [b] bookmark checklist item
=== end-column ===
citation example
~ Melchior de Villeneuve
=== end-multi-column
- [b] ff
Comment
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('') + '
';
}
dv.el('pre', displayString); ```
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
-
tast test ✅ 2022-09-04
- sub-task test
- Sub-task test 2
- sub-task test 3
Checkboxes
-
Unchecked
- [ ]
-
Checked
- [x]
-
[>] Rescheduled
- [>]
-
[<] Scheduled
- [<]
-
[!] Important
- [!]
-
[-] Cancelled
- [-]
-
In Progress
- [/]
✅ 2024-01-20 -
[?] 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>
20% <progress value="20" max="100></progress>
30% <progress value="30" max="100"></progress>
40% <progress value="40" max="100"></progress>
50% <progress value="50" max="100"></progress>
60% <progress value="60" max="100"></progress>
70% <progress value="70" max="100"></progress>
80% <progress value="80" max="100"></progress>
90% <progress value="90" max="100"></progress>
100% <progress value="100" max="100"></progress>
const {shoppingFunc} = customJS
shoppingFunc.getItems2Change({app: app, dv: dv, luxon: luxon, that:this, theme: "to0"})
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
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); }