discourse/lib/onebox/mixins/github_body.rb
David Taylor b47ae6d437
UX: Strip multiline comments in github oneboxes (#30040)
We were already stripping comments from GitHub issue/PR oneboxes, but the regex was not correctly matching multiline comments.
2024-12-02 18:08:55 +00:00

32 lines
734 B
Ruby

# frozen_string_literal: true
module Onebox
module Mixins
module GithubBody
def self.included(klass)
klass.include(Onebox::Engine)
klass.include(InstanceMethods)
end
module InstanceMethods
GITHUB_COMMENT_REGEX = /<!--.*?-->/m
MAX_BODY_LENGTH = 80
def compute_body(body)
if body
body = body.gsub(GITHUB_COMMENT_REGEX, "").strip
if body.length == 0
body = nil
elsif body.length > MAX_BODY_LENGTH
excerpt = body[MAX_BODY_LENGTH..body.length].rstrip
body = body[0..MAX_BODY_LENGTH - 1]
end
end
[body, excerpt]
end
end
end
end
end