move highlight.js to npm/webpack (#10011)
- introduced window.config to help with js-based lazy-loading - adjusted webpack chunk naming to avoid 'vendors~name.js' that webpack defaults to for vendor chunks. - added theme class to html and prefixed all selectors. this is neccesary so that the theme styles win over the lazy-loaded ones. Co-authored-by: zeripath <art27@cantab.net>tokarchuk/v1.17
parent
d879353632
commit
b9690d7c0b
@ -1,25 +0,0 @@ |
|||||||
Copyright (c) 2006, Ivan Sagalaev |
|
||||||
All rights reserved. |
|
||||||
Redistribution and use in source and binary forms, with or without |
|
||||||
modification, are permitted provided that the following conditions are met: |
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright |
|
||||||
notice, this list of conditions and the following disclaimer. |
|
||||||
* Redistributions in binary form must reproduce the above copyright |
|
||||||
notice, this list of conditions and the following disclaimer in the |
|
||||||
documentation and/or other materials provided with the distribution. |
|
||||||
* Neither the name of highlight.js nor the names of its contributors |
|
||||||
may be used to endorse or promote products derived from this software |
|
||||||
without specific prior written permission. |
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY |
|
||||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY |
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
||||||
|
|
@ -1,99 +0,0 @@ |
|||||||
/* |
|
||||||
|
|
||||||
Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org> |
|
||||||
|
|
||||||
*/ |
|
||||||
|
|
||||||
.hljs { |
|
||||||
display: block; |
|
||||||
overflow-x: auto; |
|
||||||
padding: 0.5em; |
|
||||||
background: #F0F0F0; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/* Base color: saturation 0; */ |
|
||||||
|
|
||||||
.hljs, |
|
||||||
.hljs-subst { |
|
||||||
color: #444; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-comment { |
|
||||||
color: #888888; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-keyword, |
|
||||||
.hljs-attribute, |
|
||||||
.hljs-selector-tag, |
|
||||||
.hljs-meta-keyword, |
|
||||||
.hljs-doctag, |
|
||||||
.hljs-name { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/* User color: hue: 0 */ |
|
||||||
|
|
||||||
.hljs-type, |
|
||||||
.hljs-string, |
|
||||||
.hljs-number, |
|
||||||
.hljs-selector-id, |
|
||||||
.hljs-selector-class, |
|
||||||
.hljs-quote, |
|
||||||
.hljs-template-tag, |
|
||||||
.hljs-deletion { |
|
||||||
color: #880000; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-title, |
|
||||||
.hljs-section { |
|
||||||
color: #880000; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-regexp, |
|
||||||
.hljs-symbol, |
|
||||||
.hljs-variable, |
|
||||||
.hljs-template-variable, |
|
||||||
.hljs-link, |
|
||||||
.hljs-selector-attr, |
|
||||||
.hljs-selector-pseudo { |
|
||||||
color: #BC6060; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/* Language color: hue: 90; */ |
|
||||||
|
|
||||||
.hljs-literal { |
|
||||||
color: #78A960; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-built_in, |
|
||||||
.hljs-bullet, |
|
||||||
.hljs-code, |
|
||||||
.hljs-addition { |
|
||||||
color: #397300; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/* Meta color: hue: 200 */ |
|
||||||
|
|
||||||
.hljs-meta { |
|
||||||
color: #1f7199; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-meta-string { |
|
||||||
color: #4d99bf; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/* Misc effects */ |
|
||||||
|
|
||||||
.hljs-emphasis { |
|
||||||
font-style: italic; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-strong { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
@ -1,99 +0,0 @@ |
|||||||
/* |
|
||||||
|
|
||||||
github.com style (c) Vasily Polovnyov <vast@whiteants.net> |
|
||||||
|
|
||||||
*/ |
|
||||||
|
|
||||||
.hljs { |
|
||||||
display: block; |
|
||||||
overflow-x: auto; |
|
||||||
padding: 0.5em; |
|
||||||
color: #333; |
|
||||||
background: #f8f8f8; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-comment, |
|
||||||
.hljs-quote { |
|
||||||
color: #998; |
|
||||||
font-style: italic; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-keyword, |
|
||||||
.hljs-selector-tag, |
|
||||||
.hljs-subst { |
|
||||||
color: #333; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-number, |
|
||||||
.hljs-literal, |
|
||||||
.hljs-variable, |
|
||||||
.hljs-template-variable, |
|
||||||
.hljs-tag .hljs-attr { |
|
||||||
color: #008080; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-string, |
|
||||||
.hljs-doctag { |
|
||||||
color: #d14; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-title, |
|
||||||
.hljs-section, |
|
||||||
.hljs-selector-id { |
|
||||||
color: #900; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-subst { |
|
||||||
font-weight: normal; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-type, |
|
||||||
.hljs-class .hljs-title { |
|
||||||
color: #458; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-tag, |
|
||||||
.hljs-name, |
|
||||||
.hljs-attribute { |
|
||||||
color: #000080; |
|
||||||
font-weight: normal; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-regexp, |
|
||||||
.hljs-link { |
|
||||||
color: #009926; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-symbol, |
|
||||||
.hljs-bullet { |
|
||||||
color: #990073; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-built_in, |
|
||||||
.hljs-builtin-name { |
|
||||||
color: #0086b3; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-meta { |
|
||||||
color: #999; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-deletion { |
|
||||||
background: #fdd; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-addition { |
|
||||||
background: #dfd; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-emphasis { |
|
||||||
font-style: italic; |
|
||||||
} |
|
||||||
|
|
||||||
.hljs-strong { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,12 @@ |
|||||||
|
export default async function initHighlight() { |
||||||
|
if (!window.config || !window.config.HighlightJS) return; |
||||||
|
|
||||||
|
const hljs = await import(/* webpackChunkName: "highlight" */'highlight.js'); |
||||||
|
|
||||||
|
const nodes = [].slice.call(document.querySelectorAll('pre code') || []); |
||||||
|
for (let i = 0; i < nodes.length; i++) { |
||||||
|
hljs.highlightBlock(nodes[i]); |
||||||
|
} |
||||||
|
|
||||||
|
return hljs; |
||||||
|
} |
Loading…
Reference in new issue