2013-05-04 7 views
5

Mi piacerebbe incorporare il seguente frammento in un app olmo sto scrivendo:C'è un buon modo per inserire snippet HTML/JS casuali in elm?

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

Ho provato con il [markdown|..|] quasi-quoter,

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

main = flow down [header, gist] 

E questo genera un errore che chiaramente rappresenta un bug in Elm e inserisce tutti i miei contenuti in uno <noscript>.

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

Ma c'è un altro modo per farlo? Usare la sintassi di Markdown per inserire frammenti di codice HTML mi sembra precario. È coperto da una delle funzioni della biblioteca? E come dovrei isolarlo dal javascript di Elm? (L'utilizzo di un non sembra essere d'aiuto.)

Modifica: ecco il messaggio di errore. Questo è ciò che appare sullo schermo, non il codice.

error msg

+0

Qual è l'errore si sta ricevendo e perché stai mettendo questo all'interno del mark-down? – SnareChops

+0

Sto usando markdown perché la sua sintassi consente l'inserimento di snippet HTML arbitrari. – jpaugh

+0

Ah, dopo una rapida ricerca vedo che l'elm è un linguaggio completamente diverso. Scusa, mi stavo chiedendo perché non hai semplicemente inserito il tag direttamente. Spero che tu abbia la tua risposta – SnareChops

risposta

4

Può essere meglio di prendere il contrario: non utilizzare JS/CSS per "dominio" pasticcio di olmo e piuttosto incorporare olmo in HTML normale: si può fare quello che vuoi al di fuori della scatola olmo e tuttora gestito tuoi JS esterno:

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

Ma penso che si può ottenere il contenuto di quel frammento già a Elm senza utilizzare alcun javascript, io non sono sicuro di quello che è la cosa si è cercando di raggiungere alla fine.

4

Ho fatto questo perché sono malvagio.

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

basano su Html e Html.Attributes rispettivamente. Esempio di utilizzo:

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

come tale

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 ] 
Problemi correlati