Topic: Losing left angle bracket on publish

Hi,

Recently MarsEdit has started "losing" the left angle bracket on all HTML when I publish. It all looks fine in the editor and preview, but once published, all the < are missing in the post on the web. This is happening on both a WordPress and a Nucleus blog.

What setting have I messed up that's causing this?

Regards,

Rob...

Re: Losing left angle bracket on publish

Weird - can you grab a network log?

1. Open MarsEdit
2. Select Window -> Network Log from the menu bar.
3. Clear the log.
4. Try to send the post with a left angle bracket in it.
5. Copy the network log contents and paste here or in an email to me.

It will show me exactly what MarsEdit is sending to the server. You might want to use a really simple test post to make the log as small as possible.

Daniel

Re: Losing left angle bracket on publish

Hi,

This is what I get:

Network message sent: 2008-09-26 21:56:45 +0100
URL: http://www.xxx.com/blog/nucleus/xmlrpc/server.php
Method name: metaWeblog.newPost
Network reply received: 2008-09-26 21:56:45 +0100
URL: http://www.xxx.com/blog/nucleus/xmlrpc/server.php
Method name: metaWeblog.newPost
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>metaWeblog.newPost</methodName>
    <params>
        <param>
            <value><string>1</string></value>
            </param>
        <param>
            <value><string>[username]</string></value>
            </param>
        <param>
            <value><string>[password]</string></value>
            </param>
        <param>
            <value>
            <struct>
            <member>
            <name>flNotOnHomePage</name>
            <value><boolean>0</boolean></value>
            </member>
            <member>
            <name>title</name>
            <value><string>Test post</string></value>
            </member>
            <member>
            <name>description</name>
            <value><string>This is a test post: &lt;a href="http://conference.phpnw.org.uk/phpnw08/?page_id=118">Schedule&lt;/a>.</string></value>
            </member>
            <member>
            <name>categories</name>
            <value>
            <array>
            <data>
            <value><string>General</string></value>
            </data>
            </array>
            </value>
            </member>
            </struct>
            </value>
            </param>
        <param>
            <value><boolean>1</boolean></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>772</string></value>
</param>
</params>
</methodResponse>


Network message sent: 2008-09-26 21:56:46 +0100
URL: http://www.xxx.com/blog/nucleus/xmlrpc/server.php
Method name: metaWeblog.getPost
Network reply received: 2008-09-26 21:56:46 +0100
URL: http://www.xxx.com/blog/nucleus/xmlrpc/server.php
Method name: metaWeblog.getPost
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>metaWeblog.getPost</methodName>
    <params>
        <param>
            <value><string>772</string></value>
            </param>
        <param>
            <value><string>[username]</string></value>
            </param>
        <param>
            <value><string>[password]</string></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member><name>dateCreated</name>
<value><dateTime.iso8601>20080926T21:56:45</dateTime.iso8601></value>
</member>
<member><name>userid</name>
<value><string>1</string></value>
</member>
<member><name>blogid</name>
<value><string>1</string></value>
</member>
<member><name>postid</name>
<value><string>772</string></value>
</member>
<member><name>description</name>
<value><string>This is a test post: a href="http://conference.phpnw.org.uk/phpnw08/?page_id=118"&gt;Schedule/a&gt;.</string></value>
</member>
<member><name>title</name>
<value><string>Test post</string></value>
</member>
<member><name>categories</name>
<value><array>
<data>
<value><string>General</string></value>
</data>
</array></value>
</member>
<member><name>mt_text_more</name>
<value><string/></value>
</member>
<member><name>mt_allow_comments</name>
<value><int>0</int></value>
</member>
<member><name>mt_allow_pings</name>
<value><int>1</int></value>
</member>
</struct></value>
</param>
</params>
</methodResponse>

Re: Losing left angle bracket on publish

Thanks - it looks from the log like your blog is stripping out the < ... MarsEdit is sending the left-bracket encoded properly as &lt; , and it's coming back completely missing. (It's possible that MarsEdit's logging mechanism is messing something up and not conveying an accurate representation).

As a sanity check, could you try the same thing with your WordPress blog, so we can see if the same effect is observed there?

Daniel

Re: Losing left angle bracket on publish

Hi,

This is the WordPress version:

