프런트엔드 스크립트 API

연결된 공식 문서의 한국어 사본입니다. 함수 이름과 코드 문법은 원문을 유지했습니다. 외부 문서는 운영 버전과 다를 수 있으므로 지원 여부를 확인하세요. 공식 원문 보기

인터페이스 Api

interface Api {
    $container: null | JQuery<HTMLElement>;
    BasicWidget: typeof BasicWidget;
    bindGlobalShortcut: (
        keyboardShortcut: string,
        handler: null | Handler,
        namespace?: null | string,
    ) => void;
    createLink: (
        notePath: undefined | string,
        options?: CreateLinkOptions,
    ) => Promise<JQuery<HTMLElement>>;
    createNoteLink: (
        notePath: undefined | string,
        options?: CreateLinkOptions,
    ) => Promise<JQuery<HTMLElement>>;
    currentNote: FNote;
    dayjs: __module;
    formatDateISO: (date: Date) => string;
    formatNoteSize: (size: number) => string;
    formatSize: (size: number) => string;
    getDayNote: (date: string) => Promise<null | FNote>;
    getMonthNote: (month: string) => Promise<null | FNote>;
    getQuarterNote: (quarter: string) => Promise<null | FNote>;
    getTodayNote: () => Promise<null | FNote>;
    getWeekFirstDayNote: (date: string) => Promise<null | FNote>;
    getWeekNote: (week: string) => Promise<null | FNote>;
    getYearNote: (year: string) => Promise<null | FNote>;
    logMessages: Record<string, string[]>;
    logSpacedUpdates: Record<string, default>;
    NoteContextAwareWidget: typeof NoteContextAwareWidget;
    originEntity: unknown;
    parseDate: (str: string) => Date;
    protectNote: (
        noteId: string,
        protect: boolean,
        includingSubtree: boolean,
    ) => Promise<void>;
    protectSubTree: (
        noteId: string,
        protect: boolean,
        includingSubtree: boolean,
    ) => Promise<void>;
    randomString: (len: number) => string;
    RightPanelWidget: typeof RightPanelWidget;
    setupElementTooltip: ($el: JQuery<HTMLElement>) => void;
    showConfirmDialog: (message: string) => Promise<unknown>;
    showError: (message: string, delay?: number) => void;
    showInfoDialog: (message: string) => Promise<unknown>;
    showMessage: (message: string, delay?: number) => void;
    showPromptDialog: (props: PromptDialogOptions) => Promise<null | string>;
    startNote: FNote;
    triggerCommand: <K extends keyof CommandMappings>(
        name: K,
        _data?: CommandMappings[K],
    ) => undefined | null | Promise<unknown>;
    triggerEvent: <K extends EventNames>(
        name: K,
        data: EventData<K>,
    ) => undefined | null | Promise<unknown>;
    waitUntilSynced: () => Promise<void>;
    activateNewNote(notePath: string): Promise<void>;
    activateNote(notePath: string): Promise<void>;
    addButtonToToolbar(opts: AddToToolbarOpts): void;
    addTextToActiveContextEditor(text: string): void;
    getActiveContext(): NoteContext;
    getActiveContextCodeEditor(): Promise<unknown>;
    getActiveContextNote(): FNote;
    getActiveContextNotePath(): null | string;
    getActiveContextTextEditor(): Promise<unknown>;
    getActiveMainContext(): NoteContext;
    getActiveNoteDetailWidget(): Promise<default>;
    getComponentByEl(el: HTMLElement): default;
    getInstanceName(): string;
    getMainNoteContexts(): NoteContext[];
    getNote(noteId: string): Promise<null | FNote>;
    getNoteContexts(): NoteContext[];
    getNotes(
        noteIds: string[],
        silentNotFoundError?: boolean,
    ): Promise<FNote[]>;
    log(message: string): void;
    openSplitWithNote(notePath: string, activate: boolean): Promise<void>;
    openTabWithNote(notePath: string, activate: boolean): Promise<void>;
    refreshIncludedNote(includedNoteId: string): void;
    reloadNotes(noteIds: string[]): Promise<void>;
    runAsyncOnBackendWithManualTransactionHandling(
        func: Func,
        params: unknown[],
    ): unknown;
    runOnBackend(func: Func, params: unknown[]): unknown;
    searchForNote(searchString: string): Promise<null | FNote>;
    searchForNotes(searchString: string): Promise<FNote[]>;
    setHoistedNoteId(noteId: string): void;
}
목차

