* Cleaning up public/ and documenting js/css libs. This commit mostly addresses #1484 by moving vendor'ed plugins into a vendor/ directory and documenting their upstream source and license in vendor/librejs.html. This also proves gitea is using only open source js/css libraries which helps toward reaching #1524. * Removing unused css file. The version of this file in use is located at: vendor/plugins/highlight/github.css * Cleaned up librejs.html and added javascript header A SafeJS function was added to templates/helper.go to allow keeping comments inside of javascript. A javascript comment was added in the header of templates/base/head.tmpl to mark all non-inline source as free. The librejs.html file was updated to meet the current librejs spec. I have now verified that the librejs plugin detects most of the scripts included in gitea and suspect the non-free detections are the result of a bug in the plugin. I believe this commit is enough to meet the C0.0 requirement of #1534. * Updating SafeJS function per lint suggestion * Added VERSIONS file, per request
		
			
				
	
	
		
			274 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			274 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // CodeMirror, copyright (c) by Marijn Haverbeke and others
 | |
| // Distributed under an MIT license: http://codemirror.net/LICENSE
 | |
| 
 | |
| (function() {
 | |
|   var mode = CodeMirror.getMode({indentUnit: 4}, "verilog");
 | |
|   function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
 | |
| 
 | |
|   MT("binary_literals",
 | |
|      "[number 1'b0]",
 | |
|      "[number 1'b1]",
 | |
|      "[number 1'bx]",
 | |
|      "[number 1'bz]",
 | |
|      "[number 1'bX]",
 | |
|      "[number 1'bZ]",
 | |
|      "[number 1'B0]",
 | |
|      "[number 1'B1]",
 | |
|      "[number 1'Bx]",
 | |
|      "[number 1'Bz]",
 | |
|      "[number 1'BX]",
 | |
|      "[number 1'BZ]",
 | |
|      "[number 1'b0]",
 | |
|      "[number 1'b1]",
 | |
|      "[number 2'b01]",
 | |
|      "[number 2'bxz]",
 | |
|      "[number 2'b11]",
 | |
|      "[number 2'b10]",
 | |
|      "[number 2'b1Z]",
 | |
|      "[number 12'b0101_0101_0101]",
 | |
|      "[number 1'b 0]",
 | |
|      "[number 'b0101]"
 | |
|   );
 | |
| 
 | |
|   MT("octal_literals",
 | |
|      "[number 3'o7]",
 | |
|      "[number 3'O7]",
 | |
|      "[number 3'so7]",
 | |
|      "[number 3'SO7]"
 | |
|   );
 | |
| 
 | |
|   MT("decimal_literals",
 | |
|      "[number 0]",
 | |
|      "[number 1]",
 | |
|      "[number 7]",
 | |
|      "[number 123_456]",
 | |
|      "[number 'd33]",
 | |
|      "[number 8'd255]",
 | |
|      "[number 8'D255]",
 | |
|      "[number 8'sd255]",
 | |
|      "[number 8'SD255]",
 | |
|      "[number 32'd123]",
 | |
|      "[number 32 'd123]",
 | |
|      "[number 32 'd 123]"
 | |
|   );
 | |
| 
 | |
|   MT("hex_literals",
 | |
|      "[number 4'h0]",
 | |
|      "[number 4'ha]",
 | |
|      "[number 4'hF]",
 | |
|      "[number 4'hx]",
 | |
|      "[number 4'hz]",
 | |
|      "[number 4'hX]",
 | |
|      "[number 4'hZ]",
 | |
|      "[number 32'hdc78]",
 | |
|      "[number 32'hDC78]",
 | |
|      "[number 32 'hDC78]",
 | |
|      "[number 32'h DC78]",
 | |
|      "[number 32 'h DC78]",
 | |
|      "[number 32'h44x7]",
 | |
|      "[number 32'hFFF?]"
 | |
|   );
 | |
| 
 | |
|   MT("real_number_literals",
 | |
|      "[number 1.2]",
 | |
|      "[number 0.1]",
 | |
|      "[number 2394.26331]",
 | |
|      "[number 1.2E12]",
 | |
|      "[number 1.2e12]",
 | |
|      "[number 1.30e-2]",
 | |
|      "[number 0.1e-0]",
 | |
|      "[number 23E10]",
 | |
|      "[number 29E-2]",
 | |
|      "[number 236.123_763_e-12]"
 | |
|   );
 | |
| 
 | |
|   MT("operators",
 | |
|      "[meta ^]"
 | |
|   );
 | |
| 
 | |
|   MT("keywords",
 | |
|      "[keyword logic]",
 | |
|      "[keyword logic] [variable foo]",
 | |
|      "[keyword reg] [variable abc]"
 | |
|   );
 | |
| 
 | |
|   MT("variables",
 | |
|      "[variable _leading_underscore]",
 | |
|      "[variable _if]",
 | |
|      "[number 12] [variable foo]",
 | |
|      "[variable foo] [number 14]"
 | |
|   );
 | |
| 
 | |
|   MT("tick_defines",
 | |
|      "[def `FOO]",
 | |
|      "[def `foo]",
 | |
|      "[def `FOO_bar]"
 | |
|   );
 | |
| 
 | |
|   MT("system_calls",
 | |
|      "[meta $display]",
 | |
|      "[meta $vpi_printf]"
 | |
|   );
 | |
| 
 | |
|   MT("line_comment", "[comment // Hello world]");
 | |
| 
 | |
|   // Alignment tests
 | |
|   MT("align_port_map_style1",
 | |
|      /**
 | |
|       * mod mod(.a(a),
 | |
|       *         .b(b)
 | |
|       *        );
 | |
|       */
 | |
|      "[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],",
 | |
|      "        .[variable b][bracket (][variable b][bracket )]",
 | |
|      "       [bracket )];",
 | |
|      ""
 | |
|   );
 | |
| 
 | |
|   MT("align_port_map_style2",
 | |
|      /**
 | |
|       * mod mod(
 | |
|       *     .a(a),
 | |
|       *     .b(b)
 | |
|       * );
 | |
|       */
 | |
|      "[variable mod] [variable mod][bracket (]",
 | |
|      "    .[variable a][bracket (][variable a][bracket )],",
 | |
|      "    .[variable b][bracket (][variable b][bracket )]",
 | |
|      "[bracket )];",
 | |
|      ""
 | |
|   );
 | |
| 
 | |
|   // Indentation tests
 | |
|   MT("indent_single_statement_if",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )]",
 | |
|       "    [keyword break];",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("no_indent_after_single_line_if",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )] [keyword break];",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("indent_after_if_begin_same_line",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
 | |
