1

私は現在、いくつか(またはそれ以上)のMarkdownファイルをHTMLに変換し、それらをメインドキュメントに追加したいという小さなプロジェクトに取り組んでいます。私はこれらすべてをクライアント側で行わせたいと思っています。Showdown(MarkdownからHTMLへのコンバーター)、jQuery(全体的なDOM操作)、Underscore(必要に応じて単純なテンプレートを作成するため)などのプラグインをいくつか選択しました。ファイルをHTMLに(HTMLを含む文字列に)変換できないように見える場所で立ち往生しています。

MarkdownをHTMLに変換するのは簡単です。

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

ファイルをコード(文字列?)にフェッチ(ダウンロード)する方法がわかりません。

URL(そのURLはマークダウンファイル)からファイルをフェッチし、それをShowdownに渡してから、HTML文字列を取得するにはどうすればよいですか?ちなみに私はJavaScriptしか使っていません。

4

2 に答える 2

4

外部ファイルを取得し、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を調べ、そうでない場合はサーバー側のソリューションを調べる必要があります。 この質問は、クロスドメイン リクエストに関連する背景を提供します。

于 2013-03-09T14:56:51.330 に答える
0

HTML 文字列を取得したら、次のように呼び出すだけで、任意の DOM 要素に追加できます。

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

...ここで、markdownHTML は makeHTML から返された html です。

于 2013-03-09T15:02:00.167 に答える