속성

$container: null | JQuery<HTMLElement>

스크립트가 렌더링한 전체 내용을 담는 영역

BasicWidget: typeof BasicWidget
bindGlobalShortcut: (
    keyboardShortcut: string,
    handler: null | Handler,
    namespace?: null | string,
) => void

형식 선언

    • (
          keyboardShortcut: string,
          handler: null | Handler,
          namespace?: null | string,
      ): void
    • 매개변수

      • keyboardShortcut: string

        예: "ctrl+shift+a"

      • handler: null | Handler
      • namespace: null | string = null

        같은 바인딩을 여러 번 호출할 수 있다면 처리 함수의 네임스페이스를 지정하세요. 같은 ID의 처리 함수가 있으면 새 함수로 교체합니다.

      반환값 void

createLink: (
    notePath: undefined | string,
    options?: CreateLinkOptions,
) => Promise<JQuery<HTMLElement>>

지정한 노트를 가리키는 jQuery 링크 객체를 만듭니다.

형식 선언

    • (
          notePath: undefined | string,
          options?: CreateLinkOptions,
      ): Promise<JQuery<HTMLElement>>
    • 매개변수

      반환값 Promise<JQuery<HTMLElement>>

      • 링크를 담은 jQuery 요소. 감싸는 요소: )
createNoteLink: (
    notePath: undefined | string,
    options?: CreateLinkOptions,
) => Promise<JQuery<HTMLElement>>
  • 대신 api.createLink()를 사용하세요.
currentNote: FNote

현재 실행 중인 소스 코드가 작성된 노트입니다.

dayjs: __module

날짜 처리를 위한 day.js 라이브러리입니다. 참고: https://day.js.org 라이브러리 사용 안내

formatDateISO: (date: Date) => string

형식 선언

    • (date: Date): string
    • 이 함수는 현지 시각을 반환합니다.

      매개변수

      • date: Date

      반환값 string

YYYY-MM-DD 형식의 날짜

formatNoteSize: (size: number) => string

형식 선언

    • (size: number): string
    • 매개변수

      • size: number

        바이트 단위

      반환값 string

      서식을 적용한 문자열

  • api.formatSize()를 사용하세요.
formatSize: (size: number) => string

형식 선언

    • (size: number): string
    • 매개변수

      • size: number

        바이트 단위

      반환값 string

      서식을 적용한 문자열

getDayNote: (date: string) => Promise<null | FNote>

지정한 날짜의 일별 노트를 반환합니다. 없으면 자동으로 만듭니다.

형식 선언

    • (date: string): Promise<null | FNote>
    • 매개변수

      • date: string

        예: "2019-04-29"

      반환값 Promise<null | FNote>

getMonthNote: (month: string) => Promise<null | FNote>

월별 노트를 반환합니다. 없으면 자동으로 만듭니다.

형식 선언

    • (month: string): Promise<null | FNote>
    • 매개변수

      • month: string

        예: "2019-04"

      반환값 Promise<null | FNote>

getQuarterNote: (quarter: string) => Promise<null | FNote>

지정한 날짜의 분기별 노트를 반환합니다. 없으면 자동으로 만듭니다.

getTodayNote: () => Promise<null | FNote>

오늘의 일별 노트를 반환합니다. 없으면 자동으로 만듭니다.

getWeekFirstDayNote: (date: string) => Promise<null | FNote>

지정한 날짜가 속한 주의 첫날에 해당하는 일별 노트를 반환합니다. 없으면 자동으로 만듭니다.

형식 선언

    • (date: string): Promise<null | FNote>
    • 매개변수

      • date: string

        예: "2019-04-29"

      반환값 Promise<null | FNote>

getWeekNote: (week: string) => Promise<null | FNote>