Network message sent: 2008-09-27 08:41:08 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: metaWeblog.newPost
Network reply received: 2008-09-27 08:41:08 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: metaWeblog.newPost
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>metaWeblog.newPost</methodName>
    <params>
        <param>
            <value><string>1</string></value>
            </param>
        <param>
            <value><string>[username]</string></value>
            </param>
        <param>
            <value><string>[password]</string></value>
            </param>
        <param>
            <value>
            <struct>
            <member>
            <name>mt_allow_comments</name>
            <value><int>1</int></value>
            </member>
            <member>
            <name>mt_tags</name>
            <value><string></string></value>
            </member>
            <member>
            <name>mt_keywords</name>
            <value><string></string></value>
            </member>
            <member>
            <name>mt_convert_breaks</name>
            <value><string>0</string></value>
            </member>
            <member>
            <name>title</name>
            <value><string>Test</string></value>
            </member>
            <member>
            <name>mt_excerpt</name>
            <value><string></string></value>
            </member>
            <member>
            <name>description</name>
            <value><string>This is a test post to check &lt;a href="http://www.red-sweater.com/marsedit/">MarsEdit&lt;/a>.</string></value>
            </member>
            <member>
            <name>mt_text_more</name>
            <value><string></string></value>
            </member>
            <member>
            <name>mt_allow_pings</name>
            <value><string>0</string></value>
            </member>
            </struct>
            </value>
            </param>
        <param>
            <value><boolean>0</boolean></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <string>261</string>
      </value>
    </param>
  </params>
</methodResponse>


Network message sent: 2008-09-27 08:41:08 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: mt.setPostCategories
Network reply received: 2008-09-27 08:41:08 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: mt.setPostCategories
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>mt.setPostCategories</methodName>
    <params>
        <param>
            <value><string>261</string></value>
            </param>
        <param>
            <value><string>[username]</string></value>
            </param>
        <param>
            <value><string>[password]</string></value>
            </param>
        <param>
            <value>
            <array>
            <data>
            <value>
            <struct>
            <member>
            <name>parentId</name>
            <value><string>0</string></value>
            </member>
            <member>
            <name>htmlUrl</name>
            <value><string>http://akrabat.com/category/site/</string></value>
            </member>
            <member>
            <name>categoryName</name>
            <value><string>Site</string></value>
            </member>
            <member>
            <name>categoryId</name>
            <value><string>1</string></value>
            </member>
            <member>
            <name>rssUrl</name>
            <value><string>http://akrabat.com/category/site/feed/</string></value>
            </member>
            <member>
            <name>description</name>
            <value><string>Site</string></value>
            </member>
            <member>
            <name>isPrimary</name>
            <value><boolean>1</boolean></value>
            </member>
            </struct>
            </value>
            </data>
            </array>
            </value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <boolean>1</boolean>
      </value>
    </param>
  </params>
</methodResponse>


Network message sent: 2008-09-27 08:41:08 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: metaWeblog.editPost
Network reply received: 2008-09-27 08:41:09 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: metaWeblog.editPost
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>metaWeblog.editPost</methodName>
    <params>
        <param>
            <value><string>261</string></value>
            </param>
        <param>
            <value><string>[username]</string></value>
            </param>
        <param>
            <value><string>[password]</string></value>
            </param>
        <param>
            <value>
            <struct>
            <member>
            <name>mt_allow_comments</name>
            <value><int>1</int></value>
            </member>
            <member>
            <name>mt_tags</name>
            <value><string></string></value>
            </member>
            <member>
            <name>mt_keywords</name>
            <value><string></string></value>
            </member>
            <member>
            <name>mt_convert_breaks</name>
            <value><string>0</string></value>
            </member>
            <member>
            <name>title</name>
            <value><string>Test</string></value>
            </member>
            <member>
            <name>mt_excerpt</name>
            <value><string></string></value>
            </member>
            <member>
            <name>description</name>
            <value><string>This is a test post to check &lt;a href="http://www.red-sweater.com/marsedit/">MarsEdit&lt;/a>.</string></value>
            </member>
            <member>
            <name>mt_text_more</name>
            <value><string></string></value>
            </member>
            <member>
            <name>mt_allow_pings</name>
            <value><string>0</string></value>
            </member>
            </struct>
            </value>
            </param>
        <param>
            <value><boolean>0</boolean></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <boolean>1</boolean>
      </value>
    </param>
  </params>
