|
|
Subscribe / Log in / New account

Development

Outlining with Concord

By Nathan Willis
October 9, 2013

Organizing one's thoughts can be the most difficult part of writing, whether one is writing a blog post, a conference talk, or a technical document. Although everyone has a favorite tool, there is a dedicated community of people who are fans of the outliner: a plain-text editor that allows the user to create document structure with tab-indentation or similar minimalist markup.

Despite the lightweight markup and the simplicity of the editing interface, however, outliners can be used to generate and rearrange complex, multi-level documents or even small databases. Emacs Org mode, for example, is a much-loved outliner that supports a variety of uses: creating spreadsheets, calendar management with to-do lists, and much more. But it has been a while since there was a full-featured free software outliner for use on the web, so the recent release of Fargo, and the Concord component that powers it, has attracted considerable attention.

Dave Winer announced Concord on September 16, a few months after releasing Fargo as a free web outliner application that uses Dropbox as its storage back-end. Concord is written in JavaScript as a jQuery plugin that can be easily incorporated into other applications. In the initial announcement, Winer cited a number of popular web applications in which it could be useful, such as Evernote, WordPress, and GitHub. The license is GPLv3, a fact that prompted some griping in the comments on the announcement,from web developers who claim they would like to incorporate the module into products with a non-copyleft license.

For a while, Winer's company Small Picture ran a web content-management system (CMS) service called Trex running on top of Fargo, as a demonstration of Concord's integration capabilities, although the plug was pulled on October 7. Nevertheless, there are outliner fans who have written about the potential benefits of Concord integration for other projects; for example, Matt Jadud announced his plan to use the component in a web-based IDE.

[The Concord editor in Fargo]

Testing Concord or Fargo out for a few minutes might leave one wondering what all the fuss is about—after all, one can write text and indent it at will using the Tab key, and there are a few text mark-up options (bold, italics, and strikethrough), but little else. The real benefits of the tool, however, only reveal themselves when working on a real-world project. Behind the simplistic user interface, Concord saves documents as Outline Processor Markup Language (OPML), an XML format that is specifically designed to support collapsing and expanding sections, nested outline structure, and rearrangement of file contents. Many people may be familiar with OPML solely as the format used to save RSS feed subscriptions, but it does much more, and like most XML, can be transformed into other formats.

Where an outliner interface proves its mettle is in bringing structure to a document that is formed and re-formed as it is being written. A heavyweight editor (in which, say, every element needs to be explicitly assigned a position and hierarchy level at the outset) gets in the way, whereas tab-based markup lets the author shift items around essentially at full-typing speed.

As a web editor, Concord offers several niceties above and beyond the simple tab-based outline. Each level of an outline has a "wedge" (the familiar triangle icon) that expands or collapses sub-levels, and there is a "structure mode" that allows the user to move and rearrange existing outline levels (including promoting and demoting items to different levels) with the keyboard arrow keys.

Each item in the Concord outline also has hidden metadata attributes—such as creator and last-modification time—that can be shown and edited. By default, the editor renders outline contents as HTML (that is, actually displaying bold-tagged text in bold), but it can be switched into markup mode with a keystroke, allowing one to edit the tags directly. The editor also supports inserting JavaScript snippets and commenting out portions of the outline.

Winer, of course, is arguably the biggest fan of outliners one is likely to encounter on the web today. Fargo is reminiscent in many ways of his earlier web outliner project, the now-dormant Frontier. Whether Concord makes a more lasting impression than Frontier remains to be seen. The grumbling over the GPLv3 license suggests that there are a least a few potential users for the tool (squabbling over the merits of copyleft aside).

The biggest beneficiaries of a tool like Concord might be all of the web applications that currently implement their own editor component specifically for a specialized markup language. Consider Wikipedia, for example: Wiki markup is complex and covers hundreds of scenarios that the average article does not require. That makes it more difficult to work with when making a small change or insertion to an article. But tabs and arrow keys? Those are difficult to misunderstand and forget.

Comments (2 posted)

Brief items

Quote of the week

Similarly, some open source coming out of universities and companies simply isn't open source enough as there is a fair amount of side dealing going around on around patents. I'm tempted to say that if it isn't a patent granting license, you should be suspicious, but that's probably a bit extreme a position to take at this time.
Chris DiBona (hat tip to Mike Linksvayer)

Comments (none posted)

GNU Make 4.0 released

GNU Make 4.0 is out. New features include the integration of the Guile extension language, better tracing, a new shell assignment operator (which is "!="), and more.

Full Story (comments: 87)

tar-1.27 released

Version 1.27 of the archiving utility GNU tar has been released. Most notably, this update adds support for storing and extracting POSIX ACLs, extended attributes, and SELinux contexts, in addition to several other new configuration options and switches.

Full Story (comments: 4)

PyQt5 v5.1 Released

PyQt5, the Python bindings for Qt5, has been updated to version 5.1. This release brings full compatibility with Digia's Qt 5.1, plus support for other useful modules like QtSensors and QtSerialPort, and bindings for OpenGL 2.0 and EGL 2.

Full Story (comments: none)

Newsletters and articles

Development newsletters from the past week

Comments (none posted)

Firefox Developer Tools and Firebug

Here's a Mozilla blog entry on current developments with the Firefox developer tools. "The tools have improved a lot lately: black-boxing lets you treat sources as system libraries that won’t distract your debugging flow. Source maps let you debug source generated by transpilers or minimizers. The inspector has paint flashing, a new font panel, and a greatly improved style inspector with tab completion and pseudo-elements. The network monitor helps you debug your network activity."

Comments (none posted)

Garrett: The state of XMir

Matthew Garrett has posted an assessment of where XMir development stands. "This is an unfortunate situation to be in. Ubuntu Desktop was told that they were switching to XMir, but Mir development seems to be driven primarily by the needs of Ubuntu Phone. XMir has to do things that no other Mir client will ever cope with, and unless Mir development takes that into account it's inevitably going to suffer breakage like this. Canonical management needs to resolve this if there's any hope of ever shipping XMir as the default desktop environment."

Comments (5 posted)

Page editor: Nathan Willis
Next page: Announcements>>


Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds