标注笔 - Mark
标注笔,可以用于标注文本、填写笔记

描述

一款标注笔,可以用于标注文本、填写笔记。

适用场景

  • 标注内容、笔记
  • 本地存储

说明

该方案用于支持接入方使用插件接口的方式进行笔记批注信息的保存和管理。

示例

基础实体(批注记录)

export interface Mark {
  id: string;
  // 批注站点或内容唯一标识,例如: https://logspot.hocgin.top/
  markPoint?: string;
  // 颜色标注(rgba)
  color?: string;
  // 批注开始点
  end: number;
  // 批注结束点
  start: number;
  // 标注的文本
  text: string;
  // 标注的批注
  note?: string;
  // 附件信息
  atta?: MarkAtta;
  // 来源: addone-mark / addone-external
  source?: string;
  // 创建时间
  createdAt: number;
  // 更新时间 (默认: dayjs.unit())
  lastUpdatedAt: number;
}

export interface MarkAtta {
  url?: string;
  title?: string;
  logo?: string;
}

支持的消息类型

export enum MessageType {
  SaveMark = 'SaveMark',
  DeleteMark = 'DeleteMark',
  GetMark = 'GetMark',
  ListAllMark = 'ListAllMark',
  ScrollMark = 'ScrollMark',
}

export interface ListAllMarkRo {
  keyword?: string;
  asc?: boolean;
  markPoint?: string;
}

export interface ScrollMarkRo {
  keyword?: string;
  asc?: boolean;
  markPoint?: string;
  nextId?: number;
  size?: number;
}

示例

async function demo() {
    let value = ... // Mark Object
    // chrome: klglfnphbmnnkkimdhnppnlfnfcjllhd
    // edge: gdageaaeboghhoomkmmmenkgapobelhh
    let extensionId = ... //
    let result = await chrome.runtime.sendMessage(extensionId, {type: Message.SaveMark, value})
}