feat: global logger module
							parent
							
								
									601d3779c5
								
							
						
					
					
						commit
						1d21442e4f
					
				
							
								
								
									
										9
									
								
								html.lua
								
								
								
								
							
							
						
						
									
										9
									
								
								html.lua
								
								
								
								
							| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					local logger = require(".logging")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local function trim(str)
 | 
					local function trim(str)
 | 
				
			||||||
	return str:match("^%s*(.-)%s*$")
 | 
						return str:match("^%s*(.-)%s*$")
 | 
				
			||||||
| 
						 | 
					@ -232,7 +233,7 @@ function M.tokenise( content )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if TOKENS[#TOKENS] and ( TOKENS[#TOKENS].type == "START_OPENING_TAG") then
 | 
										if TOKENS[#TOKENS] and ( TOKENS[#TOKENS].type == "START_OPENING_TAG") then
 | 
				
			||||||
						if RAW_TEXT_TAGS[word] then
 | 
											if RAW_TEXT_TAGS[word] then
 | 
				
			||||||
							print("Warning: "..word.." tags may contain text that would be incorrectly parsed as HTML.")
 | 
												logger.printerr("Warning: "..word.." tags may contain text that would be incorrectly parsed as HTML.")
 | 
				
			||||||
							-- made possible because of the whitespace removal at the start
 | 
												-- made possible because of the whitespace removal at the start
 | 
				
			||||||
							set_skipping_to("</" .. word)
 | 
												set_skipping_to("</" .. word)
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
| 
						 | 
					@ -263,7 +264,7 @@ function M.tokenise( content )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if TOKENS[#TOKENS] and ( TOKENS[#TOKENS].type == "START_OPENING_TAG" ) then
 | 
										if TOKENS[#TOKENS] and ( TOKENS[#TOKENS].type == "START_OPENING_TAG" ) then
 | 
				
			||||||
						if RAW_TEXT_TAGS[word] then
 | 
											if RAW_TEXT_TAGS[word] then
 | 
				
			||||||
							print("Warning: "..word.." tags may contain text that would be incorrectly parsed as HTML.")
 | 
												logger.printerr("Warning: "..word.." tags may contain text that would be incorrectly parsed as HTML.")
 | 
				
			||||||
							-- made possible because of the whitespace removal at the start
 | 
												-- made possible because of the whitespace removal at the start
 | 
				
			||||||
							set_skipping_to("</" .. word)
 | 
												set_skipping_to("</" .. word)
 | 
				
			||||||
							text_memory = ""
 | 
												text_memory = ""
 | 
				
			||||||
| 
						 | 
					@ -401,7 +402,7 @@ function M.parse_tokens_into_document( TOKENS )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if curr_elem.parent == nil then
 | 
									if curr_elem.parent == nil then
 | 
				
			||||||
					-- reached DOCUMENT root
 | 
										-- reached DOCUMENT root
 | 
				
			||||||
					print("Warning: reached document root while trying to match for closing " .. token.value .. " token.")
 | 
										logger.printerr("Warning: reached document root while trying to match for closing " .. token.value .. " token.")
 | 
				
			||||||
					current_doc_element = DOCUMENT
 | 
										current_doc_element = DOCUMENT
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					current_doc_element = curr_elem.parent
 | 
										current_doc_element = curr_elem.parent
 | 
				
			||||||
| 
						 | 
					@ -582,8 +583,6 @@ function M._tostring(node, indent, include_internal_pseudoelements)
 | 
				
			||||||
		node_name = node_name .. ">"
 | 
							node_name = node_name .. ">"
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	--print( node_name )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	local next_indent = indent + 1
 | 
						local next_indent = indent + 1
 | 
				
			||||||
	if is_pseudo_element and not include_internal_pseudoelements then
 | 
						if is_pseudo_element and not include_internal_pseudoelements then
 | 
				
			||||||
		next_indent = indent
 | 
							next_indent = indent
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,31 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local may_print_errors = false
 | 
				
			||||||
 | 
					local errors_buffer = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local logger = {
 | 
				
			||||||
 | 
						print = function( str )
 | 
				
			||||||
 | 
							print( str )
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						printerr = function( str)
 | 
				
			||||||
 | 
							if str:sub(#str,#str) ~= "\n" then
 | 
				
			||||||
 | 
								str = str .. "\n"
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if not may_print_errors then
 | 
				
			||||||
 | 
								table.insert(errors_buffer, str)
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							io.stderr:write(str)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						enable_printing_errors = function()
 | 
				
			||||||
 | 
							may_print_errors = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							for _, err in ipairs(errors_buffer) do
 | 
				
			||||||
 | 
									io.stderr:write(err)
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return logger
 | 
				
			||||||
		Loading…
	
		Reference in New Issue