@a-morphous/at-shorthand
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

at-shorthand

A format for metadata that decorates a single line of text. Can be converted into HTML classes and ids, which then are presented in JSON form.

Usage

import { parseAtShorthandLine } from '@a-morphous/at-shorthand'

const jsonLine = parseAtShorthandLine(string)

Format

@ shorthand is separated from the rest of the text content by a space, or a colon and a space:

@metadata This is regular prose.
@metadata2: The colon is optional.

Like in HTML, these identifiers are called classes.

Different classes are separated by . in the @ shorthand.

@tag1.tag2 This text has two tags attached to it.

A class starting with # is instead rendered as an id:

@#id Ids have a special field in the parsed JSON, and are always set to the primary field of the JSON over classes.
@#id.class You can mix Ids and classes.
@class.#id or put them in any order.

A line can have any number of classes, but only one id.

Output Format

{
	classes: string[] // list of classes in order
	id: string // an id, if the line had one
	primary: string // the id if it exists, else the first class
	text: string // the rest of the line
}

Readme

Keywords

none

Package Sidebar

Install

npm i @a-morphous/at-shorthand

Weekly Downloads

3

Version

1.0.0

License

ISC

Unpacked Size

7.58 kB

Total Files

6

Last publish

Collaborators

  • amorphous