Перейти к содержанию

Дополнительные поля ​

Допустим, у вас есть поле ExtraInfo. Вы хотите показать его под разделом Sentence на обратной стороне карточки.

Сначала откройте файл _kiku_back.html в каталоге collection.media. Его начало выглядит так:

html
<!-- Kiku Note v2.0.0
Этот файл создаётся автоматически. Ручные изменения будут потеряны после сохранения.

... остальная часть файла

Добавьте ExtraInfo внутрь элемента template:

html
<template id="ExtraInfo">{{ExtraInfo}}</template>

<!-- Kiku Note v2.0.0
Этот файл создаётся автоматически. Ручные изменения будут потеряны после сохранения.

... остальная часть файла

WARNING

Не меняйте остальную часть файла даже с помощью форматтера, например Prettier. Созданный SSR-шаблон зависит от пробелов и переводов строк.

Теперь добавьте поле ExtraInfo в компонент Sentence через _kiku_plugin.js:

js
/**
 * @import { KikuPlugin } from "#/plugins/plugin-types";
 */

/**
 * @type { KikuPlugin }
 */
export const plugin = {
  Sentence: (props) => {
    const { html, createMemo } = props.ctx;

    function ExtraInfo() {
      const $extraInfo = createMemo(() => {
        if ("ExtraInfo" in props.ctx.$ankiFields) {
          return props.ctx.$ankiFields?.ExtraInfo;
        }
        const template = document.getElementById("ExtraInfo");
        return template?.innerHTML;
      });

      if (!$extraInfo()) return null;
      return html`<div class="text-lg text-base-content-calm" innerHTML=${$extraInfo}></div>`;
    }

    return [props.DefaultSentence(), ExtraInfo()];
  },
};

Затем откройте настройки Kiku RU и нажмите Сохранить. Kiku RU обновит обратный шаблон из изменённого _kiku_back.html.