2013-05-04 7 views
5

Ich möchte die folgenden Ausschnitt in einer Ulme App einbetten Ich schreibe:Gibt es eine gute Möglichkeit, zufällige HTML/JS-Schnipsel in Ulm einfügen?

<script src="https://gist.github.com/jpaugh/2988462.js"></script> 

Ich habe versucht, die [markdown|..|] quasi-quoter Verwendung

header = plainText "blah, blah." 
gist = [markdown| 
<script src='https://gist.github.com/jpaugh/2988462.js'></script> 
|] 

main = flow down [header, gist] 

Und das wirft einen Fehler dass klar stellt einen Fehler in Elm, und setzt alle meine Inhalte in eine <noscript>.

<noscript> 
    <p>blah, blah</p> 
    <p><script src='https://gist.github.com/jpaugh/2988462.js'></script> 
    </p> 
</noscript> 

Aber gibt es eine andere Möglichkeit, dies zu tun? Die Verwendung der Markdown-Syntax zum Einfügen von HTML-Snippets scheint mir prekär zu sein. Wird dies durch eine der Bibliotheksfunktionen abgedeckt? Und wie sollte ich es von Elms eigenem Javascript isolieren? (Mit einem scheint nicht zu helfen.)

Edit: Hier ist die Fehlermeldung. Dies zeigt sich auf dem Bildschirm, nicht der Code.

error msg

+0

Was ist der Fehler Sie erhalten, und warum setzen Sie das Innere des Abschlags? – SnareChops

+0

Ich benutze Markdown, weil es die Syntax erlaubt, beliebige HTML-Snippets einzufügen. – jpaugh

+0

Ah, nach einer kurzen Suche sehe ich, dass Elm eine ganz andere Sprache ist. Entschuldigung, ich habe mich gefragt, warum Sie das Tag nicht einfach direkt eingefügt haben. Hoffe, du bekommst deine Antwort. – SnareChops

Antwort

4

Es kann am besten sein, es in die andere Richtung zu nehmen um: nicht verwenden JS/CSS zu vermasseln elm „domain“ und eher einbetten Ulme in normalen HTML: Sie können tun, was Sie außerhalb wollen die Ulme-Box und noch Ihre JS außerhalb laufen:

http://elm-lang.org/blog/announce/version-0.8.elm#embedding-elm-in-html-and-js

Aber ich denke, Sie die Inhalte von diesem snippet bereits in Elm, ohne dass mit Hilfe von Javascript erreichen können, ich bin nicht sicher, was das, was Sie ist sind versuchen am Ende zu erreichen.

4

Ich tat dies, weil ich böse bin.

script' : List Attribute -> String -> Html 
script' attrs s = node "script" attrs [ text s ] 

basierend auf Html und Html.Attributes sind. Beispiel Nutzung:

div [] [ script' [] "alert(tremble in fear elm);" ] 

als solche

script : List Attribute -> List Html -> Html 
script attrs children = node "script" attrs children 

scriptSrc : String -> Html 
scriptSrc s = script [ type' "text/javascript", src s ] [] 

scriptRun : String -> Html 
scriptRun s = script [ type' "text/javascript" ] [ text s ]