Fragment.js
A tiny tool for easily loading html fragments and templates
Install / Use
/learn @DanielRapp/Fragment.jsREADME
fragment.js
A minimalistic tool for easily loading html fragments
Examples
Example
Fragment.js allows you to load html fragments into any element, by just adding a data-fragment attribute.
<div data-fragment="fragment.html"></div>
Templating example
You can also use it for loading templates with the data-fragment-json attribute.
Mustache, Handlebars and Underscore
are supported by default and will automatically be used if they're available in the global scope.
But you can just override the window.fragment.render function if you want to use something else.
<div data-fragment-json="fragment.json">This is {{adjective}}!</div>
HTML as JSON
If the element already has an innerHTML, you only use the data-fragment attribute, and don't provide a custom renderer;
fragment.js will attempt to render Mustache, Handlebars then Underscore with the innerHTML as input.
<div data-fragment="mustache-fragment.html">{"adjective":"fantastic"}</div>
Combining
Of course, combining the two attributes also works.
<div data-fragment="mustache-fragment.html" data-fragment-json="fragment.json"></div>
Media queries
To only load certain fragments dependning on media queries, use the data-fragment-media attribute.
<div data-fragment="fragment.html" data-fragment-media="(max-width: 250px)"></div>
Configuring fragment.js
Overriding
To override the attribute names, just change fragment.html and fragment.json
fragment.html = 'src';
fragment.json = 'json';
<div data-src="mustache-fragment.html" data-json="fragment.json"></div>
JavaScript interface
To manually evaluate an element, or the complete document manually,
set the manual toggle to true (before including the script).
fragment = { manual: true };
And the following (after including the script)
fragment.evaluate(element); // evaluate just one element
fragment.evaluate(); // evaluate the whole document
Install
Simply use bower.
bower install fragment.js
Contact
If you have any questions or suggestions that doesn't fit GitHub, send them to @DanielRapp
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
