I want to thanks the testers (who have been many now), especially to my first testers Hadron Quark and Eric Lilja, for helping me by testing and pointing out bugs and weaknesses, most of them related to editing of PHP.
Without testers all kind of problems I just can't imagine myself would still be there in nXhtml. For example Hadron told me once that he got the error (wrong-type-argument stringp nil). Eh, I replied, are you sure. Yes he was. I tried the same file as him. No error.
The error happened during fontification so the error message above was all we had. A real black box for me. Or perhaps black magic? After much confusion and some hard work we finally found out what it was and I implemented a better way to catch such errors. If Hadron would have given up the problem would still have been there. Some problems are just impossible to solve without good cooperation. So, again, thanks Hadron.
BTW, I will perhaps add some even better way to Emacs to catch these errors so other can benefit from our insights too, but that requires some time and effort which I can't afford right now.
I wrote earlier that I thought that there were two parts in nXhtml, nxhtml-mode and mumamo with a bit different degree of maturity. I believe that is not that valid any more. To my delight the second part, mumamo is now also quite stable (from version 1.27).
Sometimes the major mode that Emacs opens a file in is not what you expect. This can happen with files like PHP files. The reason might be that magic-mode-alist have choosen a mode based on the content of the file. The way this is done does not take files with mixes a mix of for example XHTML and PHP into account.
You may try setting magic-mode-alist to nil if this is a problem for you.
This is now no longer necessary since the introduction of magic-fallback-mode-alist in CVS Emacs on 2007-05-16. (If you have an Emacs newer than that, of course.)
Because of a bug in Emacs 22.1 you can sometimes (at the end of a line) get long red lines instead of just a single underlined character. Many users (me included) find this quite a bit disturbing. I have therefore added a command to quickly hide/show the underlines. This is on C-c C-w.
This is particular useful for example in the case where you edit a PHP file and are bound to get a lot of XHTML validation errors.
If you want to have attribute values computed by PHP here is a way how to structure that to avoid breaking completion and validation in the XHTML part unnessecary:
<img src="images/linux.png" title="<?php foo("bar");?>"/>
Unfortunately that still breaks XHTML validation since < is not allowed in strings. In the long run I believe the XML validator has to be broken up so that it avoids parsing the string here (in PHP files).
For now I have implemented a workaround. If you are using constructs like those above then turn on nxhtml-strval-mode. This will temporarily replace the above with
<img src="images/linux.png" title="«?php foo("bar");?»"/>
However on the screen you will still see the original string and when writing to file the correct characters will be used.
The rules for a process instruction in XML, like <?php ... ?> says that the text can contain any text except ?>. So if you want to output that string from PHP then break it up so it does not look as ?> in the source file.
It might be good to break up the beginning part of the process instructions too. And please note that to use XHTML validation or completion you should avoid using < in strings, since it is not allowed there.
Do you have tab-width to something different than 8 (the default)? Then please change this to 8. I have got reports of problem with indentation when it is not 8.
Some people have asked why the way to specify chunks in mumamo-mode is not compatible with the old mmm-mode. The answer is that I was not sure that the way used in mmm-mode for specifying the chunks was flexible enough.
And I am sure that even the way used in mumamo-mode is not good enough for all cases, but I let it be the way it is until I have a better understanding of the problem. Suggestions and comments are welcome!
You are not supposed to call mumamo-mode yourself any more and mumamo-global-mode is gone. So is also mumamo-chunk-family-by-mode and mumamo-filenames-list. The functionality those gave are all replaced by the new functions for turning on mumamo mode.
This will of course case some problems if you do not notice it when you upgrade nXhtml. If you are using EmacsW32 and upgrade nXhtml you should change the file emacsw32.el.
The reason for this change is that nXml will soon normally not be part of nXhtml so keeping the old top directory name would be confusing.