caml-spec

0.0.1 • Public • Published

caml-spec

A WikiBonsai Project NPM package

CAML attrs are meant to be compatible with wikiattrs.

Single

All of the following examples should generate the same html:

:attrtype::a-string

Some more text.
Some more text.

:attrtype::a-string

(Optional colon prefixes)

attrtype::a-string

Some more text.

Resulting HTML:

<aside class="attrbox">
  <span class="attrbox-title">Attributes</span>
    <dl>
      <dt>attrtype</dt>
        <dd>a-string</dd>
    </dl>
</aside>
<p>Some more text.</p>

List

Lists are also supported. All of the following examples should generate the same html:

Comma-separated lists.

:attrtype::string-a, string-b, string-c

Markdown-style bullet lists.

:attrtype::
- string-a
- string-b
- string-c
:attrtype::
+ string-a
+ string-b
+ string-c
:attrtype::
* string-a
* string-b
* string-c
:attrtype::
- string-a
+ string-b
* string-c

Optional colon prefix.

attrtype::
- string-a
- string-b
- string-c

Flexible whitespace.

: attrtype ::
              - string-a
              - string-b
              - string-c

Resulting HTML:

<aside class="attrbox">
  <span class="attrbox-title">Attributes</span>
    <dl>
      <dt>attrtype</dt>
        <dd>string-a</dd>
        <dd>string-b</dd>
        <dd>string-c</dd>
        <!-- etc. -->
    </dl>
</aside>

Lists also support flexible whitespacing: Attrtype text may be prefixed (between first colon : and attrtype text) or suffixed (between attrtype text and double colon ::) by one space. List item prefix whitespace (space before the bullet -*+) can have any number of spaces.

The result allows for pretty-printed wikiattrs:

: type             :: string-a
: med-type         :: 
                      - string-b
                      - string-c
: longer-type-text :: 
                      - string-d
                      - string-e
                      - string-f

Types

CAML supports different value types, similar to YAML:

: null-type    :: 
                 - null
                 - NULL
: boolean-type :: 
                 - true
                 - True
: int-type     :: 
                 - -12                          // negative
                 - 0                            // zero
                 - 12                           // positive
                 - 0x4                          // hexadecimal
                 - 0o4                          // octal
: float-type   :: 
                 - -4.20                        // negative
                 - 0                            // zero
                 - +4.20                        // positive
                 - 2.3e4                        // expo
                 - .inf                         // infinity
                 - .nan                         // not a number
: string-type  :: 
                 - string-no-whitespace
                 - string with whitespace
                 - 'string with single quotes'
                 - "string with double quotes"
: time-type    :: 
                 - 2001-12-15T02:59:43.1Z       // canonical
                 - 2001-12-14t21:59:43.10-05:00 // iso8601
                 - 2001-12-14 21:59:43.10 -5    // spaced
                 - 2002-12-14                   // date

Package Sidebar

Install

npm i caml-spec

Weekly Downloads

3

Version

0.0.1

License

GPL-3.0

Unpacked Size

687 kB

Total Files

13

Last publish

Collaborators

  • manunamz