HTML, CSS, JavaScript#
Inline document#
The {exec} html directive allows displaying a
complete HTML document as an <iframe>. The <iframe> defaults to a 16/9
aspect ratio, but its size can be adjusted with
:output-style:.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
h1 { margin: 0; font-size: 3rem; }
</style>
<script>
document.addEventListener('DOMContentLoaded', () => {
document.querySelector('h1').appendChild(document.createTextNode('world!'));
});
</script>
</head>
<body>
<h1>Hello, </h1>
<p>A link to <a href="https://t-doc.org/">this site</a>.
</body>
</html>
Partial content#
Browsers are smart enough to render <iframe> tags with partial content
correctly. So an {exec} html block can specify
just an HTML snippet, and optionally styles (with a <style> element):
<style>
h1 { margin: 0; font-size: 5rem; }
</style>
<h1>Hello, world!</h1>
Or scripts (with a <script> element):
Please click <button>here</button>
<script>
document.querySelector('button')
.addEventListener('click', () => alert('Click!'));
</script>
Web application#
Markdown already allows adding arbitrary HTML. Page-specific stylesheets and
scripts can be added with the styles and scripts entries of a
metadata directive.
Please click (count: 0)