PHPackages                             burntcaramel/icing - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. burntcaramel/icing

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

burntcaramel/icing
==================

Display and customize structured icing content.

1.0.0-beta5(11y ago)214MITPHPPHP &gt;=5.3.0

Since Mar 21Pushed 11y ago1 watchersCompare

[ Source](https://github.com/BurntIcing/IcingPHP)[ Packagist](https://packagist.org/packages/burntcaramel/icing)[ RSS](/packages/burntcaramel-icing/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (6)Used By (0)

IcingPHP
========

[](#icingphp)

PHP library for viewing Icing files. [Read more about Icing here.](http://www.burntcaramel.com/icing/)

Example
-------

[](#example)

You just need a **.icing** file with your content, and a specs .json file that determines how the content is displayed.

```
use BurntIcing\Specs;
use BurntIcing\HTMLTransformer;

$specsJSON = json_decode(file_get_contents(__DIR__. '/specs.json'), true);
$contentJSON = json_decode(file_get_contents(__DIR__. '/content.icing'), true);

$specs = new Specs($specsJSON);
$HTMLTransformer = HTMLTransformer::newTransformerWithSpecs($specs);
$HTMLTransformer->displayHTMLFromContentJSON($contentJSON);

```

Extensible
----------

[](#extensible)

### PHP

[](#php)

Subclass `BlockHandler`, `TraitHandler`, or `SubsectionHandler` to customise the content as it is being displayed. This is how my [Blik page](http://www.burntcaramel.com/blik/) is displayed, with iTunes links and images interweaved in PHP on the server.

### Specs JSON files

[](#specs-json-files)

The structure is still in flux, but specs .json files allow custom block and traits to be added, with fields that get transformed into HTML. These will be handled both with this PHP library and with the React.js based [Icing Editor](https://github.com/BurntIcing/IcingEditor).

Test Output
-----------

[](#test-output)

```
php -f tests/test.php

```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

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 ~6 days

Total

5

Last Release

4051d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10793813?v=4)[Royal Icing](/maintainers/BurntCaramel)[@BurntCaramel](https://github.com/BurntCaramel)

---

Top Contributors

[![royalicing](https://avatars.githubusercontent.com/u/2635733?v=4)](https://github.com/royalicing "royalicing (16 commits)")

---

Tags

htmlcontenttextdisplayicingglaze

### Embed Badge

![Health badge](/badges/burntcaramel-icing/health.svg)

```
[![Health](https://phpackages.com/badges/burntcaramel-icing/health.svg)](https://phpackages.com/packages/burntcaramel-icing)
```

###  Alternatives

[froala/wysiwyg-editor

A beautiful jQuery WYSIWYG HTML rich text editor. High performance and modern design make it easy to use for developers and loved by users.

5.4k306.9k3](/packages/froala-wysiwyg-editor)[willdurand/negotiation

Content Negotiation tools for PHP provided as a standalone library.

1.4k122.0M157](/packages/willdurand-negotiation)[ckeditor/ckeditor

JavaScript WYSIWYG web text editor.

5234.2M76](/packages/ckeditor-ckeditor)[tinymce/tinymce

Web based JavaScript HTML WYSIWYG editor control.

1697.5M106](/packages/tinymce-tinymce)[unisharp/laravel-ckeditor

JavaScript WYSIWYG web text editor (for laravel).

377762.3k5](/packages/unisharp-laravel-ckeditor)[j0k3r/php-readability

Automatic article extraction from HTML

186808.8k6](/packages/j0k3r-php-readability)

PHPackages © 2026

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