Native v1.1.0 (Single/Split) · Loader 3.1 (Bridge)
native/의 Single과 split/의 두 조각은 동일 기능입니다. Split은 브라우저 북마크 URL 길이에 맞추기 위한 패키징일 뿐 별도 제품이 아닙니다.loader/
src/core.js Core / UI / lifecycle
src/extension.js Execute actions / Markdown converter
native/full.js Native JS 본문 (북마클릿 prefix 제외)
native/bookmarklet.txt Full Single (javascript: 포함)
split/01-core.txt Split ① (먼저 실행)
split/02-extension.txt Split ② (다음 실행)
bridge/index.html Loader 3.1 UI
bridge/app.js Snapshot loading / bridge runtime
bridge/bridge-source.js Bridge 북마클릿 소스
bridge/bookmarklet.txt Bridge 북마클릿
scripts/build.py 빌드 및 docs/loader/ 배포 복사
scripts/check_repo.py 생성물·HTML 경로·북마클릿 검사
tests/ 동작 회귀 테스트
북마클릿에는 로컬 테스트용 *_local.txt도 제공하며, 공개 호스트를 local.sahayana.hk:8443으로 치환합니다. JS 소스 중 공개 호스트가 없는 경우 _local.txt가 원본과 같습니다.
| 모드 | 처리 |
|---|---|
innerText, innerHTML, outerHTML |
Selector가 선택한 각 DOM의 텍스트/HTML을 결과 textarea에 표시 |
Markdown |
제목, 링크, 목록, 코드 블록, 표 등 HTML 의미 구조를 가능한 한 보존해 Markdown 표시 |
length |
Selector별 매칭 수와 중복을 제외한 고유 DOM 수 보고 |
remove |
Resolve 후 확인 화면을 거쳐 요소 제거 |
append |
Resolve → Text/HTML 선택 → 내용 작성 → Preview → Confirm 후 추가 |
Minimize는 화면을 버블로 축소하고 입력·결과를 유지합니다. Restore는 본래 UI를 복원하며, Terminate는 Chext 전용 UI·이벤트·타이머를 정리합니다. 이미 사용자가 실행한 원본 웹페이지 DOM 변경을 되돌리지는 않습니다.
append의 HTML은 제한된 위험 요소를 제거하는 방식으로 처리하지만, 범용 HTML 보안 검증기를 대체하지 않습니다. 특히 Trusted Types 정책이 설정된 사이트에서는 HTML 파싱이 차단될 수 있습니다. 중요한 사이트에서는 먼저 복제/테스트 페이지에서 확인하세요.
저장소 루트에서:
python3 loader/scripts/build.py
python3 loader/scripts/check_repo.py
python3 loader/tests/test_native.py
python3 loader/tests/test_picker.py
python3 loader/tests/test_bridge_inert.py
loader/src/core.js, loader/src/extension.js, loader/bridge/bridge-source.jsbuild.py는 소스 JS 구문 검사를 하고 native, split, bridge의 북마클릿을 생성합니다. Split 2개는 각각 javascript: 포함 5,000바이트 이하, 모든 .txt 북마클릿은 마지막 바이트 ;이며 후행 개행이 없습니다.docs/loader/에 게시용으로 복사합니다. 이 구조는 GitHub Pages 게시 소스가 /docs일 때 URL /loader/...로 노출됩니다. 실제 Pages 설정은 배포 전에 별도로 확인하세요.docs/index.html은 사용자를 위한 설치 페이지, README.md는 프로젝트 개요, 이 파일은 상세 개발 문서입니다.docs/loader/는 생성물이므로 직접 수정하지 마세요.