지정한 날짜의 주별 노트를 반환합니다. 없으면 자동으로 만듭니다.

getYearNote: (year: string) => Promise<null | FNote>

연도별 노트를 반환합니다. 없으면 자동으로 만듭니다.

형식 선언

    • (year: string): Promise<null | FNote>
    • 매개변수

      • year: string

        예: "2019"

      반환값 Promise<null | FNote>

logMessages: Record<string, string[]>
logSpacedUpdates: Record<string, default>
NoteContextAwareWidget: typeof NoteContextAwareWidget
originEntity: unknown

이 실행을 시작하게 한 이벤트의 엔터티

parseDate: (str: string) => Date
protectNote: (
    noteId: string,
    protect: boolean,
    includingSubtree: boolean,
) => Promise<void>

형식 선언

    • (noteId: string, protect: boolean, includingSubtree: boolean): Promise<void>
    • 매개변수

      • noteId: string
      • protect: boolean

        노트를 보호하려면 true를 사용하고 보호를 해제하려면 false를 사용합니다.

      • includingSubtree: boolean

      반환값 Promise<void>

protectSubTree: (
    noteId: string,
    protect: boolean,
    includingSubtree: boolean,
) => Promise<void>

형식 선언

    • (noteId: string, protect: boolean, includingSubtree: boolean): Promise<void>
    • 매개변수

      • noteId: string
      • protect: boolean

        하위 트리를 보호하려면 true를 사용하고 보호를 해제하려면 false를 사용합니다.

      • includingSubtree: boolean

      반환값 Promise<void>

randomString: (len: number) => string

지정한 길이의 임의 문자열을 반환합니다. 암호학적으로 안전한 난수를 만드는 함수가 아닙니다.

형식 선언

    • (len: number): string
    • 매개변수

      • len: number

      반환값 string

      임의 문자열

RightPanelWidget: typeof RightPanelWidget
setupElementTooltip: ($el: JQuery<HTMLElement>) => void

형식 선언

    • ($el: JQuery<HTMLElement>): void
    • 매개변수

      • $el: JQuery<HTMLElement>

        도움말을 표시할 jQuery 객체

      반환값 void

showConfirmDialog: (message: string) => Promise<unknown>

사용자에게 확인 대화상자를 표시합니다.

형식 선언

    • (message: string): Promise<unknown>
    • 매개변수

      • message: string

      반환값 Promise<unknown>

      사용자가 확인하면 true로 완료되는 Promise

showError: (message: string, delay?: number) => void

사용자에게 오류 알림을 잠깐 표시합니다.

showInfoDialog: (message: string) => Promise<unknown>

사용자에게 정보 대화상자를 표시합니다.

showMessage: (message: string, delay?: number) => void

사용자에게 정보 알림을 잠깐 표시합니다.

showPromptDialog: (props: PromptDialogOptions) => Promise<null | string>

사용자에게 입력 대화상자를 표시합니다.

형식 선언

startNote: FNote

현재 스크립트 실행이 시작된 노트입니다. 이벤트의 진입점에 해당합니다.

triggerCommand: <K extends keyof CommandMappings>(
    name: K,
    _data?: CommandMappings[K],
) => undefined | null | Promise<unknown>

명령을 실행합니다. 매우 낮은 수준의 API이므로 가능하면 다른 방법을 사용하세요.

triggerEvent: <K extends EventNames>(
    name: K,
    data: EventData<K>,
) => undefined | null | Promise<unknown>

이벤트를 발생시킵니다. 매우 낮은 수준의 API이므로 가능하면 다른 방법을 사용하세요.

waitUntilSynced: () => Promise<void>

Trilium은 백엔드와 프런트엔드로 나뉘어 실행됩니다. 스크립트가 백엔드에서 변경한 내용은 프런트엔드에 비동기로 동기화됩니다.

이 메서드는 다음 과정이 모두 끝나면 완료되는 Promise를 반환합니다. 백엔드에서> 프런트엔드로의 동기화입니다. 새 노트를 만들었다면 프런트엔드에 동기화될 때까지 기다린 뒤 활성화하는 데 사용할 수 있습니다.

