Our aim here is to define a new Polyglot Language that is derived partly from Lexon and partly from Hypertalk with a focus on the workflows and social data structures and practices of wiki.
get page "Test" of wiki "livecode.wiki" ghost the first paragraph of it
# Stack and Wiki's In order to translate the line:
get page "Test" of wiki "livecode.wiki"
We need to transform it into a Livecode function call:
get pageArray_Fetch ("Test", "livecode.wiki")
I've written a funtion to locate phrases like this in code-items: - wikiScript_Match() - wikiScript_PageTagOffsets
These can be easily extended with different regular expressions. In this way we should be able to build upon the logic and english syntax of Livecode scripting to create a simepl and legible constrained language for wiki.
# Stack and card metaphors We imagine a stack representing a wiki, and a card representing and wiki-page. Wiki-pages are represented by Page Title (pTitle) and Wiki Domain (wDomain), and functions return and manipulate Page Arrays (pArray) by default.
# Security
All operations use code that reads page-json and outputs page-json which is displayed as a ghost-page. It is up to the author if they wish to fork - that is write this page-json to their own web site - the code never does this itself.
Secondly we use frames and wasm based sandboxing to ensure that the full power of the code compiled to wasm (eg the Livecode engine) is islotated from other environments running on your computer.
> **Warning:** these security recommendations are currently being explored and nothing here is (yet) fixed or certain. We write about it here before we build.
Finally we use public key cryptography and sign any code that we run so that the author cna decide whose code they trust, and put in place their own robust security policy preferences.