ShofarMarkup is the simple language used to for page layout, generating HTML, or direct screen rendering. It is specifically designed using a minimalist approach. There are very few things to learn, very little software to make it work, and a very small footprint for security issues.
ShofarMarkup is designed primarily for static displaying of data. Mechanics allow for partial or full page updates for dynamic data. The goal is to communicate rather than entertain.
Positioning is done with a simple Table/Row/Cell structure that can be nested as required. Text within a cell can be a single line (Jot) or multi-line using Paragraphs.
ShofarVerbs in ShofarMarkup
Each ShofarMarkup element can contain a Compile and Show attribute. These are used to dynamically generate additional markup, text, images, etc. For example Compile is used for verbs that might enumerate a list and Show would display a value.
ShofarMarkup in a ShofarFile
Within a ShofarFile ShofarMarkup will appear in two lists, the Markup_List and the Content_List. They are identical in format. The difference is that Markup in the Markup_List will honor the Compile and Show attributes, while Content in the Content_List will not.
Markup is then used to from privileged sources to generate pages, while Content can be come from arbitrary untrusted sources. For example when used for email the message body is Content only.
Markup Location Resolution
When a Markup item is to be found each File in the Layers is searched starting from the Extension.
If the Markup’s Key starts with a ‘@’ then only “Program.Shofar/Markup” is searched. The characters between the ‘@’ and the first ‘.’ specify the File in “Program.Shofar/Markup”. For example "@Home.Menu(160x90)" is found in “Program.Shofar/Markup,Home” and "@Body,Service.Standard" is found in " Program.Shofar/Markup,Body,Service".
If the Markup’s Key starts with a ‘=’ then all “/Markup,(file)” Files are searched for each site in the Layers starting with the Target Site. The characters between the ‘=’ and the first ‘.’ specify the File in “/Markup”.