mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	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>
This commit is contained in:
		| @@ -19,7 +19,6 @@ globals: | |||||||
|   CodeMirror: false |   CodeMirror: false | ||||||
|   Dropzone: false |   Dropzone: false | ||||||
|   emojify: false |   emojify: false | ||||||
|   hljs: false |  | ||||||
|   SimpleMDE: false |   SimpleMDE: false | ||||||
|   u2fApi: false |   u2fApi: false | ||||||
|   Vue: false |   Vue: false | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -7341,6 +7341,11 @@ | |||||||
|       "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", |       "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "highlight.js": { | ||||||
|  |       "version": "9.18.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.0.tgz", | ||||||
|  |       "integrity": "sha512-A97kI1KAUzKoAiEoaGcf2O9YPS8nbDTCRFokaaeBhnqjQTvbAuAJrQMm21zw8s8xzaMtCQBtgbyGXLGxdxQyqQ==" | ||||||
|  |     }, | ||||||
|     "hmac-drbg": { |     "hmac-drbg": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ | |||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "fomantic-ui": "2.8.3", |     "fomantic-ui": "2.8.3", | ||||||
|  |     "highlight.js": "9.18.0", | ||||||
|     "jquery": "3.4.1", |     "jquery": "3.4.1", | ||||||
|     "jquery-migrate": "3.1.0", |     "jquery-migrate": "3.1.0", | ||||||
|     "swagger-ui": "3.24.3", |     "swagger-ui": "3.24.3", | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								public/vendor/VERSIONS
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								public/vendor/VERSIONS
									
									
									
									
										vendored
									
									
								
							| @@ -26,8 +26,8 @@ Version: 1.1.0 | |||||||
| File(s): /vendor/plugins/dropzone/dropzone.js | File(s): /vendor/plugins/dropzone/dropzone.js | ||||||
| Version: 4.2.0 | Version: 4.2.0 | ||||||
|  |  | ||||||
| File(s): /vendor/plugins/highlight/highlight.pack.js | File(s): /js/highlight.js | ||||||
| Version: 2b46620c9d62e9becf5f25969b5ccc41fa1da470 | Version: 9.18.0 | ||||||
|  |  | ||||||
| File(s): /vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js | File(s): /vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js | ||||||
| Version: 2.4.5 | Version: 2.4.5 | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								public/vendor/librejs.html
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								public/vendor/librejs.html
									
									
									
									
										vendored
									
									
								
							| @@ -66,9 +66,9 @@ | |||||||
|           <td><a href="https://github.com/enyo/dropzone/archive/v4.2.0.tar.gz">dropzone.js-4.2.0.tar.gz</a></td> |           <td><a href="https://github.com/enyo/dropzone/archive/v4.2.0.tar.gz">dropzone.js-4.2.0.tar.gz</a></td> | ||||||
|         </tr> |         </tr> | ||||||
|         <tr> |         <tr> | ||||||
|           <td><a href="./plugins/highlight/highlight.pack.js">highlight.pack.js</a></td> |           <td><a href="./highlight.js">highlight.js</a></td> | ||||||
|           <td><a href="https://github.com/highlightjs/highlight.js/blob/master/LICENSE">BSD 3-Clause</a></td> |           <td><a href="https://github.com/highlightjs/highlight.js/blob/master/LICENSE">BSD 3-Clause</a></td> | ||||||
|           <td><a href="https://github.com/highlightjs/highlight.js/archive/2b46620c.tar.gz">highlight.js-2b46620c.tar.gz</a></td> |           <td><a href="https://github.com/highlightjs/highlight.js/archive/9.18.0.tar.gz">highlight.js.tar.gz</a></td> | ||||||
|         </tr> |         </tr> | ||||||
|         <tr> |         <tr> | ||||||
|           <td><a href="./plugins/jquery.datetimepicker/jquery.datetimepicker.js">jquery.datetimepicker.js</a></td> |           <td><a href="./plugins/jquery.datetimepicker/jquery.datetimepicker.js">jquery.datetimepicker.js</a></td> | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								public/vendor/plugins/highlight/LICENSE
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								public/vendor/plugins/highlight/LICENSE
									
									
									
									
										vendored
									
									
								
							| @@ -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. |  | ||||||
|  |  | ||||||
							
								
								
									
										99
									
								
								public/vendor/plugins/highlight/default.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								public/vendor/plugins/highlight/default.css
									
									
									
									
										vendored
									
									
								
							| @@ -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; |  | ||||||
| } |  | ||||||
							
								
								
									
										99
									
								
								public/vendor/plugins/highlight/github.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								public/vendor/plugins/highlight/github.css
									
									
									
									
										vendored
									
									
								
							| @@ -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
											
										
									
								
							| @@ -24,9 +24,6 @@ | |||||||
