Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / postcss-html / lib / markdown-parser.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-html/lib/markdown-parser.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-html/lib/markdown-parser.js
new file mode 100644 (file)
index 0000000..410ef56
--- /dev/null
@@ -0,0 +1,34 @@
+"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,
+               };
+       });
+};