- Turndown.js๋ HTML์ Markdown์ผ๋ก ๋ณํํ๋ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Element/Document/DocumentFragment ๋ ธ๋๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ markdown ๋ฌธ์์ด์ ๋ฐํํ๋ ๋ณํ๊ธฐ
addRule()/use()๋ก ๊ท์น๊ณผ ํ๋ฌ๊ทธ์ธ์ ํ์ฅํ ์ ์๋ ๊ตฌ์กฐ
ํด๋น ๊ฐ๋ ์ด ํ์ํ ์ด์
- Readability.js๊ฐ ๋ณธ๋ฌธ๋ง ๋จ๊ธด HTML์ ๋๊ฒจ๋, ๊ทธ HTML์ ๊ทธ๋๋ก ์ ์ฅํ๋ฉด LLM-wiki Ingest flow์ markdown ๊ธฐ๋ฐ chunk ๊ท์น(heading ๊ธฐ์ค ๋ถํ )์ ๋ง์ง ์๋๋ค
- ํ๋ฅผ ๊ธฐ๋ณธ ์ต์
์ผ๋ก ๋ณํํ๋ฉด ๊ตฌ์กฐ๊ฐ ๊นจ์ง๋ฏ๋ก
turndown-plugin-gfm๊ฐ์ ํ๋ฌ๊ทธ์ธ์ผ๋ก ํ๋ฅผ ๋ณด์กดํด์ผ ํ๋ค โ ์ด๊ฒ ๊นจ์ง๋ฉด โ์ 3์กฐ 2ํญโ ๊ฐ์ ์ ํํ ํค์๋๊ฐ RAG, LLM wiki ๊ด๊ณ์ FTS ์ธ๋ฑ์ค์์ ์ฌ๋ผ์ง๋ค - HTML Ingest ๋ ์ด์ด์ LLM-Wiki ์ ์ฒด ๊ตฌ์กฐ์์๋ ์ด ์กฐํฉ์ ๊ธฐ๋ณธ ๊ตฌํ์ฒด๋ก ์ฐ์ง๋ง, ๋ ์ด์ด ์ธํฐํ์ด์ค(HTML in โ ์ ๊ทํ Markdown + ํด์ out)๋ง ์งํค๋ฉด trafilatura ๊ฐ์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ต์ฒดํ ์ ์๋ค
AS-IS
<table><tr><th>์กฐํญ</th><th>๋ด์ฉ</th></tr><tr><td>3-2</td><td>...</td></tr></table>๊ธฐ๋ณธ ๋ณํ ์ ํ ๊ตฌ์กฐ๊ฐ ์ ์ง๋์ง ์๊ณ ํ ์คํธ๊ฐ ํ ์ค๋ก ๋ญ๊ฐ์ง ์ ์๋ค.
TO-BE
const turndownService = new TurndownService();
turndownService.use(turndownPluginGfm.gfm); // ํ, ์ทจ์์ ๋ฑ GFM ์ง์
const markdown = turndownService.turndown(article.content);์ฃผ์ ์ต์
| ์ต์ | ๊ฐ |
|---|---|
headingStyle | setext | atx |
bulletListMarker | - | + | * |
codeBlockStyle | indented | fenced |
linkStyle | inlined | referenced |