尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗문서·전자책·이미지·자막을 한 서재에서 읽고 주석과 북마크를 남기는 PWA입니다. 원본 본문은 편집하지 않으며, 원본 복사본과 읽기 화면·주석·설정을 기기에 보관합니다. YouTube 영상과 자막을 함께 보며 메모할 수도 있습니다. 앱의 로그인·API 키·별도 로컬 서버는 필요하지 않습니다. 웹/AI 검색·YouTube·기기 간 동기화처럼 사용자가 선택하는 온라인 기능은 외부 서비스에 연결합니다.
이전 이름은 HTMLMemo입니다. 현재 저장소는 seionwon/LibreMemo, 게시 주소는 위의 LibreMemo 주소입니다. 데이터 폴더의 HTMLMemo-library.json, HTMLMemo-data 등 호환 식별자는 그대로 사용합니다. 관리 파일 이름을 직접 바꾸지 마세요. 이름 전환과 호환 안내는 별도로 보존합니다.
이 앱은 구글 크롬에서만 정상적으로 작동합니다. 크롬에서 실행해주세요. 전용 저장 폴더 선택·쓰기를 지원하는 Chrome 환경이 필요합니다. iPhone·iPad처럼 Chrome에서도 필요한 폴더 기능을 제공하지 않는 환경은 지원 대상이 아닙니다.
앱은 기존 폴더의 권한을 자동 확인합니다. 권한이 유효하면 바로 연결하고, 다시 허용해야 하면 기억한 폴더와 계속 / 취소를 표시합니다. 계속은 기존 폴더의 권한 요청이며 폴더를 다시 만드는 버튼이 아닙니다. Chrome이 다시 요구하는 권한은 앱에서 생략할 수 없으며 PWA 설치만으로 영구 허용되지는 않습니다.
모두 같은 문서 탭·읽기 도구줄·플로팅 주석 툴바·목차/검색/주석/북마크 사이드바를 사용합니다. 파일의 내용에 따라 가능한 기능은 다릅니다. 이미지뿐인 자료에는 펜·도형·메모·북마크를 사용할 수 있지만, 글자 선택·본문 검색·TTS에는 문자 정보가 필요합니다. OCR은 포함하지 않습니다.
| 종류 | 확장자 |
|---|---|
| 웹 문서 | HTML, HTM, MHTML, MHT |
| 전자책·만화 | EPUB, EPUB3, MOBI, AZW, AZW3(KF8), FB2, FBZ, FB2.ZIP, CBZ |
| 스캔 문서 | DJVU, DJV |
| 한글 | HWP, HWPX, HML |
| Word·OpenDocument 문서 | DOCX, ODT, OTT |
| 스프레드시트·표 | XLSX, XLSM, XLS, CSV, TSV, ODS, OTS |
| 슬라이드 | PPTX, ODP, OTP |
| 마크다운·텍스트·데이터 | MD, MARKDOWN, TXT, JSON |
| 이미지·스크린샷 | PNG, APNG, JPG, JPEG, JPE, JFIF, WebP, AVIF, GIF, BMP, SVG |
| 자막 | SRT, VTT, SMI, SAMI, ASS, SSA |
| 원본·주석 보관 파일 | LIBREMEMO |
Office·한글·전자책·DjVu·이미지·자막의 원본 파일은 2GiB 이하로 제한합니다. 별도로 압축 해제량·읽기 화면·쪽/개체 수·문자 길이·처리 시간·이미지 화소 등의 한도를 검사합니다. 한도 이내라도 기기 메모리에 따라 나누어 가져와야 할 수 있습니다. 형식별 범위는 설정 → 도움말에서 확인하세요. 암호·손상·용량 오류가 난 가져오기는 서재에 추가하지 않습니다.
Ctrl/⌘ Shift V로도 엽니다.Ctrl/⌘ V로 복사한 이미지를 새 문서로 엽니다. 이미지 붙여넣기의 안내 영역이나 클립보드 버튼도 사용할 수 있습니다. Mac은 Control+Shift+⌘+4, Windows는 Win+Shift+S, 휴대폰은 저장한 스크린샷 파일 가져오기를 사용합니다.×는 저장 후 탭만 닫고 문서는 남깁니다. 오래 보지 않은 큰 문서의 화면은 저장 후 메모리에서 해제할 수 있으며, 탭을 다시 누르면 읽던 곳으로 복원합니다.자체 도구줄이 없는 HTML과 다른 형식에도 공통 도구줄을 제공합니다. ☰ 목차 열기, ↶ 뒤로, 이전/다음 절, TTS, A−·A·A+, 글꼴, 화면 모드, 확대 비율, 보기 설정을 사용합니다. 적용할 수 없는 기능은 비활성화되거나 표시되지 않습니다. A는 기본 글자 크기, %는 화면 확대 비율입니다. 고정 배치 문서는 쪽과 주석을 함께 확대합니다. PDF는 화면 배율과 기기 픽셀 비율에 맞춰 표시하며 OCR이나 양식 편집은 제공하지 않습니다.
사이드바는 왼쪽에 있고 경계를 끌어 최소 8px까지 줄입니다. 목차·검색·주석·북마크를 전환하며 목차가 없는 자료에서도 나머지 기능은 유지됩니다. 목차는 처음에 접힌 상태입니다. 텍스트를 누르면 본문으로 이동하면서 하위 목록을 펼치거나 접고, 삼각형은 펼침·접힘만 바꿉니다. 같은 보기 버튼을 다시 누르면 펼친 목록을 접습니다. 목차 이름은 더블클릭·길게 누르기로 수정하며 원본 대신 별도 정보로 저장합니다. 좁은 폰 화면에서는 본문을 터치하면 겹친 사이드바가 닫히고, 넓은 태블릿·데스크톱에서는 유지됩니다.
책 전체 검색은 제공되는 책에서 아직 불러오지 않은 장도 검색해 문맥별 결과로 이동합니다. 불러온 부분에서 찾기는 현재 로드된 내용에서 찾고 화살표는 처음과 끝에서 멈춥니다. ×로 검색어와 표시를 지웁니다. 검색 자료는 재사용합니다. 북마크는 북마크 → 현재 위치 저장으로 만들며 주석·북마크 목록은 기록이 있는 부·장·절에 따라 펼침/접힘으로 표시됩니다.
플로팅 툴바에서 선택·펜·형광펜·밑줄·메모·사각형·지우개·실행 취소 등을 사용합니다. 버튼을 두 번 눌러 글자/영역, 메모/자유 텍스트, 테두리/채움 방식을 고릅니다. 원·타원도 사각형의 채움 선택을 따릅니다. 펜과 색상의 세 줄은 펜 색/굵기, 형광펜 색, 투명도/표시 시간을 나타냅니다. 텍스트 상자 스타일에서 메모 글씨·배경·테두리·프리셋을 고르고 내 스타일로 저장합니다. 선택한 메모에도 적용할 수 있습니다. 임시 펜은 지정 시간이 지나면 사라지며 저장하지 않습니다.
선택 도구로 주석을 끌어 옮깁니다. 메모 상자·자유 텍스트는 다른 도구를 고른 상태에서도 끌어 옮길 수 있습니다. 폰의 글자 형광펜·밑줄은 손가락·펜으로 드래그하고, 두 손가락은 스크롤합니다. 툴바는 가로로 밀어 숨은 도구를 찾고 손잡이로 이동합니다. 펜과 색상은 제목을 끌어 옮기며 창 안을 스크롤합니다.
문서의 빈 곳 더블클릭·더블탭 또는 F로 전체 화면에 들어갑니다. 사이드바를 닫고 상단·읽기·주석 도구줄은 유지합니다. 단어·사이드바 더블클릭은 전체 화면이 되지 않습니다. 돌아오면 이전 사이드바 상태를 복원합니다. 유튜브에서는 F가 영상 전체 화면입니다.
보기 설정(▤) → 저장한 설정에 레이아웃·글자 크기·글꼴·화면 모드를 이름으로 저장합니다. 문서 형식에 따라 전체/일부 적용 여부를 보여주고 가능한 항목만 적용합니다. 검색·정렬·즐겨찾기·복제·이름 변경·덮어쓰기·삭제·방금 적용 취소와 형식별 기본값을 지원합니다. 자체 도구줄을 가진 HTML은 원래 읽기 설정을 사용하므로 적용이 제한될 수 있습니다.
글자가 다시 배치되는 전자책에는 보기 / 이동 탭도 나옵니다. 여백·본문 폭·줄/문단 간격·정렬·자간·들여쓰기·굵기를 조절하고 연속 스크롤 / 쪽 단위를 고릅니다. 쪽 번호는 화면·글자 크기에 따라 달라집니다. 숫자·위 첨자 각주는 카드로 읽습니다. 이동 → 자동 스크롤 시작 후 아래 막대에서 일시정지·계속·9단계 속도·끝내기를 조절합니다. 직접 스크롤·본문 누르기·쪽 넘김 키·다른 탭 이동은 잠시 멈추며 끝에서는 종료합니다. 고정 배치 EPUB·CBZ·PDF에는 이 전자책 레이아웃을 적용하지 않습니다.
{text}에는 앞 2,000자를 넣고, 더 긴 글이나 {text}가 없는 주소는 전체 글의 복사를 시도해 붙여넣도록 안내합니다. 복사 실패 시 직접 복사하세요. 서비스의 로그인·이용 조건이 적용되며 답변은 LibreMemo에 자동 저장되지 않습니다.내 서재 → 유튜브에서 영상·재생목록 주소와 자막 파일을 고릅니다. 자막 없이 시작하거나 나중에 영상 막대의 자막 붙이기 / 자막 바꾸기로 붙여도 됩니다. SRT·VTT·SMI·SAMI·ASS·SSA와 해당 자막 ZIP을 지원합니다. 개별 자막 파일은 64MiB 이하입니다. 앱은 자막을 직접 다운로드하거나 번역하지 않습니다. 자막 받는 방법에는 Mac Chrome 외부 도구의 선택 안내가 있으며 이미 가진 자막으로 사용할 때 확장이 필요하지 않습니다.
F는 영상 전체 화면입니다. 아래쪽 YouTube 진행 막대·메뉴는 그대로 씁니다.0:00 소개 같은 챕터를 두 개 이상 붙입니다. 챕터가 없으면 시각과 그 구간의 첫 대사로 목차를 만듭니다. 비우고 저장하면 시각 목차로 돌아갑니다.?로 영상 단축키를 확인합니다.영상 정보·썸네일·가져온 자막·주석은 보관하지만 영상 파일 자체는 저장하지 않습니다. 자막·메모는 오프라인에서도 읽으며 재생에는 인터넷이 필요합니다. 외부 재생이 제한되면 YouTube에서 열기를 사용합니다. 다시 열면 마지막 위치 근처에서 준비되며 재생은 직접 시작합니다.
문서를 열고 상단 내보내기에서 선택합니다. 원본이나 이전에 내보낸 파일은 자동 갱신되지 않습니다.
| 형식 | 포함 내용과 용도 |
|---|---|
| 원본 포함 보관 파일 (.librememo) | 기본 선택. 원본·현재 주석·북마크·읽기 위치와 필요한 읽기 화면을 함께 전달합니다. 받는 분이 LibreMemo의 파일 가져오기로 열어 이어서 작업합니다. |
| 읽기용 HTML (.html) | 현재 읽기 화면과 주석·북마크를 전달합니다. Office 등의 원본 편집 구조를 대체하지 않습니다. PDF는 원본·주석 정보·오프라인 변환기를 함께 담아 주석 PDF를 표시하거나 기기의 PDF 뷰어로 열고 저장합니다. |
| 주석 포함 PDF (.pdf) | 원본이 PDF인 문서에서 사용합니다. 원래 쪽·링크·목차를 유지하고 표준 주석·북마크를 추가합니다. LibreMemo 편집 상태를 정확히 이어 쓰려면 보관 파일을 사용합니다. |
.librememo는 일반 ZIP 구조이며 원본은 original/에 있습니다. 원본 바이트가 없으면 읽기 사본을 담는다는 안내를 표시합니다. 손상·경로·크기·버전·주석 정보를 검사해 가져옵니다. PDF에 주석을 정확히 배치하지 못하거나 서명 필드가 있으면 오류와 보관 파일 사용 안내를 표시합니다. 작업 취소·실패로 원본을 바꾸지 않습니다.
내보내기에 전체 서재·휴지통·앱 설정·전체 주석 저장 이력은 포함되지 않습니다. 전체 백업은 전용 폴더를 복사하세요. 앱 URL만 보내면 자료가 전달되지 않습니다. 최신 주석을 보내려면 다시 내보내고, 포함되는 개인 메모도 확인하세요.
문서 도구(⋯) → 새 판으로 주석/북마크 옮기기 또는 서재 문서 메뉴에서 새 판 파일을 선택합니다. 본문과 앞뒤 문맥으로 주석·북마크를 찾고 수정한 목차 이름도 가능한 항목을 옮깁니다. 정확한 위치·해당 장 시작·찾지 못한 항목을 결과에서 구분합니다. 새 판 열기로 새 문서를 만들며 이전 문서와 그 기록은 남습니다.
가져온 원본은 전용 폴더에 복사하고 주석·북마크·읽던 위치는 별도로 자동 저장합니다. 주석을 넣을 때마다 원본을 다시 쓰지 않습니다. 변경이 남으면 문서 탭에 점을 표시하고, 일반적인 저장마다 아래 상태 줄을 띄우지는 않습니다. 실패·재시도·온라인 상태 변경은 알립니다. 백업 전에는 설정 → 데이터 폴더에서 폴더 저장 완료를 확인하세요.
주석 저장 이력은 선택한 문서만 보여 줍니다. 변경이 있을 때 5분마다 또는 입력을 멈춘 뒤 1분이 지났을 때 중 먼저 해당하는 시점과 문서를 닫을 때 묶어 보관합니다. 같은 내용이나 스크롤·확대만으로 이력을 늘리지 않습니다. 연·월·일과 50개 단위로 찾아 주석·북마크를 복원하며 본문·읽던 위치는 유지합니다. 복원 직전 상태도 남습니다.
서재에서 삭제하면 휴지통으로 갑니다. 본문·주석·북마크·이력을 유지하고 자동 삭제하지 않습니다. 복원하면 원래 폴더(없으면 최상위)를 열어 문서를 보여 줍니다. 영구 삭제 / 휴지통 비우기는 확인 후 되돌릴 수 없게 지우며, 가져오기 전 외부 원본 파일을 지우지 않습니다.
전체 서재·설정·휴지통·이력을 보관하거나 새 기기로 옮기려면 전용 폴더 전체를 복사합니다. 새 기기에서 그 폴더를 기존 저장 폴더 연결로 선택합니다. 폴더의 일부 HTML만 복사하면 주석·이력이 빠질 수 있습니다. 브라우저 데이터가 없어도 폴더가 남아 있으면 복원하지만 폴더 자체 삭제·기기 고장에 대비한 별도 복사본도 필요합니다. 복원 가능한 사본을 모두 잃으면 서버에서 대신 복구하는 보관본은 없습니다.
앱 설정은 전용 폴더에 함께 보관합니다. 설정의 **이전 설정 JSON 파일 사용(선택 사항)**은 예전 JSON을 가져오거나 설정만 따로 보관할 때 사용하며, 평소에 별도 저장할 필요는 없습니다. JSON은 문서·주석의 전체 백업이 아닙니다.
설정 → 기기 간 동기화 → 연결에서 한 기기는 상대가 이 기기로 연결 → 연결 시작, 다른 기기는 상대 기기에 연결 → QR 스캔 / 코드 입력을 사용합니다. 양쪽을 최신 버전으로 열고 완료까지 두 화면을 유지하세요.
연결 정보만 암호화해 임시 중계하고 원본은 WebRTC 암호화 연결로 나눠 전송합니다. 사용자 자료를 위한 영구 저장 서버는 없습니다. 한 전송의 원본 합계는 2GiB, 목록·주석·이력 정보는 16MiB 이내입니다. 초과하면 현재 문서 공유로 나눕니다. 원본 검증 → 주석 비교 → 앱 저장 → 전용 폴더 반영을 표시하며 양쪽의 전송이 완료되었습니다를 확인한 뒤 닫으세요. 연결 제한·QR·권한 오류는 도움말의 동기화 문제 해결을 참고하세요. 평소에는 자동으로 다른 기기와 연결하지 않습니다.
설정 → 도움말에는 처음부터 따라 하기, 기능별 안내, 데이터 보관과 복구, 문제 해결이 있습니다. 제목·본문을 함께 검색하며 유튜브·목차 이름 수정·텍스트 상자 스타일·보기 설정·AI 검색도 찾을 수 있습니다. 도움말과 검색은 앱 자산에 포함되어 오프라인에서도 사용합니다.
앱을 새로 실행할 때 새 버전을 확인하고 준비되면 설치 / 취소를 묻습니다. 탭과 설치한 PWA 모두 같으며 사용 중 강제 새로고침하지 않습니다. 설치 전에 필요한 저장을 마치고 자료를 유지합니다. 오류가 나면 기존 화면·자료를 유지하고 재시도·취소할 수 있습니다. 업데이트 문제 때문에 사이트 데이터·앱·저장 폴더를 지우지 마세요. 버전은 설정 → About에서 확인합니다.
LibreMemo 자체 코드는 MIT입니다. 포함된 제3자 코드·엔진·폰트·샘플에는 각각의 원래 라이선스와 출처를 적용하며 MIT 고지가 이를 대체하지 않습니다. 설정 → About에서 앱과 문서·PDF 내보내기·전자책·DjVu·한글·폰트 고지를 열 수 있습니다.
로컬 HTML의 스크립트가 필요한 책은 격리한 읽기 환경에서 엽니다. 앱 저장소·폴더 권한과 분리하며, MHTML과 변환 문서는 정적인 읽기 화면을 사용합니다. 원본이 요구하는 외부 자료·브라우저 API를 모두 재현하지는 않습니다. 빠진 자료는 문서 도구 → 문서 정보에서 확인합니다.
현재 origin은 https://[email protected]/seionwon/LibreMemo.git, 배포 브랜치는 main이며 Pages 소스는 GitHub Actions입니다. 별도 서버 없이 정적 앱 **dist/**만 게시합니다. 개인 문서·설정·첨부·개발 의존성은 공개 빌드에 넣지 않습니다.
.github/workflows/deploy-pages.yml은 main push 뒤 npm ci, npm test, npm run check, npm run build를 실행하고 Pages를 게시합니다. 이후 공개 파일의 내용과 선택된 실제 Chrome 통합 검사를 확인하고 증거를 보관합니다. 전체 브라우저 검사와 이 공개 검사 범위는 다릅니다. 로컬 빌드나 push만으로 게시 완료로 기록하지 않습니다. 실제 커밋·Actions·온라인 확인 결과는 기능 이력에 남깁니다. 정상인 Pages Source 설정은 다시 바꿀 필요가 없습니다.
앱 사용과 Actions 배포에는 앱에 입력할 API 키가 필요 없습니다. Actions는 GitHub가 제공하는 GITHUB_TOKEN을 사용하며 사용자 문서와 설정을 읽지 않습니다. 프로젝트 소스를 GitHub에 올리는 개발 도구는 저장소에 쓰기 권한이 있는 계정으로 로그인해야 합니다.
API로 소스와 워크플로를 업로드할 경우에만 fine-grained 토큰을 준비합니다.
Pages의 게시 소스 설정은 위의 Settings 화면에서 한 번 진행합니다. 앱에는 GitHub 토큰 저장이나 업로드 API 기능을 추가하지 않습니다.
현재 개발 서버에서는 저장소에 지정된 seionwon 계정의 인증을 사용합니다. gh auth status의 전역 활성 계정이나 이전 실행 환경의 연결 오류만으로 게시가 불가능하다고 판단하지 않습니다. 관련 소스·검증·이력을 커밋한 뒤 git push origin main으로 기존 Actions 배포를 실행하고, 해당 커밋의 게시 성공과 온라인 파일 일치를 확인합니다. API 연결 오류와 localhost listen EPERM은 각각 현재 실행 환경에서 다시 확인합니다. 이 프로젝트의 작업 지침은 AGENTS.md에 있습니다.
Node.js 22 이상에서 실행합니다.
npm ci
npm run check
npm test
npm run build
npm run dev의 localhost 서버와 단일 public/LibreMemo.html은 개발 검토용입니다. 사용자는 정식 GitHub Pages URL을 사용하며 로컬 서버가 필요하지 않습니다. 문서 엔진은 build:office, build:rhwp, build:foliate, build:djvu, build:pdf-export로 다시 만들고 일반 빌드에서도 준비합니다.
npm run test:browser는 실행 가능한 환경에서 임시 Chrome 프로필로 전체 브라우저 통합 검사를 수행합니다. macOS 에이전트 샌드박스에서는 데스크톱 Chrome을 직접 실행하지 않고 codememo-browser request.json 검증 서비스 또는 CI를 사용합니다. 실행하지 못한 검사는 통과로 기록하지 않습니다. 자세한 게시·검증 규칙은 AGENTS.md를 따릅니다.
앱 디자인은 선택된 라이브러리 데스크/슬레이트 테마를 유지합니다. public/design.tailwind.css의 CSS-first @theme와 실제 HTML·JavaScript를 Tailwind CSS 4.3.3으로 로컬 컴파일해 public/styles.css에 저장합니다. 런타임 CDN을 사용하지 않으며 시스템·밝게·어둡게 테마를 지원합니다. 디자인 선택·카탈로그는 일반 작업에서 새로 생성하지 않습니다.