2011-08-29 32 views
45

Tôi có thanh bên được định dạng Markdown mà tôi muốn hiển thị trong blog Jekyll của mình. Trước đây tôi đã cố gắng để bao gồm nó như {% include sidebar.markdown %} nhưng nó sẽ không thực sự làm cho Markdown. Tôi có thể bao gồm thành công như sau:Trong Jekyll, có cách nào ngắn gọn để hiển thị một phần Markdown không?

{% capture sidebar %}{% include sidebar.markdown %}{% endcapture %} 
{{ sidebar | markdownify }} 

và mặc dù đây là giải pháp có thể quản lý, tôi muốn một cách thanh lịch hơn để hoàn thành việc này. Bất kỳ ý tưởng? Cảm ơn trước!

+3

liên kết này đã chết. Đây là một trong những lý do tốt hơn để trả lời câu hỏi thay vì liên kết với một giải pháp. – askewchan

+0

Tôi thích giải pháp ban đầu, nhưng thay vì đưa nội dung vào giữa ảnh chụp, tôi chỉ cần đặt nội dung của mình và di chuyển ảnh chụp + hiển thị bên trong _includes/sidebar.html – stackdump

Trả lời

5

Jekyll giờ đây hỗ trợ viết các plugin đơn giản để thêm thẻ, trình chuyển đổi hoặc trình tạo. Hãy xem http://jekyllrb.com/docs/plugins/ để biết chi tiết.

+1

Ooh của tôi, tôi đã không nghĩ đến việc tạo thẻ mới. Tôi sẽ cung cấp cho một whirl, cảm ơn! –

+0

Được rồi, vì vậy tôi đã cố gắng tạo thẻ đúng nhưng tôi vẫn không thể tìm ra mã nào là cần thiết. Có vẻ như tôi sẽ phải triển khai lại thẻ bao gồm (https://github.com/mojombo/jekyll/blob/master/lib/jekyll/tags/include.rb) nhưng tôi không chắc chắn cách đánh dấu đầu ra của nó - có lẽ đó sẽ liên quan đến một sự thay đổi ở dòng 26 nhưng tôi không thực sự là một Rubyist và không biết phải làm gì ... –

+0

Tôi nghĩ rằng bạn có thể nhận được bộ chuyển đổi cho loại của bạn với: converter = self.site.converters. tìm thấy {| c | c.matches (self.ext)} Sau đó, sử dụng phương thức chuyển đổi. Xem https://github.com/mojombo/jekyll/blob/master/lib/jekyll/converters/markdown.rb để biết cách triển khai. –

21

tôi đang tìm kiếm này cũng vậy, nó là một Pita khám phá làm thế nào để làm điều đó, không có nhiều nội dung của Google, những phát hiện chính xác nhất là một ý chính mà không làm việc ở đây ... chết giải pháp đơn giản:

./_plugins/markdown_tag.rb:

module Jekyll 
    class MarkdownTag < Liquid::Tag 
    def initialize(tag_name, text, tokens) 
     super 
     @text = text.strip 
    end 
    require "kramdown" 
    def render(context) 
     tmpl = File.read File.join Dir.pwd, "_includes", @text 
     Jekyll::Converters::Markdown::KramdownParser.new(Jekyll.configuration()).convert(tmpl) 
    end 
    end 
end 
Liquid::Template.register_tag('markdown', Jekyll::MarkdownTag) 

UPDATE: blog với việc sử dụng ví dụ: https://web.archive.org/web/20161207125751/http://wolfslittlestore.be/2013/10/rendering-markdown-in-jekyll/

+1

Có điều gì đó kỳ lạ dường như xảy ra với markdown với plugin này. Ví dụ, khi sử dụng các khối mã có rào chắn, các dòng mới dường như biến mất. Tôi cũng đã thêm hỗ trợ cho MathJax vào bản cài đặt của tôi và các dấu gạch chéo ngược sẽ bị xóa. Việc đưa vào rõ ràng được đưa ra bởi OP chỉ hoạt động tốt trong cả hai trường hợp. Bất kỳ ý tưởng làm thế nào để làm việc xung quanh những vấn đề này? – Mike

+0

Cảm ơn, bài đăng trên blog của bạn rất hữu ích. – apotonick

Các vấn đề liên quan