agentsclimarketplace

Web to markdown

Skill Dannykkh/skill-olympus/skills/web-to-markdown

웹페이지를 깨끗한 마크다운으로 변환. JS 렌더링 페이지 지원 (Puppeteer + Readability). 단일/배치 변환, 로그인 필요 페이지, 선택적 콘텐츠 추출. "웹 to 마크다운", "페이지 저장", "web2md" 요청에 실행. /web2md로 실행.From its SKILL.md

Install
npx -y skills add Dannykkh/skill-olympus --skill web-to-markdown

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

Web to Markdown — 웹페이지 → 마크다운 변환

JS 렌더링 페이지도 깨끗하게 마크다운으로 변환. Puppeteer + Readability + Turndown 파이프라인.

Quick Start

/web2md https://example.com                     # 파일로 저장 (자동 이름)
/web2md https://example.com --print              # 터미널 출력
/web2md https://example.com --out ./docs/ref.md  # 경로 지정
/web2md urls.txt                                 # 배치 변환 (파일에 URL 목록)
/web2md https://app.example.com --interactive    # 로그인 필요 페이지
/web2md https://example.com --selector "main"    # 특정 영역만 추출

공식 호출명: /web2md


사전 확인

# web2md 설치 확인
command -v web2md || echo "미설치 — 아래 설치 절차 참조"

# 설치 (프로젝트 존재 시)
cd ~/workspace/softaworks/projects/web2md && npm install && npm run build && npm link

Workflow

1. 단일 URL 변환

# 자동 이름으로 저장
mkdir -p ./out && web2md 'https://docs.example.com/guide' --out ./out/

# 지정 파일명으로 저장
web2md 'https://docs.example.com/guide' --out ./docs/guide.md

# 터미널 출력 (파이프에 유용)
web2md 'https://docs.example.com/guide' --print

2. 배치 변환 (여러 URL)

# URL 목록 파일에서 일괄 변환
mkdir -p ./out
while IFS= read -r url; do
  [ -n "$url" ] && web2md "$url" --out ./out/
done < urls.txt

3. 로그인 필요 페이지 (Interactive Mode)

# 브라우저 창이 열리고, 로그인 완료 후 Enter
web2md 'https://app.example.com/dashboard' \
  --interactive \
  --user-data-dir ./tmp/web2md-profile \
  --out ./out/

# 세션 재사용 (두 번째부터 로그인 불필요)
web2md 'https://app.example.com/settings' \
  --user-data-dir ./tmp/web2md-profile \
  --out ./out/

4. 까다로운 페이지 처리

상황옵션
JS 렌더링이 느린 SPA--wait-until networkidle2
특정 요소 로드 대기--wait-for 'main article'
추가 대기 시간 필요--wait-ms 3000
Chrome 자동 감지 실패--chrome-path /path/to/chrome
컨테이너/CI 환경--no-sandbox
디버깅--headful

5. 선택적 콘텐츠 추출

# 본문만 추출 (사이드바, 푸터 제외)
web2md 'https://blog.example.com/post' --selector 'article.post-content'

# 여러 선택자 (첫 번째 매칭)
web2md 'https://docs.example.com' --selector 'main, .docs-content, #content'

출력 품질 개선

문제해결
네비게이션/푸터 잔여물--selector로 범위 한정
이미지 깨진 상대 경로절대 경로로 자동 변환 (내장)
코드 블록 언어 미감지수동 확인 후 ``` lang 추가
테이블 깨짐GFM 테이블로 변환 (Turndown plugin)
불필요한 광고/배너Readability가 자동 제거

출력 파일 구조

---
title: Page Title
url: https://example.com/page
date: 2026-04-16
---

# Page Title

본문 내용...

검증

# 파일 존재 + 크기 확인
ls -la ./out/*.md

# 빈 파일 감지
find ./out -name "*.md" -empty

비교: 언제 어떤 도구를 쓰나?

상황도구
JS 렌더링 필요한 현대 웹앱web2md (이 스킬)
정적 HTML, 빠른 변환curl + pandoc
API 문서 → 코드 참고Context7 MCP
웹 검색 결과 가져오기Tavily / Exa MCP

요구사항

  • Node.js 18+
  • Chrome/Chromium/Edge (Puppeteer가 자동 감지)
  • web2md CLI (npm link 또는 npm install -g)

Related Files

파일역할
skills/pdf/SKILL.mdPDF 읽기/변환
skills/excel2md/SKILL.md엑셀 읽기/변환
skills/youtube-transcript/SKILL.mdYouTube 자막 추출

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,758. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.