Folio Writer 로드맵
Mac, iOS, iPad를 아우르는 네이티브 공동 집필. Markdown 우선. 학자를 위해 만들었습니다.
출시된 기능
Mac — Folio Writer는 지금 Mac App Store에서 받을 수 있습니다. Scrivener 방식의 완전한 프로젝트 구성, 실시간 수식, 클릭 한 번으로 PDF, Word, LaTeX, Typst로 컴파일하는 기능을 갖춘 네이티브 Markdown 편집기입니다.
지금 출시 중
출시됨 — 완전한 클라우드 동기화를 갖춘 Mac과 iOS용 네이티브 앱. Mac에서 쓰고, iPad에서 이어 쓰고, iPhone에서 편집하세요. 모든 변경 사항이 기기 사이에서 즉시 동기화됩니다.
출시됨 — 접속 표시, 코멘트 스레드, 변경 추적을 갖춘 실시간 다중 저자 편집. Overleaf의 작업 방식과 비슷하지만, 네이티브 앱의 성능과 오프라인 작업을 함께 누릴 수 있습니다.
곧 출시
개발 중 — 아직 출시되지 않았습니다. 글쓰기 어시스턴트에 이 Mac의 ChatGPT(Codex)와 로컬 모델용 API 키가 추가되고, 바인더, 편집기, 메타데이터, 템플릿도 개선됩니다. 세부 사항은 출시 전에 바뀔 수 있습니다. ↓
개발 중 — 더 큰 화면에 최적화. 트랙패드와 키보드를 지원하는 완전한 원고 편집. 참고문헌과 개요를 띄워 놓고 하는 Split View 멀티태스킹.
1.18에서 달라지는 점
버전 1.18은 아직 개발 중이며 App Store에 출시되지 않았습니다. 아래 내용은 이 버전에 포함될 기능을 설명하며, 세부 사항은 출시 전에 바뀔 수 있습니다.
글쓰기 어시스턴트
- 이 Mac의 ChatGPT. 새 제공자 ChatGPT (Codex) on this Mac은 Claude Code 제공자가
claude를 실행하듯 OpenAI의 Codex 명령줄(codex exec)을 실행합니다. ChatGPT 계정으로 로그인(codex login)하므로 API 키도, 토큰당 요금도 필요 없으며, 답변은 검토할 수 있는 제안으로 Folio Writer에 바로 돌아옵니다.codex명령은 자동으로 찾아지며(npm, Homebrew, Volta, 셸의 PATH), 설정 ▸ 어시스턴트에서 경로를 직접 지정할 수도 있습니다. App Store 빌드에서는 Folio Helper를 통해 실행되며, Folio Helper 1.7 이상이 필요합니다. - 로컬 모델에 API 키를 쓸 수 있습니다. Unsloth는 앱마다 키를 발급하고, LM Studio는 키를 요구하도록 설정할 수 있습니다. 설정 ▸ 어시스턴트 ▸ 로컬 모델에 키를 붙여 넣으면 그 서버에만 bearer 토큰으로 전송되며, 키는 키체인에 보관됩니다. Ollama는 키가 필요 없으며 이전과 같이 동작합니다. 서버가 401 또는 403을 반환하면 이제 키를 어디서 찾을 수 있는지 알려 줍니다.
바인더와 편집기
- 제목 없는 문서가 첫 문장을 보여 줍니다. 설정 ▸ 일반 ▸ “제목 없음” 대신 시놉시스나 첫 텍스트 표시를 켜면, 시놉시스가 없는 제목 없는 문서는 바인더에 본문 첫 줄을 표시합니다. 짧은 fenced div 섹션이나 따로 떨어진 문단도 시놉시스 없이 다시 찾을 수 있습니다. 제목 없는 문서는 편집기 위의 제목 줄과 Scrivenings 섹션 사이의 구분선에 “제목 없음” 대신 아무것도 표시하지 않습니다.
- 문서가 하위 문서와 함께 열립니다. 아래에 항목이 중첩된 문서를 선택하면 폴더처럼 그 항목들을 하나의 이어진 텍스트로 보여 줍니다. 그룹에 대한 Scrivener의 Scrivenings와 같습니다. 그런 문서를 단독으로 편집하려면 설정 ▸ 편집기 ▸ 하위 문서에서 끄세요.
- 대괄호 스팬이 그 단어로 읽힙니다. 커서가 다른 곳에 있으면
[1sg]{.smallcaps}가 1sg로 표시됩니다.[,]와{.class #id key=val}꼬리는 다른 Markdown 구분 기호처럼 숨겨졌다가 스팬을 편집하면 다시 나타납니다. 설정 ▸ 편집기 ▸ 스팬 스타일에서는 Scrivener의 문자 스타일처럼 클래스를 편집기 안의 모양(작은 대문자, 굵게, 기울임, 밑줄, 고정폭, 색 글자 또는 강조 표시)에 연결합니다..smallcaps와.sc는 처음부터 작은 대문자로,.underline은 밑줄로 표시되며,.name→ 색조,.gloss→ 기울임처럼 필터가 기대하는 무엇이든 추가할 수 있습니다. 미리보기와 컴파일에는 영향을 주지 않습니다. - 속성 칩이 더 차분해졌습니다.
{#fig:x},{.unnumbered}와 스팬 속성이 모든 스팬과 div에서 강조 표시처럼 보이던 청록색 바탕 대신, 부드러운 따뜻한 회색 칩 위에 흐린 글자로 표시됩니다. - 템플릿 문서가 모든 필드를 유지합니다. Templates 폴더의 문서도 이제 인스펙터와 개요에 메타데이터 및 컴파일 창(키워드, 날짜, 섹션 유형, 컴파일 플래그, 섹션 접두사와 접미사, 글쓰기 목표)을 표시하며, 그 값은 템플릿으로 만드는 모든 문서에 그대로 들어갑니다.
메타데이터와 템플릿
- 입력하는 동안 YAML을 검사합니다. Metadata 문서의 머리말에 pandoc이나 Quarto가 거부할 실수가 생기면 그 즉시 조용한 띠가 표시됩니다. 들여쓰기 속 탭, 닫히지 않은 따옴표, 두 번 설정된 키, 다른 곳은 두 칸인데 세 칸인 들여쓰기, 아래에 아무것도 없는
|, 또는 (렌더러가 Quarto일 때) 일반 문자열로 쓴journal:등입니다. 문제마다 해당 줄을 알려 주며, 표시를 누르면 목록이 나오고 숨기기를 누르면 접힙니다. - 삽입 ▸ 저자 항목(YAML). 포맷 ▸ 템플릿 삽입 ▸ 저자 항목(YAML)은 템플릿과 기본 제공 저자 필터가 읽는 스키마에 맞춘 구조화된 저자(이름, 이메일, ORCID, 교신 저자 플래그, 소속)를 커서 위치에 넣습니다. 두 번째, 세 번째 저자도 기억할 필요 없이 빈칸만 채우면 됩니다.
- 파일 ▸ 새 Lua 필터…. span이나 div를 LaTeX와 Typst로 바꾸는 방법이 이미 들어 있는 기본 틀로 Templates ▸ Lua Filters 아래에
.lua문서를 만들고, 한 번에 프로젝트 설정에 등록합니다. 그곳의 기본 제공 메뉴는 마우스를 올리면 각 필터를 설명하며, 각주는 프로젝트 자체 필터가 그 프로젝트를 여는 모든 사람에게서 실행된다는 점을 분명히 알려 줍니다. - Lua 필터가 Lua답게 보입니다. Templates ▸ Lua Filters 아래의
.lua문서는 고정폭 글꼴과 Lua 구문 강조(키워드,pandoc.*API와 요소 이름, 문자열, 주석)로 열리며, Markdown 편의 기능(스마트 목록,#태그 자동 완성, 인라인 표)이 코드를 방해하지 않습니다. 바인더 아이콘은 ƒ입니다. - 새 프로젝트가 마지막 위치를 기억합니다. 선택 화면은 마지막으로 머물렀던 카테고리에서 열리며, 각 템플릿에 담긴 것이 표시됩니다. 필터 이름을 보여 주는 Lua 필터 캡슐(마우스를 올리면 하는 일을 설명), Research 폴더가 있는 패키지에는 그림 포함, 기본 제공 템플릿을 대신하는 사용자 템플릿에는 기본 제공 템플릿의 내 사본이 붙습니다.
수정 사항
- Lua 필터 문서를 바인더의 다른 폴더로 옮겨도 프로젝트 설정이 계속 그 문서를 가리킵니다.
- 하위 문서가 있으면서 그 자체도 묶음에 포함된 문서가 더 이상 두 번 나타나지 않습니다. Elsevier 또는 IEEE 저자 필터를 켠 상태로 Typst 컴파일을 해도 구조화된 저자를 Typst 자체 템플릿이 읽을 수 있게 유지됩니다.
왜 네이티브인가?
학술 글쓰기는 웹 전용 도구보다 나은 대접을 받아야 합니다. 네이티브 앱이 주는 것:
- 오프라인 작업 — 비행기에서, 학회장에서, 카페에서 쓰세요. 다시 연결되면 동기화됩니다.
- 성능 — 웹 앱이 따라올 수 없는 원고 처리 능력과 반응 속도.
- 플랫폼 통합 — 매끄러운 복사/붙여넣기, Finder 동기화, 시스템 단축키, 트랙패드 제스처.
- 일반 텍스트 Markdown — 소스가 읽기 쉽고, 버전 관리가 가능하며(Git 친화적), 미래에도 쓸 수 있게 유지됩니다.
왜 Markdown인가?
LaTeX(Overleaf)나 새로운 언어(Typst)와 달리 Markdown은 이미 학술 컴퓨팅의 표준입니다. Jupyter 노트북, R Markdown, 데이터 과학 작업에서 쓰이지요. 원고 소스는 사람이 읽을 수 있는 상태로 남고, 이미 쓰고 있는 도구와 통합됩니다.