[sword-devel] trying to get proper xhtml to work in webkit

Karl Kleinpaste karl at kleinpaste.org
Sat Apr 18 14:10:59 MST 2020


On 4/18/20 2:48 PM, Greg Hellings wrote:
> This is the HTML header. Not the HTTP header.

I had thought that's what the <meta http-equiv=\"content-type\"
content=\"application/xhtml+xml; charset=utf-8\">was supposed to give
me, for the case of a directly-loaded text blob that didn't arrive via
HTTP. Apparently not.

> For manually loading the text you don't have an HTTP header, but you
> still tell the widget what content type when you call
> wk_html_open_stream or webkit_web_view_load_string or similar
> functions. It's this value that is telling Webkit what to do.

<headdesk>

It hadn't occurred to me that this was done other than in the header
directives as I began to fill the widget.

Unfortunately, still no joy. There are 6 occurrences of "text/html" in 3
files that do webkit widget loading:
src/editor/editor.c
src/editor/webkit_editor.c
src/webkit/wk-html.c
And the one that is immediately relevant is of course the last, which
has 1 of the 6. Changing them all from "text/html" to
"application/xhtml+xml" had precisely zero effect. The self-closing
<div> still makes my .introMaterial bleed through to the end of the chapter.

I can't win. Sorry. I think I'm done with this exercise in madness.

For the record, this is the patch that restores <div/>-non-destructive
behavior, with which I've been testing all these variants. The <meta> is
gone, all the other <?xml> and DOCTYPE are gone, all that's added is the
namespace spec, plus the code change proper that simply pastes the
engine's returned content into the widget, rather than engaging the
<div/> wiping.

Ohwell. I tried.

--- src/main/display.cc    2020-04-18 16:39:59.743635867 -0400
+++ ../databits/display.cc.FAIL    2020-04-18 16:44:35.607215035 -0400
@@ -89,7 +89,7 @@
     N_("<br/><br/><center><i>This module has no content at this
point.</i></center>");
 
 #define HTML_START \
-    "<html><head><meta http-equiv=\"content-type\" content=\"text/html;
charset=utf-8\"> \
+    "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head> \
 <style type=\"text/css\"><!-- \
 A { text-decoration:none } \
 *[dir=rtl] { text-align: right; } \
@@ -1181,6 +1181,12 @@
         key->setChapter(i * chapter);
         key->setVerse(0);
 
+#if 1
+        buf = g_strdup_printf("%s<br />",
+                      (strongs_or_morph
+                       ? block_render(imodule.renderText().c_str())
+                       : imodule.renderText().c_str()));
+#else
         // begin gosh this is gross.
         // hunt down self-closing <div ... /> and stomp them with spaces.
         // this is disgustingly special-case, caused by self-closing <div>
@@ -1217,6 +1223,7 @@
         g_string_free(divBuf, TRUE);
 
     // end grossness
+#endif /* 0 */
 
         swbuf.append(buf);
         g_free(buf);

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20200418/62aee02a/attachment.html>


More information about the sword-devel mailing list