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(9y 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 3w 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 47% 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

3317d 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

[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)[eprofos/user-agent-analyzer

A powerful Symfony bundle for user-agent analysis. It provides accurate detection of operating systems (Windows, MacOS, Linux, iOS, Android...), browsers (Chrome, Firefox, Safari...), and device types (Desktop, Mobile, Tablet, TV...). Supports specific version detection and includes advanced handling of special cases like WebViews and compatibility modes. Features comprehensive logging and detailed analysis results.

183.4k](/packages/eprofos-user-agent-analyzer)

PHPackages © 2026

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