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.6.5 to 0.7.1

.npmignore

252

dist/commonjs/index.js

@@ -22,12 +22,48 @@ "use strict";

exports.split = split;
function escapePunctuation(text) {
return text.replace(/([#$%'"!()*+,=?@\\\[\]\^_`{|}~-])/g, '\\$1')
.replace(/(\d+)\./g, '$1\\.')
.replace(/&/g, '&')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function escapeAttribute(text) {
return text.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)');
}
function getNumberOfRequiredBackticks(text) {
let index = 0;
let counts = [0];
for (let i = 0, len = text.length; i < len; i++) {
if (text[i] === '`') {
counts[index] = counts[index] + 1;
}
else if (counts[index] !== 0) {
counts.push(0);
index++;
}
}
return counts.sort().reduce((result, count) => {
if (count === result) {
return result + 1;
}
return result;
}, 1);
}
class CommonmarkRenderer extends renderer_hir_1.default {
renderText(text, state) {
if (state.get('isPreformatted')) {
return text;
}
return escapePunctuation(text).replace(/\u00A0/gu, '&nbsp;');
}
*'root'() {
let document = yield;
return document.join('').trimRight();
return document.join('');
}
*'bold'() {
let [before, text, after] = yield* split();
return `${before}__${text}__${after}`;
return `${before}**${text}**${after}`;
}
*'blockquote'() {
*'blockquote'(_, state) {
let text = yield;

@@ -37,25 +73,43 @@ let lines = text.join('').split('\n');

let startOfQuote = 0;
while (lines[startOfQuote].match(/^(\s)*$/))
while (startOfQuote < endOfQuote - 1 && lines[startOfQuote].match(/^\s*$/))
startOfQuote++;
while (lines[endOfQuote - 1].match(/^(\s)*$/))
while (endOfQuote > startOfQuote + 1 && lines[endOfQuote - 1].match(/^\s*$/))
endOfQuote--;
return [
...lines.slice(startOfQuote, endOfQuote).map(line => `> ${line}`),
'\n'
].join('\n');
let quote = lines.slice(startOfQuote, endOfQuote).map(line => `> ${line}`).join('\n') + '\n';
if (!state.get('tight')) {
quote += '\n';
}
return quote;
}
*'heading'(props) {
let heading = yield;
let text = yield;
let level = new Array(props.level + 1).join('#');
return `${level} ${heading.join('')}\n\n`;
let heading = text.join('');
if (heading.indexOf('\n') !== -1) {
if (props.level === 1) {
return `${heading}\n====\n`;
}
else if (props.level === 2) {
return `${heading}\n----\n`;
}
}
return `${level} ${heading}\n`;
}
*'horizontal-rule'() {
return '---\n\n';
return '***\n';
}
*'image'(props) {
if (props.title) {
let title = props.title.replace(/"/g, '\\"');
return `![${props.alt}](${props.url} "${title}")`;
}
return `![${props.alt}](${props.url})`;
}
*'italic'() {
*'italic'(_, state) {
let isItalicized = state.get('isItalicized');
state.set('isItalicized', true);
let [before, text, after] = yield* split();
return `${before}*${text}*${after}`;
state.set('isItalicized', isItalicized);
let markup = isItalicized ? '_' : '*';
return `${before}${markup}${text}${markup}${after}`;
}

@@ -67,75 +121,143 @@ *'line-break'() {

let [before, text, after] = yield* split();
return `${before}[${text}](${props.href})${after}`;
let href = escapeAttribute(props.href);
if (props.title) {
let title = props.title.replace(/"/g, '\\"');
return `${before}[${text}](${href} "${title}")${after}`;
}
return `${before}[${text}](${href})${after}`;
}
*'code'(props, state) {
state.push({ isPreformatted: true, htmlSafe: false });
let text = yield;
state.pop();
let code = text.join('');
if (props.style === 'fence') {
code = '\n' + code;
let info = props.info || '';
let newlines = '\n';
if (state.get('isList') && state.get('nextAnnotation')) {
newlines += '\n';
}
if (code.indexOf('```') !== -1) {
return `~~~${info}${code}~~~${newlines}`;
}
else {
return `\`\`\`${info}${code}\`\`\`${newlines}`;
}
}
else if (props.style === 'block') {
return code.split('\n').map(line => ` ${line}`).join('\n') + '\n';
}
else {
if (code.length === 0) {
return '` `';
}
else {
let backticks = '`'.repeat(getNumberOfRequiredBackticks(code));
return `${backticks}${code}${backticks}`;
}
}
}
*'html'(props, state) {
state.push({ isPreformatted: true, htmlSafe: true });
let text = yield;
state.pop();
let html = text.join('');
if (props.type === 'block') {
return html + '\n';
}
return html;
}
*'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);
let digit = state.get('digit');
let delimiter = state.get('delimiter');
let marker = delimiter;
if (state.get('type') === 'numbered') {
marker = `${digit}${delimiter}`;
state.set('digit', digit + 1);
}
else if (state.get('type') === 'unordered-list') {
item = `${indent}- ${item}`;
let indent = ' '.repeat(marker.length + 1);
let text = yield;
let item = text.join('');
let firstCharacter = 0;
while (item[firstCharacter] === ' ')
firstCharacter++;
let lines = item.split('\n');
lines.push(lines.pop().replace(/[ ]+$/, ''));
lines.unshift(lines.shift().replace(/^[ ]+/, ''));
let [first, ...rest] = lines;
item = ' '.repeat(firstCharacter) + first + '\n' + rest.map(line => indent + line).join('\n').replace(/[ ]+$/, '');
if (state.get('hasCodeBlockFollowing')) {
return ` ${marker} ${item}`;
}
return item;
return `${marker} ${item}`;
}
*'ordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
*'ordered-list'(props, state) {
let start = 1;
if (props && props.start != null) {
start = props.start;
}
let delimiter = '.';
if (state.get('previous.type') === 'numbered' && state.get('previous.delimiter') === '.') {
delimiter = ')';
}
let hasCodeBlockFollowing = state.get('nextAnnotation.type') === 'code' &&
state.get('nextAnnotation.attributes.style') === 'block';
state.push({
type: 'ordered-list',
indent: indent + 1,
index: 1
isList: true,
type: 'numbered',
digit: start,
previous: state.get('previous'),
delimiter,
hasCodeBlockFollowing,
tight: props && props.tight
});
let list = yield;
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
if (props && props.tight) {
list = list.map(item => item.replace(/([ \n])+$/, '\n'));
}
return markdown;
state.set('previous', {
isList: true,
type: 'numbered',
delimiter
});
return list.join('') + '\n';
}
*'unordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
*'unordered-list'(props, state) {
let delimiter = '-';
if (state.get('previous.type') === 'bulleted' && state.get('previous.delimiter') === '-') {
delimiter = '+';
}
let hasCodeBlockFollowing = state.get('nextAnnotation.type') === 'code' &&
state.get('nextAnnotation.attributes.style') === 'block';
state.push({
type: 'unordered-list',
indent: indent + 1,
isList: true,
type: 'bulleted',
previous: state.get('previous'),
delimiter,
tight: props && props.tight,
hasCodeBlockFollowing
});
let list = yield;
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
state.set('previous', {
isList: true,
type: 'bulleted',
delimiter
});
if (props && props.tight) {
list = list.map(item => item.replace(/([ \n])+$/, '\n'));
}
return markdown;
return list.join('') + '\n';
}
*'paragraph'() {
let rawText = yield;
let text = rawText.join('');
if (text.lastIndexOf('\n\n') === Math.max(text.length - 2, 0)) {
return text;
*'paragraph'(_, state) {
let text = yield;
if (state.get('tight')) {
return text.join('') + '\n';
}
return `${text}\n\n`;
return text.join('') + '\n\n';
}
*renderAnnotation(annotation, state) {
let rule = this[annotation.type];
if (rule) {
return yield* this[annotation.type](annotation.attributes, state);
}
else {
let text = yield;
return text.join('');
}
}
}
exports.default = CommonmarkRenderer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx1REFBdUQ7QUFFdkQsUUFBZSxDQUFDO0lBQ2QsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUV0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQUMsS0FBSyxFQUFFLENBQUM7SUFBQyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQUMsR0FBRyxFQUFFLENBQUM7SUFBQyxDQUFDO0lBRXZELE1BQU0sQ0FBQztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFkRCxzQkFjQztBQUVELHdCQUF3QyxTQUFRLHNCQUFRO0lBT3RELENBQUMsTUFBTTtRQUNMLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBS0QsQ0FBQyxNQUFNO1FBQ0wsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLEdBQUcsTUFBTSxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBUUQsQ0FBQyxZQUFZO1FBQ1gsSUFBSSxJQUFJLEdBQWEsS0FBSyxDQUFDO1FBQzNCLElBQUksS0FBSyxHQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRXJCLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFBRSxZQUFZLEVBQUUsQ0FBQztRQUM1RCxPQUFPLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUFFLFVBQVUsRUFBRSxDQUFDO1FBRTVELE1BQU0sQ0FBQztZQUNMLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNqRSxJQUFJO1NBQ0wsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDO0lBT0QsQ0FBQyxTQUFTLENBQUMsS0FBd0I7UUFDakMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQU9ELENBQUMsaUJBQWlCO1FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU1ELENBQUMsT0FBTyxDQUFDLEtBQW1DO1FBQzFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3pDLENBQUM7SUFLRCxDQUFDLFFBQVE7UUFDUCxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxNQUFNLENBQUMsR0FBRyxNQUFNLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFNRCxDQUFDLFlBQVk7UUFDWCxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFLRCxDQUFDLE1BQU0sQ0FBQyxLQUF1QjtRQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxNQUFNLENBQUMsR0FBRyxNQUFNLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUtELENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFZO1FBQzFCLElBQUksTUFBTSxHQUFXLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksT0FBTyxHQUFhLEtBQUssQ0FBQztRQUM5QixJQUFJLEtBQUssR0FBVyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxHQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0YsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksR0FBRyxHQUFHLE1BQU0sR0FBRyxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQU9ELENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxLQUFZO1FBQzdCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsY0FBYztZQUNwQixNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUM7WUFDbEIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRVosSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjO1lBQ3BDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFPRCxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxLQUFZO1FBQy9CLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUVELEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQztTQUNuQixDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRVosSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjO1lBQ3BDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFRRCxDQUFDLFdBQVc7UUFDVixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELENBQUMsZ0JBQWdCLENBQUMsVUFBbUIsRUFBRSxLQUFZO1FBQ2pELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNULE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE1TEQscUNBNExDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx1REFBdUQ7QUFFdkQsUUFBZSxDQUFDO0lBQ2QsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUV0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQUMsS0FBSyxFQUFFLENBQUM7SUFBQyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQUMsR0FBRyxFQUFFLENBQUM7SUFBQyxDQUFDO0lBRXZELE1BQU0sQ0FBQztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFkRCxzQkFjQztBQUtELDJCQUEyQixJQUFZO0lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxFQUFFLE1BQU0sQ0FBQztTQUNyRCxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQztTQUM1QixPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztTQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztTQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFD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

@@ -20,12 +20,48 @@ "use strict";

}
function escapePunctuation(text) {
return text.replace(/([#$%'"!()*+,=?@\\\[\]\^_`{|}~-])/g, '\\$1')
.replace(/(\d+)\./g, '$1\\.')
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function escapeAttribute(text) {
return text.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)');
}
function getNumberOfRequiredBackticks(text) {
let index = 0;
let counts = [0];
for (let i = 0, len = text.length; i < len; i++) {
if (text[i] === '`') {
counts[index] = counts[index] + 1;
}
else if (counts[index] !== 0) {
counts.push(0);
index++;
}
}
return counts.sort().reduce((result, count) => {
if (count === result) {
return result + 1;
}
return result;
}, 1);
}
export default class CommonmarkRenderer extends Renderer {
renderText(text, state) {
if (state.get('isPreformatted')) {
return text;
}
return escapePunctuation(text).replace(/\u00A0/gu, '&nbsp;');
}
*'root'() {
let document = yield;
return document.join('').trimRight();
return document.join('');
}
*'bold'() {
let [before, text, after] = yield* split();
return `${before}__${text}__${after}`;
return `${before}**${text}**${after}`;
}
*'blockquote'() {
*'blockquote'(_, state) {
let text = yield;

@@ -35,25 +71,43 @@ let lines = text.join('').split('\n');

let startOfQuote = 0;
while (lines[startOfQuote].match(/^(\s)*$/))
while (startOfQuote < endOfQuote - 1 && lines[startOfQuote].match(/^\s*$/))
startOfQuote++;
while (lines[endOfQuote - 1].match(/^(\s)*$/))
while (endOfQuote > startOfQuote + 1 && lines[endOfQuote - 1].match(/^\s*$/))
endOfQuote--;
return [
...lines.slice(startOfQuote, endOfQuote).map(line => `> ${line}`),
'\n'
].join('\n');
let quote = lines.slice(startOfQuote, endOfQuote).map(line => `> ${line}`).join('\n') + '\n';
if (!state.get('tight')) {
quote += '\n';
}
return quote;
}
*'heading'(props) {
let heading = yield;
let text = yield;
let level = new Array(props.level + 1).join('#');
return `${level} ${heading.join('')}\n\n`;
let heading = text.join('');
if (heading.indexOf('\n') !== -1) {
if (props.level === 1) {
return `${heading}\n====\n`;
}
else if (props.level === 2) {
return `${heading}\n----\n`;
}
}
return `${level} ${heading}\n`;
}
*'horizontal-rule'() {
return '---\n\n';
return '***\n';
}
*'image'(props) {
if (props.title) {
let title = props.title.replace(/"/g, '\\"');
return `![${props.alt}](${props.url} "${title}")`;
}
return `![${props.alt}](${props.url})`;
}
*'italic'() {
*'italic'(_, state) {
let isItalicized = state.get('isItalicized');
state.set('isItalicized', true);
let [before, text, after] = yield* split();
return `${before}*${text}*${after}`;
state.set('isItalicized', isItalicized);
let markup = isItalicized ? '_' : '*';
return `${before}${markup}${text}${markup}${after}`;
}

@@ -65,74 +119,142 @@ *'line-break'() {

let [before, text, after] = yield* split();
return `${before}[${text}](${props.href})${after}`;
let href = escapeAttribute(props.href);
if (props.title) {
let title = props.title.replace(/"/g, '\\"');
return `${before}[${text}](${href} "${title}")${after}`;
}
return `${before}[${text}](${href})${after}`;
}
*'code'(props, state) {
state.push({ isPreformatted: true, htmlSafe: false });
let text = yield;
state.pop();
let code = text.join('');
if (props.style === 'fence') {
code = '\n' + code;
let info = props.info || '';
let newlines = '\n';
if (state.get('isList') && state.get('nextAnnotation')) {
newlines += '\n';
}
if (code.indexOf('```') !== -1) {
return `~~~${info}${code}~~~${newlines}`;
}
else {
return `\`\`\`${info}${code}\`\`\`${newlines}`;
}
}
else if (props.style === 'block') {
return code.split('\n').map(line => ` ${line}`).join('\n') + '\n';
}
else {
if (code.length === 0) {
return '` `';
}
else {
let backticks = '`'.repeat(getNumberOfRequiredBackticks(code));
return `${backticks}${code}${backticks}`;
}
}
}
*'html'(props, state) {
state.push({ isPreformatted: true, htmlSafe: true });
let text = yield;
state.pop();
let html = text.join('');
if (props.type === 'block') {
return html + '\n';
}
return html;
}
*'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);
let digit = state.get('digit');
let delimiter = state.get('delimiter');
let marker = delimiter;
if (state.get('type') === 'numbered') {
marker = `${digit}${delimiter}`;
state.set('digit', digit + 1);
}
else if (state.get('type') === 'unordered-list') {
item = `${indent}- ${item}`;
let indent = ' '.repeat(marker.length + 1);
let text = yield;
let item = text.join('');
let firstCharacter = 0;
while (item[firstCharacter] === ' ')
firstCharacter++;
let lines = item.split('\n');
lines.push(lines.pop().replace(/[ ]+$/, ''));
lines.unshift(lines.shift().replace(/^[ ]+/, ''));
let [first, ...rest] = lines;
item = ' '.repeat(firstCharacter) + first + '\n' + rest.map(line => indent + line).join('\n').replace(/[ ]+$/, '');
if (state.get('hasCodeBlockFollowing')) {
return ` ${marker} ${item}`;
}
return item;
return `${marker} ${item}`;
}
*'ordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
*'ordered-list'(props, state) {
let start = 1;
if (props && props.start != null) {
start = props.start;
}
let delimiter = '.';
if (state.get('previous.type') === 'numbered' && state.get('previous.delimiter') === '.') {
delimiter = ')';
}
let hasCodeBlockFollowing = state.get('nextAnnotation.type') === 'code' &&
state.get('nextAnnotation.attributes.style') === 'block';
state.push({
type: 'ordered-list',
indent: indent + 1,
index: 1
isList: true,
type: 'numbered',
digit: start,
previous: state.get('previous'),
delimiter,
hasCodeBlockFollowing,
tight: props && props.tight
});
let list = yield;
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
if (props && props.tight) {
list = list.map(item => item.replace(/([ \n])+$/, '\n'));
}
return markdown;
state.set('previous', {
isList: true,
type: 'numbered',
delimiter
});
return list.join('') + '\n';
}
*'unordered-list'(_, state) {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
*'unordered-list'(props, state) {
let delimiter = '-';
if (state.get('previous.type') === 'bulleted' && state.get('previous.delimiter') === '-') {
delimiter = '+';
}
let hasCodeBlockFollowing = state.get('nextAnnotation.type') === 'code' &&
state.get('nextAnnotation.attributes.style') === 'block';
state.push({
type: 'unordered-list',
indent: indent + 1,
isList: true,
type: 'bulleted',
previous: state.get('previous'),
delimiter,
tight: props && props.tight,
hasCodeBlockFollowing
});
let list = yield;
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
state.set('previous', {
isList: true,
type: 'bulleted',
delimiter
});
if (props && props.tight) {
list = list.map(item => item.replace(/([ \n])+$/, '\n'));
}
return markdown;
return list.join('') + '\n';
}
*'paragraph'() {
let rawText = yield;
let text = rawText.join('');
if (text.lastIndexOf('\n\n') === Math.max(text.length - 2, 0)) {
return text;
*'paragraph'(_, state) {
let text = yield;
if (state.get('tight')) {
return text.join('') + '\n';
}
return `${text}\n\n`;
return text.join('') + '\n\n';
}
*renderAnnotation(annotation, state) {
let rule = this[annotation.type];
if (rule) {
return yield* this[annotation.type](annotation.attributes, state);
}
else {
let text = yield;
return text.join('');
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sUUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLFNBQVMsQ0FBQztJQUNkLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFFdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUFDLEtBQUssRUFBRSxDQUFDO0lBQUMsQ0FBQztJQUN2RCxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUFDLEdBQUcsRUFBRSxDQUFDO0lBQUMsQ0FBQztJQUV2RCxNQUFNLENBQUM7UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8seUJBQTBCLFNBQVEsUUFBUTtJQU90RCxDQUFDLE1BQU07UUFDTCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUtELENBQUMsTUFBTTtRQUNMLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFF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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sUUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLFNBQVMsQ0FBQztJQUNkLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFFdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUFDLEtBQUssRUFBRSxDQUFDO0lBQUMsQ0FBQztJQUN2RCxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUFDLEdBQUcsRUFBRSxDQUFDO0lBQUMsQ0FBQztJQUV2RCxNQUFNLENBQUM7UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBS0QsMkJBQTJCLElBQVk7SUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsb0NBQW9DLEVBQUUsTUFBTSxDQUFDO1NBQ3JELE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1NBQzVCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1NBQ3RCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUs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
{
"name": "@atjson/renderer-commonmark",
"version": "0.6.5",
"version": "0.7.1",
"description": "A brand new TypeScript library.",

@@ -18,10 +18,12 @@ "main": "dist/commonjs/index.js",

"devDependencies": {
"@atjson/core": "^0.5.12",
"@atjson/hir": "^0.5.17",
"tslint": "^5.7.0",
"typescript": "^2.4.2"
"@atjson/document": "^0.7.0",
"@atjson/hir": "^0.7.0",
"@atjson/source-commonmark": "^0.7.1",
"commonmark-spec": "^0.28.0",
"tslint": "^5.9.1",
"typescript": "^2.6.2"
},
"dependencies": {
"@atjson/renderer-hir": "^0.5.20"
"@atjson/renderer-hir": "^0.7.0"
}
}

@@ -20,4 +20,47 @@ import { HIRNode } from '@atjson/hir';

type CodeStyle = 'block' | 'inline' | 'fence';
// http://spec.commonmark.org/0.28/#backslash-escapes
function escapePunctuation(text: string) {
return text.replace(/([#$%'"!()*+,=?@\\\[\]\^_`{|}~-])/g, '\\$1')
.replace(/(\d+)\./g, '$1\\.')
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function escapeAttribute(text: string) {
return text.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)');
}
function getNumberOfRequiredBackticks(text: string) {
let index = 0;
let counts = [0];
for (let i = 0, len = text.length; i < len; i++) {
if (text[i] === '`') {
counts[index] = counts[index] + 1;
} else if (counts[index] !== 0) {
counts.push(0);
index++;
}
}
return counts.sort().reduce((result, count) => {
if (count === result) {
return result + 1;
}
return result;
}, 1);
}
export default class CommonmarkRenderer extends Renderer {
renderText(text: string, state: State) {
if (state.get('isPreformatted')) {
return text;
}
return escapePunctuation(text).replace(/\u00A0/gu, '&nbsp;');
}
/**

@@ -30,11 +73,14 @@ * The root allows us to normalize the document

let document = yield;
return document.join('').trimRight();
return document.join('');
}
/**
* Bold text looks like __this__ in Markdown.
* Bold text looks like **this** in Markdown.
*
* Asterisks are used here because they can split
* words; underscores cannot split words.
*/
*'bold'(): IterableIterator<string> {
let [before, text, after] = yield* split();
return `${before}__${text}__${after}`;
return `${before}**${text}**${after}`;
}

@@ -48,3 +94,3 @@

*/
*'blockquote'(): IterableIterator<string> {
*'blockquote'(_, state: State): IterableIterator<string> {
let text: string[] = yield;

@@ -55,9 +101,11 @@ let lines: string[] = text.join('').split('\n');

while (lines[startOfQuote].match(/^(\s)*$/)) startOfQuote++;
while (lines[endOfQuote - 1].match(/^(\s)*$/)) endOfQuote--;
while (startOfQuote < endOfQuote - 1 && lines[startOfQuote].match(/^\s*$/)) startOfQuote++;
while (endOfQuote > startOfQuote + 1 && lines[endOfQuote - 1].match(/^\s*$/)) endOfQuote--;
return [
...lines.slice(startOfQuote, endOfQuote).map(line => `> ${line}`),
'\n'
].join('\n');
let quote = lines.slice(startOfQuote, endOfQuote).map(line => `> ${line}`).join('\n') + '\n';
if (!state.get('tight')) {
quote += '\n';
}
return quote;
}

@@ -69,7 +117,21 @@

* ###### and six `#` being the least important
*
* If the heading spans multiple lines, then we will use the underline
* style, using a series of `=` or `-` markers. This only works for
* headings of level 1 or 2, so any other level will be broken.
*/
*'heading'(props: { level: number }): IterableIterator<string> {
let heading = yield;
let text = yield;
let level = new Array(props.level + 1).join('#');
return `${level} ${heading.join('')}\n\n`;
let heading = text.join('');
// Multiline headings are supported for level 1 and 2
if (heading.indexOf('\n') !== -1) {
if (props.level === 1) {
return `${heading}\n====\n`;
} else if (props.level === 2) {
return `${heading}\n----\n`;
}
}
return `${level} ${heading}\n`;
}

@@ -79,7 +141,7 @@

* A horizontal rule separates sections of a story
* ---
* ***
* Into multiple sections.
*/
*'horizontal-rule'(): IterableIterator<string> {
return '---\n\n';
return '***\n';
}

@@ -91,3 +153,7 @@

*/
*'image'(props: { alt: string, url: string }): IterableIterator<string> {
*'image'(props: { alt: string, title?: string, url: string }): IterableIterator<string> {
if (props.title) {
let title = props.title.replace(/"/g, '\\"');
return `![${props.alt}](${props.url} "${title}")`;
}
return `![${props.alt}](${props.url})`;

@@ -99,5 +165,11 @@ }

*/
*'italic'(): IterableIterator<string> {
*'italic'(_, state: State): IterableIterator<string> {
// This adds support for strong emphasis (per Commonmark)
// Strong emphasis includes _*two*_ emphasis markers around text.
let isItalicized = state.get('isItalicized');
state.set('isItalicized', true);
let [before, text, after] = yield* split();
return `${before}*${text}*${after}`;
state.set('isItalicized', isItalicized);
let markup = isItalicized ? '_' : '*';
return `${before}${markup}${text}${markup}${after}`;
}

@@ -116,24 +188,98 @@

*/
*'link'(props: { href: string }): IterableIterator<string> {
*'link'(props: { href: string, title?: string }): IterableIterator<string> {
let [before, text, after] = yield* split();
return `${before}[${text}](${props.href})${after}`;
let href = escapeAttribute(props.href);
if (props.title) {
let title = props.title.replace(/"/g, '\\"');
return `${before}[${text}](${href} "${title}")${after}`;
}
return `${before}[${text}](${href})${after}`;
}
/**
* A `code` span can be inline or as a block:
*
* ```js
* function () {}
* ```
*/
*'code'(props: { style: CodeStyle, info?: string }, state: State): IterableIterator<string> {
state.push({ isPreformatted: true, htmlSafe: false });
let text = yield;
state.pop();
let code = text.join('');
if (props.style === 'fence') {
code = '\n' + code;
let info = props.info || '';
let newlines = '\n';
if (state.get('isList') && state.get('nextAnnotation')) {
newlines += '\n';
}
if (code.indexOf('```') !== -1) {
return `~~~${info}${code}~~~${newlines}`;
} else {
return `\`\`\`${info}${code}\`\`\`${newlines}`;
}
} else if (props.style === 'block') {
return code.split('\n').map(line => ` ${line}`).join('\n') + '\n';
} else {
// MarkdownIt strips all leading and trailing whitespace from code blocks,
// which means that we get an empty string for a single whitespace (` `).
if (code.length === 0) {
return '` `';
// We need to properly escape backticks inside of code blocks
// by using variable numbers of backticks.
} else {
let backticks = '`'.repeat(getNumberOfRequiredBackticks(code));
return `${backticks}${code}${backticks}`;
}
}
}
*'html'(props: { type: string }, state: State): IterableIterator<string> {
state.push({ isPreformatted: true, htmlSafe: true });
let text = yield;
state.pop();
let html = text.join('');
if (props.type === 'block') {
return html + '\n';
}
return html;
}
/**
* A list item is part of an ordered list or an unordered list.
*/
*'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();
let digit: number = state.get('digit');
let delimiter = state.get('delimiter');
let marker: string = delimiter;
if (state.get('type') === 'numbered') {
marker = `${digit}${delimiter}`;
state.set('digit', digit + 1);
}
let indent = ' '.repeat(marker.length + 1);
let text: string[] = yield;
let item: string = text.join('');
let firstCharacter = 0;
while (item[firstCharacter] === ' ') firstCharacter++;
let lines = item.split('\n');
lines.push(lines.pop().replace(/[ ]+$/, ''));
lines.unshift(lines.shift().replace(/^[ ]+/, ''));
let [first, ...rest] = lines;
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}`;
item = ' '.repeat(firstCharacter) + first + '\n' + rest.map(line => indent + line).join('\n').replace(/[ ]+$/, '');
// Code blocks using spaces can follow lists,
// however, they will be included in the list
// if we don't adjust spacing on the list item
// to force the code block outside of the list
// See http://spec.commonmark.org/dingus/?text=%20-%20%20%20hello%0A%0A%20%20%20%20I%27m%20a%20code%20block%20_outside_%20the%20list%0A
if (state.get('hasCodeBlockFollowing')) {
return ` ${marker} ${item}`;
}
return item;
return `${marker} ${item}`;
}

@@ -146,11 +292,26 @@

*/
*'ordered-list'(_, state: State): IterableIterator<string> {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
*'ordered-list'(props: { start?: number, tight: boolean }, state: State): IterableIterator<string> {
let start = 1;
if (props && props.start != null) {
start = props.start;
}
let delimiter = '.';
if (state.get('previous.type') === 'numbered' && state.get('previous.delimiter') === '.') {
delimiter = ')';
}
// Handle indendation for code blocks that immediately follow
// a list.
let hasCodeBlockFollowing = state.get('nextAnnotation.type') === 'code' &&
state.get('nextAnnotation.attributes.style') === 'block');
state.push({
type: 'ordered-list',
indent: indent + 1,
index: 1
isList: true,
type: 'numbered',
digit: start,
previous: state.get('previous'),
delimiter,
hasCodeBlockFollowing,
tight: props && props.tight
});

@@ -160,60 +321,66 @@ let list = yield;

let markdown = `${list.join('\n')}\n\n`;
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
if (props && props.tight) {
list = list.map(item => item.replace(/([ \n])+$/, '\n');
}
return markdown;
state.set('previous', {
isList: true,
type: 'numbered',
delimiter
});
return list.join('') + '\n';
}
/**
* - An ordered list contains
* - An unordered list contains
* - A number
* - Of things with dashes preceding them
*/
*'unordered-list'(_, state: State): IterableIterator<string> {
let indent = state.get('indent');
if (indent == null) {
indent = -1;
*'unordered-list'(props: { tight: boolean }, state: State): IterableIterator<string> {
let delimiter = '-';
if (state.get('previous.type') === 'bulleted' && state.get('previous.delimiter') === '-') {
delimiter = '+';
}
// Handle indendation for code blocks that immediately follow
// a list.
let hasCodeBlockFollowing = state.get('nextAnnotation.type') === 'code' &&
state.get('nextAnnotation.attributes.style') === 'block');
state.push({
type: 'unordered-list',
indent: indent + 1,
isList: true,
type: 'bulleted',
previous: state.get('previous'),
delimiter,
tight: props && props.tight,
hasCodeBlockFollowing
});
let list = yield;
state.pop();
let markdown = `${list.join('\n')}\n\n`;
if (state.get('type') === 'ordered-list' ||
state.get('type') === 'unordered-list') {
return `\n${markdown}`;
state.set('previous', {
isList: true,
type: 'bulleted',
delimiter
});
if (props && props.tight) {
list = list.map(item => item.replace(/([ \n])+$/, '\n');
}
return markdown;
return list.join('') + '\n';
}
/**
* A paragraph is the base unit of text.
*
* They are created by adding two newlines between
* text.
* Paragraphs are delimited by two or more newlines in markdown.
*/
*'paragraph'(): IterableIterator<string> {
let rawText = yield;
let text = rawText.join('');
if (text.lastIndexOf('\n\n') === Math.max(text.length - 2, 0)) {
return text;
*'paragraph'(_, state: State): IterableIterator<string> {
let text = yield;
if (state.get('tight')) {
return text.join('') + '\n';
}
return `${text}\n\n`;
return text.join('') + '\n\n';
}
*renderAnnotation(annotation: HIRNode, state: State) {
let rule = this[annotation.type];
if (rule) {
return yield* this[annotation.type](annotation.attributes, state);
} else {
let text = yield;
return text.join('');
}
}
}
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