繁体   English   中英

将多个文件转换成HTML(来自Markdown)?

[英]Converting multiple files into HTML (from Markdown)?

我目前正在一个小项目中,我想将Markdown夫妇(或更多)文件转换为HTML,然后将其附加到主文档中。 我希望所有这些都在客户端进行。 我选择了几个插件,例如Showdown (将Markdown转换为HTML转换器),jQuery(整体DOM操作)和Underscore(必要时进行简单模板化)。 我被困在似乎无法将文件转换为HTML(到其中包含HTML的字符串)的地方。

将Markdown转换为HTML很简单:

var converter = new Showdown.converter();
converter.makeHtml('#hello markdown!');

我不确定如何将文件提取(下载)到代码(字符串?)中。

如何从URL提取文件(该URL是Markdown文件),通过Showdown传递文件,然后获取HTML字符串? 我只是在使用JavaScript。

您可以获取一个外部文件,并使用ajax将其解析为字符串。 jQuery的方式更干净,但是普通的JS版本可能看起来像这样:

var mdFile = new XMLHttpRequest();
mdFile.open("GET", "http://mypath/myFile.md", true);
mdFile.onreadystatechange = function(){
 // Makes sure the document exists and is ready to parse.
 if (mdFile.readyState === 4 && mdFile.status === 200)   
 {
    var mdText = mdFile.responseText; 
    var converter = new showdown.Converter();
    converter.makeHtml(mdText);
    //Do whatever you want to do with the HTML text
 }
}

jQuery方法:

$.ajax({
  url: "info.md",
  context: document.body,
  success: function(mdText){
    //where text will be the text returned by the ajax call
    var converter = new showdown.Converter();
    var htmlText = converter.makeHtml(mdText);
    $(".outputDiv").append(htmlText); //append this to a div with class outputDiv
  }
});

注意:这假定您要解析的文件在您自己的服务器上。 如果文件在客户端(IE用户文件)上,则需要采用其他方法

更新资料

如果所需文件与您在同一服务器上,则上述方法将起作用。 如果不是,那么您将必须研究CORS(如果您控制远程服务器),而如果没有,则需要服务器端解决方案。 这个问题提供了有关跨域请求的一些相关背景知识。

获得HTML字符串后,只需调用以下命令,即可将其附加到所需的任何DOM元素上:

var myElement = document.getElementById('myElement');
myElement.innerHTML += markdownHTML;

...其中markdownHTML是从makeHTML返回的html。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM