discourse/lib/markdown_linker.rb
2023-01-09 12:10:19 +00:00

26 lines
587 B
Ruby

# frozen_string_literal: true
# Helps create links using markdown (where references are at the bottom)
class MarkdownLinker
def initialize(base_url)
@base_url = base_url
@index = 1
@markdown_links = {}
@rendered = 1
end
def create(title, url)
@markdown_links[@index] = url.start_with?(@base_url) ? url : "#{@base_url}#{url}"
result = "[#{title}][#{@index}]"
@index += 1
result
end
def references
result = +""
(@rendered..@index - 1).each { |i| result << "[#{i}]: #{@markdown_links[i]}\n" }
@rendered = @index
result
end
end