| {{end}} | {{end}} | ||||||
|  |  | ||||||
| <!-- Third-party libraries --> | <!-- Third-party libraries --> | ||||||
| {{if .RequireHighlightJS}} |  | ||||||
| 	<script src="{{StaticUrlPrefix}}/vendor/plugins/highlight/highlight.pack.js"></script> |  | ||||||
| {{end}} |  | ||||||
| {{if .RequireMinicolors}} | {{if .RequireMinicolors}} | ||||||
| 	<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js"></script> | 	<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js"></script> | ||||||
| {{end}} | {{end}} | ||||||
|   | |||||||
| @@ -83,6 +83,17 @@ | |||||||
|         for the JavaScript code in this page. |         for the JavaScript code in this page. | ||||||
| 	*/`}} | 	*/`}} | ||||||
| 	</script> | 	</script> | ||||||
|  | 	<script> | ||||||
|  | 		window.config = { | ||||||
|  | 			Datetimepicker: {{if .RequireDatetimepicker}}true{{else}}false{{end}}, | ||||||
|  | 			Dropzone: {{if .RequireDropzone}}true{{else}}false{{end}}, | ||||||
|  | 			HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}}, | ||||||
|  | 			Minicolors: {{if .RequireMinicolors}}true{{else}}false{{end}}, | ||||||
|  | 			SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}}, | ||||||
|  | 			Tribute: {{if .RequireTribute}}true{{else}}false{{end}}, | ||||||
|  | 			U2F: {{if .RequireU2F}}true{{else}}false{{end}}, | ||||||
|  | 		}; | ||||||
|  | 	</script> | ||||||
| 	<link rel="shortcut icon" href="{{StaticUrlPrefix}}/img/favicon.png"> | 	<link rel="shortcut icon" href="{{StaticUrlPrefix}}/img/favicon.png"> | ||||||
| 	<link rel="apple-touch-icon" href="{{StaticUrlPrefix}}/img/favicon.png"> | 	<link rel="apple-touch-icon" href="{{StaticUrlPrefix}}/img/favicon.png"> | ||||||
| 	<link rel="mask-icon" href="{{StaticUrlPrefix}}/img/gitea-safari.svg" color="#609926"> | 	<link rel="mask-icon" href="{{StaticUrlPrefix}}/img/gitea-safari.svg" color="#609926"> | ||||||
| @@ -106,10 +117,6 @@ | |||||||
| 			.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; } | 			.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; } | ||||||
| 		</style> | 		</style> | ||||||
| 	</noscript> | 	</noscript> | ||||||
|  |  | ||||||
| {{if .RequireHighlightJS}} |  | ||||||
| 	<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/highlight/github.css"> |  | ||||||
| {{end}} |  | ||||||
| {{if .RequireMinicolors}} | {{if .RequireMinicolors}} | ||||||
| 	<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css"> | 	<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css"> | ||||||
| {{end}} | {{end}} | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ var urlsToCache = [ | |||||||
|   // js |   // js | ||||||
|   '{{StaticUrlPrefix}}/fomantic/semantic.min.js?v={{MD5 AppVer}}', |   '{{StaticUrlPrefix}}/fomantic/semantic.min.js?v={{MD5 AppVer}}', | ||||||
|   '{{StaticUrlPrefix}}/js/gitgraph.js', |   '{{StaticUrlPrefix}}/js/gitgraph.js', | ||||||
|  |   '{{StaticUrlPrefix}}/js/highlight.js', | ||||||
|   '{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}', |   '{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}', | ||||||
|   '{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}', |   '{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}', | ||||||
|   '{{StaticUrlPrefix}}/js/swagger.js?v={{MD5 AppVer}}', |   '{{StaticUrlPrefix}}/js/swagger.js?v={{MD5 AppVer}}', | ||||||
| @@ -11,7 +12,6 @@ var urlsToCache = [ | |||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js', |   '{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js', |   '{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/emojify/emojify.custom.js', |   '{{StaticUrlPrefix}}/vendor/plugins/emojify/emojify.custom.js', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/highlight/highlight.pack.js', |  | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js', |   '{{StaticUrlPrefix}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js', |   '{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js', |   '{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js', | ||||||
| @@ -20,13 +20,13 @@ var urlsToCache = [ | |||||||
|  |  | ||||||
|   // css |   // css | ||||||
|   '{{StaticUrlPrefix}}/css/gitgraph.css', |   '{{StaticUrlPrefix}}/css/gitgraph.css', | ||||||
|  |   '{{StaticUrlPrefix}}/css/highlight.css', | ||||||
|   '{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}', |   '{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}', | ||||||
|   '{{StaticUrlPrefix}}/css/swagger.css?v={{MD5 AppVer}}', |   '{{StaticUrlPrefix}}/css/swagger.css?v={{MD5 AppVer}}', | ||||||
|   '{{StaticUrlPrefix}}/fomantic/semantic.min.css?v={{MD5 AppVer}}', |   '{{StaticUrlPrefix}}/fomantic/semantic.min.css?v={{MD5 AppVer}}', | ||||||
|   '{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css', |   '{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css', | ||||||
|   '{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.min.css', |   '{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.min.css', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.css', |   '{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.css', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/highlight/github.css', |  | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.css', |   '{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.css', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css', |   '{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css', | ||||||
|   '{{StaticUrlPrefix}}/vendor/plugins/simplemde/simplemde.min.css', |   '{{StaticUrlPrefix}}/vendor/plugins/simplemde/simplemde.min.css', | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								web_src/js/features/highlight.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								web_src/js/features/highlight.js
									
									
									
									
									
										Normal file
									
								
							| @@ -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; | ||||||
|  | } | ||||||
| @@ -6,7 +6,8 @@ import './publicPath.js'; | |||||||
| import './polyfills.js'; | import './polyfills.js'; | ||||||
| import './gitGraphLoader.js'; | import './gitGraphLoader.js'; | ||||||
| import './semanticDropdown.js'; | import './semanticDropdown.js'; | ||||||
| import initContextPopups from './features/contextPopup'; | import initContextPopups from './features/contextPopup.js'; | ||||||
|  | import initHighlight from './features/highlight.js'; | ||||||
|  |  | ||||||
| import ActivityTopAuthors from './components/ActivityTopAuthors.vue'; | import ActivityTopAuthors from './components/ActivityTopAuthors.vue'; | ||||||
|  |  | ||||||
| @@ -20,6 +21,7 @@ let previewFileModes; | |||||||
| let simpleMDEditor; | let simpleMDEditor; | ||||||
| const commentMDEditors = {}; | const commentMDEditors = {}; | ||||||
| let codeMirrorEditor; | let codeMirrorEditor; | ||||||
|  | let hljs; | ||||||
|  |  | ||||||
| // Disable Dropzone auto-discover because it's manually initialized | // Disable Dropzone auto-discover because it's manually initialized | ||||||
| if (typeof (Dropzone) !== 'undefined') { | if (typeof (Dropzone) !== 'undefined') { | ||||||
| @@ -2318,7 +2320,7 @@ function initTemplateSearch() { | |||||||
|   changeOwner(); |   changeOwner(); | ||||||
| } | } | ||||||
|  |  | ||||||
| $(document).ready(() => { | $(document).ready(async () => { | ||||||
|   csrf = $('meta[name=_csrf]').attr('content'); |   csrf = $('meta[name=_csrf]').attr('content'); | ||||||
|   suburl = $('meta[name=_suburl]').attr('content'); |   suburl = $('meta[name=_suburl]').attr('content'); | ||||||
|  |  | ||||||
| @@ -2370,14 +2372,6 @@ $(document).ready(() => { | |||||||
|     window.location = $(this).data('href'); |     window.location = $(this).data('href'); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   // Highlight JS |  | ||||||
|   if (typeof hljs !== 'undefined') { |  | ||||||
|     const nodes = [].slice.call(document.querySelectorAll('pre code') || []); |  | ||||||
|     for (let i = 0; i < nodes.length; i++) { |  | ||||||
|       hljs.highlightBlock(nodes[i]); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   // Dropzone |   // Dropzone | ||||||
|   const $dropzone = $('#dropzone'); |   const $dropzone = $('#dropzone'); | ||||||
|   if ($dropzone.length > 0) { |   if ($dropzone.length > 0) { | ||||||
| @@ -2591,6 +2585,10 @@ $(document).ready(() => { | |||||||
|       $repoName.val($cloneAddr.val().match(/^(.*\/)?((.+?)(\.git)?)$/)[3]); |       $repoName.val($cloneAddr.val().match(/^(.*\/)?((.+?)(\.git)?)$/)[3]); | ||||||
|     } |     } | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|  |   [hljs] = await Promise.all([ | ||||||
|  |     initHighlight(), | ||||||
|  |   ]); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| function changeHash(hash) { | function changeHash(hash) { | ||||||
|   | |||||||
| @@ -13,3 +13,4 @@ | |||||||
| @import "_admin"; | @import "_admin"; | ||||||
| @import "_explore"; | @import "_explore"; | ||||||
| @import "_review"; | @import "_review"; | ||||||
|  | @import "~highlight.js/styles/github.css"; | ||||||
|   | |||||||
| @@ -65,6 +65,10 @@ module.exports = { | |||||||
|         }, |         }, | ||||||
|       }), |       }), | ||||||
|     ], |     ], | ||||||
|  |     splitChunks: { | ||||||
|  |       chunks: 'async', | ||||||
|  |       name: (_, chunks) => chunks.map((item) => item.name).join('-'), | ||||||
|  |     } | ||||||
|   }, |   }, | ||||||
|   module: { |   module: { | ||||||
|     rules: [ |     rules: [ | ||||||
| @@ -142,10 +146,8 @@ module.exports = { | |||||||
|     }), |     }), | ||||||
|     new SourceMapDevToolPlugin({ |     new SourceMapDevToolPlugin({ | ||||||
|       filename: 'js/[name].js.map', |       filename: 'js/[name].js.map', | ||||||
|       exclude: [ |       include: [ | ||||||
|         'js/gitgraph.js', |         'js/index.js', | ||||||
|         'js/jquery.js', |  | ||||||
|         'js/swagger.js', |  | ||||||
|       ], |       ], | ||||||
|     }), |     }), | ||||||
|   ], |   ], | ||||||
| @@ -153,7 +155,9 @@ module.exports = { | |||||||
|     maxEntrypointSize: 512000, |     maxEntrypointSize: 512000, | ||||||
|     maxAssetSize: 512000, |     maxAssetSize: 512000, | ||||||
|     assetFilter: (filename) => { |     assetFilter: (filename) => { | ||||||
|       return !filename.endsWith('.map') && filename !== 'js/swagger.js'; |       if (filename.endsWith('.map')) return false; | ||||||
|  |       if (['js/swagger.js', 'js/highlight.js'].includes(filename)) return false; | ||||||
|  |       return true; | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|   resolve: { |   resolve: { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 silverwind
					silverwind