Difference between revisions of "lure"

Line 30: Line 30:
 
And to parse and work with the DOM in LURE:
 
And to parse and work with the DOM in LURE:
 
<source lang="lua">
 
<source lang="lua">
 +
require("lure.lua")
 +
 
htmlDoc = Lure.load("test.html")
 
htmlDoc = Lure.load("test.html")
 
print(htmlDoc.getElementById("div1").childNodes[1].data)
 
print(htmlDoc.getElementById("div1").childNodes[1].data)

Revision as of 18:04, 1 November 2011

Summary

LURE is an attempt to implement a hybrid xml/html DOM parser and renderer for the Love2d game engine. The goal of LURE is to provide the following:

  • A non-validating xml/html parser which generates a (somewhat) W3C Standards complaint DOM Object for use with love.
  • A html renderer which will display html markup in the love window.

Although we have a working prototype of the xml/html parser and DOM Object, we do not yet have a working renderer. Given the sheer size of the W3C DOM specification, this area will serve to document and track the current status of DOM Interface implementations.

xml/html Parser Preview

The parser in its current state implements many of the core DOM node objects. Below is an example of the current xml/html parser and some basic use of the resulting DOM Object.

Below is very simple xml/html markup:

<html>
	<head>
		<title>Lure Test Page</title>		
	</head>
	<body>
		<div id="div1">
			this is a sentence<br>separated by a break line.
			<div id="div2">Hello</div>
			<div id="div3">World</div>			
		</div>
	</body>
</html>

And to parse and work with the DOM in LURE:

require("lure.lua")

htmlDoc = Lure.load("test.html")
print(htmlDoc.getElementById("div1").childNodes[1].data)
--OUTPUT: this is a sentence

print(htmlDoc.childNodes[1].childNodes[2].childNodes[1].childNodes[3].data)
--OUTPUT: separated by a break line.

newElement = htmlDoc.createElement("div")
newElement.setAttribute("id", "myNewElement")
htmlDoc.body.appendChild(newElement)
print(htmlDoc.getElementById("myNewElement").getAttribute("id"))
--OUTPUT: myNewElement


MORE TO COME!