New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mokuji.js

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mokuji.js - npm Package Compare versions

Comparing version 1.1.0 to 1.2.0

57

dist/mokuji.js

@@ -169,3 +169,7 @@ /*!

var defaults = {
anchorType: ''
anchorType: '',
anchorLink: false,
anchorLinkSymbol: '#',
anchorLinkBefore: true,
anchorLinkClassName: ''
};

@@ -185,3 +189,3 @@

// mokuji start
var mokuji = this.start(element, options);
var mokuji = this.render(element, options);

@@ -192,4 +196,4 @@ return mokuji;

_createClass(init, [{
key: 'start',
value: function start(element, options) {
key: 'render',
value: function render(element, options) {
// generate mokuji list

@@ -202,4 +206,6 @@ var mokuji = this.generateMokuji(element, options);

// remove duplicates by adding suffix
this.removeDuplicateIds(mokuji);
// setup anchor link
if (options.anchorLink) {
this.renderAnchorLink(mokuji, options);
}

@@ -248,2 +254,5 @@ return mokuji;

// remove duplicates by adding suffix
this.removeDuplicateIds(ol);
return ol;

@@ -277,2 +286,32 @@ }

}, {
key: 'renderAnchorLink',
value: function renderAnchorLink(mokuji, options) {
if (!mokuji) {
return;
}
var lists = mokuji.getElementsByTagName('a');
var a = document.createElement('a');
a.classList.add(options.anchorLinkClassName);
for (var i = 0; i < lists.length; i++) {
var hash = lists[i].hash;
var headings = document.querySelector('[id="' + hash.replace('#', '') + '"]');
// create anchor
var anchor = a.cloneNode(false);
anchor.setAttribute('href', hash);
anchor.textContent = options.anchorLinkSymbol;
// insert anchor into headings
if (options.anchorLinkBefore) {
// before
headings.insertBefore(anchor, headings.firstChild);
} else {
// after
headings.appendChild(anchor);
}
}
}
}, {
key: 'replaceSpace2Underscore',

@@ -325,3 +364,3 @@ value: function replaceSpace2Underscore(text) {

var id = heading.id + '-' + count;
var heading_id = heading.id + '-' + count;

@@ -339,3 +378,3 @@ // search duplicate list

// update hash
list.href = '#' + id;
list.href = '#' + heading_id;
break;

@@ -361,3 +400,3 @@ }

heading.id = id;
heading.id = heading_id;
count++;

@@ -364,0 +403,0 @@ }

2

dist/mokuji.min.js

@@ -7,2 +7,2 @@ /*!

*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Mokuji=t():e.Mokuji=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,r){"use strict";e.exports=function(e,t){var r,n={};for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);for(r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}},function(e,t,r){"use strict";e.exports=function(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.init=undefined;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),a=r(0),u=n(a),c=r(1),l=n(c),f={anchorType:""};t.init=function(){function e(t,r){if(o(this,e),t){r=(0,u["default"])(f,r);return this.start(t,r)}}return i(e,[{key:"start",value:function(e,t){var r=this.generateMokuji(e,t);if(r)return this.removeDuplicateIds(r),r}},{key:"generateMokuji",value:function(e,t){for(var r=this.createHeadingWalker(e),n=null,o=1,i=document.createElement("ol"),a=document.createElement("li"),u=document.createElement("a");n=r.nextNode();){var c=n.tagName.match(/\d/g).join("");if(o<c){var f=document.createElement("ol");i.lastChild.appendChild(f),i=f}else if(o>c)for(var d=0;d<o-c;d++)(0,l["default"])(i,i.parentNode)&&(i=i.parentNode.parentNode);n.id=this.setAnchor(n.id,n.textContent,t.anchorType),i.appendChild(this.buildList(n,u.cloneNode(!1),a.cloneNode(!1))),o=c}return i=this.reverseMokuji(i)}},{key:"createHeadingWalker",value:function(e){return document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,function(e){return/^H[1-6]$/.test(e.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},!1)}},{key:"setAnchor",value:function(e,t,r){var n=e||this.replaceSpace2Underscore(t);return n=n.replace(/\&+/g,""),n=n.replace(/\&amp;+/g,""),"wikipedia"===r&&(n=encodeURIComponent(n),n=n.replace(/\%+/g,".")),n}},{key:"replaceSpace2Underscore",value:function(e){return String(e).replace(/\s+/g,"_")}},{key:"buildList",value:function(e,t,r){return t.href="#"+e.id,t.textContent=e.textContent,r.appendChild(t),r}},{key:"reverseMokuji",value:function(e){for(;e.parentNode;)e=e.parentNode;return e}},{key:"removeDuplicateIds",value:function(e){for(var t=e.getElementsByTagName("a"),r=0;r<t.length;r++){var n=t[r].innerText,o=t[r].hash,i=document.querySelectorAll('[id="'+n+'"]');if(1!==i.length){var a=0,u=!0,c=!1,l=undefined;try{for(var f,d=i[Symbol.iterator]();!(u=(f=d.next()).done);u=!0){var p=f.value,n=p.id+"-"+a,s=!0,y=!1,h=undefined;try{for(var v,m=t[Symbol.iterator]();!(s=(v=m.next()).done);s=!0){var b=v.value;if(b.hash===o){b.href="#"+n;break}}}catch(e){y=!0,h=e}finally{try{!s&&m["return"]&&m["return"]()}finally{if(y)throw h}}p.id=n,a++}}catch(e){c=!0,l=e}finally{try{!u&&d["return"]&&d["return"]()}finally{if(c)throw l}}}}}}]),e}()}])});
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Mokuji=t():e.Mokuji=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,n){"use strict";e.exports=function(e,t){var n,r={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n]);return r}},function(e,t,n){"use strict";e.exports=function(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.init=undefined;var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),u=r(i),c=n(1),l=r(c),f={anchorType:"",anchorLink:!1,anchorLinkSymbol:"#",anchorLinkBefore:!0,anchorLinkClassName:""};t.init=function(){function e(t,n){if(o(this,e),t){n=(0,u["default"])(f,n);return this.render(t,n)}}return a(e,[{key:"render",value:function(e,t){var n=this.generateMokuji(e,t);if(n)return t.anchorLink&&this.renderAnchorLink(n,t),n}},{key:"generateMokuji",value:function(e,t){for(var n=this.createHeadingWalker(e),r=null,o=1,a=document.createElement("ol"),i=document.createElement("li"),u=document.createElement("a");r=n.nextNode();){var c=r.tagName.match(/\d/g).join("");if(o<c){var f=document.createElement("ol");a.lastChild.appendChild(f),a=f}else if(o>c)for(var d=0;d<o-c;d++)(0,l["default"])(a,a.parentNode)&&(a=a.parentNode.parentNode);r.id=this.setAnchor(r.id,r.textContent,t.anchorType),a.appendChild(this.buildList(r,u.cloneNode(!1),i.cloneNode(!1))),o=c}return a=this.reverseMokuji(a),this.removeDuplicateIds(a),a}},{key:"createHeadingWalker",value:function(e){return document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,function(e){return/^H[1-6]$/.test(e.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},!1)}},{key:"setAnchor",value:function(e,t,n){var r=e||this.replaceSpace2Underscore(t);return r=r.replace(/\&+/g,""),r=r.replace(/\&amp;+/g,""),"wikipedia"===n&&(r=encodeURIComponent(r),r=r.replace(/\%+/g,".")),r}},{key:"renderAnchorLink",value:function(e,t){if(e){var n=e.getElementsByTagName("a"),r=document.createElement("a");r.classList.add(t.anchorLinkClassName);for(var o=0;o<n.length;o++){var a=n[o].hash,i=document.querySelector('[id="'+a.replace("#","")+'"]'),u=r.cloneNode(!1);u.setAttribute("href",a),u.textContent=t.anchorLinkSymbol,t.anchorLinkBefore?i.insertBefore(u,i.firstChild):i.appendChild(u)}}}},{key:"replaceSpace2Underscore",value:function(e){return String(e).replace(/\s+/g,"_")}},{key:"buildList",value:function(e,t,n){return t.href="#"+e.id,t.textContent=e.textContent,n.appendChild(t),n}},{key:"reverseMokuji",value:function(e){for(;e.parentNode;)e=e.parentNode;return e}},{key:"removeDuplicateIds",value:function(e){for(var t=e.getElementsByTagName("a"),n=0;n<t.length;n++){var r=t[n].innerText,o=t[n].hash,a=document.querySelectorAll('[id="'+r+'"]');if(1!==a.length){var i=0,u=!0,c=!1,l=undefined;try{for(var f,d=a[Symbol.iterator]();!(u=(f=d.next()).done);u=!0){var s=f.value,p=s.id+"-"+i,h=!0,y=!1,v=undefined;try{for(var m,k=t[Symbol.iterator]();!(h=(m=k.next()).done);h=!0){var b=m.value;if(b.hash===o){b.href="#"+p;break}}}catch(e){y=!0,v=e}finally{try{!h&&k["return"]&&k["return"]()}finally{if(y)throw v}}s.id=p,i++}}catch(e){c=!0,l=e}finally{try{!u&&d["return"]&&d["return"]()}finally{if(c)throw l}}}}}}]),e}()}])});

@@ -25,3 +25,7 @@ 'use strict';

var defaults = {
anchorType: ''
anchorType: '',
anchorLink: false,
anchorLinkSymbol: '#',
anchorLinkBefore: true,
anchorLinkClassName: ''
};

@@ -41,3 +45,3 @@

// mokuji start
var mokuji = this.start(element, options);
var mokuji = this.render(element, options);

@@ -48,4 +52,4 @@ return mokuji;

_createClass(init, [{
key: 'start',
value: function start(element, options) {
key: 'render',
value: function render(element, options) {
// generate mokuji list

@@ -58,4 +62,6 @@ var mokuji = this.generateMokuji(element, options);

// remove duplicates by adding suffix
this.removeDuplicateIds(mokuji);
// setup anchor link
if (options.anchorLink) {
this.renderAnchorLink(mokuji, options);
}

@@ -104,2 +110,5 @@ return mokuji;

// remove duplicates by adding suffix
this.removeDuplicateIds(ol);
return ol;

@@ -133,2 +142,32 @@ }

}, {
key: 'renderAnchorLink',
value: function renderAnchorLink(mokuji, options) {
if (!mokuji) {
return;
}
var lists = mokuji.getElementsByTagName('a');
var a = document.createElement('a');
a.classList.add(options.anchorLinkClassName);
for (var i = 0; i < lists.length; i++) {
var hash = lists[i].hash;
var headings = document.querySelector('[id="' + hash.replace('#', '') + '"]');
// create anchor
var anchor = a.cloneNode(false);
anchor.setAttribute('href', hash);
anchor.textContent = options.anchorLinkSymbol;
// insert anchor into headings
if (options.anchorLinkBefore) {
// before
headings.insertBefore(anchor, headings.firstChild);
} else {
// after
headings.appendChild(anchor);
}
}
}
}, {
key: 'replaceSpace2Underscore',

@@ -181,3 +220,3 @@ value: function replaceSpace2Underscore(text) {

var id = heading.id + '-' + count;
var heading_id = heading.id + '-' + count;

@@ -195,3 +234,3 @@ // search duplicate list

// update hash
list.href = '#' + id;
list.href = '#' + heading_id;
break;

@@ -217,3 +256,3 @@ }

heading.id = id;
heading.id = heading_id;
count++;

@@ -220,0 +259,0 @@ }

{
"name": "mokuji.js",
"version": "1.1.0",
"description": "Library Description",
"version": "1.2.0",
"description": "A table of content JavaScript Library",
"main": "lib/index.js",

@@ -18,3 +18,8 @@ "scripts": {

},
"keywords": [],
"keywords": [
"table of content",
"toc",
"contents",
"index"
],
"author": "hiro",

@@ -21,0 +26,0 @@ "license": "MIT",

@@ -6,4 +6,10 @@ mokuji.js

generate "table of contents".
A table of content JavaScript Library.
## Installation
```bash
npm install --save mokuji.js
```
## Usage

@@ -21,15 +27,46 @@

### options
## Options
```
{
anchorType: 'wikipedia'
anchorType: '',
anchorLink: false,
anchorLinkSymbol: '#',
anchorLinkBefore: true,
anchorLinkClassName: '',
}
```
### `anchorType`
## Installation
(default: `''`)
```bash
npm install --save mokuji.js
```
`wikipedia`: Like Wikipedia's anchor, multibyte characters are replaced by escape sequences.
`こんにちは` → `.E3.81.93.E3.82.93.E3.81.AB.E3.81.A1.E3.81.AF`
### `anchorLink`
(default: `false`)
enable/disable the anchor link in the headings
### `anchorLinkSymbol`
(default: `'#'`)
set the anchor link symbol
### `anchorLinkBefore`
(default: `true`)
set position (before/after) the anchor link in headings.
### `anchorLinkClassName`
(default: `''`)
set anchor link class name.

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc