”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 在 Laravel 11 中使用辅助函数将 Markdown 转换为 HTML

在 Laravel 11 中使用辅助函数将 Markdown 转换为 HTML

发布于2024-08-01
浏览:622

Using Helper Functions to Convert Markdown to HTML in Laravel 11

在本教程中,我们将在 Laravel 应用程序中创建一个辅助函数,以使用 league/commonmark 库将 Markdown 内容转换为 HTML。我们将介绍创建帮助程序文件、将其包含在 Laravel 项目中以及在 Blade 模板中使用它的步骤。 Laravel 11 中使用此机制来使函数全局可用。

可选:在控制器中处理 Markdown 转换

另一种方法是在将数据传递到视图之前在控制器中处理 Markdown 转换,因此我们不再需要创建帮助程序文件:

use League\CommonMark\CommonMarkConverter;

public function show($id)
{
    $course = Course::find($id);
    $converter = new CommonMarkConverter();

    $post->description = $converter->convertToHtml($post->description);

    return view('post.show', compact('post'));
}

创建帮助文件以使转换功能在刀片模板中可用

第 1 步:安装 league/commonmark

首先,我们通过 Composer 安装 league/commonmark 库:

composer require league/commonmark

第 2 步:创建 helpers.php 文件

接下来,我们将创建一个 helpers.php 文件来定义我们的帮助函数。该文件可以放置在应用程序目录或任何其他首选位置。

touch app/helpers.php

打开app/helpers.php并添加以下内容:

convertToHtml($markdown);
    }
}

第 3 步:将辅助文件包含在 Composer 中

为了确保Laravel自动加载helpers.php文件,我们需要修改composer.json文件,在autoload部分添加helpers.php的路径:

"autoload": {
    "files": [
        "app/helpers.php"
    ]
}

第 4 步:重新生成 Composer 自动加载文件

修改composer.json后,通过运行重新生成Composer自动加载文件:

composer dump-autoload

第5步:使用刀片模板中的辅助函数

定义并加载辅助函数后,我们现在可以在 Blade 模板中使用它来将 Markdown 转换为 HTML:

{!! markdownToHtml($post->description) !!}

本教程旨在展示如何在刀片模板中提供自定义功能。

版本声明 本文转载于:https://dev.to/websilvercraft/using-helper-functions-to-convert-markdown-to-html-in-laravel-11-30a?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    解决此问题,我们采用了一个巧妙的CSS解决方案来解决问题:高度:100%; 高度:auto; 宽度:100%; //对于水平块 ,使用绝对定位将图像定位在中心,以object-fit:object-fit:cover in IE和edge消除了问题。现在,图像将按比例扩展,保持所需的效果而不会失...
    编程 发布于2025-02-06
  • 如何将LINQ的聚合方法用于有效的字符串串联?
    如何将LINQ的聚合方法用于有效的字符串串联?
    与linq 的传统方法涉及使用stringBuilder并在循环中附加每个字符串。但是,对于更有效的方法,LINQ提供了聚合查询。一个汇总查询是一个函数,该函数获取值集合并返回标量值。使用点通用,您可以在iEnumerable对象上调用聚合查询。与LINQ concateNate strings...
    编程 发布于2025-02-06
  • PHP中整数的最大值是多少?
    PHP中整数的最大值是多少?
    在php中揭示了int值的限制:探索php_int_max 在PHP 未签名的整数和php 确定整数大小和最大值 64位平台和int values 在摘要中,而PHP中的特定int值范围取决于平台,典型的最大值大约为通常遇到20亿。在与整数合作以确保准确的计算和有效的代码执行时,了解这些限制至关重...
    编程 发布于2025-02-06
  • 如何在整个HTML文档中设计特定元素类型的第一个实例?
    如何在整个HTML文档中设计特定元素类型的第一个实例?
    [2单独使用CSS,整个HTML文档可能是一个挑战。 the:第一型伪级仅限于与其父元素中类型的第一个元素匹配。 以下CSS将使用添加的类样式的第一个段落: }
    编程 发布于2025-02-06
  • 在没有密码提示的情况下,如何在Ubuntu上安装MySQL?
    在没有密码提示的情况下,如何在Ubuntu上安装MySQL?
    在ubuntu 使用debconf-set-selections sudo debconf-set-selections
    编程 发布于2025-02-06
  • 如何在Python中生成具有小数步骤值的范围?
    如何在Python中生成具有小数步骤值的范围?
    在range()要克服此限制,建议将步骤值指定为在范围内生成的点数。 Numpy库提供了linspace函数,该功能需要多个点和可选的终点值。例如: np.linspace(0,1,10,endpoint = false)#返回[0,0.1,0.2,...,0.9] 如果使用浮点数步骤值,则Num...
    编程 发布于2025-02-06
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-02-06
  • 哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    在Python 射线tracing方法Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a路径对象表示多边形。它检查给定点是否位于定义路径内。 T...
    编程 发布于2025-02-06
  • 可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    </main> <section> ,但无法使其正常工作,如您所见。任何洞察力都将不胜感激! display:grid; { position:sticky; top:1em; z-index:1 1 ; { { { pos...
    编程 发布于2025-02-06
  • 为什么在C#中不支持抽象静态方法?
    为什么在C#中不支持抽象静态方法?
    在C#静态方法:更深层的外观静态方法与实例方法不同,因为它们不需要它们。将访问的对象实例化。它们是通过班级名称而不是通过对象引用来调用的。为静态方法调用生成的中间语言(IL)代码直接名称定义该方法的类,无论调用类别如何。 args) { b.test(); } }...
    编程 发布于2025-02-06
  • 如何创建具有固定宽度右列和流体左列的两列布局?
    如何创建具有固定宽度右列和流体左列的两列布局?
    2-column div布局:实现固定宽的右列和流体左列右列具有固定宽度的两列布局,而左列则动态调整到可用空间。 在维持左列中的流动性时,请按照以下方式建立固定宽度的圆柱指南:在左列上删除float:从左列(#content)删除float属性(#content)。 &&&]将右列(#rig...
    编程 发布于2025-02-06
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 问题:考虑以下CSS和HTML: position:fixed; grid-template-columns:40%60%; grid-gap:5px; 背景:#eee; 当位置未固定时,网格将正确显示。但是,当...
    编程 发布于2025-02-06
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php 您的目标可能是检索“ varnum”属性值,其中提取数据的传统方法可能会使您感到困惑。 - > attributes()为$ attributeName => $ attributeValue){ echo $ attributeName,'=“',$ at...
    编程 发布于2025-02-06
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    克服go mod中的模块路径差异 coreos/bbolt:github.com/coreos/ [email受保护]:解析go.mod:模块将其路径声明为:go.etcd.io/bbolt `要解决此问题,您可以在go.mod文件中使用替换指令。只需在go.mod的末尾添加以下行:[&& &...
    编程 发布于2025-02-06
  • 如何在Java列表中有效计算元素的发生?
    如何在Java列表中有效计算元素的发生?
    计数列表中的元素出现在列表 中,在java编程中,列举列表中列举元素出现的任务来自列表。为此,收集框架提供了全面的工具套件。在这种情况下,Batocurrences变量将保持值3,代表动物列表中的“ BAT”出现的数量。 &&& [此方法是简单的,可以得出准确的结果,使其成为计算列表中元素出现的理...
    编程 发布于2025-02-06

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3