Folks,

I’ve started work on a TiddlyWiki native wysiwyg editor. Although I still 
have a long way to go before I’ll have anything stable enough to unleash on 
the general public, I thought it might worthwhile to solicit input from the 
group as a whole. What do you think a wysiwyg editor for Tiddlywiki ought 
to look like? How should it act? That sort of thing. And I’ve hit a 
roadblock that may make the entire exercise academic. Perhaps someone in 
the group has an insight that could help me get around this difficulty. 

First though, allow me to describe how I see the project and where I stand. 
I see this project as a plugin rather than something that displaces a major 
portion of the program. One result of that is the idea that I will disrupt 
the normal operation of the program as little as possible. At the moment, 
my prototype has the ordinary text editor panel on the left and makes the 
preview panel on the right an editable panel. Like the standard Tiddlywiki, 
this is a two state arrangement with either the text editor alone or the 
dual panel arrangement. I see the end product having a three state 
arrangement; text editor alone, wysiwyg editor alone or side by side. 

As I understand how Tiddlywiki works, the text editor modifies the raw 
wikitext which is rendered into html with each change for display in the 
preview window by the browser. The displayed version is strictly temporary 
until the tiddler behind the display is saved. The actual displayed html is 
not saved. Editing in the preview window like I’m currently doing means I’m 
editing the displayed html. To make the changes permanent, I have to 
convert the displayed html into wikitext. I’ve taken to referring to this 
process as derendering. (I know. It’s an ugly excuse for a word but I’ve 
grown to like it.) 

As the project stands now, I can make most of the standard text editing 
functions (bold, underline, italics, highlighting, lists and such) work in 
the preview window and derender them back into wikitext. The routine is 
glitchy and there are some aspects like images that do not act the way I 
want them to work. 

And now the roadblock. Wikitext is not just the contents but also a set of 
assembly instructions. A good example, and the heart of my problem, is 
transclusion. When one tiddler is transcluded into another for the display, 
its contents are merged into the tiddler being displayed without any 
indication of its origin. In the displayed html, it is simply more text. 
When the program derenders that the result is the wikitext for the original 
tiddler and the transcluded one without any hint of the transclusion and so 
the transclude command is lost. This sort of thing happens with several of 
the twiddlywiki features like automatic lists, etc. This effect is 
unacceptable as it does massive damage to the core concept of Tiddlywiki. 

My best idea on how to fix the problem requires Tiddlywiki to handle 
transclusions slightly differently and as a result requires modifications 
deeper and more fundamental to the code than I’m comfortable making. 
Specifically, my idea is to make the html that results from the 
transclusion look something like this:  

Here is some text from the “outside” tiddler

<!—{{transcludedTiddler}} -->
 
This is the transcluded tiddler inside the other tiddler
 
<!—end transclusion --> 

Here is some more text from the “outside” tiddler


By using comments I don’t introduce any new HTML elements to confuse the 
system but I do have the information I need to reconstruct the transclusion 
command correctly in wikitext. To make Tiddlywiki do something like this is 
beyond my comfort level so I can’t say I’m very happy with this answer.

Does someone have a better idea?


-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywikidev.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/8faec6fd-84a5-444d-be42-93a45db4014b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to