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.
Upgrade
Section titled “Upgrade”-
Update the CLI. v0.9 needs CLI v0.3.0 or later. Older CLIs cannot upgrade to it. Run the install script again (Installation).
-
Upgrade the site. In the site directory:
Terminal window umono upgradeumono 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.
Pages look the same
Section titled “Pages look the same”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 parameter line of global components
Section titled “The parameter line of global components”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 written for v0.8
Section titled “Content written for v0.8”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**bwere 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\nline 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
LINKor 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-langinstead ofclass="language-…". A code block without a language has no attribute (it waslanguage-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.