Pubnub 为什么不';在这个<;预处理>;标签?
我使用它来显示从订阅接收到的一些JSON。它正在为文本着色,但未按预期添加换行符(通过)。此外,文档中的几个地方给人的印象是库生成了新行。请参阅Pubnub 为什么不';在这个<;预处理>;标签?,pubnub,javascript,jquery,json,highlightjs,Pubnub,Javascript,Jquery,Json,Highlightjs,我使用它来显示从订阅接收到的一些JSON。它正在为文本着色,但未按预期添加换行符(通过)。此外,文档中的几个地方给人的印象是库生成了新行。请参阅useBR选项 以下是我当前的代码(我尝试了一些不同的方法): 小提琴:您应该能够使用元素替换css空白设置为pre的 function print_r(object,html){ if(html) return '<pre>' + JSON.stringify(object, null, 4) + '</pre>';
useBR
选项
以下是我当前的代码(我尝试了一些不同的方法):
小提琴:您应该能够使用
元素替换css
空白
设置为pre
的
function print_r(object,html){
if(html) return '<pre>' + JSON.stringify(object, null, 4) + '</pre>';
else return JSON.stringify(object, null, 4);
}
var m = {"id":"TESTWIDGET1","value":351,"timestamp":"2016-08-31T12:03:24.3403952-05:00"};
var hlt = hljs.highlight('json',print_r(m));
$('#codehere').html(hlt.value);
jsFIDLE代码中没有任何换行符。highlight函数仅在格式化json字符串时应用格式化选项。您的字符串只有一行。因此,您必须先将其以正确的格式呈现,然后才能突出显示:
函数打印(对象,html){
if(html)返回“”+JSON.stringify(object,null,4)+“”;
else返回JSON.stringify(object,null,4);
}
var m={“id”:“TESTWIDGET1”,“value”:351,“timestamp”:“2016-08-31T12:03:24.3403952-05:00”};
var hlt=hljs.highlight('json',print_r(m));
$('#codehere').html(hlt.value);
请注意,我将varm
从字符串更改为对象(只需删除sourrunding“
)
工作小提琴:跨度
默认为内联元素。如果您想要换行符,您需要通过添加
或使用块级元素来添加它们。您可以创建stacksnippets或JSFIDLE来演示吗?highlight.js可能不负责添加换行符(只是语法高亮显示),并且pubnub不会返回带有换行符的json。您可能需要自己解析它并添加换行符。@Andrew想得不错,但API中的引用使我相信情况并非如此:是的,但它只会在制表符位于原始json字符串中时替换制表符。几分钟后看看我的答案moments@Scott你能创建一个stacksnippet或JSFIDLE来演示吗?注意,在highlight.js
文档的演示中,
元素作为第一个子元素具有
元素,我对其进行了简化,并将其替换为var hlt=…
为var hlt=hljs.highlight('json',json.stringify($.parseJSON(m),null,4))代码>在我的代码中似乎工作得很好。很高兴听到。当您经常使用它时,应该为它创建一个函数;-)
{
"id":"TESTWIDGET1",
"value":371,
"timestamp":"2016-08-31T11:39:57.8733485-05:00"
}
var m = '{"id":"TESTWIDGET1","value":351,"timestamp":"2016-08-31T12:03:24.3403952-05:00"}';
// hljs.configure({useBR: true});
var hlt = hljs.highlight('json',m);
$('#codehere').html(hlt.value)
$('#codehere span').each(function(i) {
if (i % 2 === 0)
$(this).before("\n ");
if (i === $('#codehere span').length -1)
$(this).after("\n")
});
function print_r(object,html){
if(html) return '<pre>' + JSON.stringify(object, null, 4) + '</pre>';
else return JSON.stringify(object, null, 4);
}
var m = {"id":"TESTWIDGET1","value":351,"timestamp":"2016-08-31T12:03:24.3403952-05:00"};
var hlt = hljs.highlight('json',print_r(m));
$('#codehere').html(hlt.value);