Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@atjson/renderer-commonmark

Package Overview
Dependencies
Maintainers
2
Versions
243
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@atjson/renderer-commonmark - npm Package Compare versions

Comparing version 0.5.17 to 0.5.18

33

dist/commonjs/index.d.ts
import { HIRNode } from '@atjson/hir';
import Renderer from '@atjson/renderer-hir';
export declare type Rule = (...args: any[]) => IterableIterator<string>;
export interface AnnotationLookup {
[key: string]: Rule;
}
import Renderer, { State } from '@atjson/renderer-hir';
export default class CommonmarkRenderer extends Renderer {
annotationLookup: AnnotationLookup;
constructor(annotationLookup?: AnnotationLookup);
registerRule(type: string, rule: Rule): void;
unregisterRule(type: string): void;
willRender(): void;
renderAnnotation(annotation: HIRNode): IterableIterator<any>;
'root'(): IterableIterator<string>;
'bold'(): IterableIterator<string>;
'blockquote'(): IterableIterator<string>;
'heading'(props: {
level: number;
}): IterableIterator<string>;
'horizontal-rule'(): IterableIterator<string>;
'image'(props: {
alt: string;
url: string;
}): IterableIterator<string>;
'italic'(): IterableIterator<string>;
'line-break'(): IterableIterator<string>;
'link'(props: {
url: string;
}): IterableIterator<string>;
'list-item'(_: any, state: State): IterableIterator<string>;
'ordered-list'(_: any, state: State): IterableIterator<string>;
'unordered-list'(_: any, state: State): IterableIterator<string>;
'paragraph'(): IterableIterator<string>;
renderAnnotation(annotation: HIRNode, state: State): IterableIterator<any>;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const renderer_hir_1 = require("@atjson/renderer-hir");
const MARKDOWN_RULES = {
class CommonmarkRenderer extends renderer_hir_1.default {
*'root'() {
let document = yield;
return document.join('').trimRight();
},
}
*'bold'() {
let text = yield;
return `**${text.join('')}**`;
},
}
*'blockquote'() {

@@ -21,3 +21,3 @@ let text = yield;

return lines.slice(0, endOfQuote).map(line => `> ${line}`).concat(lines.slice(endOfQuote)).join('\n');
},
}
*'heading'(props) {

@@ -27,61 +27,71 @@ let heading = yield;

return `${level} ${heading.join('')}\n\n`;
},
}
*'horizontal-rule'() {
return '---\n\n';
},
}
*'image'(props) {
return `![${props.alt}](${props.url})`;
},
}
*'italic'() {
let text = yield;
return `*${text.join('')}*`;
},
}
*'line-break'() {
return ' \n';
},
}
*'link'(props) {
let text = yield;
return `[${text.join('')}](${props.url})`;
},
*'list-item'() {
let indent = ' '.repeat(this.indent);
let item = yield;
let indentedItem = item.join('').split('\n').map(line => indent + line).join('\n').trim();
if (this.type === 'ordered-list') {
return `${indent}${this.index++}. ${indentedItem}`;
}
*'list-item'(_, state) {
let indent = ' '.repeat(state.get('indent'));
let rawItem = yield;
let index = state.get('index');
let item = rawItem.join('').split('\n').map(line => indent + line).join('\n').trim();
if (state.get('type') === 'ordered-list') {
item = `${indent}${index}. ${item}`;
state.set('index', index + 1);
}
else if (this.type === 'unordered-list') {
return `${indent}- ${indentedItem}`;
else if (state.get('type') === 'unordered-list') {
item = `${indent}- ${item}`;
}
return item;
},
*'ordered-list'() {
this.pushScope({
annotationLookup: this.annotationLookup,
}
*'ordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
}
state.push({
type: 'ordered-list',
indent: (this.indent + 1) || 0,
indent: indent + 1,
index: 1
});
let list = yield;
this.popScope();
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (this.type === 'ordered-list' || this.type === 'unordered-list') {
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
}
return markdown;
},
*'unordered-list'() {
this.pushScope({
annotationLookup: this.annotationLookup,
}
*'unordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
}
state.push({
type: 'unordered-list',
indent: (this.indent + 1) || 0
indent: indent + 1,
});
let list = yield;
this.popScope();
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (this.type === 'ordered-list' || this.type === 'unordered-list') {
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
}
return markdown;
},
}
*'paragraph'() {

@@ -95,23 +105,6 @@ let rawText = yield;

}
};
class CommonmarkRenderer extends renderer_hir_1.default {
constructor(annotationLookup) {
super();
this.annotationLookup = Object.assign(annotationLookup || {}, MARKDOWN_RULES);
}
registerRule(type, rule) {
this.annotationLookup[type] = rule;
}
unregisterRule(type) {
delete this.annotationLookup[type];
}
willRender() {
this.pushScope({
annotationLookup: this.annotationLookup
});
}
*renderAnnotation(annotation) {
let rule = this.annotationLookup[annotation.type];
*renderAnnotation(annotation, state) {
let rule = this[annotation.type];
if (rule) {
return yield* rule.call(this, annotation.attributes);
return yield* this[annotation.type](annotation.attributes, state);
}

@@ -125,2 +118,2 @@ else {

exports.default = CommonmarkRenderer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx1REFBNEM7QUFRNUMsTUFBTSxjQUFjLEdBQXFCO0lBTXZDLENBQUMsTUFBTTtRQUNMLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBS0QsQ0FBQyxNQUFNO1FBQ0wsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBUUQsQ0FBQyxZQUFZO1FBQ1gsSUFBSSxJQUFJLEdBQWEsS0FBSyxDQUFDO1FBQzNCLElBQUksS0FBSyxHQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksVUFBVSxHQUFXLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFFdEMsT0FBTyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLFVBQVUsRUFBRSxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQU9ELENBQUMsU0FBUyxDQUFDLEtBQXdCO1FBQ2pDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFPRCxDQUFDLGlCQUFpQjtRQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFNRCxDQUFDLE9BQU8sQ0FBQyxLQUFtQztRQUMxQyxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN6QyxDQUFDO0lBS0QsQ0FBQyxRQUFRO1FBQ1AsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBTUQsQ0FBQyxZQUFZO1FBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBS0QsQ0FBQyxNQUFNLENBQUMsS0FBc0I7UUFDNUIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzVDLENBQUM7SUFLRCxDQUFDLFdBQVc7UUFDVixJQUFJLE1BQU0sR0FBVyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUksR0FBYSxLQUFLLENBQUM7UUFDM0IsSUFBSSxZQUFZLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVsRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUNyRCxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNkLENBQUM7SUFPRCxDQUFDLGNBQWM7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxJQUFJLEVBQUUsY0FBYztZQUNwQixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDOUIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3hDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBYyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFPRCxDQUFDLGdCQUFnQjtRQUNmLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQy9CLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDbkUsTUFBTSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQVFELENBQUMsV0FBVztRQUNWLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0YsQ0FBQztBQUVGLHdCQUF3QyxTQUFRLHNCQUFRO0lBR3RELFlBQVksZ0JBQW1DO1FBQzdDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWSxFQUFFLElBQVU7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNuQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDVCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBL0JELHFDQStCQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx1REFBdUQ7QUFFdkQsd0JBQXdDLFNBQVEsc0JBQVE7SUFPdEQsQ0FBQyxNQUFNO1FBQ0wsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFLRCxDQUFDLE1BQU07UUFDTCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFRRCxDQUFDLFlBQVk7UUFDWCxJQUFJLElBQUksR0FBYSxLQUFLLENBQUM7UUFDM0IsSUFBSSxLQUFLLEdBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxVQUFVLEdBQVcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUV0QyxPQUFPLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEMsVUFBVSxFQUFFLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBT0QsQ0FBQyxTQUFTLENBQUMsS0FBd0I7UUFDakMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQU9ELENBQUMsaUJBQWlCO1FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU1ELENBQUMsT0FBTyxDQUFDLEtBQW1DO1FBQzFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3pDLENBQUM7SUFLRCxDQUFDLFFBQVE7UUFDUCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQzlCLENBQUM7SUFNRCxDQUFDLFlBQVk7UUFDWCxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFLRCxDQUFDLE1BQU0sQ0FBQyxLQUFzQjtRQUM1QixJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDNUMsQ0FBQztJQUtELENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFZO1FBQzFCLElBQUksTUFBTSxHQUFXLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksT0FBTyxHQUFhLEtBQUssQ0FBQztRQUM5QixJQUFJLEtBQUssR0FBVyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxHQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0YsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksR0FBRyxHQUFHLE1BQU0sR0FBRyxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQU9BLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxLQUFZO1FBQzlCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsY0FBYztZQUNwQixNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUM7WUFDbEIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRVosSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjO1lBQ3BDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFPRCxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxLQUFZO1FBQy9CLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUVELEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQztTQUNuQixDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRVosSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjO1lBQ3BDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFRRCxDQUFDLFdBQVc7UUFDVixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELENBQUMsZ0JBQWdCLENBQUMsVUFBbUIsRUFBRSxLQUFZO1FBQ2pELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNULE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6TEQscUNBeUxDIn0=
import { HIRNode } from '@atjson/hir';
import Renderer from '@atjson/renderer-hir';
export declare type Rule = (...args: any[]) => IterableIterator<string>;
export interface AnnotationLookup {
[key: string]: Rule;
}
import Renderer, { State } from '@atjson/renderer-hir';
export default class CommonmarkRenderer extends Renderer {
annotationLookup: AnnotationLookup;
constructor(annotationLookup?: AnnotationLookup);
registerRule(type: string, rule: Rule): void;
unregisterRule(type: string): void;
willRender(): void;
renderAnnotation(annotation: HIRNode): IterableIterator<any>;
'root'(): IterableIterator<string>;
'bold'(): IterableIterator<string>;
'blockquote'(): IterableIterator<string>;
'heading'(props: {
level: number;
}): IterableIterator<string>;
'horizontal-rule'(): IterableIterator<string>;
'image'(props: {
alt: string;
url: string;
}): IterableIterator<string>;
'italic'(): IterableIterator<string>;
'line-break'(): IterableIterator<string>;
'link'(props: {
url: string;
}): IterableIterator<string>;
'list-item'(_: any, state: State): IterableIterator<string>;
'ordered-list'(_: any, state: State): IterableIterator<string>;
'unordered-list'(_: any, state: State): IterableIterator<string>;
'paragraph'(): IterableIterator<string>;
renderAnnotation(annotation: HIRNode, state: State): IterableIterator<any>;
}
"use strict";
import Renderer from '@atjson/renderer-hir';
const MARKDOWN_RULES = {
export default class CommonmarkRenderer extends Renderer {
*'root'() {
let document = yield;
return document.join('').trimRight();
},
}
*'bold'() {
let text = yield;
return `**${text.join('')}**`;
},
}
*'blockquote'() {

@@ -20,3 +20,3 @@ let text = yield;

return lines.slice(0, endOfQuote).map(line => `> ${line}`).concat(lines.slice(endOfQuote)).join('\n');
},
}
*'heading'(props) {

@@ -26,61 +26,71 @@ let heading = yield;

return `${level} ${heading.join('')}\n\n`;
},
}
*'horizontal-rule'() {
return '---\n\n';
},
}
*'image'(props) {
return `![${props.alt}](${props.url})`;
},
}
*'italic'() {
let text = yield;
return `*${text.join('')}*`;
},
}
*'line-break'() {
return ' \n';
},
}
*'link'(props) {
let text = yield;
return `[${text.join('')}](${props.url})`;
},
*'list-item'() {
let indent = ' '.repeat(this.indent);
let item = yield;
let indentedItem = item.join('').split('\n').map(line => indent + line).join('\n').trim();
if (this.type === 'ordered-list') {
return `${indent}${this.index++}. ${indentedItem}`;
}
*'list-item'(_, state) {
let indent = ' '.repeat(state.get('indent'));
let rawItem = yield;
let index = state.get('index');
let item = rawItem.join('').split('\n').map(line => indent + line).join('\n').trim();
if (state.get('type') === 'ordered-list') {
item = `${indent}${index}. ${item}`;
state.set('index', index + 1);
}
else if (this.type === 'unordered-list') {
return `${indent}- ${indentedItem}`;
else if (state.get('type') === 'unordered-list') {
item = `${indent}- ${item}`;
}
return item;
},
*'ordered-list'() {
this.pushScope({
annotationLookup: this.annotationLookup,
}
*'ordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
}
state.push({
type: 'ordered-list',
indent: (this.indent + 1) || 0,
indent: indent + 1,
index: 1
});
let list = yield;
this.popScope();
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (this.type === 'ordered-list' || this.type === 'unordered-list') {
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
}
return markdown;
},
*'unordered-list'() {
this.pushScope({
annotationLookup: this.annotationLookup,
}
*'unordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
}
state.push({
type: 'unordered-list',
indent: (this.indent + 1) || 0
indent: indent + 1,
});
let list = yield;
this.popScope();
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (this.type === 'ordered-list' || this.type === 'unordered-list') {
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
}
return markdown;
},
}
*'paragraph'() {

@@ -94,23 +104,6 @@ let rawText = yield;

}
};
export default class CommonmarkRenderer extends Renderer {
constructor(annotationLookup) {
super();
this.annotationLookup = Object.assign(annotationLookup || {}, MARKDOWN_RULES);
}
registerRule(type, rule) {
this.annotationLookup[type] = rule;
}
unregisterRule(type) {
delete this.annotationLookup[type];
}
willRender() {
this.pushScope({
annotationLookup: this.annotationLookup
});
}
*renderAnnotation(annotation) {
let rule = this.annotationLookup[annotation.type];
*renderAnnotation(annotation, state) {
let rule = this[annotation.type];
if (rule) {
return yield* rule.call(this, annotation.attributes);
return yield* this[annotation.type](annotation.attributes, state);
}

@@ -123,2 +116,2 @@ else {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBUTVDLE1BQU0sY0FBYyxHQUFxQjtJQU12QyxDQUFDLE1BQU07UUFDTCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUtELENBQUMsTUFBTTtRQUNMLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQVFELENBQUMsWUFBWTtRQUNYLElBQUksSUFBSSxHQUFhLEtBQUssQ0FBQztRQUMzQixJQUFJLEtBQUssR0FBYSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLFVBQVUsR0FBVyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRXRDLE9BQU8sS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxVQUFVLEVBQUUsQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFPRCxDQUFDLFNBQVMsQ0FBQyxLQUF3QjtRQUNqQyxJQUFJLE9BQU8s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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sUUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsT0FBTyx5QkFBMEIsU0FBUSxRQUFRO0lBT3RELENBQUMsTUFBTTtRQUNMLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBS0QsQ0FBQyxNQUFNO1FBQ0wsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBUUQsQ0FBQyxZQUFZO1FBQ1gsSUFBSSxJQUFJLEdBQWEsS0FBSyxDQUFDO1FBQzNCLElBQUksS0FBSyxHQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksVUFBVSxHQUFXLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFFdEMsT0FBTyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLFVBQVUsRUFBRSxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQU9ELENBQUMsU0FBUyxDQUFDLEtBQXdC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
{
"name": "@atjson/renderer-commonmark",
"version": "0.5.17",
"version": "0.5.18",
"description": "A brand new TypeScript library.",

@@ -24,4 +24,4 @@ "main": "dist/commonjs/index.js",

"dependencies": {
"@atjson/renderer-hir": "^0.5.17"
"@atjson/renderer-hir": "^0.5.18"
}
}
import { HIRNode } from '@atjson/hir';
import Renderer from '@atjson/renderer-hir';
import Renderer, { State } from '@atjson/renderer-hir';
export type Rule = (...args: any[]) => IterableIterator<string>;
export default class CommonmarkRenderer extends Renderer {
export interface AnnotationLookup {
[key: string]: Rule;
}
const MARKDOWN_RULES: AnnotationLookup = {
/**

@@ -102,11 +97,13 @@ * The root allows us to normalize the document

*/
*'list-item'(this: any): IterableIterator<string> {
let indent: string = ' '.repeat(this.indent);
let item: string[] = yield;
let indentedItem: string = item.join('').split('\n').map(line => indent + line).join('\n').trim();
*'list-item'(_, state: State): IterableIterator<string> {
let indent: string = ' '.repeat(state.get('indent'));
let rawItem: string[] = yield;
let index: number = state.get('index');
let item: string = rawItem.join('').split('\n').map(line => indent + line).join('\n').trim();
if (this.type === 'ordered-list') {
return `${indent}${this.index++}. ${indentedItem}`;
} else if (this.type === 'unordered-list') {
return `${indent}- ${indentedItem}`;
if (state.get('type') === 'ordered-list') {
item = `${indent}${index}. ${item}`;
state.set('index', index + 1);
} else if (state.get('type') === 'unordered-list') {
item = `${indent}- ${item}`;
}

@@ -122,14 +119,18 @@

*/
*'ordered-list'(this: any): IterableIterator<string> {
this.pushScope({
annotationLookup: this.annotationLookup,
*'ordered-list'(_, state: State): IterableIterator<string> {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
}
state.push({
type: 'ordered-list',
indent: (this.indent + 1) || 0,
indent: indent + 1,
index: 1
});
let list = yield;
this.popScope();
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (this.type === 'ordered-list' || this.type === 'unordered-list') {
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;

@@ -145,13 +146,18 @@ }

*/
*'unordered-list'(this: any): IterableIterator<string> {
this.pushScope({
annotationLookup: this.annotationLookup,
*'unordered-list'(_, state: State): IterableIterator<string> {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
}
state.push({
type: 'unordered-list',
indent: (this.indent + 1) || 0
indent: indent + 1,
});
let list = yield;
this.popScope();
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (this.type === 'ordered-list' || this.type === 'unordered-list') {
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;

@@ -176,30 +182,7 @@ }

}
};
export default class CommonmarkRenderer extends Renderer {
annotationLookup: AnnotationLookup;
constructor(annotationLookup?: AnnotationLookup) {
super();
this.annotationLookup = Object.assign(annotationLookup || {}, MARKDOWN_RULES);
}
registerRule(type: string, rule: Rule) {
this.annotationLookup[type] = rule;
}
unregisterRule(type: string) {
delete this.annotationLookup[type];
}
willRender() {
this.pushScope({
annotationLookup: this.annotationLookup
});
}
*renderAnnotation(annotation: HIRNode) {
let rule = this.annotationLookup[annotation.type];
*renderAnnotation(annotation: HIRNode, state: State) {
let rule = this[annotation.type];
if (rule) {
return yield* rule.call(this, annotation.attributes);
return yield* this[annotation.type](annotation.attributes, state);
} else {

@@ -206,0 +189,0 @@ let text = yield;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc