0.3.4 • Published 3 years ago

marka-js v0.3.4

Weekly downloads
143
License
MIT
Repository
github
Last release
3 years ago

marka-js

npm.io

Marka is a JavaScript lib that runs in the browser, it will mark anchor elements and add icons according to the href. It is inspired by https://beepb00p.xyz and anchorjs.

See the demo on vercel.

It has some pre-defined recognized sites:

And pre-defined recognized file extensions:

Install

Import style and script to your html:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/marka-js/dist/marka.css" />

<script src="https://cdn.jsdelivr.net/npm/marka-js/dist/marka-js.umd.min.js"></script>

You can also add an onload callback as below and marka will inspect default imageBaseDir by script's src.

<script src="https://cdn.jsdelivr.net/npm/marka-js/dist/marka-js.umd.min.js" onload="marka.onScriptLoaded(this)"></script>

Usage

marka.init(MarkaOptions)

example:

window.addEventListener('DOMContentLoaded', function() {
  marka.init({
    container: 'body',
    imageBaseDir: 'https://cdn.jsdelivr.net/npm/marka-js/dist/images',
    extraRules: [
      { type: 'miniflux', hostPattern: /miniflux\.app/, imagePath: 'https://raw.githubusercontent.com/miniflux/logo/master/icon.svg' },
      { type: 'tex', pathPattern: /\.tex$/, imagePath: 'https://raw.githubusercontent.com/primer/octicons/master/icons/file-code-16.svg' },
    ]
  })
})

MarkaOptions:

All fields are optional.

NameTypeDescription
containerstring or HTMLElementmarka container, marking will only affect elements inside it
imageBaseDirstringBase directory for images, default is ./images
ignore(ele: Element, rule: MarkaRule): booleanIf returned true, the element will be ignored
rulesMarkaRule[]rules used to match anchor elements
extraRulesMarkaRule[]extra rules besides default rules

MarkaRule

A rule for matching and generating css rule for anchor elements.

type MarkaRule = {
  /** a regex pattern to match against url pathname */
  pathPattern?: RegExp
  /** a regex pattern to match against url host */
  hostPattern?: RegExp
  /** will affect generated css selector, e.g. 'github'/'twitter' */
  type: string
  /** the url of image, e.g. 'https://cdn.jsdelivr.net/npm/marka-js/dist/images/github.svg' */
  imagePath?: string
}

Customize styles

Override css variables:

body {
  --marka-link-color: purple;
}
0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.0

4 years ago