Piotr's dynalist with left line numbers and toggle switch on right side

Created Diff never expires
0 removals
67 lines
5 additions
72 lines
// ==UserScript==
// ==UserScript==
// @name DynaHighlight
// @name DynaHighlight
// @namespace http://tampermonkey.net/
// @namespace http://tampermonkey.net/
// @version 0.3
// @version 0.3
// @author Piotr S.
// @author Piotr S.
// @require https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.2/babel.js
// @require https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.2/babel.js
// @require https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.16.0/polyfill.js
// @require https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.16.0/polyfill.js
// @require https://cdnjs.cloudflare.com/ajax/libs/keyboardjs/2.3.3/keyboard.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/keyboardjs/2.3.3/keyboard.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/highlight.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/highlight.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/haskell.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/haskell.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/rust.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/rust.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/bash.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/bash.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/armasm.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/armasm.min.js
// @require https://raw.githubusercontent.com/wcoder/highlightjs-line-numbers.js/master/dist/highlightjs-line-numbers.min.js
// @require https://raw.githubusercontent.com/wcoder/highlightjs-line-numbers.js/master/dist/highlightjs-line-numbers.min.js
// @match https://dynalist.io/d/*
// @match https://dynalist.io/d/*
// ==/UserScript==
// ==/UserScript==
/* jshint ignore:start */
/* jshint ignore:start */
var inline_src = (<><![CDATA[
var inline_src = (<><![CDATA[
/* jshint ignore:end */
/* jshint ignore:end */
/* jshint esnext: false */
/* jshint esnext: false */
/* jshint esversion: 6 */
/* jshint esversion: 6 */
$("head").append ('<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/styles/railscasts.min.css">');
$("head").append ('<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/styles/railscasts.min.css">');
let $styles = $("<style>", {id: "dynalist-hljs", "type": "text/css"});
let $styles = $("<style>", {id: "dynalist-hljs", "type": "text/css"});
$styles.append('td.hljs-ln-numbers { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; text-align: center; color: #ccc; border-right: 1px solid #CCC; vertical-align: top; padding-right: 5px; }');
$styles.append('td.hljs-ln-numbers { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; text-align: center; color: #ccc; border-right: 1px solid #CCC; vertical-align: top; padding-right: 5px; }');
$styles.append('td.hljs-ln-code { padding-left: 10px; }');
$styles.append('td.hljs-ln-code { padding-left: 10px; }');
$('head').append($styles);
$('head').append($styles);
let highlightCode = function() {
let highlightCode = function() {
$('.node-inline-code').each(function(i, block) {
$('.node-inline-code').each(function(i, block) {
let firstLine = block.text().split('\n')[0];
let firstLine = block.text().split('\n')[0];
if( $.inArray(firstLine, hljs.listLanguages()) >= 0 ) {
if( $.inArray(firstLine, hljs.listLanguages()) >= 0 ) {
block.addClass(firstLine);
block.addClass(firstLine);
block.text(block.text().split("\n").slice(1).join("\n"));
block.text(block.text().split("\n").slice(1).join("\n"));
hljs.highlightBlock(block);
hljs.highlightBlock(block);
hljs.lineNumbersBlock(block);
hljs.lineNumbersBlock(block);
}
}
});
});
};
};
let interval = setInterval(function() {
let interval = setInterval(function() {
let doc = DYNALIST.app.get_current_app_document();
let doc = DYNALIST.app.get_current_app_document();
if(doc !== null && doc.document.node_collection.available) {
if(doc !== null && doc.document.node_collection.available) {
highlightCode();
highlightCode();
keyboardJS.bind('ctrl + alt + h', function(e) {
keyboardJS.bind('ctrl + alt + h', function(e) {
e.preventDefault();
e.preventDefault();
highlightCode();
highlightCode();
});
});
keyboardJS.bind('ctrl+shift+alt+h', function(e) {
e.preventDefault();
$('td.hljs-ln-numbers').toggle();
});
clearInterval(interval);
clearInterval(interval);
}
}
}, 200);
}, 200);
/* jshint ignore:start */
/* jshint ignore:start */
]]></>).toString();
]]></>).toString();
var c = Babel.transform(inline_src, { presets: [ "es2015", "es2016" ] });
var c = Babel.transform(inline_src, { presets: [ "es2015", "es2016" ] });
eval(c.code);
eval(c.code);
/* jshint ignore:end */
/* jshint ignore:end */