{
  "file": "lib/data-types/generate-guide.js",
  "content": "<pre class=\"language-javascript line-numbers\"><code class=\"language-javascript}\"><span aria-hidden=\"true\" role=\"presentation\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span><span class=\"token string\">'use strict'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> frontMatter <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'front-matter'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> parseMarkdown <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'../parse-markdown'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\" spellcheck=\"true\">/**\n * Handle syntax highlighting and creating meta information for a src file\n * @class DataTypes.GenerateGuide\n * @constructor\n * @param {Object} data\n * @param {string} data.fileSrc    Guide file src\n * @param {string} data.filePath Configured guide file path\n * @return {Object} Returns an object with guide data in the shape of:\n *                  `{ attributes, body, id, type }`\n *                  With the body parsed for markdown and handlebars contents\n */</span>\nmodule<span class=\"token punctuation\">.</span>exports <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token function\">generateGuide</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> fileSrc<span class=\"token punctuation\">,</span> filePath <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\" spellcheck=\"true\">// front-matter will pull guide meta data out and return content as body</span>\n  <span class=\"token keyword\">const</span> guide <span class=\"token operator\">=</span> <span class=\"token function\">frontMatter</span><span class=\"token punctuation\">(</span>fileSrc<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token comment\" spellcheck=\"true\">// Fallback to the guide file path if an id isn't declared</span>\n  guide<span class=\"token punctuation\">.</span>id <span class=\"token operator\">=</span> guide<span class=\"token punctuation\">.</span>attributes<span class=\"token punctuation\">.</span>id <span class=\"token operator\">||</span> filePath<span class=\"token punctuation\">.</span><span class=\"token function\">replace</span><span class=\"token punctuation\">(</span><span class=\"token regex\">/\\\\|\\//g</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'_'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  guide<span class=\"token punctuation\">.</span>attributes<span class=\"token punctuation\">.</span>linkText <span class=\"token operator\">=</span> guide<span class=\"token punctuation\">.</span>attributes<span class=\"token punctuation\">.</span>linkText <span class=\"token operator\">||</span> guide<span class=\"token punctuation\">.</span>attributes<span class=\"token punctuation\">.</span>linkLabel <span class=\"token operator\">||</span> guide<span class=\"token punctuation\">.</span>id<span class=\"token punctuation\">;</span>\n  guide<span class=\"token punctuation\">.</span>type <span class=\"token operator\">=</span> <span class=\"token string\">'guides'</span><span class=\"token punctuation\">;</span>\n  guide<span class=\"token punctuation\">.</span>body <span class=\"token operator\">=</span> <span class=\"token function\">parseMarkdown</span><span class=\"token punctuation\">(</span>guide<span class=\"token punctuation\">.</span>body<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">return</span> guide<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</code></pre>"
}