# HTML-to-Markdown - Golang/CLI로 전체 웹사이트를 Markdown으로 변환

> Clean Markdown view of GeekNews topic #17676. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17676](https://news.hada.io/topic?id=17676)
- GeekNews Markdown: [https://news.hada.io/topic/17676.md](https://news.hada.io/topic/17676.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-11-10T09:51:39+09:00
- Updated: 2024-11-10T09:51:39+09:00
- Original source: [github.com/JohannesKaufmann](https://github.com/JohannesKaufmann/html-to-markdown)
- Points: 9
- Comments: 1

## Topic Body

- HTML을 깨끗하고 읽기 쉬운 Markdown으로 변환하는 강력한 도구  
- 복잡한 포맷을 지원하고, 사용자 정의 옵션과 플러그인을 통해 변환 과정을 완벽하게 제어할 수 있음  
- Golang 라이브러리 또는 CLI 명령어를 사용하거나, 온라인 데모나 REST API를 통해 직접 확인 가능  
  
### 주요 기능  
- **Bold & Italic:** 단어 내에서도 굵게 및 기울임을 지원함  
- **List:** 순서 있는 목록과 순서 없는 목록을 완벽하게 중첩하여 지원함  
- **Blockquote:** 인용문 내에 다른 요소를 포함할 수 있으며, 중첩된 인용문도 매끄럽게 지원함  
- **Inline Code & Code Block:** 백틱과 여러 줄의 코드 블록을 올바르게 처리하여 코드 구조를 유지함  
- **Link & Image:** 여러 줄의 링크를 올바르게 포맷하고, 빈 줄에 대한 이스케이프를 추가함  
- **Smart Escaping:** 특별한 문자를 필요할 때만 이스케이프하여 의도치 않은 Markdown 렌더링을 방지함  
- **Remove/Keep HTML:** 특정 HTML 태그를 제거하거나 유지할 수 있는 선택권을 제공함  
- **Plugin:** 플러그인을 쉽게 확장하거나, 기능을 향상시키기 위해 사용자 정의 플러그인을 만들 수 있음  
  - 사용자 정의 로직이 필요할 경우, 코드를 작성하고 등록할 수 있음  
  - 기본 설정이 마음에 들지 않으면 `PriorityEarly`를 사용하여 로직을 다른 것보다 먼저 실행할 수 있음  
- `Converter`는 여러 고루틴에서 사용할 수 있으며, 내부적으로 뮤텍스를 사용함

## Comments



### Comment 31096

- Author: neo
- Created: 2024-11-10T09:51:39+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42093511) 
- Jina.ai의 무료 API를 사용하면 인증이나 API 키 없이도 URL을 가져와서 마크다운 문서를 얻을 수 있음
  - 일부 웹사이트는 처리하지 못하지만, 대부분의 경우 90%의 작업을 수행할 수 있음
  - Pandoc을 사용하여 HTML을 마크다운으로 변환할 수 있음

- MIT 라이선스가 적용된 이 도구를 Kindle에서 읽기 위해 p2k, Instapaper 등의 대체로 사용할 수 있을지 궁금함
  - 이러한 서비스는 렌더링이 부정확하고, 구독료를 요구함
  - 프로젝트가 적극적으로 유지 관리된다면 다양한 기사로 테스트하고 문제를 보고할 수 있음

- 이 라이브러리를 Lambda 함수에서 사용하여 URL을 마크다운으로 변환하고 S3에 저장함
  - 모든 북마크 앱에 웹훅으로 연결하여 북마크한 모든 것을 마크다운으로 저장함
  - Obsidian으로 가져오기 편리함

- LLM에 웹 페이지 데이터를 제공하기에 유용함
  - Elixir 세계를 위한 유사한 도구를 만들었지만 제한적임
  - 아이디어를 차용할 수 있음

- 도구에 n-gram 중복 제거 기능이 있으면 좋겠음
  - 헤더와 푸터에서 동일한 콘텐츠를 제거하는 기능이 필요함

- Urlbox를 사용하여 웹 페이지의 정확한 스크린샷과 마크다운을 얻을 수 있음
  - 무료 도구로 이 기능을 사용할 수 있음

- RedditToMarkdown과 urltomarkdown.com을 사용하여 LLM과 AI 앱을 구축하는 데 유용함

- Kotlin/Spring 앱에서 사용할 유사한 라이브러리를 찾고 있음
  - HTML에서 마크다운으로 변환할 때 HTML 문서 문자열은 이미 정리되어 있음

- 이 도구를 사용할 때의 어려움 중 하나는 구문 강조 코드 블록을 처리하는 것임
  - html-to-markdown이 이러한 시나리오에서 어떻게 작동하는지 궁금함