|       "    [keyword break];",
 | |
|       "    [keyword break];",
 | |
|       "[keyword end]",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("indent_after_if_begin_next_line",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )]",
 | |
|       "    [keyword begin]",
 | |
|       "        [keyword break];",
 | |
|       "        [keyword break];",
 | |
|       "    [keyword end]",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("indent_single_statement_if_else",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )]",
 | |
|       "    [keyword break];",
 | |
|       "[keyword else]",
 | |
|       "    [keyword break];",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("indent_if_else_begin_same_line",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
 | |
|       "    [keyword break];",
 | |
|       "    [keyword break];",
 | |
|       "[keyword end] [keyword else] [keyword begin]",
 | |
|       "    [keyword break];",
 | |
|       "    [keyword break];",
 | |
|       "[keyword end]",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("indent_if_else_begin_next_line",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )]",
 | |
|       "    [keyword begin]",
 | |
|       "        [keyword break];",
 | |
|       "        [keyword break];",
 | |
|       "    [keyword end]",
 | |
|       "[keyword else]",
 | |
|       "    [keyword begin]",
 | |
|       "        [keyword break];",
 | |
|       "        [keyword break];",
 | |
|       "    [keyword end]",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("indent_if_nested_without_begin",
 | |
|       "[keyword if] [bracket (][variable foo][bracket )]",
 | |
|       "    [keyword if] [bracket (][variable foo][bracket )]",
 | |
|       "        [keyword if] [bracket (][variable foo][bracket )]",
 | |
|       "            [keyword break];",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("indent_case",
 | |
|       "[keyword case] [bracket (][variable state][bracket )]",
 | |
|       "    [variable FOO]:",
 | |
|       "        [keyword break];",
 | |
|       "    [variable BAR]:",
 | |
|       "        [keyword break];",
 | |
|       "[keyword endcase]",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("unindent_after_end_with_preceding_text",
 | |
|       "[keyword begin]",
 | |
|       "    [keyword break]; [keyword end]",
 | |
|       ""
 | |
|   );
 | |
| 
 | |
|   MT("export_function_one_line_does_not_indent",
 | |
|      "[keyword export] [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
 | |
|      ""
 | |
|   );
 | |
| 
 | |
|   MT("export_task_one_line_does_not_indent",
 | |
|      "[keyword export] [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
 | |
|      ""
 | |
|   );
 | |
| 
 | |
|   MT("export_function_two_lines_indents_properly",
 | |
|     "[keyword export]",
 | |
|     "    [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
 | |
|     ""
 | |
|   );
 | |
| 
 | |
|   MT("export_task_two_lines_indents_properly",
 | |
|     "[keyword export]",
 | |
|     "    [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
 | |
|     ""
 | |
|   );
 | |
| 
 | |
|   MT("import_function_one_line_does_not_indent",
 | |
|     "[keyword import] [string \"DPI-C\"] [keyword function] [variable helloFromC];",
 | |
|     ""
 | |
|   );
 | |
| 
 | |
|   MT("import_task_one_line_does_not_indent",
 | |
|     "[keyword import] [string \"DPI-C\"] [keyword task] [variable helloFromC];",
 | |
|     ""
 | |
|   );
 | |
| 
 | |
|   MT("import_package_single_line_does_not_indent",
 | |
|     "[keyword import] [variable p]::[variable x];",
 | |
|     "[keyword import] [variable p]::[variable y];",
 | |
|     ""
 | |
|   );
 | |
| 
 | |
|   MT("covergroup_with_function_indents_properly",
 | |
|     "[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];",
 | |
|     "    [variable c] : [keyword coverpoint] [variable c];",
 | |
|     "[keyword endgroup]: [variable cg]",
 | |
|     ""
 | |
|   );
 | |
| 
 | |
| })();
 |