| 
									
										
										
										
											2020-09-16 08:53:05 +02:00
										 |  |  | #!/usr/bin/env python | 
					
						
							| 
									
										
										
										
											2021-10-03 15:12:09 +02:00
										 |  |  | # SPDX-License-Identifier: AGPL-3.0-or-later | 
					
						
							| 
									
										
										
										
											2020-09-16 08:53:05 +02:00
										 |  |  | """
 | 
					
						
							|  |  |  | Update pygments style | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Call this script after each upgrade of pygments | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # pylint: disable=C0116 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # set path | 
					
						
							|  |  |  | from os.path import join | 
					
						
							|  |  |  | import pygments | 
					
						
							|  |  |  | from pygments.formatters import HtmlFormatter  # pylint: disable=E0611 | 
					
						
							|  |  |  | from pygments.style import Style | 
					
						
							|  |  |  | from pygments.token import Comment, Error, Generic, Keyword, Literal, Name, Operator, Text | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from searx import searx_dir | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CSSCLASS = '.code-highlight' | 
					
						
							|  |  |  | RULE_CODE_LINENOS = """ .linenos {
 | 
					
						
							|  |  |  |     -webkit-touch-callout: none; | 
					
						
							|  |  |  |     -webkit-user-select: none; | 
					
						
							|  |  |  |     -khtml-user-select: none; | 
					
						
							|  |  |  |     -moz-user-select: none; | 
					
						
							|  |  |  |     -ms-user-select: none; | 
					
						
							|  |  |  |     user-select: none; | 
					
						
							|  |  |  |     cursor: default; | 
					
						
							| 
									
										
										
										
											2021-04-26 19:06:30 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-16 08:53:05 +02:00
										 |  |  |     &::selection { | 
					
						
							|  |  |  |         background: transparent; /* WebKit/Blink Browsers */ | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     &::-moz-selection { | 
					
						
							|  |  |  |         background: transparent; /* Gecko Browsers */ | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     margin-right: 8px; | 
					
						
							|  |  |  |     text-align: right; | 
					
						
							|  |  |  | }"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_output_filename(relative_name): | 
					
						
							|  |  |  |     return join(searx_dir, relative_name) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_css(cssclass, style): | 
					
						
							|  |  |  |     result = f"""/*
 | 
					
						
							| 
									
										
										
										
											2021-10-02 17:30:39 +02:00
										 |  |  |    this file is generated automatically by searxng_extra/update/update_pygments.py | 
					
						
							| 
									
										
										
										
											2020-09-16 08:53:05 +02:00
										 |  |  |    using pygments version {pygments.__version__} | 
					
						
							|  |  |  | */\n\n"""
 | 
					
						
							|  |  |  |     css_text = HtmlFormatter(style=style).get_style_defs(cssclass) | 
					
						
							|  |  |  |     result += cssclass + RULE_CODE_LINENOS + '\n\n' | 
					
						
							|  |  |  |     for line in css_text.splitlines(): | 
					
						
							| 
									
										
										
										
											2021-12-27 09:26:22 +01:00
										 |  |  |         if ' ' in line and not line.startswith(cssclass): | 
					
						
							| 
									
										
										
										
											2020-09-16 08:53:05 +02:00
										 |  |  |             line = cssclass + ' ' + line | 
					
						
							|  |  |  |         result += line + '\n' | 
					
						
							|  |  |  |     return result | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def main(): | 
					
						
							| 
									
										
										
										
											2021-04-26 19:06:30 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-18 16:44:27 +02:00
										 |  |  |     fname = 'static/themes/simple/src/generated/pygments.less' | 
					
						
							| 
									
										
										
										
											2021-04-26 19:06:30 +02:00
										 |  |  |     print("update: %s" % fname) | 
					
						
							|  |  |  |     with open(get_output_filename(fname), 'w') as f: | 
					
						
							| 
									
										
										
										
											2020-09-16 08:53:05 +02:00
										 |  |  |         f.write(get_css(CSSCLASS, 'default')) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     main() |