word-marker
TypeScript icon, indicating that this package has built-in type declarations

1.1.15 • Public • Published

work-marker

word-marker is a library used to tag web page text, which can store tag information.

Support for custom tag styles, highlighting, and more

demo

在线地址

import wordMarker from "word-marker";

document.querySelector<HTMLDivElement>("#app")!.innerHTML = "文本标记";

const wMarker = wordMarker(document.querySelector<HTMLDivElement>("#app")!, {
  data: [],
});

Options

type MarkOptions = {
  // 是否懒加载,默认为高度超过窗口 4 倍开启
  lazy?: boolean;
  // 滚动元素, 如果懒加载开启则默认为 document
  scrollBy?: HTMLElement | Document;
  // 标记元素指定的唯一属性字段
  attribute?: string;
  // 标记的样式
  color?: string;
  // 标记的透明度
  globalAlpha?: number;
  // 层级
  zIndex?: number;
  // 标记的数据
  data?: MarkData[];
  // 初始化时处理所有元素
  tag?: (node: HTMLElement) => void;
  // 是否忽略某个元素
  ignoreNode?: (node: ChildNode) => boolean;
  // 划词回调
  callback?: (data?: MarkData, range?: Range) => void;
  // 自定义标记的样式
  mark?: (ctx: CanvasRenderingContext2D, range: Range) => void;
  // 高亮标记的样式
  highlight?: (ctx: CanvasRenderingContext2D, range: Range) => void;
};

Returns

function wordMarker(
  container: HTMLElement,
  options: MarkOptions
): {
  /**
   * 自动标记数据
   * @param ele
   * @param text
   */
  selectText(ele: HTMLElement, text: string): void;
  /**
   * 触发标记动作
   */
  triggerMarker(): void;
  /**
   * 获取所有的实际标记数据
   * @returns 获取标记数据
   */
  getActualMarkData(): MarkData[];
  /**
   * 获取所有的标记数据
   * @returns 获取标记数据
   */
  getMarkData(): MarkData[];
  /**
   * 添加标记
   * @param data
   */
  addMark(data: MarkData | MarkData[]): void;
  /**
   * 修改标记备注
   * @param id
   * @param msg
   */
  modifyMark(id: string, msg: string): void;
  /**
   * 根据 ID 获取标记位置
   * @param id
   * @returns
   */
  getPosition(id: string): { x: number; y: number } | undefined;
  /**
   * 根据 ID 删除标记
   * @param id
   */
  deleteMark(id: string | string[]): void;
  /**
   * 根据 x y 获取该位置是否有标记
   * @param x
   * @param y
   * @returns
   */
  checkMark(x: number, y: number): MarkData | undefined;
  /**
   * 高亮标记
   * @param id
   */
  highlightMark(id?: string): void;
  /**
   * 重新刷新标记
   */
  refresh(): void;
  /**
   * 清除所有标记
   */
  clear(): void;
  /**
   * 销毁所有事件
   */
  destory(): void;
};

Readme

Keywords

Package Sidebar

Install

npm i word-marker

Weekly Downloads

43

Version

1.1.15

License

MIT

Unpacked Size

36.9 kB

Total Files

7

Last publish

Collaborators

  • roy-kang