承接 php-collective/laravel-djot 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

php-collective/laravel-djot

Composer 安装命令:

composer require php-collective/laravel-djot

包简介

Laravel integration for php-collective/djot — Blade directives, services, validation, and caching

README 文档

README

CI PHP License

Djot markup language integration for Laravel — Blade directives, services, validation, and caching.

Installation

composer require php-collective/laravel-djot

The service provider and Djot facade alias are auto-discovered via Laravel's package discovery.

Optionally publish the config:

php artisan vendor:publish --tag=djot-config

Usage

Blade Directives

{{-- Safe by default - XSS protection enabled --}}
@djot($article->body)

{{-- For trusted content only - no XSS protection --}}
@djotRaw($trustedContent)

{{-- Plain text output (escaped) --}}
@djotText($article->body)

Facade

use PhpCollective\LaravelDjot\Facades\Djot;

$html = Djot::toHtml($source);
$text = Djot::toText($source);
$raw  = Djot::toHtmlRaw($trustedSource);

Dependency Injection

use PhpCollective\LaravelDjot\Service\DjotConverterInterface;
use PhpCollective\LaravelDjot\Service\DjotManager;

class ArticleController
{
    public function __construct(
        private DjotConverterInterface $djot,
        private DjotManager $manager,
    ) {}

    public function show(Article $article): View
    {
        return view('article.show', [
            'html' => $this->djot->toHtml($article->body),
            'text' => $this->djot->toText($article->body),
            'docs' => $this->manager->toHtml($article->body, 'docs'),
        ]);
    }
}

Configuration

// config/djot.php
return [
    'converters' => [
        // Default has safe_mode: true (XSS protection enabled)
        'default' => [
            'safe_mode' => true,
        ],

        // For trusted content (admin, CMS)
        'trusted' => [
            'safe_mode' => false,
        ],
    ],
    'cache' => [
        'enabled' => false,
        'store' => null,
    ],
];

Multiple Converter Profiles

Use different configurations for different contexts:

{{-- Default is safe --}}
@djot($comment->body)

{{-- Use named converter for trusted content --}}
{!! Djot::toHtml($article->body, 'trusted') !!}

{{-- Or use @djotRaw for quick trusted rendering --}}
@djotRaw($article->body)

Safe Mode

Safe mode is enabled by default for XSS protection. Disable only for trusted content:

'converters' => [
    'trusted' => [
        'safe_mode' => false,
    ],
],

Extensions

Enable djot-php extensions per converter:

'converters' => [
    'default' => [
        'extensions' => [
            ['type' => 'autolink'],
            ['type' => 'smart_quotes'],
            [
                'type' => 'heading_permalinks',
                'symbol' => '#',
                'position' => 'after',
            ],
        ],
    ],
    'with_mentions' => [
        'extensions' => [
            [
                'type' => 'mentions',
                'user_url_template' => 'https://github.com/{username}',
            ],
            'table_of_contents',
        ],
    ],
],

Available extensions:

  • admonition - Admonition blocks (note, tip, warning, danger, etc.)
  • autolink - Auto-convert URLs to clickable links
  • code_group - Transform code-group divs into tabbed interfaces
  • default_attributes - Add default attributes to elements by type
  • external_links - Configure external link behavior (target, rel)
  • frontmatter - Parse YAML/TOML/JSON frontmatter blocks
  • heading_level_shift - Shift heading levels up/down
  • heading_permalinks - Add anchor links to headings
  • heading_reference - Link to headings with [text](#heading) syntax
  • inline_footnotes - Convert spans with class to inline footnotes
  • mentions - Convert @username to profile links
  • mermaid - Render Mermaid diagram code blocks
  • semantic_span - Convert spans to <kbd>, <dfn>, <abbr> elements
  • smart_quotes - Convert straight quotes to typographic quotes
  • table_of_contents - Generate TOC from headings
  • tabs - Tabbed content blocks (CSS or ARIA mode)
  • wikilinks - Support [[Page Name]] wiki-style links

See Extensions documentation for detailed configuration options.

Validation Rule

Validate that a field contains valid Djot markup:

use PhpCollective\LaravelDjot\Rules\ValidDjot;

$request->validate([
    'body' => ['required', 'string', new ValidDjot()],
]);

Documentation

Full documentation: php-collective.github.io/laravel-djot

Demo Application

See the laravel-djot-demo for a complete example application.

What is Djot?

Djot is a modern light markup language created by John MacFarlane (author of CommonMark/Pandoc). It offers cleaner syntax and more features than Markdown while being easier to parse.

Learn more about Djot syntax at djot.net.

php-collective/laravel-djot 适用场景与选型建议

php-collective/laravel-djot 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 04 月 11 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「package」 「parser」 「markup」 「laravel」 「blade」 「djot」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 php-collective/laravel-djot 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 php-collective/laravel-djot 我们能提供哪些服务?
定制开发 / 二次开发

基于 php-collective/laravel-djot 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 27
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-11