跳到主要内容
PHP

html和markdown互转

管

管理员

https://learnku.com/articles/25001

2021年09月10日 1,500 次阅读
本页目录
使用
  1. league/html-to-markdown ,
  2. erusev/parsedown
  3. HTML Purifier
<?php
namespace App\Http\Controllers\Traits;

use League\HTMLToMarkdown\HtmlConverter;

trait Markdown
{
    /**
     * markdown -> html
     * @param $markdown
     * @return mixed
     */
    public function markdownToHtml($markdown)
    {
        // markdown to html
        $convertedHmtl = app('Parsedown')->setBreaksEnabled(true)->text($markdown);

        /** XSS 防注入 */
        $convertedHmtl = clean($convertedHmtl, 'markdown');

        // 代码高亮展示优化
        $convertedHmtl = str_replace("<pre><code>", '<pre><code class=" language-php">', $convertedHmtl);

        // 移除 {{}}
        // $convertedHmtl = remove_vue($convertedHmtl);

        // 返回 html
        return $convertedHmtl;
    }

    /**
     * html -> markdown;
     * @param $html
     * @return string
     */
    public function htmlToMarkdown($html)
    {
        $converter = new HtmlConverter(['header_style' => 'atx']);

        $converter->getConfig()->setOption('list_item_style', '*');

        return $converter->convert($html);
    }
}

 

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Traits\Markdown;

class ArticlesController extends Controller{
    use Markdown;
 
    public function show(Article $article)
    {
        // 转换markdown
        $article->body = $this->markdownToHtml($article->body);

        return view('pages.articles.show', compact('article'));
    }
    
}

Related

相关文章

同分类文章 →
2026年07月11日 PHP

laravel什么样的方法适合放在模型中?什么适合用专门的服务类? cachedFavIds适合放在模型中吗?

一、适合放在模型中的方法Laravel 采用 ActiveRecord 风格,模型本身就是&quot;数据 + 围绕该数据的操作&quot;的载体。以下几类方法适合放模型: 关联关系:belongsTo、morphTo、hasMany 等。如 UserFav::userfavable()、UserFav::us

2026年04月13日 PHP

Vue3 静态文件放在同域名 Laravel 项目下

核心思路是:Vue3 构建后的静态文件放到 Laravel 的 public/ 目录下,通过 Laravel 路由的 catch-all 机制让 SPA 的前端路由正常工作。方案说明以 xx.com/admin 为例,整体架构如下:请求流程:xx.com/admin/* → Laravel

2025年08月18日 PHP

Laravel Eloquent 中可以通过静态方式调用的方法

在 Laravel Eloquent 中,可以通过静态方式调用的方法包括:1. 查询作用域 (Scopes)// 可以静态调用UserComment::active()-&gt;get();UserComment::where(&#039;status&#039;, 1)-&gt;first();2. Eloquent 内置的查询方法UserComment::fi

WeChat

扫码加我微信

微信二维码