Obsidian API์˜ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ, ์˜ˆ๋ฅผ ๋“ค์–ด Settings๋Š” ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ(container elements) ๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค:

import { App, PluginSettingTab } from 'obsidian';
 
class ExampleSettingTab extends PluginSettingTab {
  plugin: ExamplePlugin;
 
  constructor(app: App, plugin: ExamplePlugin) {
    super(app, plugin);
    this.plugin = plugin;
  }
 
  display(): void {
    // highlight-next-line
    let { containerEl } = this;
 
    // ...
  }
}

์ปจํ…Œ์ด๋„ˆ ์š”์†Œ๋Š” Obsidian ๋‚ด์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” HTMLElement ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

createEl()์„ ์‚ฌ์šฉํ•˜์—ฌ HTML ์š”์†Œ ์ƒ์„ฑํ•˜๊ธฐ

์ปจํ…Œ์ด๋„ˆ ์š”์†Œ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  HTMLElement๋Š” ์›๋ณธ ์š”์†Œ ์•„๋ž˜์— HTMLElement๋ฅผ ์ƒ์„ฑํ•˜๋Š” createEl() ๋ฉ”์†Œ๋“œ๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ ๋‚ด๋ถ€์— <h1> ์ œ๋ชฉ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

containerEl.createEl('h1', { text: 'Heading 1' });

createEl()์€ ์ƒˆ ์š”์†Œ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค:

const book = containerEl.createEl('div');
book.createEl('div', { text: 'How to Take Smart Notes' });
book.createEl('small', { text: 'Sรถnke Ahrens' });

์š”์†Œ ์Šคํƒ€์ผ๋งํ•˜๊ธฐ

ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— styles.css ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์‚ฌ์šฉ์ž ์ •์˜ CSS ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ์ฑ… ์˜ˆ์ œ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด:

styles.css
.book {
  border: 1px solid var(--background-modifier-border);
  padding: 10px;
}
 
.book__title {
  font-weight: 600;
}
 
.book__author {
  color: var(--text-muted);
}

Tip

--background-modifier-border์™€ --text-muted๋Š” Obsidian ์ž์ฒด์—์„œ ์ •์˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” CSS ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์Šคํƒ€์ผ์— ์ด ๋ณ€์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋ฉ‹์ง€๊ฒŒ ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๐ŸŒˆ

HTML ์š”์†Œ๊ฐ€ ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋ ค๋ฉด HTML ์š”์†Œ์˜ cls ์†์„ฑ์„ ์„ค์ •ํ•˜์„ธ์š”:

const book = containerEl.createEl('div', { cls: 'book' });
book.createEl('div', { text: 'How to Take Smart Notes', cls: 'book__title' });
book.createEl('small', { text: 'Sรถnke Ahrens', cls: 'book__author' });

์ด์ œ ํ›จ์”ฌ ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค! ๐ŸŽ‰

์กฐ๊ฑด๋ถ€ ์Šคํƒ€์ผ

์‚ฌ์šฉ์ž ์„ค์ •์ด๋‚˜ ๋‹ค๋ฅธ ๊ฐ’์— ๋”ฐ๋ผ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด toggleClass ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:

element.toggleClass('danger', status === 'error');