New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

gitbook-markdown

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gitbook-markdown - npm Package Compare versions

Comparing version 0.4.1 to 0.4.2

9

lib/annotate_blocks.js

@@ -19,3 +19,4 @@ var engine = require('./annotate_engine');

text: /^[^\n]+/,
math: /^ *(\${2,}) *([\s\S]+?)\s*\1 *(?:\n+|$)/,
//rawStart: /^{%([\s]*)raw([\s]*)%}/,
//rawEnd: /^{%([\s]*)endraw([\s]*)%}/
// These are lower level, ignore them

@@ -29,5 +30,5 @@ //bullet: /(?:[*+-]|\d+\.)/,

var ruleTypes = [
'newline', 'code', 'fences', 'footnote', 'math', 'heading',
'nptable', 'lheading', 'hr', 'blockquote', 'list',
'html', 'def', 'table', 'paragraph', 'text',
'newline', 'code', 'fences', 'footnote', 'heading',
'nptable', 'lheading', 'hr', 'blockquote', 'list',
'html', 'def', 'table', 'paragraph', 'text',
];

@@ -34,0 +35,0 @@

@@ -18,4 +18,5 @@ var engine = require('./annotate_engine');

del: /^~~(?=\S)([\s\S]*?\S)~~/,
text: /^[\s\S]+?(?=[\\<!\[_*`$~]|https?:\/\/| {2,}\n|$)/,
math: /^\$\$\s*([\s\S]*?[^\$])\s*\$\$(?!\$)/,
text: /^[\s\S]+?(?=[\\<!\[_*`$~]|{%([\s]*)raw([\s]*)%}|{%([\s]*)endraw([\s]*)|https?:\/\/| {2,}\n|$)/,
rawStart: /^{%([\s]*)raw([\s]*)%}/,
rawEnd: /^{%([\s]*)endraw([\s]*)%}/ ///[\s\S]*{%([\s]*)endraw([\s]*)%}/
//_inside: /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,

@@ -27,5 +28,5 @@ //_href: /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/

var ruleTypes = [
'escape', 'autolink', 'url', 'tag', 'link', 'reflink',
'nolink', 'reffn', 'strong', 'em', 'code', 'br',
'del', 'text', 'math'
'escape', 'autolink', 'url', 'tag', 'link', 'reflink',
'nolink', 'reffn', 'strong', 'em', 'code', 'br',
'del', 'rawStart', 'rawEnd', 'text'
];

@@ -32,0 +33,0 @@

@@ -18,30 +18,34 @@ var _ = require('lodash');

function escapeCodeElement(el) {
if(el.type == 'code') {
el.raw = escape(el.raw);
}
return el;
}
function preparePage(src) {
var lexed = annotate.blocks(src);
var levelRaw = 0;
var escapeCodeElement = function(el) {
if (el.type == 'code' && levelRaw == 0) {
el.raw = escape(el.raw);
} else if (el.type == 'rawStart') {
levelRaw = levelRaw + 1;
} else if (el.type == 'rawEnd') {
levelRaw = 0;
}
return el;
};
var escaped = lexed
// Escape code blocks
.map(escapeCodeElement)
// Escape inline code blocks
.map(function(el) {
// Only escape paragraphs and headings
if(!(el.type == 'paragraph' || el.type == 'heading')) {
return el;
}
if(el.type == 'paragraph' || el.type == 'heading') {
var line = annotate.inline(el.raw);
// Escape inline code blocks
var newInline = annotate.inline(el.raw).map(escapeCodeElement);
// Escape inline code blocks
line = line.map(escapeCodeElement);
// Change raw source code
el.raw = combine(newInline);
// Change raw source code
el.raw = combine(line);
return el;
return el;
} else {
return escapeCodeElement(el);
}
});

@@ -53,3 +57,5 @@

function parsePage(src) {
var options = _.extend({}, kramed.defaults);
var options = _.extend({}, kramed.defaults, {
mathjax: false
});

@@ -56,0 +62,0 @@ return {

{
"name": "gitbook-markdown",
"version": "0.4.1",
"version": "0.4.2",
"homepage": "https://www.gitbook.com",

@@ -5,0 +5,0 @@ "description": "Parse markdown content for gitbook",

@@ -48,2 +48,22 @@ var fs = require('fs');

});
it('should escape codeblocks with nunjucks tags in {% raw %} tags', function() {
assert.equal(
page.prepare('{% raw %}Hello {{ "Bonjour" }} ```test```{% endraw %}'),
'{% raw %}Hello {{ "Bonjour" }} ```test```{% endraw %}'
);
assert.equal(
page.prepare('{% raw %}Hello {{ "Bonjour" }} {% raw %}{% endraw %}```test```'),
'{% raw %}Hello {{ "Bonjour" }} {% raw %}{% endraw %}{% raw %}```test```{% endraw %}'
);
assert.equal(
page.prepare('```{% raw %}Hello {{ "Bonjour" }} {% raw %}```'),
'{% raw %}```{% raw %}Hello {{ "Bonjour" }} {% raw %}```{% endraw %}'
);
});
it('should not process math', function() {
assert.equal(page.prepare("Hello $world$"), "Hello $world$");
assert.equal(page.prepare("Hello $$world$$"), "Hello $$world$$");
});
});
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