Skip to content

v0.8 to v0.9

Umono v0.9 brings themes and updates Compono, the language of content, from v0.4.2 to v0.7.1. Most v0.8 content renders as before. This page lists what to do and what changes.

  1. Update the CLI. v0.9 needs CLI v0.3.0 or later. Older CLIs cannot upgrade to it. Run the install script again (Installation).

  2. Upgrade the site. In the site directory:

    Terminal window
    umono upgrade
    umono restart

On the first start, Umono updates the database by itself:

  • Global components that start with a parameter line get the new form of it (below).
  • The 404 page becomes a system page. It is still edited under Settings → 404 Page, and like every page it can now be bound to a layout.
  • Every published page is rendered once, and the errors are listed under System → Errors with the place of each one.

A page without a layout is rendered with Umono’s default look, which is the look of v0.8. Nothing changes until you install a theme, activate it and bind pages to its layouts (Your first site).

The parameters of a global component are now written on a first line that starts with ~, like those of a local component:

~ title = "" content = NO_MATTER
# {{ title }}
{{ content }}

In v0.8 the line had no ~. The first start adds it to every existing global component, so nothing breaks. Write new global components in the new form: a first line without ~ is now content.

Content that now fails is listed in the admin panel on the first start, with the place of each error. The changes below produce no error, but change what a page shows or the HTML it outputs.

Lines that now start a block. Compono has no escape, so these lines can no longer be written as plain text:

  • - starts a list, > a quote, --- a horizontal rule and | a table row. A - line right after a paragraph line ends the paragraph. - - - is a list item, not a rule.
  • A line starting with // is a comment and is left out of the page.
  • A line of four or more backticks opens a code block.
  • A lone # is plain text, not an empty heading.

Emphasis.

  • One-character emphasis is recognized: *a*, *a*. and **a**b were plain text. ***x*** is plain text.
  • Several emphases in one paragraph render correctly. v0.8 dropped the text between them: *a* and *b* rendered as ab.
  • Emphasis inside link text is recognized: [*a*](/x).
  • Emphasis, inline code and link text no longer span lines. Inline code is recognized before links.

Whitespace.

  • A line that holds only spaces, and a blank line with \r\n line endings, now start a new paragraph instead of a line break.
  • A tab inside a line is kept. Spaces at the start and the end of a line are removed.
  • Parameter values are no longer trimmed: " x " is placed with its spaces.

Empty elements. A heading, paragraph, list item, emphasis or code block that resolves to nothing is not output.

Calls that now render.

  • Strings with a doubled quote, "a ""b"" c", and argument binding, {{ A content = B(t = "x") }}, were printed as plain text.
  • An inline call of a component whose body is a single LINK or inline call, and some calls the old loop detection rejected by mistake, rendered as errors.

HTML output. These affect custom CSS:

  • A code block carries its language as data-lang instead of class="language-…". A code block without a language has no attribute (it was language-plaintext).
  • Inline code no longer has style="white-space: pre".
  • An image without variants is wrapped in <picture>, like every image.

Errors. Errors are no longer shown to visitors. The part of the page an error affects is left out, and the error is listed in the admin panel.