PHPackages                             ubertech-za/tiptap-to-asciidoc - 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. ubertech-za/tiptap-to-asciidoc

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

ubertech-za/tiptap-to-asciidoc
==============================

TipTap to AsciiDoc converter for PHP, inspired by and utilizing Ueberdosis TipTap architectural patterns

0.1.0(7mo ago)02MITPHPPHP ^8.2

Since Sep 16Pushed 7mo agoCompare

[ Source](https://github.com/ubertech-za/tiptap-to-asciidoc)[ Packagist](https://packagist.org/packages/ubertech-za/tiptap-to-asciidoc)[ Docs](https://github.com/ubertech-za/tiptap-to-asciidoc)[ Fund](https://github.com/ubertech-za)[ RSS](/packages/ubertech-za-tiptap-to-asciidoc/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

TipTap to AsciiDoc Converter
============================

[](#tiptap-to-asciidoc-converter)

> ⚠️ **BETA SOFTWARE NOTICE**This package is currently in beta and is being prepared for testing in upcoming projects. Please expect possible breaking changes in future releases. We do not recommend using this package in production environments without thorough testing.

A PHP package that converts TipTap JSON to AsciiDoc markup, inspired by the architectural patterns from [TipTap HTML converter](https://github.com/ueberdosis/tiptap). This package enables seamless conversion from rich text editor content (TipTap) to structured documentation format (AsciiDoc).

[![Tests](https://github.com/ubertech-za/tiptap-to-asciidoc/workflows/tests/badge.svg)](https://github.com/ubertech-za/tiptap-to-asciidoc/actions)[![Latest Stable Version](https://camo.githubusercontent.com/a81efb1316b9c166e866c379834f485029f8d63141cac54945e600b5ab1eb791/68747470733a2f2f706f7365722e707567782e6f72672f75626572746563682d7a612f7469707461702d746f2d6173636969646f632f762f737461626c65)](https://packagist.org/packages/ubertech-za/tiptap-to-asciidoc)[![Total Downloads](https://camo.githubusercontent.com/a5035ce324dca2b991ef26de1224dc099feae422c601012e68e7a064627c3172/68747470733a2f2f706f7365722e707567782e6f72672f75626572746563682d7a612f7469707461702d746f2d6173636969646f632f646f776e6c6f616473)](https://packagist.org/packages/ubertech-za/tiptap-to-asciidoc)[![License](https://camo.githubusercontent.com/02f7645e58f11a800a8da6cbbf3fe1e24e2e3f2c01920c889e63d27009ff96a6/68747470733a2f2f706f7365722e707567782e6f72672f75626572746563682d7a612f7469707461702d746f2d6173636969646f632f6c6963656e7365)](https://packagist.org/packages/ubertech-za/tiptap-to-asciidoc)

Features
--------

[](#features)

- 🚀 **Direct TipTap JSON parsing** - No HTML intermediary required
- 📝 **Complete AsciiDoc support** - Headers, emphasis, links, images, lists, tables, code blocks
- 🔧 **Extensible architecture** - Add custom converters for specific TipTap nodes
- ⚙️ **Configurable** - Customize conversion behavior with options
- 🧪 **Well tested** - Comprehensive test suite
- 📦 **Framework agnostic** - Works with any PHP project
- 🎯 **Laravel integration** - Optional service provider for Laravel projects

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

[](#installation)

Install the package via Composer:

```
composer require ubertech-za/tiptap-to-asciidoc
```

**Framework Independence**: This package works standalone with any PHP project. Laravel integration is completely optional and only activated when Laravel is detected in your project.

Quick Start
-----------

[](#quick-start)

```
use UbertechZa\TipTapToAsciiDoc\TipTapConverter;

$converter = new TipTapConverter();

$tipTapJson = [
    'type' => 'doc',
    'content' => [
        [
            'type' => 'heading',
            'attrs' => ['level' => 1],
            'content' => [
                ['type' => 'text', 'text' => 'Welcome to AsciiDoc']
            ]
        ],
        [
            'type' => 'paragraph',
            'content' => [
                ['type' => 'text', 'text' => 'This is a '],
                ['type' => 'text', 'text' => 'bold', 'marks' => [['type' => 'bold']]],
                ['type' => 'text', 'text' => ' statement with a '],
                ['type' => 'text', 'text' => 'link', 'marks' => [['type' => 'link', 'attrs' => ['href' => 'https://asciidoc.org']]]],
                ['type' => 'text', 'text' => '.']
            ]
        ]
    ]
];

$asciidoc = $converter->convert($tipTapJson);
echo $asciidoc;
```

Output:

```
= Welcome to AsciiDoc

This is a *bold* statement with a https://asciidoc.org[link].
```

Supported TipTap Nodes
----------------------

[](#supported-tiptap-nodes)

### Document Structure

[](#document-structure)

- `doc` - Document root
- `paragraph` - Text paragraphs
- `heading` - Headers (levels 1-6)
- `blockquote` - Quote blocks
- `codeBlock` - Code blocks with language support
- `horizontalRule` - Horizontal rules

### Lists

[](#lists)

- `bulletList` - Unordered lists
- `orderedList` - Numbered lists
- `listItem` - List items
- `taskList` - Task/checkbox lists
- `taskItem` - Individual tasks

### Text Formatting

[](#text-formatting)

- `text` - Plain text with mark support
- `bold` - Bold formatting
- `italic` - Italic formatting
- `code` - Inline code
- `strike` - Strikethrough text
- `underline` - Underlined text

### Media and Links

[](#media-and-links)

- `image` - Images with alt text and attributes
- `link` - Hyperlinks

### Tables

[](#tables)

- `table` - Table structures
- `tableRow` - Table rows
- `tableHeader` - Header cells
- `tableCell` - Data cells

### Advanced Features

[](#advanced-features)

- `hardBreak` - Line breaks
- `mention` - @mentions and references

Testing
-------

[](#testing)

Run the test suite:

```
composer test
```

Run tests with coverage:

```
composer test-coverage
```

Run static analysis:

```
composer analyse
```

Contributing
------------

[](#contributing)

Contributions are welcome! Please see our [contributing guidelines](CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

This package is inspired by and utilizes architectural patterns from [Ueberdosis TipTap](https://github.com/ueberdosis/tiptap) and specifically leverages the [TipTap PHP package](https://github.com/ueberdosis/tiptap-php) for JSON parsing capabilities. We extend our gratitude to the Ueberdosis team for their excellent rich text editor and conversion patterns.

- **Original Architecture**: [Ueberdosis TipTap](https://github.com/ueberdosis/tiptap) (MIT License)
- **PHP JSON Parsing**: [TipTap PHP](https://github.com/ueberdosis/tiptap-php) (MIT License)
- **AsciiDoc Implementation**: [Uber Technologies cc](https://github.com/ubertech-za)
- **Contributors**: [All contributors](../../contributors)

### Architectural Attribution

[](#architectural-attribution)

This package borrows and adapts the following patterns from the TipTap ecosystem:

- JSON document structure and node type definitions
- Node traversal and processing patterns from `ueberdosis/tiptap-php`
- Mark and attribute handling mechanisms
- Extensible converter architecture for different node types

The implementation has been adapted specifically for AsciiDoc output format while maintaining compatibility with the TipTap JSON schema and leveraging the robust parsing capabilities of the official TipTap PHP package.

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](LICENSE.md).

Related Packages
----------------

[](#related-packages)

This package is part of the **PHP AsciiDoc Tool Chain** project:

- [ubertech-za/asciidoc-renderer](https://github.com/ubertech-za/asciidoc-renderer) - Blade-based AsciiDoc templating for Laravel
- [ubertech-za/html-to-asciidoc](https://github.com/ubertech-za/html-to-asciidoc) - Convert HTML to AsciiDoc
- [ubertech-za/asciidoctor-wrapper](https://github.com/ubertech-za/asciidoctor-wrapper) - PHP wrapper for Asciidoctor with theming support

Together, these packages enable rich document authoring workflows in familiar web-based editors with professional AsciiDoc output suitable for technical documentation, books, and publishing workflows.

---

**Made by Uber Technologies cc**

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance62

Regular maintenance activity

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

238d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/66e61cdbc703c8243f2d508e06751760f02868b9a6abede5e6909aa06080e4e9?d=identicon)[ubertech-za](/maintainers/ubertech-za)

---

Top Contributors

[![mlategan](https://avatars.githubusercontent.com/u/21269704?v=4)](https://github.com/mlategan "mlategan (2 commits)")

---

Tags

tiptapdocumentationconvertereditorrich textasciidoc

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ubertech-za-tiptap-to-asciidoc/health.svg)

```
[![Health](https://phpackages.com/badges/ubertech-za-tiptap-to-asciidoc/health.svg)](https://phpackages.com/packages/ubertech-za-tiptap-to-asciidoc)
```

###  Alternatives

[ckeditor/ckeditor

JavaScript WYSIWYG web text editor.

5234.2M76](/packages/ckeditor-ckeditor)[mark-gerarts/auto-mapper-plus

An AutoMapper for PHP

5623.2M21](/packages/mark-gerarts-auto-mapper-plus)[matthiasmullie/path-converter

Relative path converter

10229.6M7](/packages/matthiasmullie-path-converter)[tinymce/tinymce

Web based JavaScript HTML WYSIWYG editor control.

1697.5M106](/packages/tinymce-tinymce)[awcodes/filament-tiptap-editor

A Tiptap integration for Filament Admin/Forms.

399865.2k21](/packages/awcodes-filament-tiptap-editor)[yajra/laravel-datatables-editor

Laravel DataTables Editor plugin for Laravel 5.5+.

1186.1M2](/packages/yajra-laravel-datatables-editor)

PHPackages © 2026

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