我正在使用highlight.js并应用此代码在博客应用程序上初始化我的代码片段的语法高亮显示。
以下代码在我的index.html页面上:
<script>
$(document).on('ready page:load', function() {
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
});
</script>
代码片段最初应该是这样的:
<pre><code>A
B</code></pre>
在应用新样式后,它变成了这样:
<pre><code class=" hljs">A
B</code></pre>
问题是,当我试图在edit.html页面上编辑其中一篇帖子时,在编辑器中,我得到的是风格化的版本,而不是我不想要的普通版本。我希望新样式仅应用于索引页。我怎样才能做到这一点?
我应该提到的是,我已经生成了一个包含所有视图的脚手架:索引、新建、编辑等。
我还安装了jquery涡轮链接gem。
问题是这样的:我加载了index.html,得到了突出显示的代码。我导航到edit.html并获得高亮显示的代码。我刷新了edit.html页面,并丢失了高亮显示(应该是这样(。
--------------------------------------------编辑--------------------------------------
尝试过这个,但没有成功:
在我的应用程序中。html.erb:<body data-action="<%= action_name %>" data-controller="<%= controller_name %>">
在我的index.html.erb 中
<script>
var data = $('body').data();
if (data.controller === 'posts' && data.action != 'edit'){
$(document).on('ready page:load', function() {
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
});
};
</script>
<body data-action="<%= action_name %>" data-controller="<%= controller_name %>">
然后你可以在你的脚本中阅读:
$(document).on('page:change', function(){
var data = $('body').data();
if (data.controller === 'foo' && data.action === 'bar'){
};
});