IBM asked for our input for the upcoming Domino 10. Here is our response.
The context of these suggestions is Notes Rich-Text in document, forms and pages. XPages are not considered in this text.
It is good web development practice to separate the concerns of the frontend code:
- HTML - for text content, semantics and document structure.
- CSS - for layout and look & feel.
- Javascript - for in-page actions, automation and other behavior.
The default doctype should be changed to HTML5's <!DOCTYPE html>
, but still override-able in $$HTMLFrontMatter
.
Clean up all invalid HTML
We need to be able to produce valid HTML5 with Domino Forms, Views, Pages and so on. Please make valid HTML a success criteria!
Indented RichText is rendered as a ul
tag, but without any li
tags inside, which is invalid. It would make more sense to mark it up with blockquote
tags.
This bug also exist inside nested lists, if the list items have a too big left margin.
Remove the language
and type
attributes, from the script
tag generated for form, subform and page JS headers. They are no longer required.
Semantic markup
Given that CSS is responsible for the layout and look & feel, Domino must stop rendering HTML with presentational markup.
Drop the text
, bgcolor
, link
, alink
and vlink
attributes on the body
tag.
I never want to see another font
tag! Don't just replace them with style
attributes.
Drop the type
attribute on ul
and ol
tag, rendered from Notes Rich-text.
Mark up buttons as button
tags. No more <input type="submit">
nor <input type="button">
. This makes styling easier and makes semantic sense.
Remove table attributes: border="0" cellspacing="0" cellpadding="0"
, it is up to the application developer to make the CSS.
Leave empty table cells empty. No more <img width="1" height="1" src="/icons/ecblank.gif" border="0" alt="">
.
The hr
tag should not longer generate width
, size
and align
attributes. A simple <hr>
will do.
Regain control of the styling of the content
It must be possible to set id
and class
attributes on tags generated by Domino, like ul
, ol
and li
tags.
The ability to make headings, not just big bold colored text, is completely missing in Notes Richtext. In HTML h1-h6
has semantic meaning, and is easily styled with CSS. Again with the option to add id
and class
attributes.
If you feel a style
attribute should be auto-generated, you are probably on the wrong track.
Support for custom JSON
When rendering our own JSON formats, we treat the Notes view as HTML and set square brackets on the view template. Since Domino does not support custom JSON from views, we are left with a comma too much at the end of the last row. To solve this we add a null
value on the view template. Could Domino please remove the last comma, when the view template has the content-type: application/json
!
Add the ability to make closing semantics on categorized columns. The formula in a categorized column could be: "{\"category\" : \"" + category_notes_field + "\", \"elements\" : ["
, but after the last document in the category we need a place to put "],"
. I imagine a formula field: "Category End" property under "Column Value". That would also be useful for custom XML.
How about introducing @JSONEncode(text)
, so we can get rid of code like:
_from := "\\":"\"":"/":" ":@Newline;
_to := "\\\\":"\\\"":"\\/":"\\t":"\\n";
@ReplaceSubstring(text; _from; _to)
And while we're at it, how about @HTMLEncode(text)
.
POST'ing JSON to a LotusScript agent, does not support UTF-8. International characters are destroyed. Even if an explicit HTTP request header is set: Content-Type: application/json; charset=utf-8
.
HTTP Client in LotusScript
When integrating with other services, we often need to make HTTPS calls from LotusScript. Previously we used CreateObject("Msxml2.ServerXMLHTTP.3.0")
, but now when we are migrating to Linux servers, that is no longer an option. What we need is a HTTP Client in LotusScript, with TLS support, supported on all server platforms.
0 Comments