承接 jbzoo/markdown 相关项目开发

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

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

jbzoo/markdown

最新稳定版本:7.0.2

Composer 安装命令:

composer require jbzoo/markdown

包简介

Tools to render markdown text from PHP code

README 文档

README

CI Coverage Status Psalm Coverage Psalm Level CodeFactor Stable Version Total Downloads Dependents GitHub License

Tools to render markdown text from PHP code. This library provides a simple and fluent API for generating markdown elements programmatically, including tables with advanced formatting options.

Features

  • Markdown Elements: Generate links, titles, images, badges, blockquotes, spoilers, and code blocks
  • Advanced Tables: Create markdown tables with auto-indexing, custom alignments, and flexible rendering
  • Type Safety: Full PHP 8.2+ compatibility with strict typing
  • Fluent API: Chainable methods for intuitive table building
  • Zero Dependencies: Lightweight with minimal external requirements

Requirements

  • PHP 8.2 or higher
  • Composer

Installing

composer require jbzoo/markdown

Usage

Table Generation

<?php declare(strict_types=1);

use JBZoo\Markdown\Table;

echo (new Table())
    ->addAutoIndex('Index', 999)
    ->setHeaders(['Header #1', 'Header #2'])
    ->setAlignments([Table::ALIGN_CENTER, Table::ALIGN_RIGHT])
    ->appendRow(['123', '456'])
    ->appendRows([
        ['789_1', '9871'],
        ['789_2', '']
    ])
    ->render();

Result

| Index | Header #1 | Header #2 |
|------:|:---------:|----------:|
|   999 |    123    |       456 |
|  1000 |   789_1   |      9871 |
|  1001 |   789_2   |           |
See Live Example
Index Header #1 Header #2
999 123 456
1000 789_1 9871
1001 789_2

Markdown Elements

<?php declare(strict_types=1);

use JBZoo\Markdown\Markdown;

// Page Navigation
echo Markdown::title('Page Name', 1);    // # Page Name\n
echo Markdown::title('Title', 2);        // ## Title\n
echo Markdown::title('Sub Title', 3);    // ### Sub Title\n

// Links
echo Markdown::url('Google', 'https://google.com');
// Output: [Google](https://google.com)

// Badges
echo Markdown::badge('Status', 'https://travis-ci.org/badge.svg', 'https://travis-ci.org/');
// Output: [![Status](https://travis-ci.org/badge.svg)](https://travis-ci.org/)

// Images
echo Markdown::image('https://example.com/logo.jpg', 'Logo');
// Output: ![Logo](https://example.com/logo.jpg)

// Blockquotes
echo Markdown::blockquote(['Quote Line 1', 'Quote Line 2', 'Quote Line 3']);
// Output:
// > Quote Line 1
// > Quote Line 2
// > Quote Line 3

// Spoiler (collapsible content)
echo Markdown::spoiler('Click to expand', 'Hidden content here');
// Output:
// <details>
//   <summary>Click to expand</summary>
//
//   Hidden content here
//
// </details>

// Code blocks
echo Markdown::code("<?php\necho 'Hello World';\n", 'php');
// Output:
// ```php
// <?php
// echo 'Hello World';
//
// ```

Table Features

The Table class supports various advanced features:

<?php declare(strict_types=1);

use JBZoo\Markdown\Table;

// Basic table
$table = new Table();
$table->setHeaders(['Name', 'Age', 'City'])
      ->appendRow(['John', '25', 'New York'])
      ->appendRow(['Jane', '30', 'London']);

echo $table->render();

// Table with alignments
$table = new Table();
$table->setHeaders(['Left', 'Center', 'Right'])
      ->setAlignments([Table::ALIGN_LEFT, Table::ALIGN_CENTER, Table::ALIGN_RIGHT])
      ->appendRow(['Text', 'Text', 'Text']);

echo $table->render();

// Table with auto-indexing
$table = new Table();
$table->addAutoIndex('#', 1)
      ->setHeaders(['Item', 'Price'])
      ->appendRows([
          ['Apple', '$1.00'],
          ['Banana', '$0.50'],
          ['Orange', '$0.75']
      ]);

echo $table->render();

Development

Setup

make update          # Install/update dependencies

Testing

make test           # Run PHPUnit tests
make test-all       # Run all tests and code quality checks
make codestyle      # Run linters and code style checks

Available Make Targets

Run make help to see all available commands including:

  • Code quality tools (PHPStan, Psalm, PHPCS, etc.)
  • Performance testing
  • Report generation
  • Build tools

License

MIT

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-11-03