12 KiB
ChildrenType | JSXExample | Number1 | Number2 | TimeStamp | |||
---|---|---|---|---|---|---|---|
|
Hello JSX! | 1 | 3 | 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
-
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
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
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
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);
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
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
- [ ]
-
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>
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: 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
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); }