/ / Prism.js nepracuje s turbolinkmi Rails 4 - javascript, ruby-on-rails-4, turbolinks, prism.js

Prism.js nefunguje s Rails 4 turbolinks - javascript, ruby-on-rail-4, turbolinks, prism.js

Zistil som, že keď používam Prism.js zvýraznenie syntaxe v kombinácii s Turbolinks zvýraznenie sa správa čudne.

Keď načítam stránku, ktorá by mala zvýrazniť syntaxPrism.js prvýkrát nebude spustený a nič sa nezvýrazní. Po načítaní rovnakej stránky Prism nakopne a zvýrazní kód. Stránka zostane zvýraznená až potom, keď nezmením umiestnenie (prejsť na root) a nevrátim sa naspäť (po tom istom scenári)

keď odstránim Turbolinks z môjho súboru manifestu (application.js) všetko funguje dobre (Turbolinks samozrejme nerobia nič)

Ja nechcem používať

= link_to "Foo", blogs_path(blog), "data-no-turbolink" => true

pretože by som to musel použiť na každom jednotlivom odkaze (každý blog bude mať nejaký zvýraznený kód), preto vôbec nemá žiadny význam pre turbolinky.

Snažil som sa používať Turbolings udalosti Páči sa mi to page:change ale ja som hrozný s čistým JavaScriptom (Prism.js je čistý JS & I "m jQuery junky)

takže niekto vie, ako povedať Turbolinkovi, aby spustil zvýraznenie syntaxe Prism.js?

odpovede:

13 pre odpoveď č. 1

Nedávno som mal tento presne rovnaký problém a oprava, ktorú som našiel, je po načítaní stránky znova spustiť program Prism. Na spustenie tejto udalosti som použil stránku Turbolinks: load.

V Coffeescript:

$(document).on "ready page:load", ->
Prism.highlightAll()

Alebo v rovine JS:

$(document).on("ready page:load", function() {
Prism.highlightAll();
});