| 
									
										
										
										
											2020-05-25 15:24:46 -04:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2020-05-25 11:46:10 -04:00
										 |  |  |  * Copyright (c) 2020, Hunter Salyer <thefalsehonesty@gmail.com> | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2021-04-22 01:24:48 -07:00
										 |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							| 
									
										
										
										
											2020-05-25 11:46:10 -04:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2020-05-25 15:24:46 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-28 20:40:53 +02:00
										 |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-25 15:24:46 -04:00
										 |  |  | #include <AK/HashTable.h>
 | 
					
						
							|  |  |  | #include <AK/String.h>
 | 
					
						
							|  |  |  | #include <LibJS/Forward.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace JS { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MarkupGenerator { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2020-05-25 11:46:10 -04:00
										 |  |  |     static String html_from_source(const StringView&); | 
					
						
							| 
									
										
										
										
											2020-05-25 15:24:46 -04:00
										 |  |  |     static String html_from_value(Value); | 
					
						
							| 
									
										
										
										
											2021-04-12 00:08:28 +02:00
										 |  |  |     static String html_from_error(Object&); | 
					
						
							| 
									
										
										
										
											2020-05-25 15:24:46 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     enum class StyleType { | 
					
						
							|  |  |  |         Invalid, | 
					
						
							|  |  |  |         String, | 
					
						
							|  |  |  |         Number, | 
					
						
							|  |  |  |         KeywordBold, | 
					
						
							|  |  |  |         Punctuation, | 
					
						
							|  |  |  |         Operator, | 
					
						
							|  |  |  |         Keyword, | 
					
						
							|  |  |  |         ControlKeyword, | 
					
						
							| 
									
										
										
										
											2021-04-20 11:41:59 +02:00
										 |  |  |         Identifier, | 
					
						
							|  |  |  |         ObjectType, | 
					
						
							| 
									
										
										
										
											2020-05-25 15:24:46 -04:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     static void value_to_html(Value, StringBuilder& output_html, HashTable<Object*> seen_objects = {}); | 
					
						
							|  |  |  |     static void array_to_html(const Array&, StringBuilder& output_html, HashTable<Object*>&); | 
					
						
							|  |  |  |     static void object_to_html(const Object&, StringBuilder& output_html, HashTable<Object*>&); | 
					
						
							|  |  |  |     static void function_to_html(const Object&, StringBuilder& output_html, HashTable<Object*>&); | 
					
						
							|  |  |  |     static void date_to_html(const Object&, StringBuilder& output_html, HashTable<Object*>&); | 
					
						
							|  |  |  |     static void error_to_html(const Object&, StringBuilder& output_html, HashTable<Object*>&); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     static String style_from_style_type(StyleType); | 
					
						
							|  |  |  |     static StyleType style_type_for_token(Token); | 
					
						
							|  |  |  |     static String open_style_type(StyleType type); | 
					
						
							|  |  |  |     static String wrap_string_in_style(String source, StyleType type); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-28 20:40:53 +02:00
										 |  |  | } |