npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mark-stage

v0.2.0

Published

js library for add annotations(highlight,underline,etc.) on web page

Downloads

11

Readme

mark-stage

基于svg实现的网页元素上添加标记(如高亮、下划线等)

A js library for add svg marks (highlight, underline, etc.) on web page

高亮示例

Install

npm install mark-stage

<script src="../dist/markstage.umd.js"></script>

Quick Start

import { MarkStage, Highlight } from 'mark-stage';
//  const { MarkStage, Highlight } = marks;  // umd的全局名称为markstage

const stage = new MarkStage(document.querySelector('article'));

document.addEventListener("mouseup", markSelection, false);

function markSelection() {
  const selection = window.getSelection();
  const range = selection.getRangeAt(0);

  if (!selection.isCollapsed) {
    stage.add(new Highlight({
      range,
      classList: ['highlight']  // 自定义类名
    })); // add mark
  }
}

stage.event.on('click', function (e) {

  const uuid = e.target.getAttribute('data-uuid');

  stage.remove(uuid); // remove by mark.uuid
})

⚠ 注意:mark是通过在container下插入一个svg并进行绘制,svg通过position: absolute将自己覆盖在target之上产生重叠的效果

const containerPosition = window.getComputedStyle(container, null).position;  // 检测container的style的position设置
if (containerPosition === 'static' || !containerPosition) {
  container.style.position = 'relative';  // 如果container未设置适当的position,则会默认添加relative
}

Options

Stage

new MarkStage(target, container)

option | description | default :--------: | :--------: | :--------: target | 创建stage的目标元素 | - container | stage的svg被插入的元素位置 | document.body

Mark

new Mark({...})

option | description | default :--------: | :--------: | :--------: range | 标记的元素范围Range | - classList | 自定义类名数组 | []

Salute

marks-pane