공부 기록/트러블슈팅
[팁] 티스토리에서 백틱(`)으로 인라인 코드 만들 때 생기는 공백 해결법
lelezhong
2025. 4. 21. 18:11
📌 문제 상황
나도 개발블로그 써야지! 하고 만든 티스토리...
기본모드에서 백틱(`)을 사용해서 인라인 코드 블럭을 만들 수 있도록 하는 블로그 글을 보았다.
그런데...
으잉?
엥??
이것 뭐예요?
공백이나 쉼표 뒤에 이상한 회색 공백이 생기는 문제가 발생했다
지피티에게 도움을 구했지만 쓸모가 없었다...
결국 F12로 html 코드를 뜯어보고서야 해결할 수 있었다!
역시 지피티 활용도 질문을 잘 해야 하는군 ㅋ
🔎 원인 분석
- 티스토리 에디터 자동 마크업
- <span style="color: #333">, <span><code></code></span> 같은 태그가 자동 삽입됨
- 공백이 포함된 백틱 치환 → 회색 배경 깨짐
- 빈 <code> 태그도 회색 박스를 만들어버림
✅ 해결 방법
1. 백틱을 <code> 태그로 치환하는 JS 코드 추가
node.innerHTML = node.innerHTML.replace(/`([^`]*?)`([.,!?;]?)/g, (match, content, punctuation) => {
if (content.trim() === '') return '';
return `<code class="notion-code">${content.trim()}</code>${punctuation}`;
});
2. 빈 <code> 태그 제거
document.querySelectorAll("code.notion-code").forEach(code => {
if (code.textContent.trim() === '') {
code.remove();
}
});
💬 후기 및 전체 코드
<script>
window.onload = function () {
// ✅ 1. 백틱 → <code> 태그 변환
const textNodes = document.querySelectorAll(
"div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre):not(div):not(:has(a))"
);
textNodes.forEach((node) => {
node.innerHTML = node.innerHTML.replace(
/`([^`]*?)`([.,!?;]?)/g,
(match, content, punctuation) => {
if (content.trim() === '') return ''; // ✅ 비어있는 백틱 제거
return `<code class="notion-code">${content.trim()}</code>${punctuation}`;
}
);
});
// ✅ 2. 빈 <code> 태그 완전 제거 (혹시 남은 것 있을 경우 대비)
document.querySelectorAll("code.notion-code").forEach(code => {
if (code.textContent.trim() === '') {
code.remove();
}
});
};
</script>
와 진짜 너무너무 힘들었어요....
저 같은 현상을 겪으신 분들께 도움이 되길 바랍니다!