Skip to content

지식 베이스 및 Slidev ​

VMark는 워크스페이스 전체를 탐색 가능하고 상호 연결된 지식 베이스로 제공하고, Slidev 프레젠테이션 덱을 미리 보고 내보낼 수 있습니다 — 둘 다 VMark가 필요할 때 시작하는 하나의 로컬 콘텐츠 서버로 동작합니다.

상태

이 기능은 단계적으로 출시되고 있으며, 어느 플랫폼의 릴리스 빌드에도 이 기능이 의존하는 콘텐츠 서버 런타임이 포함되어 있지 않습니다 — 요구 사항을 참조하세요. 그래서 이 기능은 개발자 모드가 켜져 있지 않으면 숨겨집니다: 보기 메뉴 항목, 명령 팔레트 항목, Ctrl + Shift + 4 단축키는 설정 → 고급 → 개발자 도구 를 켜야만 나타납니다. 이를 켠 뒤 지식 베이스 패널을 열면 이 컴퓨터에 무엇이 있고 무엇이 빠져 있는지 확인할 수 있습니다.

요구 사항 ​

지식 베이스, 관계 그래프, 검색, 실시간 새로 고침, Slidev 미리 보기는 모두 하나의 로컬 콘텐츠 서버에서 실행됩니다 — VMark가 필요할 때 시작하는 별도의 Node.js 프로그램입니다. 서버가 시작되려면 두 가지가 있어야 합니다:

  • Node.js. VMark는 터미널과 마찬가지로 로그인 셸의 PATH를 통해 node를 찾습니다. 따라서 프로젝트 로컬 도구에서만 보이는 Node.js는 인정되지 않습니다. 로그인 셸의 PATH에 node가 포함되도록 설치하세요.
  • 콘텐츠 서버 자체 (VMark 저장소의 server/content를 cli.js로 빌드한 것). 아직 어떤 플랫폼의 패키지 빌드에도 포함되어 있지 않습니다. 이는 Linux나 Windows만의 누락이 아닙니다: macOS DMG에도 콘텐츠 서버 런타임은 포함되지 않으며, VMark의 릴리스 검사는 매 릴리스마다 이를 확인합니다. 릴리스 방안이 마련될 때까지 이 기능에는 개발 환경이 필요합니다 — 콘텐츠 서버를 빌드한 VMark 체크아웃을 VMARK_CONTENT_SERVER_CLI 환경 변수로 지정하거나(또는 VMark 애플리케이션 데이터에 base-kb 런타임을 프로비저닝).

패널은 열릴 때 두 가지를 모두 확인합니다. 어느 하나라도 없으면 성공할 수 없는 시작을 시도하는 대신, 무엇이 없고 무엇이 그것을 제공하는지 알려 줍니다.

패널 열기 ​

릴리스 빌드에서는 시작할 수 없기 때문에 지식 베이스는 기본적으로 숨겨져 있습니다. 표시하려면 설정 → 고급 → 개발자 도구 를 켜세요. 보기 → 지식 베이스 전환 메뉴 항목, 명령 팔레트 항목("지식 베이스 전환"), Ctrl + Shift + 4 단축키가 함께 나타나며, 끄면 모두 다시 사라집니다.

개발자 도구가 켜져 있으면 보기 → 지식 베이스 전환, 명령 팔레트 또는 Ctrl + Shift + 4로 패널을 엽니다. 패널은 오른쪽에 도킹되며, 다시 전환하면 숨겨집니다.

개발자 도구를 다시 끄면 진입점이 숨겨지고 패널도 함께 닫힙니다: 패널에는 자체 닫기 버튼이 없어서, 열어 두면 아무것도 닫을 수 없는 도크가 남게 되기 때문입니다. 이미 실행 중 인 서버는 그대로 둡니다 — 개발자 도구를 다시 켜면 중지 버튼에 접근할 수 있으며, 어떤 경우든 VMark는 종료할 때 콘텐츠 서버를 중지합니다.

지식 베이스 ​

