PHPackages                             thefox/tumblr-parser - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. thefox/tumblr-parser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

thefox/tumblr-parser
====================

A Tumblr Theme parser in PHP.

v0.6.0(8y ago)11341GPL-3.0PHPPHP ^7.0CI failing

Since Jun 4Pushed 6y ago1 watchersCompare

[ Source](https://github.com/TheFox/tumblr-parser)[ Packagist](https://packagist.org/packages/thefox/tumblr-parser)[ Docs](https://fox21.at)[ RSS](/packages/thefox-tumblr-parser/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (10)Dependencies (5)Versions (12)Used By (0)

Tumblr Parser
=============

[](#tumblr-parser)

A Tumblr Theme parser in PHP.

Tired of getting sick of Tumblr's online HTML editor for custom themes? With Tumblr Parser you can edit a theme in your favourite HTML editor and render the output in your browser on your own/local server. So you can create themes for Tumblr without editing the HTML in Tumblr's online HTML editor.

Project Outlines
----------------

[](#project-outlines)

The project outlines as described in my blog post about [Open Source Software Collaboration](https://blog.fox21.at/2019/02/21/open-source-software-collaboration.html).

- The main purpose of this software is to simulate the Tumblr online editor to provide a developer friendly environment.
- The features should not go beyond the features and functions Tumblr is providing. So the feature-set is kind of restricted what could be possible in the future. But still, feel free to request features.

Installation
------------

[](#installation)

The preferred method of installation is via [Packagist](https://packagist.org/packages/thefox/tumblr-parser) and [Composer](https://getcomposer.org/). Run the following command to install the package and add it as a requirement to `composer.json`:

```
composer require thefox/tumblr-parser
```

Get started
-----------

[](#get-started)

To get started first look into the [example.php](example/example.php) in the `example` directory. There are several ways to use this tool. You can generate a whole weblog or just a single post. You can do this in your browser or in background in your shell.

Example
-------

[](#example)

See example in [example directory](example).

[Tumblr Custom Theme](http://www.tumblr.com/docs/en/custom_themes) Implementation
---------------------------------------------------------------------------------

[](#tumblr-custom-theme-implementation)

### [Basic Variables](http://www.tumblr.com/docs/en/custom_themes#basic_variables) \[incomplete\]

[](#basic-variables-incomplete)

- `{Title}`
- `{Description}`
- `{CustomCSS}`
- `{block:PermalinkPage}`
- `{block:IndexPage}`
- `{block:PostTitle}`, `{PostTitle}`

### [Navigation](https://www.tumblr.com/docs/en/custom_themes#navigation) \[incomplete\]

[](#navigation-incomplete)

- `{block:Pagination}`
- `{block:PreviousPage}`
- `{block:NextPage}`
- `{PreviousPage}`
- `{NextPage}`
- `{CurrentPage}`
- `{TotalPages}`
- `{block:AskEnabled}`
- `{AskLabel}`
- `{block:HasPages}`
- `{block:Pages}`
- `{URL}`
- `{Label}`

### [Posts](http://www.tumblr.com/docs/en/custom_themes#posts) \[incomplete\]

[](#posts-incomplete)

- `{block:Posts}`
- `{block:Text}`
- `{block:Link}`
- `{block:Photo}`
- `{block:Photoset}`
- `{Permalink}`
- `{PostID}`

### [Text Posts](http://www.tumblr.com/docs/en/custom_themes#text-posts) \[complete\]

[](#text-posts-complete)

### [Photo Posts](http://www.tumblr.com/docs/en/custom_themes#photo-posts) \[incomplete\]

[](#photo-posts-incomplete)

- `{PhotoAlt}`
- `{block:Caption}`
- `{Caption}`
- `{block:LinkURL}`
- `{LinkURL}`
- `{LinkOpenTag}`
- `{LinkCloseTag}`
- `{PhotoURL-500}`

### [Photoset Posts](http://www.tumblr.com/docs/en/custom_themes#photoset-posts) \[incomplete\]

[](#photoset-posts-incomplete)

- `{block:Caption}`
- `{Caption}`
- `{block:Photos}`

### [Quote Posts](http://www.tumblr.com/docs/en/custom_themes#quote-posts) \[complete\]

[](#quote-posts-complete)

### [Link Posts](http://www.tumblr.com/docs/en/custom_themes#link-posts) \[incomplete\]

[](#link-posts-incomplete)

- `{URL}`
- `{Name}`
- `{Target}`
- `{block:Description}`
- `{Description}`

### [Chat Posts](http://www.tumblr.com/docs/en/custom_themes#chat-posts) \[complete\]

[](#chat-posts-complete)

### [Answer Posts](http://www.tumblr.com/docs/en/custom_themes#answer-posts) \[incomplete\]

[](#answer-posts-incomplete)

- `{Question}`
- `{Answer}`
- `{Asker}`

### [Dates](https://www.tumblr.com/docs/en/custom_themes#dates) \[incomplete\]

[](#dates-incomplete)

- `{block:Date}`
- `{DayOfMonth}`
- `{DayOfMonthWithZero}`
- `{DayOfWeek}`
- `{ShortDayOfWeek}`
- `{DayOfWeekNumber}`
- `{DayOfMonthSuffix}`
- `{DayOfYear}`
- `{WeekOfYear}`
- `{Month}`
- `{ShortMonth}`
- `{MonthNumber}`
- `{MonthNumberWithZero}`
- `{Year}`
- `{ShortYear}`
- `{AmPm}`
- `{CapitalAmPm}`
- `{12Hour}`
- `{24Hour}`
- `{12HourWithZero}`
- `{24HourWithZero}`
- `{Minutes}`
- `{Seconds}`
- `{Timestamp}`

### [Notes](https://www.tumblr.com/docs/en/custom_themes#notes) \[incomplete\]

[](#notes-incomplete)

- `{block:PostNotes}`
- `{PostNotes}`
- `{NoteCount}`
- `{NoteCountWithLabel}`

### [Tags](https://www.tumblr.com/docs/en/custom_themes#tags) \[incomplete\]

[](#tags-incomplete)

- `{block:HasTags}`
- `{block:Tags}`
- `{Tag}`
- `{TagURL}`

### [Like and Reblog buttons](https://www.tumblr.com/docs/en/custom_themes#like_and_reblog_buttons) \[incomplete\]

[](#like-and-reblog-buttons-incomplete)

- `{LikeButton}`
- `{NoteCount}`

### [Theme Options](http://www.tumblr.com/docs/en/custom_themes#theme-options) \[incomplete\]

[](#theme-options-incomplete)

- Enabling Booleans \[complete\]
- Enabling Custom Text \[complete\]

Contribute
----------

[](#contribute)

You're welcome to contribute to this project. Fork this project at . You should read GitHub's [How to Fork a Repo](https://help.github.com/articles/fork-a-repo).

Links
-----

[](#links)

- [Packagist Package](https://packagist.org/packages/thefox/tumblr-parser)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~109 days

Recently: every ~241 days

Total

11

Last Release

3266d ago

PHP version history (3 changes)v0.1.0PHP &gt;=5.3

v0.5.0PHP ~5.3 || ~7.0

v0.6.0PHP ^7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/b879f8d5879bc5cb3a1bc43287d0b26834ffc0f403e1b076375da977fe308c55?d=identicon)[TheFox](/maintainers/TheFox)

---

Top Contributors

[![TheFox](https://avatars.githubusercontent.com/u/353709?v=4)](https://github.com/TheFox "TheFox (78 commits)")

---

Tags

htmlmit-licensephpphp-librarythemetumblrparsertumblrtheme

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/thefox-tumblr-parser/health.svg)

```
[![Health](https://phpackages.com/badges/thefox-tumblr-parser/health.svg)](https://phpackages.com/packages/thefox-tumblr-parser)
```

###  Alternatives

[nikic/php-parser

A PHP parser written in PHP

17.4k902.6M1.8k](/packages/nikic-php-parser)[doctrine/lexer

PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.

11.2k910.8M118](/packages/doctrine-lexer)[erusev/parsedown

Parser for Markdown.

15.0k151.8M732](/packages/erusev-parsedown)[league/commonmark

Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)

2.9k404.0M702](/packages/league-commonmark)[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M65](/packages/sabberworm-php-css-parser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
