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.

12 KiB

ChildrenType JSXExample Number1 Number2 TimeStamp
Note
Task
Recipe
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

Forum

  • [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); }