I've been an Emacs user for a very long time, and I try to use simple text formats as much as possible.

I started using Plone for both personal webpages and for the web site at work a while ago. While Plone has a very nice online editor (Kupu) for creating content, I prefer to edit my content in Emacs if possible.

Since Plone can parse and present pages written in ReStructured Text (reST), a simple text format that allows you to do most of the things you need to do in a web page (links, simple tables, images, etc), the two tools can be combined quite nicely, especially if you throw in WebDAV, which allows you to upload content without having to use the web form, instead using a WebDAV client such as cadaver.

Setting the Title and Content-Type of the Document

To set the title of the document, I utilize the fact that all content uploaded with WebDAV is demarshalled by the RFC822Marshaller. This means that lines on the form <keyword>:<value> at the top of the file gets parsed by Plone.

This enables me to set the title and Content-Type of the document when uploading it with cadaver to my Plone instance

For example, this document starts like this:

title: Creating and Editing Plone Content in ReStructured Text using Emacs
Content-Type: text/restructured

Setting the Content-Type explicitly in a header allows me to choose a filename that is independent of the content-type. The alternative is to give the document a filename extension that is parsed as reST, for example .rst, but that's both very ugly, very 1980's not to mention that it breaks one of the rules in Cool URIs don't change - why should you indicate to your reader that the content is written in reST - that's not future-proof, URI-wise.

Making Emacs Use its reST-mode

To make Emacs use the rst-mode, I end each file with the following lines:

.. Local Variables:
.. mode:rst
.. End:

The two dots that starts each line is markup not recognized by the reST processor, which makes it a comment according to the reST specification.

A Template

To make it easy to create new documents, I have a simple skeleton file that I copy into new files.

title:
Content-Type: text/restructured

.. Local Variables:
.. mode:rst
.. End: