Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name DynaHighlight
- // @namespace http://tampermonkey.net/
- // @version 0.3
- // @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-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/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/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/armasm.min.js
- // @require https://raw.githubusercontent.com/wcoder/highlightjs-line-numbers.js/master/dist/highlightjs-line-numbers.min.js
- // @match https://dynalist.io/d/*
- // ==/UserScript==
- /* jshint ignore:start */
- var inline_src = (<><![CDATA[
- /* jshint ignore:end */
- /* jshint esnext: false */
- /* jshint esversion: 6 */
- $("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"});
- $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; }');
- $('head').append($styles);
- let highlightCode = function() {
- $('.node-inline-code').each(function(i, block) {
- let firstLine = block.text().split('\n')[0];
- if( $.inArray(firstLine, hljs.listLanguages()) >= 0 ) {
- block.addClass(firstLine);
- block.text(block.text().split("\n").slice(1).join("\n"));
- hljs.highlightBlock(block);
- hljs.lineNumbersBlock(block);
- }
- });
- };
- let interval = setInterval(function() {
- let doc = DYNALIST.app.get_current_app_document();
- if(doc !== null && doc.document.node_collection.available) {
- highlightCode();
- keyboardJS.bind('ctrl + alt + h', function(e) {
- e.preventDefault();
- highlightCode();
- });
- clearInterval(interval);
- }
- }, 200);
- /* jshint ignore:start */
- ]]></>).toString();
- var c = Babel.transform(inline_src, { presets: [ "es2015", "es2016" ] });
- eval(c.code);
- /* jshint ignore:end */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement