BBCode `url` 태그가 호스트 뒤에 컴포넌트가 있는 URL로 끝나는 줄바꿈 텍스트에 감싸지면 깨집니다

우선순위/심각도:

중간

플랫폼

OS 브라우저
Windows 11 Google Chrome 112.0.5615.138
Ubuntu 22.04 Google Chrome 112.0.5615.49
macOS Ventura Google Chrome 112.0.5615.137

(모든 데스크톱)

설명:

다음 조건에서 BBCode url 태그가 게시글에서 올바르게 렌더링되지 않습니다:

  • 태그로 감싸인 텍스트가 URL로 끝나는 경우
  • 해당 URL에 호스트 구성 요소 뒤에 다른 구성 요소(즉, 경로, 쿼리, 및/또는 фрагмент)가 있는 경우

재현 단계:

다음 마크업을 포함하는 게시글을 작성합니다:

[url]http://example.com/[/url]

:bug: 마크업이 예상대로 렌더링되지 않습니다:

image

기대 동작:

마크업은 다음과 같이 렌더링되어야 합니다:

image

추가 정보

try.discourse.org의 "안전 모드"에서 오류를 재현할 수 있습니다.


경로로 끝나는 URL로 끝나는 텍스트를 올바르게 처리하지 못하는 추가 예시:

마크업:

[url]http://example.com/foo[/url]
[url]http://example.com/foo/[/url]
[url=http://example.com/]http://example.com/[/url]
[url=http://example.com/]foo http://example.com/[/url]

렌더링 결과:


최초 보고: Old url markup not migrated to new forum - Website and Forum - Arduino Forum

SMF 프레임워크에서 Discourse로 이전되기 전에 이 마크업이 올바르게 렌더링되던 시점에 작성된 게시글이 많습니다.

3개의 좋아요

이 문제를 코어 버그로 확인했으며, 향후 몇 주 내에 수정할 수 있기를 희망합니다.

구체적으로 말씀드리면:

[url]http://example.com[/url]은 작동하지만, [url]http://example.com/example[/url]은 뒤에 공백을 추가하지 않는 한([url]http://example.com/example [/url]) 작동하지 않습니다.

코드를 디버깅해 본 결과, 파서가 어떤 부분에서 오류를 일으키는 것 같습니다. 이스케이프 규칙일 가능성이 있습니다. 이 문제를 해결하겠습니다. 보고해 주셔서 감사합니다.

5개의 좋아요

이 코드는 아주 잘 알고 있지는 않지만, 간단히 살펴봤습니다. 자동 링크화(auto-linkify) 시스템과 관련이 있는 것 같습니다. 파서가 닫기 URL 태그 [/url]를 찾으러 갈 때쯤이면 이미 자동 링크에 포함되고 있는 상태입니다.

예를 들어, 여기의 자동 링크가 http://example.com/foo%5B/url%5D를 가리키고 있다는 점에 주목하세요.

http://example.com/foo

그래서 공백을 추가하는 것이 도움이 됩니다. 이렇게 하면 자동 링크가 [/url]을 포함하지 못하게 막아주니까요.

:thinking:

6개의 좋아요

다음 링크에 따라 문제를 수정했습니다:

검토/병합해 주시면 됩니다… @per1234 님, 지원해야 하는 기능이 다소 복잡해서 수정이 까다롭습니다.

[url][b]www.site.com[/b][/url] 같은 기이한 형식도 지원해야 하거든요.

5개의 좋아요

이제 모두 수정되었습니다 :confetti_ball:

[url]http://example.com/foo[/url]
[url]http://example.com/foo/[/url]
[url=http://example.com/]http://example.com/[/url]
[url=http://example.com/]foo http://example.com/[/url]

http://example.com/foo
http://example.com/foo/
http://example.com/
foo http://example.com/

@per1234 수정 사항이 배포되었으니, 문제가 없다면 알려주세요!

리포트해 주셔서 감사합니다!

1개의 좋아요

정말 빠르게 해결해 주셔서 감사합니다, sam님!

3개의 좋아요

이 주제는 5일 후 자동으로 닫혔습니다. 더 이상 새 답변을 남길 수 없습니다.