leanpub outline
@@ -1,21 +1,38 @@
/*
* @title leanpub outline
- * @description my bookmarklet
- * @include https://leanpub.com/*/read*
- * @license MIT License
- * @require
+ * @description append TOC links by fragment identifires on leanpub
+ * @include https://leanpub.com/*
+ * @contributor efcl http://let.hatelabo.jp/efcl/let/hJmfwszo56oZ (Fork of)
+ * @license MIT License http://opensource.org/licenses/MIT
+ * @javascript_url
*/
+// - fix syntax error (illegal block-comment)
+// - work in Firefox and others (Array.from)
+
+// e.g.
+// https://leanpub.com/oopinjavascript/read
+(function () {
+
+if (!/leanpub\.com$/.test(location.hostname) ||
+ !/read/.test(location.pathname.split('/').pop())) {
+ return;
+}
var headers = document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id]");
-Array.from(headers).forEach(function(header){
+[].slice.call(headers).forEach(function(header) {
var headerID = header.getAttribute("id");
- if(!headerID){ return; }
+ if (!headerID) { return; }
+
var linkName = document.createElement("a");
linkName.href = "#" + headerID;
wrap(header, linkName);
- });
+});
+
function wrap(el, wrapper) {
- el.parentNode.insertBefore(wrapper, el);
- wrapper.appendChild(el);
- }
+ el.parentNode.insertBefore(wrapper, el);
+ wrapper.appendChild(el);
+}
+
+})();
+
/*
* @title leanpub outline
* @description append TOC links by fragment identifires on leanpub
* @include https://leanpub.com/*
* @contributor efcl http://let.hatelabo.jp/efcl/let/hJmfwszo56oZ (Fork of)
* @license MIT License http://opensource.org/licenses/MIT
* @javascript_url
*/
// - fix syntax error (illegal block-comment)
// - work in Firefox and others (Array.from)
// e.g.
// https://leanpub.com/oopinjavascript/read
(function () {
if (!/leanpub\.com$/.test(location.hostname) ||
!/read/.test(location.pathname.split('/').pop())) {
return;
}
var headers = document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id]");
[].slice.call(headers).forEach(function(header) {
var headerID = header.getAttribute("id");
if (!headerID) { return; }
var linkName = document.createElement("a");
linkName.href = "#" + headerID;
wrap(header, linkName);
});
function wrap(el, wrapper) {
el.parentNode.insertBefore(wrapper, el);
wrapper.appendChild(el);
}
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。