lib/carte/server.rb in carte-server-1.0.9 vs lib/carte/server.rb in carte-server-1.0.10

- old
+ new

@@ -58,10 +58,22 @@ cards = cards.paginate(per_page: 9, page: params[:page]) end def markdown2html(markdown) renderer = Redcarpet::Render::HTML.new(filter_html:true) - Redcarpet::Markdown.new(renderer, autolink: true).render(markdown) + html = Redcarpet::Markdown.new(renderer, autolink: true).render(markdown) + parse_card_link(html) + end + + def parse_card_link(html) + html.gsub(/\[\[(.+?)\]\]/) do |match| + title = $1.dup + if title.match(/<("[^"]*"|'[^']*'|[^'">])*>/) + match + else + %Q(<a href="http://#{request.host}/#/#{URI.escape(title)}">#{title}</a>) + end + end end end get '/cards.xml' do @cards = search(params)