(' (def title {0}) (def list-link (li (link {0} {1}))) (def section (' (anc {0})(h4 (link #top #) {1} (hr)))) (def unbold {0}) (def button ) (def select ) (def opt ) (title Lispmark Overview) (' (anc top) (h2 Lispmark overview/demo) (' (link #briefing briefing) (sym lambda) (link #syntax syntax) (sym lambda) (link #use use) (sym lambda) (link #example examples)) (section briefing) (p This is a basic overview of a LISP-flavored markup language, uncopyrighted.) (p The default library contains many HTML tags and useful constructs, and other libraries give examples how a different local could use the software.) (p Lispmark supports user-definable macros. Its special characters are (br) (code (/ / the unescape with parens tool)), the (br) (code (/ ' escape without parens tool)), and its special macros are (br) (code (/ def new-macro {0})) and (br) (code (/ , (/ do-thing {0}) (/ ' item one) (/ ' item two) (/ ' item three))).) (p The (b def) macro is used to define new templates, where the argument they take is either a Lispmark expression or HTML, using at least one formatting field such as {0} and a maximum of two ({0}, {1}).) (p The (b ,) comma macro is used to map a list of arguments to a template. At this point, only one wildcard may be used with the template. Individual items may be delimited (/ ' using the unescape without parens) command.) (section syntax) (p Lispmark syntax is as follows: (tt (/ cmd arg1 arg2))) (p Commands are placed at the beginning of a (/ parens wrapped list), followed by one or more arguments. For the sake of simplicity, some commands take no arguments, while others take one, very few take two, and only one takes many.) (p Because this language is meant to replace HTML, one who is familiar with HTML can easily pick it up. Look at these primitive functions which are equivelant to their HTML counterparts:) (ul (li (/ br)) (li (/ hr)) (li (/ p)) (li (/ b bolded text)) (li (/ sub subscripted text)) (li (/ h2 a second level heading)) ) (p Many old friends are tagging along. But there's some new ones along for the ride. Look at these:) (ul (li (/ anc anchor) - creates a new HTML anchor) (li (/ sp spoiler) - creates (sp spoilered text)) (li (/ link hyperlink title) - creates a named link, eg (link //google.com Google)) (li (/ img source caption) - embeds an image from the source) ) (p These are much more user friendly than their markdown equivelants:) (ul (li (code [text](the link))) (li (code ![caption](the img's url))) ) (section use) (p This section concerns using Lispmark. All of them include grabbing the (code parse.py) file. (code import parse) and then (code parse.eval_input(\ "(\ your input)")) is used in (b Python3).) (p Parse can be renamed however you want, and the entries in (code arg1) and (code arg2) dicts, as well as in the (code entity) array, can be modified freely.) (p We will also include a demo page that will allow people with our repo downloaded to view loaded entities & commands, and a command line tool to convert .lm inputs to .html outputs.) ) (section example examples) (p Check this out) (ul (, (li (b {0})) (' this is a list of) (' bolded text) (unbold unbolded text) (' wow, magic))) (code (/ def unbold </b>{0}<b>)(br) (/ ul (/ , (/ li (/ b {0}))(br) (sym emsp) (/ ' this is a list of)(br) (sym emsp) (/ ' bolded text)(br) (sym emsp) (/ unbold unbolded text)(br) (sym emsp) (/ ' wow, magic)))) (hr) (p Also, buttons: (button Save) (p) (code (/ def button <input type='button' name='{0}' value='{1}'>) (br) (/ button Save))) (hr) (p Also, lists: (select (, (opt {0}) (' test) (' abc) (' 123) ))) (p) (code (/ def select <select>{0}</select>) (br) (/ def opt <option value="{0}">{0}<option>)(br) (br (/ select (/ , (/ opt {0})(br) (sym emsp) (/ ' test) (br) (sym emsp) (/ ' abc)(br) (sym emsp) (/ ' 123) )))) (hr This document was composed entirely in LispMark. (p) Hopefully you have access to the source.) )