메서드

  • 새로 만든 노트를 활성화합니다. this.activateNote()와 달리 프런트엔드 동기화 완료까지 확인합니다.

    매개변수

    • notePath: string

      (또는 noteId)

    반환값 Promise<void>

  • 실행 도구 모음에 새 실행 도구를 추가합니다. 같은 ID가 있으면 변경합니다.

    매개변수

    반환값 void

    이제 왼쪽 위 메뉴에서 실행 도구를 만들거나 변경할 수 있습니다. 메뉴 경로:> 실행 도구 모음 설정. 특수한 용도에는 백엔드 API의 createOrUpdateLauncher()도 사용할 수 있습니다.

  • 편집기의 커서 위치에 지정한 글을 추가합니다.

    매개변수

    • text: string

      일반 텍스트만 사용할 수 있습니다. HTML은 지원하지 않습니다.

    반환값 void

  • 노트 상세 화면을 담당하는 위젯에 접근합니다. 사용할 수 있는 메서드의 예: getWidgetType() 및 getTypeWidget() 실제 위젯 유형의 구현체에 접근하는 데 사용합니다.

    반환값 Promise<default>

  • 인스턴스 이름은 개별 Trilium 실행 환경을 구분합니다. 특정 인스턴스에서만 작업을 실행해야 하는 스크립트에 유용합니다.

    반환값 string

  • 노트 목록을 반환합니다. 캐시에 없는 노트는 불러옵니다.

    createLink() 등으로 노트를 하나씩 가져오는 대신 여러 노트를 한꺼번에 캐시에 채울 때 자주 사용합니다.

    매개변수

    • noteIds: string[]
    • OptionalsilentNotFoundError: boolean

      노트를 찾지 못해도 오류를 보고하지 않음

    반환값 Promise<FNote[]>

  • 새 분할 화면에서 노트를 엽니다.

    매개변수

    • notePath: string

      (또는 noteId)

    • activate: boolean

      새 분할 화면을 활성화하려면 true를 사용하고 현재 화면에 머무르려면 false를 사용합니다.

    반환값 Promise<void>

  • 새 탭에서 노트를 엽니다.

    매개변수

    • notePath: string

      (또는 noteId)

    • activate: boolean

      새 탭을 활성화하려면 true를 사용하고 현재 탭에 머무르려면 false를 사용합니다.

    반환값 Promise<void>

  • 매개변수로 지정한 노트를 포함하는 현재 열린 노트를 모두 새로 고칩니다.

    매개변수

    • includedNoteId: string

      포함된 노트의 noteId

    반환값 void

  • 백엔드의 내용을 바탕으로 프런트엔드 노트 트리 캐시를 갱신합니다.

    매개변수

    • noteIds: string[]

    반환값 Promise<void>

  • 지정한 익명 함수를 백엔드에서 실행합니다. 내부적으로 함수를 문자열로 직렬화한 뒤 AJAX로 전송합니다. 비동기 함수가 필요한 고급 용도에 사용합니다. 요청 단위의 자동 트랜잭션 관리는 적용되지 않으므로 api.transactional()로 트랜잭션을 직접 지정해야 합니다.

    동기 함수라면 api.runOnBackend()를 사용하세요.

    매개변수

    • func: Func

      백엔드에서 실행할 동기 함수

    • params: unknown[]

      백엔드로 보낼 익명 함수의 매개변수 목록

    반환값 unknown

    백엔드에서 실행한 함수의 반환값

  • 지정한 익명 함수를 백엔드에서 실행합니다. 내부적으로 함수를 문자열로 직렬화한 뒤 AJAX로 전송합니다. 트랜잭션 관리가 올바르게 작동하려면 동기 함수를 전달해야 합니다. 트랜잭션을 직접 관리할 수 있다면 api.runAsyncOnBackendWithManualTransactionHandling()을 사용할 수 있습니다.

    매개변수

    • func: Func

      백엔드에서 실행할 동기 함수

    • params: unknown[]

      백엔드로 보낼 익명 함수의 매개변수 목록

    반환값 unknown

    백엔드에서 실행한 함수의 반환값