diff --git a/lib/jekyll-theme-cs50.rb b/lib/jekyll-theme-cs50.rb index 58611d2..c9c1f9d 100644 --- a/lib/jekyll-theme-cs50.rb +++ b/lib/jekyll-theme-cs50.rb @@ -104,8 +104,20 @@ module DescriptionGenerator def describe(input, max_length = 160) return "" if input.nil? || input.to_s.strip.empty? + markdown = input.to_s + + # Render Liquid tags first if $site is defined + if defined?($site) && $site + begin + markdown = $site.liquid_renderer.file("(cs50-describe)").parse(markdown).render!($site.site_payload, { :registers => { :site => $site } }) + rescue => e + Jekyll.logger.warn "CS50 warning: failed to render Liquid in description: #{e.message}" + markdown = input.to_s + end + end + # Convert Markdown to HTML - html = $site.find_converter_instance(::Jekyll::Converters::Markdown).convert(input.to_s) + html = $site.find_converter_instance(::Jekyll::Converters::Markdown).convert(markdown) # Parse HTML and extract text doc = Nokogiri::HTML5.fragment(html)