Help:Bop entries
bop is an extreme-minimalist content management system, similar to the concept of a card box. It consists of a particular file format, most typically in the form of text files structured according to bop syntax, and optionally, a program which can parse this syntax. With the exception of bop-related MediaWiki templates, all programs for parsing bop files are currently unmaintained, but it is possible this will change in the future.
The name bop derives from the BOP clade of grasses, containing families Bambusa, Oryza, and Poa. In the bop-recode project (the most recent bop-parsing program), these three groups of grasses serve as names for the Lisp module's three main components.
bop syntax[edit]
bop files are designed with a similar but not identical ethos to gemini webpages. Each text file contains a line-oriented footer below an arbitrary body, such that the parser can assume that either two empty lines or a series of hard-rule characters separate the body from the metadata section. Whether the body of the file will be parsed is a matter for the parser to decide. Each line in the metadata section is always parsed into a metadata statement, but a parser may decide to treat the body purely as a preformatted text file.
Programmability[edit]
bop's initial concept allows for both metadata types and body formatting syntax to be programmable through either additional Lisp modules supplied to extend the format or through user-supplied data structures. In practice, no existing parser has successfully implemented this feature, leading most bop files and parsers currently in existence to focus on a core prescriptive set of metadata lines and body formatting patterns which are obeyed with relative consistency yet never officially standardized. On occasion, some bop files may contain experimental body patterns or experimental metadata lines, although for the benefit of real-world parsers it is typical to leave said metadata lines commented out.
in bop's initial concept, arbitrary body formatting patterns were to be defined using particular types of metadata lines, which would link these patterns to some particular pre-defined visual presentation in order for each to be parsed and rendered into any supported format such as RTF, HTML, or TeX. In theory, this means the precise details of any particular bop file's syntax can be almost entirely up to the entry author; an entry could opt to use rules identical to Markdown, identical to HTML tags, or purely according to the author's own arbitrary formatting scheme. In practice, most bop files in existence are likely to use a formatting syntax loosely similar to Markdown but with its linking ability replaced with footnotes pointing to links in the metadata section.
As far as displaying bop files in MediaWiki, the notion of programmability can be partially simulated with specific wiki templates each used to define the appearance of a metadata line — here the "programming" or "extension" occurs inside each new template.
The prospect of programming body formatting is more difficult, although possible. MediaWiki supports parser functions, enabling a particular block of bop text with a particular known set of formatting to be parsed through a limited parser implemented inside MediaWiki.
bop templates[edit]
- Template:BopAlias - show title of bop entry
- Template:BopAliasE - show title of bop entry escaped for filename/URL
- Template:BopFooter - common set of title and date lines seen in many bop files
- Template:BopFooter/time - to be used for rendering times a bit more legibly once parser functions are installed
- Template:BopFooter/style - to be used for styling bop entries when page CSS is installed
- fwd (
=>
) - generic "sideways" link used to link to any other entry - rev (
>>
) - link semantically implying resource is a later revision or rewrite - ver (
<<
) - link semantically implying resource is an earlier note, scrap, or revision which was used to create the current entry- (This line has been perpetually in "todo" status in previous bop parsers, such that it is often rendered "
; <<
")
- (This line has been perpetually in "todo" status in previous bop parsers, such that it is often rendered "
- Template:BopCSS1 - stylesheet for all bop entries currently on this wiki