2011-07-20 15 views
26

Tôi muốn sử dụng pygments với jekyllHighlight với Jekyll và pygments không hoạt động

Tôi có đoạn mã sau:

{% highlight java %} 
NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap 
{% endhighlight %} 

Khi tôi tạo ra trang web của tôi với jekyll --pygments, kết quả html là:

<div> 
    <pre><code class="java">NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap</code> 
    </pre> 
</div> 

Trong đầu ra html này không có các thẻ <span class="n"> hoặc <span class="s2"> được mong đợi và mã không phải là nhấn mạnh.

Tôi có làm gì sai không?

+1

Có thể là một câu hỏi ngớ ngẩn, nhưng thay vì thử nghiệm với thông báo ngoại lệ, điều gì sẽ xảy ra nếu bạn thử một số mã java thực tế? – Kev

+0

vâng, tôi đã thử với mã java và mã ruby ​​cũng như có hành vi tương tự – denisjacquemin

+0

Bạn có cài đặt đúng cách pygments không? – kikito

Trả lời

35

Bạn cần tạo css để làm nổi bật.

$ pygmentize -S default -f html > css/pygments/default.css 
+18

+10 - điều này thực sự nổi bật hơn (hiện tại?) Trong tài liệu Jekyll –

+4

Lưu ý rằng bạn cũng sẽ phải thông báo (các) mẫu Jekyll của bạn để nhận tệp CSS mới - trong trường hợp của tôi, bằng cách chỉnh sửa _layouts /mặc định.html (Jekyll bootstrap). – JohnJ

+5

Tôi vừa thêm một số ghi chú vào [jekyll install wiki] (https://github.com/mojombo/jekyll/wiki/Install) về cách sử dụng Pygments sau khi bạn đã cài đặt nó. Hy vọng rằng, nó sẽ xóa mọi thứ. –

2

Một thay thế cho cài đặt pygments riêng biệt và tạo ra CSS, người ta có thể trực tiếp kéo CSS từ các tài liệu Jekyllrb here

Các liên kết trực tiếp chiết xuất từ ​​các tài liệu tôi đã đề cập ở trên là ở đây: https://github.com/mojombo/tpw/blob/master/css/syntax.css

(Đây là phiên bản chính thức của tác giả trên GitHub)

Tệp này được gọi là syntax.css, thả nó vào thư mục css của bạn và tạo liên kết tương đối đến biểu định kiểu trong tiêu đề của bất kỳ/tất cả các tệp để bật tô sáng cú pháp.

Điều này có thể được thực hiện như vậy ví dụ, tôi đặt nó trong head.html hoặc css.html nơi tôi có tất cả các liên kết tương đối, đó là trong thư mục _include nên nó được bao gồm trong tất cả các bố trí sử dụng nó:

<link rel="stylesheet" href="/css/syntax.css">

bạn cũng có thể cần phải thêm video này vào _config.yml của bạn:

highlighter: pygments

thử nghiệm để làm việc trên Jekyll và cũng trên các trang GitHub (đặc biệt vì nó chỉ cho phép một số lượng rất hạn chế các plugin)

Một câu hỏi SO có liên quan cũng hỗ trợ tôi đến đúng giải pháp là here. Tôi cũng bối rối vì sao mã của tôi vẫn chưa được tô đậm trong một mẫu mà tôi đang chuyển qua ngay cả sau khi thêm dòng vào số _config.yml. Lý do nó chỉ hoạt động trên trang web Jekyll được tạo tự động khi thực hiện jekyll new test-site là do mẫu được tạo đã bao gồm SASS (.scss) để đánh dấu cú pháp (trong thư mục _sass) giúp tạo tất cả thành một main.css.