Sha256: 97fc4d38a8c3c9b84411952b6c9c94f2aa3842d7544cc7eff3206a7bee75f915

Contents?: true

Size: 1.34 KB

Versions: 24

Compression:

Stored size: 1.34 KB

Contents

"use strict";

const remark = require("remark");
const findAllAfter = require("unist-util-find-all-after");

function mdParser (source, opts, result) {
	const htmlInMd = opts.syntax.config.htmlInMd;
	if (!result && (htmlInMd == null || htmlInMd)) {
		result = require("postcss-html/extract")(source, opts, []);
	}
	const ast = remark().parse(source);
	const blocks = findAllAfter(ast, 0, (node) => (
		node.type === "code"
	)).map((block) => {
		if (result && (!block.lang || !/^(?:[sx]?html?|[sx]ht)$/i.test(block.lang))) {
			result = result.filter(styleHtm => {
				return styleHtm.startIndex >= block.position.end.offset ||
					styleHtm.startIndex + styleHtm.content.length <= block.position.start.offset;
			});
		}
		if (block.lang && /^(?:(?:\w*c)|le|wx|sa?|sugar)ss$/i.test(block.lang)) {
			let startIndex = source.indexOf(block.lang, block.position.start.offset) + block.lang.length;
			if (block.value) {
				startIndex = source.indexOf(block.value, startIndex);
			} else {
				startIndex = source.indexOf("\n", startIndex) + 1;
			}
			return {
				startIndex: startIndex,
				lang: block.lang.toLowerCase(),
				isMarkdown: true,
				content: source.slice(startIndex, block.position.end.offset).replace(/[ \t]*`*$/, ""),
			};
		}
	}).filter(Boolean);
	if (result) {
		return result.concat(blocks);
	} else {
		return blocks;
	}
};
module.exports = mdParser;

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
trusty-cms-6.3.1 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.7 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.6 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.5 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.4 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.3 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.2 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.1 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.3.5 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-5.0.0 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.3.4 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.3.3 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.3.2 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.3.1 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.3 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.2.3 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.2.2 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.2.1 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.2 node_modules/@stylelint/postcss-markdown/extract.js
trusty-cms-4.1.9 node_modules/@stylelint/postcss-markdown/extract.js