2014-04-11 41 views
5

Próbuję uzyskać podświetlanie składni kodu dla niektórych dokumentów, które piszę, używam HAML i Highlight.js, które będą działać dla pojedynczej linii kodu Ruby w ten sposób (chociaż podświetlenie nie jest wielki):Kod do osadzenia w znacznikach wstępnych/kodu w języku HAML

%pre 
    %code 
     \=link_to('link name on page', 'link destiation', :class => 'class-name', :icon => 'clock-o', :icon_last => true) 

Ale jeśli spróbować i napisać CSS w pre i code tagami, na przykład:

%pre 
    %code 
     ul { 
     li { 
      Background: red; 
     } 
     } 

uzyskać „nielegalnym zagnieżdżania: zagnieżdżanie w ciągu zwykłego tekstu jest nielegalne. " błąd, ze względu na nawiasy na końcu elementów CSS.

Czy ktoś wie o wtyczce/metodzie, aby móc napisać przykład kodu (SASS, Ruby, HAML, Coffeescript głównie) na stronie za pomocą HAML? Poza samym napisaniem wszystkich css w jednym wierszu. Jestem zmierzające do tego rodzaju skutek - CSS-Tricks

Odpowiedz

11

Można użyć :preserve filter:

%pre 
    %code 
    :preserve 
     ul { 
     li { 
      Background: red; 
     } 
     } 

Zapobiega to kod wcięty jest analizowany jako haml, a także konwertuje znaki nowej linii w jednostkach tak, że kod pojawia się jako oczekujesz bez dodatkowych spacji.

Jeśli używasz wyłącznie opcji :ugly, możesz zamiast tego użyć :plain filter. To nie konwertuje nowych linii na jednostki, ale zapobiega analizie jako Haml.

+0

Dzięki temu odpowiedź na moje pytanie, a nie na nowe pytanie - czy wiesz, w jaki sposób mogę uzyskać to HTML zamiast zwykłego tekstu? highlight.js nie podświetla tagów, ponieważ są one zwykłym tekstem. –