</methodResponse>


Network message sent: 2008-09-27 08:41:09 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: metaWeblog.getPost
Network message sent: 2008-09-27 08:41:09 +0100
URL: http://rpc.technorati.com/rpc/ping
Method name: weblogUpdates.ping
Network message sent: 2008-09-27 08:41:09 +0100
URL: http://services.newsgator.com/ngws/xmlrpcping.aspx
Method name: weblogUpdates.ping
Network message sent: 2008-09-27 08:41:09 +0100
URL: http://rpc.weblogs.com/RPC2
Method name: weblogUpdates.ping
Network reply received: 2008-09-27 08:41:10 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: metaWeblog.getPost
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>metaWeblog.getPost</methodName>
    <params>
        <param>
            <value><string>261</string></value>
            </param>
        <param>
            <value><string>[username]</string></value>
            </param>
        <param>
            <value><string>[password]</string></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <struct>
  <member><name>dateCreated</name><value><dateTime.iso8601>20080927T07:41:08</dateTime.iso8601></value></member>
  <member><name>userid</name><value><string>1</string></value></member>
  <member><name>postid</name><value><string>261</string></value></member>
  <member><name>description</name><value><string>This is a test post to check a href="http://www.red-sweater.com/marsedit/"&gt;MarsEdit/a&gt;.</string></value></member>
  <member><name>title</name><value><string>Test</string></value></member>
  <member><name>link</name><value><string>http://akrabat.com/?p=261</string></value></member>
  <member><name>permaLink</name><value><string>http://akrabat.com/?p=261</string></value></member>
  <member><name>categories</name><value><array><data>
  <value><string>Site</string></value>
</data></array></value></member>
  <member><name>mt_excerpt</name><value><string/></value></member>
  <member><name>mt_text_more</name><value><string/></value></member>
  <member><name>mt_allow_comments</name><value><int>1</int></value></member>
  <member><name>mt_allow_pings</name><value><int>0</int></value></member>
  <member><name>mt_keywords</name><value><string/></value></member>
  <member><name>wp_slug</name><value><string/></value></member>
  <member><name>wp_password</name><value><string/></value></member>
  <member><name>wp_author_id</name><value><string>1</string></value></member>
  <member><name>wp_author_display_name</name><value><string>Rob...</string></value></member>
  <member><name>date_created_gmt</name><value><dateTime.iso8601>20080927T07:41:08</dateTime.iso8601></value></member>
  <member><name>post_status</name><value><string>draft</string></value></member>
  <member><name>custom_fields</name><value><array><data>
</data></array></value></member>
</struct>
      </value>
    </param>
  </params>
</methodResponse>


Network message sent: 2008-09-27 08:41:10 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: mt.getPostCategories
Network reply received: 2008-09-27 08:41:10 +0100
URL: http://rpc.weblogs.com/RPC2
Method name: weblogUpdates.ping
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value><string>Akra's DevNotes</string></value>
            </param>
        <param>
            <value><string>http://akrabat.com</string></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse><params><param><value><struct><member><name>message</name><value>Thanks for the ping.</value></member><member><name>legal</name><value>You agree that use of the Weblogs.com ping service is governed by the Terms of Use found at www.weblogs.com.</value></member><member><name>flerror</name><value><boolean>0</boolean></value></member></struct></value></param></params></methodResponse>


Network reply received: 2008-09-27 08:41:10 +0100
URL: http://services.newsgator.com/ngws/xmlrpcping.aspx
Method name: weblogUpdates.ping
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value><string>Akra's DevNotes</string></value>
            </param>
        <param>
            <value><string>http://akrabat.com</string></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>flerror</name>
                        <value><boolean>0</boolean></value>
                    </member>
                    <member>
                        <name>message</name>
                        <value>Thanks for the ping.</value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodResponse>


Network reply received: 2008-09-27 08:41:10 +0100
URL: http://rpc.technorati.com/rpc/ping
Method name: weblogUpdates.ping
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value><string>Akra's DevNotes</string></value>
            </param>
        <param>
            <value><string>http://akrabat.com</string></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse><params><param><value><struct><member><name>flerror</name><value><boolean>0</boolean></value></member><member><name>message</name><value><string>Thanks for the ping</string></value></member></struct></value></param></params></methodResponse>


