Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
tumblr-theme-parser
Advanced tools
This tool allows custom Tumblr themes to be parsed / rendered locally, so they can be used outside of Tumblr.
It should be noted that this parser is slightly more strict than the one Tumblr uses. For example, each block tag must be matched with a closing block tag (omitting it will cause the parser to fail), and tags must open and close in the correct order ({block:a}{block:b}{/block:b}{/block:a}
is correct, but {block:a}{block:b}{/block:a}{/block:b}
will fail).
This parser allows case insensitivity in tag and variable names (because we want to match the Tumblr compiler as closely as possible). However, you should still use PascalCase for all of your identifiers, because this is the convention in Tumblr themes.
The Markup of the theme is passed in via STDIN
, and the compiled theme is sent to STDOUT
. Data for the theme is passed in the form of a file path. Warnings (like undefined variables or other non-fatal issues) are sent to STDERR
. A typical command might look like this:
$ tumblr-theme-parser -d data.json < theme.html > compiled-theme.html
For example, with a Tumblr theme like this (saved as theme.html
):
<html>
<head>
<title>{Title}</title>
</head>
<body>
{block:Posts}
<article class="{PostType}">
{block:Text}
{block:Title}
<a href="{Permalink}">
<h2>{Title}</h2>
</a>
{/block:Title}
{Body}
{/block:Text}
</article>
{/block:Posts}
</body>
</html>
And this data from Tumblr (saved as data.json
):
{
"Title": "My Title",
"block:Posts": [
{
"block:Body": true,
"block:Title": true,
"Body": "<p>test<br></p>",
"Permalink": "http:/test.tumblr.com/post/118449891560/test",
"PostType": "text",
"Title": "My first post"
}, {
"block:Body": true,
"block:Title": true,
"Body": "<p>test<br></p>",
"Permalink": "http:/test.tumblr.com/post/891560118449/test",
"PostType": "text",
"Title": "My second post"
}
]
}
The rendered HTML looks like this:
<html>
<head>
<title>My Title</title>
</head>
<body>
<article class="text">
<a href="http:/test.tumblr.com/post/118449891560/test">
<h2>My first post</h2>
</a>
<p>test<br></p>
</article>
<article class="text">
<a href="http:/test.tumblr.com/post/891560118449/test">
<h2>My second post</h2>
</a>
<p>test<br></p>
</article>
</body>
</html>
Usage in JavaScript is very simple. The module exports an object containing 2 functions: compile
and parse
. The compile
function takes the input HTML & optional associated data, and returns the compiled HTML.
compile = require('tumblr-theme-parser').compile
compiledHtml = compile(themeHtml, data)
FAQs
parse and compile tumblr themes
The npm package tumblr-theme-parser receives a total of 8 weekly downloads. As such, tumblr-theme-parser popularity was classified as not popular.
We found that tumblr-theme-parser 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
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.