An alternative to Markdown in outlines

  • I missed having expanding outlines, and I want to use the structure in interesting ways in RSS, so I decided to add a small feature to Fargo, that lets us edit outlines as they will be presented, with structure.

  • This blog post is an example of such an outline. As is the one you're reading right now.

How to

  • To give it a try, create a headline of type outline with the big + icon in the left margin.

  • In the Attribute editor (click on the Suitcase icon in the left margin) add an attribute called flMarkdown, with the value false. When you're done the atts should look like this screen shot.

  • Then add some outline material under the headline. It's important to indent a few times and add structure, or else it'll look exactly like the Markdown-style posts.

  • When you click the Eye icon to view it, it should have wedges that you can click to expand and collapse the outline structure.


  • There are a few attributes you can use to control the way outlines are rendered. They're explained below.

  • leftIndent attribute

    • If you put a leftIndent attribute, a number, on a headline, all its subs, and their subs will be indented by that number of pixels. The default is 0.
  • collapse attribute

    • If you put a collapse attribute on a headline, its subs are initially collapsed. This lets you control the presentation.
  • img attribute

    • A URL, points to an image, which is added to the headline, floating to the right.
  • url attribute

    • If present it's where you go when the image is clicked on, if there is an img attribute.

Outlines in RSS items

  • Each item now has an outline element that contains most of the structure and attributes of the outline.

  • We don't include comments.

  • We don't include two attributes: isFeedItem (they are all true, because it's in a feed) and isComment (again, all true, because comments are not included).

  • The outlines are in the new source namespace. What you'll see in the feed is <source:outline>.

RSS fixes

  • In 1.63 we added macro and glossary processing to the RSS feed builder, but the processing was done in the wrong place. The result is that unencoded XML could end up in description and title elements. This is not legal XML. In 1.64 we do it selectively, before encoding, only in title and description elements.

  • We also evaluate Emoji codes in the feed.

Fix relating to tweets

  • When we introduced the tweet type it broke the eye icon. If a document contained a tweet, it sent you to a non-existent page when you click the eye.
07/12/14; 01:08:08 PM

While I'm waiting for Facebook to approve the new version of Little Card Editor I thought I'd do a little diversion to solve what has been a thorny problem in Fargo that has prevented a lot of interesting things from happening.

The feed has no pagetable

  • When you're rendering the RSS feed for a site, there is no context for the rendering. This means that none of the preferences for the site are available to the RSS building process. And it means there's no way to use attributes to configure the RSS building process. This has held back a bunch of interesting development.


  • So how about this. The pagetable for the RSS building process is built from the global settings, plus the user's cmsPrefs.opml file (if there is one) plus the top level of the site whose feed it is. That gives us three levels of attributes, one that applies to all Fargo sites, one that applies to all the user's Fargo sites, and for the site that the RSS is from. Let's give it a try and see if it works.


  • Okay the feature is in. Now let's see how it works.

  • Here are some glossary items from my cmsPrefs.opml: Happy Friends, Emoji, Little Card Editor.

  • Here are some glossary items from the global file: A picture of a slice of cheese cake.

  • And one from the Fargo blog outline: cmsPrefs.opml

  • If the new feature worked, when we look in the RSS file, they should all be evaluated.

  • One more thing, let's check a pagetable macro: Dave Winer.

  • Here's what this text looked like in Fargo.

  • And here's what it looks like in the feed.

07/07/14; 04:56:56 PM

There's one major feature in this release, the ability to render tweets.

A tweet is a headline whose type is tweet. They can appear in any kind of page, of any type.

They will be rendered correctly in pages of the following types: outline, html, stream, presentation, markdown, bloghome.

This is the Fargo side of the connection with Happy Friends.

There is a blog post on the Happy Friends site that explains the hookup from that side.

How to use a Happy Friends outline in Fargo


  1. Get the outline from Happy Friends.

  2. Choose Open by URL in the File menu. Enter the outline from step 1.

  3. That gets you an outline with tweets in Fargo.

  4. Copy and paste those into your outlines in Fargo, and render as normal.

The tweets should show up in your pages as they do in mine.

For a more detailed narrative, with an example, see this post on yesterday's Scripting News.

06/27/14; 10:28:21 AM

Fixed a problem where the CMS would think it was seeing emojis in the part of the stream template responsible for phone and tablet-size screens.

Thanks to Jason Cobb for spotting the problem.

You should rebuild any pages that rely on the stream template.

Be sure to reload the Fargo app before doing so. :cop:

06/05/14; 05:45:21 PM

A new release of Fargo today with one small feature, Emojis.

A good friend showed them to me, a few weeks ago on a trip to San Francisco. I was immediately won over. Charmed by them. It's a new fun language.

