From 8bbd04a21a7f7fa452afeb36ab4da92607cbe5e5 Mon Sep 17 00:00:00 2001 From: Avi Goldman Date: Sun, 15 Oct 2017 10:26:39 -0700 Subject: [PATCH] added logic for 1 tag elements --- packages/heml-render/package-lock.json | 5 +++++ packages/heml-render/package.json | 1 + packages/heml-render/src/renderElement.js | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/packages/heml-render/package-lock.json b/packages/heml-render/package-lock.json index 0c2219b..db0707d 100644 --- a/packages/heml-render/package-lock.json +++ b/packages/heml-render/package-lock.json @@ -9,6 +9,11 @@ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-1.3.0.tgz", "integrity": "sha512-E2nU1Y39N5UgfLU8qwMlK0vZrZprIwWLeVmDYN8wd/e37hMtGzu2w1DBiREts0XHfgyZEQlj/hYr0H0izF0HDQ==" }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=" + }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", diff --git a/packages/heml-render/package.json b/packages/heml-render/package.json index 51c6abc..dfb2b58 100644 --- a/packages/heml-render/package.json +++ b/packages/heml-render/package.json @@ -6,6 +6,7 @@ "author": "SparkPost (https://sparkpost.com)", "license": "MIT", "dependencies": { + "html-tags": "^2.0.0", "is-promise": "^2.1.0", "lodash": "^4.17.4", "stringify-attributes": "^1.0.0" diff --git a/packages/heml-render/src/renderElement.js b/packages/heml-render/src/renderElement.js index 5f0302c..e99b913 100644 --- a/packages/heml-render/src/renderElement.js +++ b/packages/heml-render/src/renderElement.js @@ -1,6 +1,7 @@ import stringifyAttributes from 'stringify-attributes' import isPromise from 'is-promise' import { isString, isArray, defaults, mapValues, castArray } from 'lodash' +import selfClosingHtmlTags from 'html-tags/void' export default function (name, attrs, contents) { if (!isString(name)) { @@ -39,5 +40,9 @@ export default function (name, attrs, contents) { } /** if we have a regular ol element go ahead and convert it to a string */ + if (selfClosingHtmlTags.includes(name)) { + return `<${name}${attrs ? stringifyAttributes(attrs) : ''} />` + } + return `<${name}${attrs ? stringifyAttributes(attrs) : ''}>${contents || '‌'}` }