diff options
author | olOwOlo <26087907+olOwOlo@users.noreply.github.com> | 2018-07-10 00:49:20 +0800 |
---|---|---|
committer | olOwOlo <26087907+olOwOlo@users.noreply.github.com> | 2018-07-10 00:49:20 +0800 |
commit | 77101032aa61cad251fbe02476aa6d1e0df24d74 (patch) | |
tree | feb8cab7c855d92ddc5c9fd383a0608da97f739e /src/js | |
parent | 85290e5c12c5331bfa43481a73395c6f38b9d845 (diff) |
feat(highlight): add support for chroma
BREAKING CHANGE: You need add params to enable `chroma` or `highlight.js` since they are disabled by default.
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/even.js | 22 | ||||
-rw-r--r-- | src/js/main.js | 9 |
2 files changed, 27 insertions, 4 deletions
diff --git a/src/js/even.js b/src/js/even.js index 6b544a4..1711fa7 100644 --- a/src/js/even.js +++ b/src/js/even.js @@ -167,6 +167,16 @@ Even.highlight = function () { } } +Even.chroma = function() { + const blocks = document.querySelectorAll('.highlight > .chroma') + for (let i = 0; i < blocks.length; i++) { + const block = blocks[i] + const afterHighLight = block.querySelector('pre.chroma > code') + const lang = afterHighLight ? afterHighLight.className : '' + block.className += ' ' + lang + } +} + Even.toc = function () { const tocContainer = document.getElementById('post-toc') if (tocContainer !== null) { @@ -210,8 +220,12 @@ Even.flowchart = function () { const blocks = document.querySelectorAll('pre code.language-flowchart') for (let i = 0; i < blocks.length; i++) { + if (!window.hljs && i % 2 === 0) continue + const block = blocks[i] - const rootElement = block.parentElement + const rootElement = window.hljs + ? block.parentElement + : block.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement const container = document.createElement('div') const id = `js-flowchart-diagrams-${i}` @@ -229,8 +243,12 @@ Even.sequence = function () { const blocks = document.querySelectorAll('pre code.language-sequence') for (let i = 0; i < blocks.length; i++) { + if (!window.hljs && i % 2 === 0) continue + const block = blocks[i] - const rootElement = block.parentElement + const rootElement = window.hljs + ? block.parentElement + : block.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement const container = document.createElement('div') const id = `js-sequence-diagrams-${i}` diff --git a/src/js/main.js b/src/js/main.js index 289b8dc..64c44ca 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -12,5 +12,10 @@ $(document).ready(function () { Even.flowchart() Even.sequence() -hljs.initHighlighting() -Even.highlight() +if (window.hljs) { + hljs.initHighlighting() + Even.highlight() +} else { + Even.chroma() +} + |