Network reply received: 2008-09-27 08:41:10 +0100
URL: http://akrabat.com/xmlrpc.php
Method name: mt.getPostCategories
Status code: 200
Succeeded: YES
Request text:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>mt.getPostCategories</methodName>
    <params>
        <param>
            <value><string>261</string></value>
            </param>
        <param>
            <value><string>[username]</string></value>
            </param>
        <param>
            <value><string>[password]</string></value>
            </param>
        </params>
    </methodCall>

Response text:
<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <array><data>
  <value><struct>
  <member><name>categoryName</name><value><string>Site</string></value></member>
  <member><name>categoryId</name><value><string>1</string></value></member>
  <member><name>isPrimary</name><value><boolean>1</boolean></value></member>
</struct></value>
</data></array>
      </value>
    </param>
  </params>
</methodResponse>

Regards,

Rob...

Re: Losing left angle bracket on publish

Thanks, Rob. Amazing!  This seems like a far fetched cause but I notice that some of your "pings" are failing in there, and I wonder if they could be causing trouble somehow.  Can you try opening up the weblog settings in MarsEdit, and going to the "Pings" section and unchecking all the ping servers? Does that make any difference at all?

The other thing I'm wondering is, are these two blogs, the Nucleus and WordPress blogs, on separate servers or the same machine?

Daniel

Re: Losing left angle bracket on publish

Daniel Jalkut wrote:

Thanks, Rob. Amazing!  This seems like a far fetched cause but I notice that some of your "pings" are failing in there, and I wonder if they could be causing trouble somehow.  Can you try opening up the weblog settings in MarsEdit, and going to the "Pings" section and unchecking all the ping servers? Does that make any difference at all?

No difference.

The other thing I'm wondering is, are these two blogs, the Nucleus and WordPress blogs, on separate servers or the same machine?

Same machine. I'll see if I can find a spare server to set up a WP blog on to test.

What's odd is that it's only recently started happening. If I was to guess, it was after installing 10.5.5 as I was away during the week it came out and upgraded whist away. My first post on returning showed the problem.

It's very odd !

Regards,

Rob...

Edit: it's possible that there was MarsEdit update? I have to admit that I don't pay attention to when MarsEdit updates.

Last edited by akrabat (September 28, 2008 04:38:18 PM)

Re: Losing left angle bracket on publish

The latest version of MarsEdit 2.2, you can always try downloading the previous version and see if it makes any difference:

http://www.red-sweater.com/marsedit/MarsEdit2.1.4.dmg

Daniel

Re: Losing left angle bracket on publish

There seems to be a bug in Wordpress 2.6.1/2 that is screwing up xmlrpc uploads.  There is an open ticket at wordpress on this.

http://trac.wordpress.org/ticket/7771

This bug seems to be affect all software including the iphone version of Wordpress and is also a problem in Windows.  I hope they fix this soon.  Could there be a work around in MarsEdit?

Re: Losing left angle bracket on publish

Holy moley. Thanks for the link alykhan. I'm surprised I haven't seen it before, though.  I wonder if it only affects users in some circumstances. How strange.

It also doesn't explain how akrabat's Nucleus blog was having the same symptom.

Daniel

Re: Losing left angle bracket on publish

Thanks for finding that alykhan!

I tend to upgrade my blogs fairly regularly, so they are up to date. I'll keep an eye on WP for a fix. Nucleus uses the phpxmlrpc library behind the scenes, so maybe there's been some cross-pollination of solutions?

Thanks for your time and effort Daniel!

Regards,

Rob...

Re: Losing left angle bracket on publish

Update on this: there has been quite a bit of chat in the WordPress bug:

http://trac.wordpress.org/ticket/7771

Notice that they seem to be coming to the conclusion that it's an incompatibility between PHP 5 and libxml 2.7.1.

They suggest a rather geeky solution of recompiling PHP on your host server. Something that most people probably don't have the ability or know-how to do.

I guess for affected users right now the best thing to do would be to point at the WordPress bug and ask their service providers if they're aware of the bug and can do anything to help fix it.

Daniel

Re: Losing left angle bracket on publish

Clearly a nasty bug to get fixed.

I'll ask my server provider nicely, I think smile

Rob...