+++ /dev/null
-"use strict";
-
-const remark = require("remark");
-const findAllAfter = require("unist-util-find-all-after");
-
-module.exports = function (source, opts) {
- // Skip known non-markdown files.
- if (opts.from && !/\.(?:md|markdown)(?:\?.+)?$/i.test(opts.from)) {
- return;
- }
- let isStructureMD = false;
- const ast = remark().parse(source);
- const blocks = findAllAfter(ast, 0, (node) => {
- if (node.type === "code" && node.lang) {
- isStructureMD = true;
- return /^(?:(?:[ps]?c)|le|wx|sa?|sugar)ss$/i.test(node.lang);
- }
- });
-
- if (!isStructureMD) {
- return;
- }
-
- return blocks.map((block) => {
- const startIndex = source.indexOf(block.value, block.position.start.offset);
- const content = source.slice(startIndex, block.position.end.offset).replace(/[ \t]*`*$/, "");
- return {
- startIndex: startIndex,
- lang: block.lang.toLowerCase(),
- isMarkdown: true,
- content: content,
- };
- });
-};