Colorful and cute and somewhat irreverent.


The best part is that there's a syntax for Emojis in text-based apps like Fargo.

For example, :baseball: gets you the Emoji for :baseball:

There's a list of all the codes on the Emoji Cheat Sheet.

As you can see this syntax is already supported by lots of famous apps including Campfire and GitHub. Add Fargo to the list.

Turning it off and on

The new Emoji feature is on by default, you can turn it off with a # attribute:

#flEmojify "false"

Thanks to

We're using the Emojify toolkit. It went in real easy. Thank you.

06/04/14; 08:40:18 AM

I have commands in the Links menu on Scripting News that turn images on and off.

You may want to add these commands to the menu of your website, so users can have the option to have images on. It's also useful for debugging.

Here's an OPML file with the two commands. Open the file in Fargo, copy the commands and paste them into the menu you want to add them to.

05/20/14; 02:12:54 PM

Stream 2

With this release there's a second version of the stream template, and the CMS generates a slightly different structure for streams. The JavaScript code in the stream template has been changed accordingly.

A quieter stream

I did an experiment over the weekend, adding a command to Scripting News that turned off background images. I tried it, and immediately wanted to keep them off. The text is much easier to read. And that matters a lot. I wanted to get some experience with images in the background, and I did get that experience. It'll show up again in another context. And you can still have the images now, if you want them. So that's good. Nothing went away, the defaults changed.


Scripting News is the demo.

If you want the old version

Add #streamVersion "1" in your cmsPrefs.opml file. You should get the same behavior as before v1.59.

If you want the new version, you shouldn't have to do a thing.

A list of changes

Here's a list of technical changes that were made. If you don't care you can skip this part.

We don't generate the .divStreamTopSpacer element.

Copied fonts into Faster loading, not relying on Google servers, avoid possible breakage issue.

Section heads are bold, Ubuntu.

Increase density of foreground text. It's opacity goes from .9 to .98. Also background color changes from white to whitesmoke. Border color goes a little darker to gainsboro.

divStreamDay needs styles for background image

  • added these styles:

    • -webkit-background-size: cover;

    • -moz-background-size: cover;

    • -o-background-size: cover;

    • background-size: cover;

    • background-position: center;

    • background-repeat: no-repeat;

divStreamDayImage goes away

  • in first version, if there was a backgroundImage att on the day, we'd generate a divStreamDayImage element with the background image as its background.

  • in the new version, we don't do this. the backgroundImage data is on the day div, and we can add the image at render-time

05/20/14; 12:20:24 PM

One small fix in this release

There's just one very small change in this release, that may fix a problem people are having with dates in noteblog-style blogs. I don't have a set of steps to create the problem on my system, that's why I'm not sure if this is the fix or not, but I did find a problem.

Use the big gray plus icon to create posts

One thing that was clear from reviewing the CMS code, you won't get good results with stream types if you make the calendar entries by hand.

You should use the big gray plus icon at the top of the icon bar at the left of the window to create new blog entries. It automatically sets the attributes up the way the CMS is expecting them.

If you don't use the plus to create blog entries, you may see problems with dates. This may have been responsible for some of the problems we've been seeing.

05/15/14; 05:23:47 PM

The last release of Little Outliner was in April 2013. After so much time, it had become dated, in need of a refresh. That's the point of this release, version 1.40.


Here's a brief explanation for newbies.


  1. The Outliner menu above the outline display has been replaced with the menubar we use in Fargo.

  2. In addition to the Outliner menu, there's now a Reorg menu and a Docs menu.

  3. The Arrow Pad from Fargo has been added. The command to activate it is in the Reorg menu.

  4. The clock was removed.

  5. The explanatory text at the bottom of the page was removed, and replaced with a What is this? link that takes you to a full page description of Little Outliner.

  6. The copyright notice was updated.


Here's a screen shot of the previous version, and the updated screen shot.

The previous version of Little Outliner has been archived here.

The last build of Little Outliner before this release was on 4/16/13 at 1:56:03 PM.

05/13/14; 11:01:11 AM

Yes, Fargo was on NPR this morning, in a story about a new site called Glass that's edited, and presented, as a Fargo outline.

I've linked to the new site and the NPR report on today's Scripting News.

It's very exciting. Lots of new users today, and I'm hearing from all kinds of old friends who didn't know about Fargo.

The people at Quartz who are doing this site are incredible, innovators, brilliant, and hard-working. We had a lot of fun with this project but I didn't really have to do anything but answer questions, Fargo really works.

05/12/14; 09:25:07 AM

Last built: Mon, Jul 14, 2014 at 8:01 AM

By Dave Winer, Monday, July 14, 2014 at 8:01 AM.