You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

664 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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
}/>`
> [!command] test
> ```
> Command line test
> ```
Syntax
Description
> [!seealso]
> Test
> [!success]
> Reteet
> [!missing]
> 3
> [!email]
> 4
> [!credentials]
> 5
- [ ] to-do
- [/] incomplete
- [x] done
- [-] canceled
- [>] forwarded
- [<] scheduling
- [?] question
- [!] important
- [*] star
- ["] quote
- [l] location
- [b] bookmark
- [i] information
- [S] savings
- [I] idea
- [p] pros
- [c] cons
- [f] fire
- [k] key
- [w] win
- [u] up
- [d] down
```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()
```
=== 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;
```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;
```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
```dataviewjs
const habits = [] // Array of objects for each page's tasks.
const defaultHeaders = ['Day']
const headers = new Set(defaultHeaders) // Set of task names to be used as table headers.
const rows = []
const noteDay = dv.current().file.day
if (!noteDay)
throw {
stack:
'(If this note is your template, this error is expected.) Unable to get note\'s day. Note should be named in the "YYYY-MM-DD" format.',
}
const pages = dv
.pages('"00.01 Admin/Calendars"')
.where((p) => p.file.day >= noteDay.minus({ days: 7 })) // Only include previous week in table.
.where((p) => p.file.day <= noteDay) // Don't include future notes.
.sort((p) => p.file.day, 'desc') // Sort table by most recent day.
for (const page of pages) {
// Only include tasks under a header named "Habits".
const pageHabits = page.file.tasks.filter((t) => t.header.subpath == 'Habits')
const noteLink = page.file.link
noteLink.display = page.file.day.weekdayLong // Set display name of the note link to the day of the week.
const habitsObject = { noteLink }
for (const habit of pageHabits) {
let habitText = habit.text.split(' ✅')[0] // Remove completion text from Tasks plugin.
// Remove tag text.
for (const tag of habit.tags) {
habitText = habitText.replace(tag, '')
}
habitText = habitText.trim()
habitsObject[habitText] = habit.completed // Build habitsObject. Key is the task's text. Value is tasks's completion.
headers.add(habitText) // Build headers set where each header is the task's text.
}
habits.push(habitsObject)
}
for (const habitsObject of habits) {
const row = [habitsObject.noteLink] // Start building row data. Fill in first value (Day) with note link.
for (const header of headers) {
if (defaultHeaders.includes(header)) continue // Don't overwrite default headers.
let habitStatus = '' // This emoji is seen if a corresponding task doesn't exist for a header (e.g. task didn't previously exist).
if (habitsObject.hasOwnProperty(header))
// If task exists, we know it must be complete or incomplete.
habitStatus = habitsObject[header] ? '✔' : '❌'
row.push(habitStatus)
}
rows.push(row)
}
dv.table(headers, rows)
```
---
### 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: 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
&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;