2017-02-17 5 views
3

UIに基づいてコードを生成するJavascriptベースのUIを構築しています。コード生成が機能しています。コードは文字列で保存されます。私はそれを字下げして、字下げを試みましたが、私はもはやそれが分かりません。フォーマットされたコードを出す方法はありますか?divで表示されるフォーマットコード

例えば

私はこの文字列がある場合:私はこのようなoutputingてる今

<body> 
    <div> 
    <h1> 
     Hi 
    </h1> 
    </div> 
</body> 

$(".output").text(string); 

答えて

4

を見てみましょう。このような

"<body><div><h1>Hi</h1></div></body>" 

された出力をat htmlのコードタグ。文字列をコードタグで囲んで表示する

<code>your string</code> 

またはテキスト領域を使用してください。 https://jsfiddle.net/sureshatta/k1atgn6o/1/

あなたがフォーマットされた出力をachivedしようとしている場合は.text()テンプレートリテラルで

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

+0

は、モノスペース用のコードタグではなく、ライン分割またはインデント用ではありませんか。 – Niqql

+0

@Niqqlはい。真実。私の2番目のソリューションは動作しますか? –

+0

これは表示するためには動作しますが、コードは文字列にインデントされて保存されます。表示は問題ではない、インデントはです。 – Niqql

0

を見て変更するために任意のタグのテキストを使用してください。

$(".output").text(string); 

.html()は、タグ付きの文字列を追加するために使用します。

$(".output").html(string); 
+0

これは、文字列中のすべての要素をdom要素に変換します。これは望ましくありません。 – Esko

+0

true、要素としてではなくコードとして表示したい – Niqql

+0

$( "。output")を試すことができます。テキスト( "" + string + ""); –

0

正しくインデントされて色分けされたコードを表示するには、ライブラリを使用してhighlighjsなどのコードを使用できます。

自動インデントはわかりませんが、アルゴリズムはそれほど難しくありません。新しいHTMLタグを開くときには、改行と十分なスペースを追加してください(再帰によってこの方法が簡単になります)。

また、js-beautifyを使用することもできます。

+0

ありがとう、私はこれを読むでしょう – Niqql

関連する問題