0.6.1 • Published 4 months ago

loreml v0.6.1

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
4 months ago

LoreML

LoreML is a markup language for generating random text.

Installation

npm i loreml

Usage

import LoreML from 'loreml'

const loreml = new LoreML()

const text = await loreml.parse(`
  <Root seed="123" locale="en">
      <Document>
          <Text repeat="3">
              <Date when="recent" format="yyyy-MM-dd"/>
              <Paragraph />
          </Text>
      </Document>
  </Root>
`)

LoreML Syntax

<Root>

The root element of the document.

  • Attributes
    • seed - A seed value for the random number generator. If not provided, a random seed will be generated.
    • locale - The locale of the generated text. Possible values are:
      • en - English (default)
      • es - Spanish
      • fr - French
      • de - German
      • it - Italian
  • Children
    • Document
    • Template
    • Person
    • Location

<Template>

A template is a named block of text that can be reused in the document.

  • Attributes
    • name - (required) The name of the template.
  • Children

    • Text
  • Example

    <Root>
        <Template name="greeting">
            <Text>
                Greetings {nameVar}
            </Text>
        </Template>
        <Document>
            <Text>
                <UseTemplate ref="greeting" nameVar="Lorem"/>
            </Text>
        </Document>
    </Root>

<Person />

Generates a random person.

  • Attributes

    • ref - (required) A reference to the person for later use.
    • sex - The sex of the person. If not specified, a random one will be picked. Possible values are male and female.
  • Example

    <Root>
        <Person ref="person1" />
        <Document>
            <Text>
                <UsePerson ref="person1" />
            </Text>
        </Document>
    </Root>

<Location />

Generates a random location.

  • Attributes

    • ref - (required) A reference to the location for later use.
  • Example

    <Root>
        <Location ref="location1" />
        <Document>
            <Text>
                <UseLocation ref="location1">
                    <City />
                    <State />
                    <Country />
                </UseLocation>
            </Text>
        </Document>
    </Root>

<Document>

Denotes the output of a text document.

  • Children
    • Text

<Text>

A Text element can contain any number of self-closing elements, other Text tags, and also inline raw text.

  • Attributes

    • repeat - The number of times to repeat the text. If not provided, the text will be repeated once.
    • pick - Sample N children at random. If not provided, all children will be included.
  • Children

    • Text
    • UseTemplate
    • UsePerson
    • Sentence
    • Paragraph
    • Date
    • UniformInt
    • UniformFloat

<UseTemplate />

Inserts a pre-defined template into the document.

  • Attributes

    • ref - (required) The name of the template to use.
    • [varName: string]: string - Variables to replace in the template.
  • Example

      <Root>
          <Template name="greeting">
              <Text>
                  Greetings {nameVar}
              </Text>
          </Template>
          <Document>
              <Text>
              <UseTemplate
                  ref="greeting"
                  nameVar="Lorem"
              />
              </Text>
          </Document>
      </Root>

<UseLocation />

Inserts a pre-defined location into the document. Uses child elements to specify which properties of the location to include.

  • Attributes

    • ref - (required) The reference of the location to use.
  • Children

    • Address
    • Street
    • City
    • State
    • Zip
    • Country
  • Example

      <Root>
          <Location ref="location1" />
          <Document>
              <Text>
                  <UseLocation ref="location1">
                      <City />
                      <State />
                      <Country />
                  </UseLocation>
              </Text>
          </Document>
      </Root>

<UsePerson />

Inserts a pre-defined person into the document. Uses child elements to specify which properties of the person to include.

  • Attributes

    • ref - (required) The reference of the person to use.
  • Children

    • Sex
    • Prefix
    • FirstName
    • LastName
    • MiddleName
    • FullName
    • Email
    • Phone
    • Address
    • Street
    • City
    • State
    • Zip
    • Country
  • Example

      <Root>
          <Person ref="person1" />
          <Document>
              <Text>
                  <UsePerson ref="person1">
                      <FirstName />
                      <LastName />
                      <Email />
                  </UsePerson>
              </Text>
          </Document>
      </Root>

<Sentence />

Generates a sentence of lorem ipsum text.

  • Attributes

    • min - The minimum number of words in the sentence. (Default: 3).
    • max - The maximum number of words in the sentence. (Default: 10).
  • Example

    <Root>
        <Document>
            <Text>
                <Sentence min="5" max="10" />
            </Text>
        </Document>
    </Root>

<Paragraph />

Generates a paragraph of lorem ipsum text.

  • Attributes

    • min - The minimum number of sentences in the paragraph. (Default: 3).
    • max - The maximum number of sentences in the paragraph. (Default: 10).
  • Example

    <Root>
        <Document>
            <Text>
                <Paragraph min="5" max="10" />
            </Text>
        </Document>
    </Root>

<Date />

Generates a random date.

  • Attributes

    • when - The time frame of the date. Possible values are recent, past, soon, future, anytime. (Default: anytime).
    • format - The format of the date. See date-format (npm) for possible values.
  • Example

    <Root>
        <Document>
            <Text>
                <Date when="soon" format="yyyy-MM-dd"/>
            </Text>
        </Document>
    </Root>

<UniformInt />

Generates a uniformly sampled random integer.

  • Attributes

    • min - The minimum value of the integer. (Default: 0).
    • max - The maximum value of the integer. (Default: 10).
  • Example

    <Root>
        <Document>
            <Text>
                <UniformInt min="5" max="10" />
            </Text>
        </Document>
    </Root>

<UniformFloat />

Generates a uniformly sampled random float.

  • Attributes

    • min - The minimum value of the float. (Default: 0).
    • max - The maximum value of the float. (Default: 10).
  • Example

    <Root>
        <Document>
            <Text>
                <UniformFloat min="5" max="10" />
            </Text>
        </Document>
    </Root>
0.6.1

4 months ago

0.6.0

4 months ago

0.5.1

4 months ago

0.5.0

4 months ago

0.4.1

4 months ago

0.4.0

4 months ago

0.3.1

4 months ago

0.3.0

4 months ago

0.2.2

4 months ago

0.2.1

4 months ago

0.2.0

4 months ago

0.1.1

4 months ago

0.1.0

4 months ago