Highlight.js不适用于Laravel 5.3目标页面

问题描述 投票:0回答:2

我正在使用Laravel 5.3开发一个博客。在添加帖子页面中,我使用CKEDITOR和Code Snippet Plugin。在这方面一切都很好。插件在textarea字段中添加的代码也会突出显示。

在目标页面中我添加了:

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.8.0/styles/default.min.css">

在页面的标题部分。

<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.8.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

在页面的页脚部分。

该页面从数据库收到以下html代码。

&lt;p&gt;The place for Laravel Blade Template.&lt;/p&gt;
&lt;pre&gt;
&lt;code class=&quot;language-html&quot;&gt;&lt;div&gt;&lt;h1&gt;
This is a Header&lt;/h1&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&nbsp;&lt;/p&gt;

这显示是这样的。

<p>The place for Laravel Blade Template.</p> <pre> 
<code class="language-html"><div><h1>This is a Header</h1></div></code>
</pre> <p> </p> 

因此代码部分不会突出显示。

我怎样才能做到这一点。我错了什么?我需要帮助。

laravel highlight
2个回答
1
投票

在Laravel 5中输出非转义的HTML,你必须使用{!! !!}

一个例子:

{!!$myDatabaseHtml!!}

0
投票

问题是,整个HTML代码都被转义,因此浏览器不会解释它。

你想要的是只有<code class="language-html">...</code>之间的内容被转义,以便浏览器正确呈现代码容器,并且highlight.js可以挂钩到DOM对象。

© www.soinside.com 2019 - 2024. All rights reserved.