Contribute your ideas and discuss the approach of Content as Code
These goals articulate our user-centric focus applied to the author/editor/translator/publisher experiences.
The ability for authors to focus on their content and not have to think about the technology is a design goal.
The tools should disappear (literally with distraction free modes, or when using tools that are so familiar to us that we don’t pay attention to them anymore - like the keyboard, or… Word).
Being able to let authors use the tools that allow them to be most productive and happy is a key goal of Content as Code. Allowing a diversity of tools to be used in this workflow is a design goal, but promoting and prioritising tools that are open source, modular and well designed is part of the implementation approach.
Read more about the technology approach for content authoring
Integrating translation and localisation deeply in the workflow and without adding complexity is a design goal.
Read more about the technology approach for translation
Allowing others to spot problems, develop new content or adapt content for new purposes is a design goal.
This should include the collaborative creation, adaptation and translation of content in sprints, remotely or with other innovative approaches.
Maintain editorial coherence by making it easy to track, review and comment on changes coming from a range of sources and improving the editor’s experience is a design goal.
Allowing the discovery, tracking and updating of content used from other sources is a design goal.
Multimedia content, internal links or external links should be easy to navigate and include in content.
Publishing to the web, books, mobile apps or other channels is a design goal.
There is a problem with content management in a Post-CMS context. For projects which have complex editorial workflows, adopting more lightweight approaches such as static site generation is still difficult, can create friction and are lacking in functionality.
Software engineering as a discipline, has been dealing with complex contribution processes requiring to create, move, merge, transform large quantities of code. This has led to the creation of tool to be able to trace the history of changes, allow very large team contributing to similar code bases and manage, reuse vast amounts of other project’s code, track changes and organise review by peers, manage documentation and its obsolecence, translations of manuals and software, test problems as early as possible in order to rapidly and frequently build software artifacts that can be deployed across servers, computer and mobile devices.
Applying these concepts and lessons to editorial workflows is not trivial and requires a strong focus on author experience (as well as editor and translator experience).
That we’ve been seduced and then disappointed by CMSes which add too much complexity and therefore create problems of maintainability of content.
That’s a question of taste and we’ll focus on Markdown first but we’ll implement other syntaxes (and focus on software libraries that can switch syntaxes) and will accept contributions that go in this direction.
Having a format which is has a track record for data storage seems like a natural direction to go to, however the popularity of Markdown and of formats like YAML (both used as the data format in this format, like in Jekyll and other static website generators) is based on the fact that the representation of the content/data is elegant mainly because it removes clutter/noise and it is more resilient to syntax errors (which some could see as allowing more data corruptions).
With this approach the thinking is that data corruptions will be caught by a quick feedback loop to the author, or simply by hiding structured data.
That’s not a question but ok, we understand why you’re excited or worried about this. It’s true that Markdown has a history of causing pains because of loose specifications but that’s pretty much settled with the CommonMark standard with a wide range of compliant implementations. Also what we’re proposing is to introduce block-level metadata or middlematter
. There is a tradition of deriving markdown and adding flavors. This has led to a ecosystem of sometimes competing approaches to do similar things (syntax for tables is a good example of this). We’ll make sure to follow this tradition and generate a strong specification for our flavor. Given that the existing practice is already to mix Markdown and YAML, Markdown probably only needs to be extended very minimally in able to allow YAML to be included inline, in a way that is elegant and minimises clutter.
This integration should result in 2 well defined approaches to be used as a storage format and provide equivalence to other better known formats.
Yes! There are existing plugins to manage Markdown in Word and this fits our goals to be interoperable and extensible.
Yes! We love SVG and projects like MermaidJS which are promising ways to develop graphical content which can be reused, remixed and composed.