跳转到主要内容
static modifyElements(notePath: string, page: number, elements: Element[]): Promise<APIResponse<number[]>>;
参数
参数类型说明
notePathstring笔记/文档文件路径
pagenumber页面索引(从 0 开始)
elementsElement[]需要修改的元素数组(必须已存在)
返回

示例

import { PluginFileAPI, ElementType, type Element } from 'sn-plugin-lib';

/**
 * 拉取页面元素并提交修改的示例。
 */
export async function exampleModifyElements() {
  const notePath = '/storage/emulated/0/Note/demo.note';
  const page = 0;

  const listRes = await PluginFileAPI.getElements(page, notePath);
  if (!listRes.success) {
    throw new Error(listRes.error?.message ?? 'getElements 调用失败');
  }

  const elements = (listRes.result ?? []) as Element[];
  const target = elements[0];
  switch (target?.type) {
    case ElementType.TYPE_STROKE: {
      target.thickness = (target.thickness ?? 200) + 100;
      if (target.stroke) {
        target.stroke.penColor = 0x9D;
      }
      break;
    }
    case ElementType.TYPE_TEXT:
    case ElementType.TYPE_TEXT_DIGEST_QUOTE:
    case ElementType.TYPE_TEXT_DIGEST_CREATE: {
      if (target.textBox) {
        target.textBox.textContentFull = '示例文本';
        target.textBox.textBold = 1;
      }
      break;
    }
    case ElementType.TYPE_TITLE: {
      if (target.title) {
        target.title.style = 1;
      }
      break;
    }
    default:
      break;
  }
  const res = await PluginFileAPI.modifyElements(notePath, page, elements);
  if (!res.success) {
    throw new Error(res.error?.message ?? 'modifyElements 调用失败');
  }
  return res.result;
}