네, 이 옵션이 아마도 가장 좋을 것 같습니다. 2020년 6월에 작업을 시작하긴 했지만, 예상보다 많은 작업량이었고 다른 프로젝트로 넘어가야 했습니다. <img 태그에서 upload:// URL을 허용하기 위한 몇 가지 접근법을 시도해 보았는데… 어느 쪽도 완벽하지는 않았습니다. 제 노트에 적어둔 내용입니다:
구현 1:
마크다운 파이프라인에서 각 html_block의 내용을 파싱하고(이를 위해 xss.js 라이브러리를 약간 악용하는 방식) upload:// src 속성을 가진 이미지 태그를 처리합니다.
장점: 전부 마크다운 파이프라인 내에서 처리되며, html_block 토큰에 대해서만 이 처리를 수행합니다.
단점: xss.js 세리나이저를 약간 잘못 사용하고 있습니다. 또한 완벽한 HTML5 파서일 수 없습니다.
이 옵션은 서버에서 표준 준수 JavaScript DOM 구현(예: jsdom)을 사용하여 개선할 수 있지만, 그건 꽤 무거워 보입니다.
구현 2:
마크다운 파이프라인 전체에서 upload:// src 속성을 허용한 후 나중에 교체합니다. 클라이언트에서는 실제로 꽤 간단합니다 - 이미 쿠킹(cooking) 후 upload:// URL을 비동기적으로 교체하고 있었기 때문입니다. 서버에서는 Nokogiri를 사용하여 추가적인 처리 단계를 수행합니다.
장점: 파서가 HTML5 표준에 준수합니다.
단점: 클라이언트/서버 구현이 다르고, 파이프라인이 약간 더 복잡해집니다.
옵션 2가 아마도 나아갈 방향일 것 같습니다. 그러면 <img 태그를 유지하면서 마크다운으로 교체하지 않도록 pull_hotlinked_images 작업을 업데이트해야 합니다. 곧 이 작업에 다시 집중할 시간을 찾을 수 있기를 바랍니다 ![]()