1

我在网站上将编程文件显示为纯文本。现在我想使用 html 来使用语法高亮。它工作得很好而且看起来不错,唯一的问题是,我必须为所有文件创建目录和 index.html 文件。

像往常一样:mysite.com/code.h--> raw 带有语法高亮:mysite.com/code/code1.html

我的问题是,如果我将 html 作为 .h 文件,它会将所有 html 显示为原始代码。

有没有办法强制任何或许多扩展名显示为 html?

喜欢:(test.txt)

<html>
<head>
<title>Super Awesome Site</title>
<head>
<body>
true
</body>
</html>

如果这是在 test.html 文件中,则显示 html,如果在 test.txt 文件中,则显示为原始代码。有没有办法强制 test.txt 显示为 html?

4

3 回答 3

2

您需要设置响应标头

Content-Type: text/html; charset=UTF-8

在将页面发送到浏览器之前。如果 php 是一个选项,则可以使用header函数来完成。

于 2013-06-02T19:52:11.467 回答
2

.htaccess在您的同一目录中创建一个名为的文件test.html

.htaccess

如果你想在里面解析 PHP .txt

AddType application/x-httpd-php .txt

如果您只想在以下内容中显示 HTML .txt

AddType text/html .txt

于 2013-06-02T19:54:35.570 回答
1

Why won't you make 1 HTML file, which takes file name from query string and loads it into DIV as part of markup? Something like this:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sorce code loader</title>
<script type="text/javascript" src="jquery-1.2.6.min.js"></script>
<script>
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

$(function() {
    $('#container').load(getParameterByName('filename'));
})

</script>
</head>

<body>
<div id="container"></div>
</body>
</html>

Call it with file name in filename parameter

于 2013-06-02T19:57:52.043 回答