meld
Version:
Meld: A template language for LLM prompts
151 lines (128 loc) • 2.7 kB
text/typescript
import {
createExample,
createInvalidExample,
combineExamples,
SyntaxExampleGroup
} from './helpers';
import {
MeldParseError,
ErrorSeverity
} from '../errors';
/**
* Collection of atomic content examples
*
* These are the most basic examples of Markdown content
*/
export const atomic = {
simpleParagraph: createExample(
'Simple paragraph',
`This is a simple paragraph of text.`
),
heading: createExample(
'Heading',
`
),
list: createExample(
'Unordered list',
`- Item 1
- Item 2
- Item 3`
),
orderedList: createExample(
'Ordered list',
`1. First item
2. Second item
3. Third item`
),
link: createExample(
'Link',
`[Example link](https://example.com)`
),
image: createExample(
'Image',
``
),
blockquote: createExample(
'Blockquote',
`> This is a blockquote
> It can span multiple lines`
),
horizontalRule: createExample(
'Horizontal rule',
`---`
),
inlineFormatting: createExample(
'Inline formatting',
`**Bold text**, *italic text*, ~~strikethrough~~, and \`inline code\``
),
table: createExample(
'Table',
`| Header 1 | Header 2 |
|----------|----------|
| Cell 1 | Cell 2 |
| Cell 3 | Cell 4 |`
)
};
/**
* Collection of combined content examples
*
* These examples demonstrate more complex content scenarios
*/
export const combinations = {
mixedContent: createExample(
'Mixed content',
`
This is a paragraph with **bold** and *italic* text.
- List item 1
- List item 2
- Nested list item
- Another nested item
- List item 3
> This is a blockquote
> With multiple lines
\`\`\`js
// Code example
console.log('Hello, world!');
\`\`\`
[](https://example.com)`
),
withFrontmatter: createExample(
'Content with frontmatter',
`---
title: Document Title
author: Example Author
date: 2023-01-01
---
Written by {{author}} on {{date}}.
This is the main content of the document.`
)
};
/**
* Collection of invalid content examples
*
* These examples demonstrate content that should result in parsing errors
*/
export const invalid = {
unknownDirective: createInvalidExample(
'Unknown directive type',
'@invalid xyz',
{
type: MeldParseError,
severity: ErrorSeverity.Fatal,
code: 'SYNTAX_ERROR',
message: 'Unknown directive type'
}
)
};
/**
* Complete collection of content examples
*/
export const contentExamples: SyntaxExampleGroup = {
atomic,
combinations,
invalid
};