워크스페이스를 열고 지식 베이스 패널을 시작하세요. VMark는 127.0.0.1 (루프백 전용)에 바인딩된 로컬 서버를 실행하고, 에디터와 동일한 마크다운 의미 체계로 모든 마크다운 파일을 HTML로 렌더링합니다 — 위키 링크, 알림, 수식, 표, 작업 목록, 세부 정보 블록이 모두 동일하게 렌더링됩니다.

기능:

  • 위키 링크 탐색 — [[Page]], [[dir/Page]], [[Page#Heading]], [[Page|Alias]]가 워크스페이스 전체에서 해석됩니다. 해석되지 않은 링크는 "없음"으로 렌더링되어 빈틈이 보입니다.
  • 관계 그래프 — 노트, 태그(#tag 및 프런트매터 tags:), 유형이 지정된 프런트매터 관계(up, related, links, …)가 백링크가 있는 대화형 그래프를 구성합니다.
  • 워크스페이스 전체에 대한 전체 텍스트 검색.
  • 실시간 새로 고침 — 저장한 편집 내용이 제공되는 페이지에 자동으로 반영됩니다.

지식 베이스는 VMark 안(내장 패널)에서 보거나 브라우저에서 열 수 있습니다 — "브라우저에서 열기" 작업은 일회성 인증 핸드셰이크를 수행하여 브라우저가 세션 쿠키를 받도록 합니다. 서버는 루프백 전용이며 쿠키로 보호되므로 워크스페이스가 이 컴퓨터 밖으로 노출되지 않습니다.

Slidev 프레젠테이션 ​

프런트매터가 Slidev 덱임을 나타내는 마크다운 파일(예: theme:, layout: + 슬라이드, 또는 명시적인 format: slidev)을 열면, VMark는 실제 Slidev 도구 체인을 실행하여 실시간으로 미리 볼 수 있습니다 — Slidev가 사용하는 것과 같은 렌더러이므로 레이아웃, 클릭 애니메이션, 컴포넌트가 그대로 재현됩니다.

덱을 열고 지식 베이스 패널이 실행 중일 때, 슬라이드 미리보기 로 브라우저에서 실시간 덱을 열고 슬라이드 내보내기 로 렌더링합니다. Slidev가 디스크의 덱을 감시하므로 VMark에서 편집 내용을 저장하면 열린 미리 보기가 핫 리로드됩니다.

내보내기 ​

Slidev 덱은 PDF, PNG, PPTX 로 내보낼 수 있습니다. 콘텐츠 서버는 Slidev 자체의 slidev export 명령을 실행하며, 이 명령은 playwright-chromium 패키지를 통해 Chromium에서 슬라이드를 렌더링합니다. VMark는 이를 위해 브라우저를 다운로드하거나 찾지 않습니다: 콘텐츠 서버 런타임에서 Slidev 옆에 playwright-chromium이 설치되어 있지 않으면 내보내기가 실패하고 Slidev의 오류 메시지가 표시됩니다. 3분 넘게 실행되는 내보내기는 중지됩니다.

개인정보 및 보안 ​

  • 서버는 127.0.0.1에만 바인딩되며 세션별 토큰(HttpOnly, SameSite=Strict 쿠키로 전달)을 요구합니다.
  • 파일 접근은 워크스페이스 루트로 제한됩니다. 경로 탐색은 거부되고 심볼릭 링크는 따라가지 않습니다.
  • 렌더링된 HTML은 정화된 뒤 콘텐츠 보안 정책 아래에서 제공됩니다. 여기서 워크스페이스 신뢰가 바꾸는 것은 정확히 하나, 원격 이미지를 렌더링할지 여부입니다. VMark는 서버를 시작할 때 워크스페이스의 신뢰 상태를 전달합니다. 신뢰된 워크스페이스에서는 정책이 img-src를 완화하여 https: 이미지가 로드되고, 신뢰되지 않은 워크스페이스에서는 로컬 및 인라인 이미지만 렌더링됩니다. 신뢰는 워크스페이스를 제공할지 여부를 결정하지 않습니다 — 열려 있는 워크스페이스라면 어느 것이든 제공될 수 있습니다. 지식 베이스가 실행 중일 때 워크스페이스의 신뢰를 변경하면 서버가 다시 시작되어 정책이 변경을 따릅니다.