Jeremy Ruston
12b471b8fb
Extend the HTML rendering mechanism to support attributes specified as macro invocations
2013-06-18 15:37:19 +01:00
Jeremy Ruston
551ebdc005
Major refactoring of rendering mechanism
...
We now use a fake DOM implementation on the server to let us share more
rendering code between the text output vs. DOM output paths.
2013-05-17 10:12:25 +01:00
Jeremy Ruston
0a3389c277
Add namespace support to the element renderer
...
This allows us to create SVG elements with the correct namespace, which
allows us to have inline SVG images (coming up next)
2013-05-15 18:44:23 +01:00
Jeremy Ruston
8564602256
Refactor rendertree to simplify context handling
...
Get rid of the separate renderContext stack and instead have a parent
pointer on renderer nodes. This lets us walk back up the render tree to
resolve context references
2013-05-15 17:32:17 +01:00
Jeremy Ruston
fc79db53ab
Allow templating with the link widget
...
And add some documentation
2013-03-04 11:13:10 +00:00
Jeremy Ruston
114e8f4145
Remove extraneous newline in HTML representation
2013-02-09 17:07:52 +00:00
Jeremy Ruston
5df60aaa3c
Don't render content or closing tag for void elements
2013-02-03 17:44:40 +00:00
Jeremy Ruston
4289a027d4
Add newlines after opening and closing tags
...
Which also fixes the problem with the PRE tag eating it's first newline
2013-02-03 17:11:03 +00:00
Jeremy Ruston
83900b0230
Fixed problem with erroneous rendering of empty HTML tags
...
We were doing things like `<div />`, which HTML doesn't like
2013-01-23 12:36:08 +00:00
Jeremy Ruston
bae48d5526
Stop base64 encoding context scope IDs
...
The base64 encoding wasn't working on node.js, and is a bit messy
2013-01-23 12:35:21 +00:00
Jeremy Ruston
df59dee188
Removed ability for widgets to not generate any elements
...
It interfered with the refresh mechanism
2013-01-17 11:28:24 +00:00
Jeremy Ruston
975711e22e
Fixed missing parameter
2013-01-03 22:36:33 +00:00
Jeremy Ruston
89d44e27df
Refactor things so that widgets can opt not to generate an element
...
They have to have a single child renderer instead
2013-01-03 20:51:13 +00:00
Jeremy Ruston
6d24cedbcc
Refactored widget renderers to be hosted within HTML element renderers
...
This arrangement takes better advantage of the similarities between the
now deleted widget renderer and the element renderer. It also obviates
the need for wrapper elements around every widget.
2013-01-03 16:27:55 +00:00
Jeremy Ruston
2124dd1ac1
Add a better error message for unknown widgets
2013-01-01 18:00:02 +00:00
Jeremy Ruston
d96e0073ac
Refactored widgets not to use a base class
2013-01-01 17:51:02 +00:00
Jeremy Ruston
8fdeefd7d1
Added reveal macro
2012-12-31 18:36:39 +00:00
Jeremy Ruston
f496cd540e
Store macros in the render context so that they scope in the expected way
2012-12-29 23:17:09 +00:00
Jeremy Ruston
b006cf163f
Remove the old parser code
...
Thus introducing a few functional regressions, but it's going to be
easier to fix things up without the old code knocking around and
getting in the way.
2012-12-28 22:08:32 +00:00
Jeremy Ruston
c703fb1267
Get rid of the wikivocabulary object
2012-12-26 22:02:59 +00:00
Jeremy Ruston
015145952d
Added support for block macro calls
2012-12-20 17:03:41 +00:00
Jeremy Ruston
055bdd8d8f
Added inline transclusion as well as block transclusion
2012-12-20 15:07:38 +00:00
Jeremy Ruston
6ccf13e624
Widgets and macro calls should be spans not divs
...
Although it does mean that we'll end up creating divs inside spans,
which isn't strictly legal but works in all browsers
2012-12-20 10:37:51 +00:00
Jeremy Ruston
36290c14fa
Fix for multiple macro parameters
...
This is one situation where the assignment to undefined matters
2012-12-20 09:21:44 +00:00
Jeremy Ruston
bede162896
Stop using custom elements to mark widgets
2012-12-20 09:21:08 +00:00
Jeremy Ruston
7593cf1075
Cleaning up the widget refresh mechanism
2012-12-14 19:31:37 +00:00
Jeremy Ruston
966684cb13
Improved event handling for widgets
2012-12-14 17:57:53 +00:00
Jeremy Ruston
3e06bca347
Refactor widget implementation
2012-12-14 16:01:37 +00:00
Jeremy Ruston
d338a54370
Introduce refactored wiki parser and renderer
...
This is a half-way through a big refactoring of the parsing and
rendering infrastructure. The main change is to separate the parse and
render trees, which makes the code a lot cleaner. The new parser isn't
yet functional enough to replace the existing parser so for the moment
you have to manually invoke it with `$tw.testNewParser()` in your
browser console. I really ought to use branches for this kind of
thing...
2012-12-13 21:34:31 +00:00