teddy
Version:
🧸 Teddy is the most readable and easy to learn templating language there is!
1 lines • 103 kB
Source Map (JSON)
{"version":3,"file":"teddy.min.mjs","mappings":"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","sources":["webpack://teddy/webpack/bootstrap","webpack://teddy/./cheerioPolyfill.js","webpack://teddy/./teddy.js"],"sourcesContent":["// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// stub out cheerio using native dom methods for frontend so we don't have to bundle cheerio on the frontend\nexport function load (html) {\n const doc = parseTeddyDOMFromString(html) // create a DOM\n\n // return a querySelector function with function chains\n // e.g. dom('include') or dom(el) from teddy\n const $ = function (query) { // query can be a string, or a dom object\n // if query is a string, we need to create a dom object from the string: an object with elements in it, e.g. a list of include tag objects\n if (typeof query === 'string') {\n const els = doc.querySelectorAll(query)\n return els // return the object collection\n }\n\n // if query is an object, it's assumed we're trying to perform operations on a single dom node\n const el = query\n return {\n\n // e.g. dom(el).children() from teddy\n children: function () {\n return el.childNodes\n },\n\n // e.g. dom(el).find() from teddy\n find: function (selector) {\n return el.querySelectorAll(selector)\n },\n\n // e.g. dom(arg).html() from teddy\n html: function () {\n return getTeddyDOMInnerHTML(el)\n },\n\n // e.g. dom(arg).toString() from teddy\n toString: function () {\n return getTeddyDOMOuterHTML(el)\n },\n\n // e.g. dom(el).attr('teddydeferreddynamicinclude', 'true') from teddy\n attr: function (attr, val) {\n return el.setAttribute(attr, val)\n },\n\n // dom(el).removeAttr(attr) from teddy\n removeAttr: function (attr) {\n return el.removeAttribute(attr)\n },\n\n // e.g. dom(el).replaceWith(localDom.html()) from teddy\n replaceWith: function (html) {\n // can either be a string or an array of elements\n if (typeof html === 'object') {\n let newHtml = ''\n for (const el of html) {\n if (el.nodeType === window.Node.COMMENT_NODE) newHtml += '<!--' + el.textContent + '-->'\n else newHtml += el.outerHTML || el.textContent\n }\n html = newHtml\n }\n const temp = document.createElement('div')\n temp.innerHTML = html\n el.replaceWith(...temp.childNodes)\n },\n\n // e.g. dom(el).remove() from teddy\n remove: function () {\n return el.remove()\n }\n }\n }\n\n // e.g. dom.html() from teddy\n $.html = function () {\n return getTeddyDOMInnerHTML(doc)\n }\n\n // e.g. dom.toString() from teddy\n $.toString = function () {\n return getTeddyDOMOuterHTML(doc)\n }\n\n return $\n}\n\nload.isCheerioPolyfill = true\n\n// DOM parser function like DOMParser's parseFromString but allows Teddy elements to exist in places where they otherwise wouldn't be allowed, like inside of <select> elements\nfunction parseTeddyDOMFromString (html) {\n const selfClosingTags = new Set(['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'])\n const root = document.createElement('body')\n const dom = [root]\n const openTags = [] // stack to track open tags\n const tagAndCommentRegex = /<\\/?([a-zA-Z0-9]+)([^>]*)>|<!--([\\s\\S]*?)-->/g\n const attrRegex = /([a-zA-Z0-9-:._]+)(?:=([\"'])(.*?)\\2|([^>\\s]+))?/g\n let lastIndex = 0\n let match\n\n // loop through each match and build a DOM\n while ((match = tagAndCommentRegex.exec(html)) !== null) {\n if (!dom[dom.length - 1]) throw new Error('Error parsing your template. There may be a coding mistake in your HTML. Look for extra closing </tags> and other common mistakes.')\n const textBeforeMatch = html.slice(lastIndex, match.index)\n\n // append text nodes\n if (textBeforeMatch.trim()) {\n const textNode = document.createTextNode(textBeforeMatch)\n dom[dom.length - 1].appendChild(textNode)\n }\n\n if (match[0].startsWith('<!--')) {\n // handle comments\n const commentNode = document.createComment(match[3])\n dom[dom.length - 1].appendChild(commentNode)\n } else {\n // handle tags\n const [fullMatch, tagName, attrString] = match\n const lowerCaseTagName = tagName.toLowerCase()\n const isClosingTag = fullMatch.startsWith('</')\n if (isClosingTag) {\n if (selfClosingTags.has(lowerCaseTagName)) {\n // convert incorrect closing tag for self-closing tag to self-closing tag\n const element = document.createElement(tagName)\n dom[dom.length - 1].appendChild(element)\n } else {\n // check if the closing tag matches the most recent open tag\n if (openTags.length > 0 && openTags[openTags.length - 1] === lowerCaseTagName) {\n openTags.pop()\n dom.pop()\n }\n }\n } else {\n // create a new element\n const element = document.createElement(tagName)\n\n // set attributes\n let attrMatch\n const attrMap = new Map()\n while ((attrMatch = attrRegex.exec(attrString)) !== null) {\n const attrName = attrMatch[1]\n const attrValue = attrMatch[3] || attrMatch[4] || ''\n\n // handle duplicate attributes for special tags\n if (attrMap.has(attrName)) {\n let count = 1\n let newAttrName\n do {\n newAttrName = `${attrName}-teddyduplicate${count}`\n count++\n } while (attrMap.has(newAttrName))\n attrMap.set(newAttrName, attrValue)\n } else attrMap.set(attrName, attrValue)\n }\n\n // apply attributes to the element\n for (const [name, value] of attrMap) {\n try {\n // replace elements with `src` attributes with `data-teddy-defer-attr-src` so the browser doesn't try to prefetch the asset\n // this is needed because the value of the `src` attribute could be a {teddyVariable} and that fetch won't resolve\n switch (lowerCaseTagName) {\n case 'img':\n case 'video':\n case 'audio':\n case 'iframe':\n case 'script':\n if (name === 'src') element.setAttribute('data-teddy-defer-attr-src', value) // replace src with data-teddy-defer-attr-src\n else element.setAttribute(name, value || '')\n break\n case 'link':\n if (name === 'href') element.setAttribute('data-teddy-defer-attr-href', value) // replace src with data-teddy-defer-attr-href\n else element.setAttribute(name, value || '')\n break\n default:\n element.setAttribute(name, value || '')\n }\n } catch (e) {\n console.warn('Error parsing an element attribute. You might have a typo in your HTML. A common cause is two spaces between element attributes.')\n }\n }\n\n // append the new element to the current parent\n dom[dom.length - 1].appendChild(element)\n\n // push the new element to the dom if it's not self-closing\n if (!selfClosingTags.has(lowerCaseTagName) && !fullMatch.endsWith('/>')) {\n dom.push(element)\n openTags.push(lowerCaseTagName)\n }\n }\n }\n\n lastIndex = tagAndCommentRegex.lastIndex\n }\n\n // append any remaining text after the last match\n if (lastIndex < html.length) {\n const remainingText = html.slice(lastIndex)\n if (remainingText.trim()) {\n const textNode = document.createTextNode(remainingText)\n dom[dom.length - 1].appendChild(textNode)\n }\n }\n\n return root\n}\n\n// custom functions to get inner/outer HTML without escaping various things to prevent teddy from infinitely escaping them\nconst doublyEncodedEntities = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '"',\n '&#39;': ''',\n '&#x2F;': '/'\n}\nconst entityEntries = Object.entries(doublyEncodedEntities)\nfunction getTeddyDOMInnerHTML (node) {\n // build html string\n let html = ''\n for (const child of node.childNodes) {\n if (child.nodeType === window.Node.ELEMENT_NODE) {\n let outerHTML = child.outerHTML\n for (const [doublyEncoded, singleEncoded] of entityEntries) outerHTML = outerHTML.replace(new RegExp(doublyEncoded, 'g'), singleEncoded)\n html += outerHTML\n } else if (child.nodeType === window.Node.TEXT_NODE) {\n let textContent = child.textContent\n for (const [doublyEncoded, singleEncoded] of entityEntries) textContent = textContent.replace(new RegExp(doublyEncoded, 'g'), singleEncoded)\n html += textContent\n } else if (child.nodeType === window.Node.COMMENT_NODE) {\n let commentContent = child.textContent\n for (const [doublyEncoded, singleEncoded] of entityEntries) commentContent = commentContent.replace(new RegExp(doublyEncoded, 'g'), singleEncoded)\n html += `<!--${commentContent}-->`\n }\n }\n\n return html\n}\nfunction getTeddyDOMOuterHTML (node) {\n // start with the outerHTML of the node\n let outerHTML = ''\n\n if (node.nodeType === window.Node.ELEMENT_NODE) {\n outerHTML = node.outerHTML\n } else if (node.nodeType === window.Node.TEXT_NODE) {\n outerHTML = node.textContent\n } else if (node.nodeType === window.Node.COMMENT_NODE) {\n outerHTML = `<!--${node.textContent}-->`\n }\n\n // replace doubly encoded entities\n for (const [doublyEncoded, singleEncoded] of entityEntries) outerHTML = outerHTML.replace(new RegExp(doublyEncoded, 'g'), singleEncoded)\n\n return outerHTML\n}\n","// #region globals\n\nimport fs from 'fs' // node filesystem module\nimport path from 'path' // node path module\nimport { load as cheerioLoad } from 'cheerio/slim' // dom parser\n\nconst cheerioOptions = { xml: { xmlMode: false, lowerCaseAttributeNames: false, decodeEntities: false } }\nconst browser = cheerioLoad.isCheerioPolyfill // true if we are executing in the browser context\nconst params = {} // teddy parameters\nsetDefaultParams() // set params to the defaults\nlet templates = {} // loaded templates are stored as object collections, e.g. { \"myTemplate.html\": \"<p>some markup</p>\"}\nconst caches = {} // a place to store cached portions of templates\nconst templateCaches = {} // a place to store cached full templates\n\n// #endregion\n\n// #region private methods\n\n// loads the template from the filesystem\nfunction loadTemplate (template) {\n // ensure template is a string\n if (typeof template !== 'string') {\n if (params.verbosity > 1) console.warn('teddy.loadTemplate attempted to load a template which is not a string.')\n return ''\n }\n const name = template\n let register = false\n if (!templates[template] && template.indexOf('<') === -1 && fs && fs.readFileSync) {\n // template is not found, it is not code, and we're in the node.js context\n register = true\n // append extension if not present\n if (template.slice(-5) !== '.html') template += '.html'\n try {\n template = fs.readFileSync(template, 'utf8')\n } catch (e) {\n try {\n template = fs.readFileSync(params.templateRoot + template, 'utf8')\n } catch (e) {\n try {\n template = fs.readFileSync(params.templateRoot + '/' + template, 'utf8')\n } catch (e) {\n // do nothing, attempt to render it as code\n register = false\n }\n }\n }\n } else {\n if (templates[template]) {\n template = templates[template]\n register = true\n } else {\n // didn't find it; append extension if not present and check it again\n if (template.slice(-5) !== '.html') {\n template += '.html'\n }\n if (templates[template]) {\n template = templates[template]\n register = true\n }\n template = removeTeddyComments(template)\n }\n }\n if (register) {\n // register the new template and return the code\n template = removeTeddyComments(template)\n templates[name] = template\n return template\n } else {\n // return the template name which is presumed to be code\n return template.slice(-5) === '.html' ? template.substring(0, template.length - 5) : template\n }\n}\n\n// remove teddy {! comments !} and <!--! comments -->; also replace <!--# content --> with <escape>content</escape>\nfunction removeTeddyComments (renderedTemplate) {\n let oldTemplate\n do {\n oldTemplate = renderedTemplate\n let vars\n\n try {\n vars = matchByDelimiter(renderedTemplate, '{!', '!}')\n } catch (e) {\n return renderedTemplate // it will match {! comments {! with comments in them !} !} but if there are unbalanced brackets, just return the original text\n }\n for (let i = 0; i < vars.length; i++) renderedTemplate = renderedTemplate.replace(`{!${vars[i]}!}`, '')\n\n try {\n vars = matchByDelimiter(renderedTemplate, '<!--!', '-->')\n } catch (e) {\n return renderedTemplate\n }\n for (let i = 0; i < vars.length; i++) renderedTemplate = renderedTemplate.replace(`<!--!${vars[i]}-->`, '')\n\n try {\n vars = matchByDelimiter(renderedTemplate, '<!--#', '-->')\n } catch (e) {\n return renderedTemplate\n }\n for (let i = 0; i < vars.length; i++) renderedTemplate = renderedTemplate.replace(`<!--#${vars[i]}-->`, `<escape>${vars[i]}</escape>`)\n } while (oldTemplate !== renderedTemplate)\n return renderedTemplate\n}\n\n// find all cache elements and replace them with the rendered contents of their cache, then remove the cache element\nfunction replaceCacheElements (dom, model) {\n let parsedTags\n do {\n parsedTags = 0\n const tags = dom('cache:not([defer])')\n if (tags.length > 0) {\n for (const el of tags) {\n if (browser) el.attribs = getAttribs(el)\n const name = el.attribs.name\n if (name.includes('{')) continue\n const key = el.attribs.key || 'none'\n if (key.includes('{')) continue\n const cache = caches[name]\n if (cache && cache.entries) {\n const keyVal = el.attribs.key ? getOrSetObjectByDotNotation(model, key) : 'none'\n if (cache.entries[keyVal]) {\n const now = Date.now()\n // if max age is not set, then there is no max age and the cache content is still valid\n // or if last accessed + max age > now then the cache is not stale and the cache is still valid\n if (!(cache.maxAge && !cache.maxage) || cache.entries[keyVal].lastAccessed + (cache.maxAge || cache.maxage) > now) {\n const cacheContent = cache.entries[keyVal].markup\n cache.entries[keyVal].lastAccessed = now\n dom(el).replaceWith(cacheContent)\n } else {\n // if last accessed + max age <= now then the cache is stale and the cache is no longer valid\n delete caches[name].entries[keyVal]\n dom(el).attr('defer', 'true') // create a new cache\n }\n } else dom(el).attr('defer', 'true') // no cache exists for this yet; create after the template renders\n } else dom(el).attr('defer', 'true') // no cache exists for this yet; create after the template renders\n parsedTags++\n }\n }\n } while (parsedTags)\n return dom\n}\n\n// add an id to all <noteddy> or <noparse> tags, then remove their content temporarily until the template is fully parsed\nfunction tagNoParseBlocks (dom, model) {\n let parsedTags\n do {\n parsedTags = 0\n let tags = dom('noteddy:not([id]), noparse:not([id])')\n if (tags.length > 0) {\n for (const el of tags) {\n const id = model._noTeddyBlocks.push(dom(el).html()) - 1\n dom(el).replaceWith(`<noteddy id=\"${id}\"></noteddy>`)\n parsedTags++\n }\n }\n tags = dom('pre:not([id]):not([parse])')\n if (tags.length > 0) {\n for (const el of tags) {\n const id = model._noTeddyBlocks.push(dom(el).toString()) - 1\n dom(el).replaceWith(`<noteddy id=\"${id}\" pre=\"true\"></noteddy>`)\n parsedTags++\n }\n }\n } while (parsedTags)\n return dom\n}\n\n// parse <include> tags\nfunction parseIncludes (dom, model, dynamic) {\n let parsedTags\n let passes = 0\n do {\n passes++\n if (passes > params.maxPasses) throw new Error(`teddy could not finish rendering the template because the max number of passes over the template (${params.maxPasses}) was exceeded; there may be an infinite loop in your template logic.`)\n parsedTags = 0\n let tags\n // dynamic includes are includes like <include src=\"{sourcedFromVariable}\"></include>\n if (dynamic) tags = dom('include') // parse all includes\n else tags = dom('include:not([teddydeferreddynamicinclude])') // parse only includes that aren't dynamic\n if (tags.length > 0) {\n for (const el of tags) {\n // ensure this isn't the child of a no parse block\n let foundBody = false\n let next = false\n let parent = el.parent || el.parentNode\n while (!foundBody) {\n let parentName\n if (!parent) parentName = 'body'\n else parentName = parent.nodeName?.toLowerCase() || parent.name\n if (parentName === 'noparse' || parentName === 'noteddy') {\n next = true\n break\n } else if (parentName === 'body') foundBody = true\n else parent = parent.parent || parent.parentNode\n }\n if (next) continue\n // get attributes\n if (browser) el.attribs = getAttribs(el)\n const src = el.attribs.src\n if (!src) {\n if (params.verbosity > 1) console.warn('teddy encountered an include tag with no src attribute.')\n continue\n }\n if (src.startsWith('{')) {\n dom(el).attr('teddydeferreddynamicinclude', 'true') // mark it dynamic and then skip it\n continue\n }\n loadTemplate(src) // load the partial into the template list\n let contents = templates[src] || ''\n if (typeof templates[src] !== 'string' && params.includeNotFoundBehavior === 'display') {\n contents = `Template \"${src}\" not found!`\n if (params.verbosity > 1) console.warn(`teddy encountered an include tag with a src set to a template that could not be found: ${src}`)\n }\n const localModel = Object.assign({}, model)\n for (const arg of dom(el).children()) {\n const argName = browser ? arg.nodeName?.toLowerCase() : arg.name\n if (argName === 'arg') {\n if (browser) arg.attribs = getAttribs(arg)\n const argval = Object.keys(arg.attribs)[0]\n getOrSetObjectByDotNotation(localModel, argval, dom(arg).html())\n }\n }\n const hasNoteddy = contents.includes('</noteddy>')\n const hasNoparse = contents.includes('</noparse>')\n const hasPre = contents.includes('</pre>')\n const hasIf = contents.includes('</if>')\n const hasUnless = contents.includes('</unless>')\n const hasTrue = contents.includes(' true=')\n const hasFalse = contents.includes(' false=')\n const hasLoop = contents.includes('</loop>')\n const hasInline = contents.includes('</inline>')\n const hasEscape = contents.includes('</escape>') || contents.includes('<!--#')\n const hasSelected = contents.includes(' selected-value=') || contents.includes(' checked-value=')\n if (hasEscape) contents = parseEscapes(contents)\n let localDom\n if (hasNoteddy || hasNoparse || hasPre) {\n localDom = cheerioLoad(contents, cheerioOptions)\n localDom = tagNoParseBlocks(localDom, localModel)\n contents = localDom.html()\n }\n localDom = cheerioLoad(parseVars(contents, localModel), cheerioOptions)\n if (hasIf || hasUnless) localDom = parseConditionals(localDom, localModel)\n if (hasTrue || hasFalse) localDom = parseOneLineCo