Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
emmet-elem
Advanced tools
Readme
A small standalone library (~2k gzipped) containing the logic behind parsing Emmet syntax and building a caching DOM tree.
The provided functions are emmetSlots(strings, options = undefined)
, slotted(template, ...nodeData)
, and emmet(template, ...nodeData)
.
For the slotted
and emmet
functions to be compatible with template literal syntax, those are unable to contain options.
As the options
object is used to specify the document and cache to use for creating Node
s, there exists an extra function with global side-effects setDefDoc(document)
that controls which document will be used by default.
emmet
functionThe emmet
function will apply any parameters before returning an Element
or DocumentFragment
node expanded from the string.
Example 1.1:
const root = emmet`(a#a>(b.clss+c)*3)+d+e>${4 * 2}`;
assert(() => serializeToString(root) == [
`<a id="a">`,
`<b class="clss" /><c />`,
`<b class="clss" /><c />`,
`<b class="clss" /><c />`,
`</a><d /><e>8</e>`
].join(""));
Example 1.2:
const root = emmet`(a#a>(b.clss>${
(paramId, idx, max) => paramId + "<" + idx + "/" + max + ">"
}*2^c>${
(paramId, idx, max) => paramId + "<" + idx + "/" + max + ">"
})*3)+d+e>${4 * 1}`;
assert(() => serializeToString(root) == [
`<a id="a">`,
`<b class="clss">0<0/6>0<1/6></b><c>1<0/3></c>`,
`<b class="clss">0<2/6>0<3/6></b><c>1<1/3></c>`,
`<b class="clss">0<4/6>0<5/6></b><c>1<2/3></c>`,
`</a><d /><e>4</e>`
].join(""));
slotted
functionThe slotted
function will insert the special node emmet-slot
at each parameter location and fill those with the given value before returning an Element
or DocumentFragment
node wrapped together with a list of slots.
Example 2.1:
const { root, slots } = slotted`(a#a>(b.clss+c)*3)+d+e>${4 * 1}`;
slots[0].textNode = "8";
assert(() => serializeToString(root) == [
`<a id="a">`,
`<b class="clss">0<0/6>0<1/6></b><c>1<0/3></c>`,
`<b class="clss">0<2/6>0<3/6></b><c>1<1/3></c>`,
`<b class="clss">0<4/6>0<5/6></b><c>1<2/3></c>`,
`</a><d /><e>8</e>`
].join(""));
FAQs
Lightweight emmet expansion to DOM
The npm package emmet-elem receives a total of 16 weekly downloads. As such, emmet-elem popularity was classified as not popular.
We found that emmet-elem demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.