From a8742750361bf503f9be99ac296e9aeda37c4541 Mon Sep 17 00:00:00 2001 From: Woojin Son Date: Fri, 13 Feb 2026 00:42:42 +0900 Subject: [PATCH 1/5] docs(tech): move korean docs to kr, fix unnatural sentenses --- act-operator/python/quickstart-kr.mdx | 53 ------------------ docs.json | 26 +++------ .../act-operator/overview.mdx | 30 +++++----- .../act-operator/python/install.mdx | 19 ++++--- ko/act-operator/python/quickstart.mdx | 53 ++++++++++++++++++ .../python/template-architecture.mdx | 14 ++--- index-kr.mdx => ko/index.mdx | 56 ++++++++++--------- 7 files changed, 123 insertions(+), 128 deletions(-) delete mode 100644 act-operator/python/quickstart-kr.mdx rename act-operator/overview-kr.mdx => ko/act-operator/overview.mdx (51%) rename act-operator/python/install-kr.mdx => ko/act-operator/python/install.mdx (52%) create mode 100644 ko/act-operator/python/quickstart.mdx rename act-operator/python/template-architecture-kr.mdx => ko/act-operator/python/template-architecture.mdx (81%) rename index-kr.mdx => ko/index.mdx (56%) diff --git a/act-operator/python/quickstart-kr.mdx b/act-operator/python/quickstart-kr.mdx deleted file mode 100644 index e2de838..0000000 --- a/act-operator/python/quickstart-kr.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "빠른 시작" -description: "이 페이지는 Install 페이지를 이미 확인했으며 Python 3.11+와 uv가 준비되어 있다고 가정합니다." -icon: "rocket" ---- - -이제 실제로 프로젝트를 만들고, 생성된 구조를 확인합니다. - -## 새 Act 만들기 - -프로젝트를 만들 디렉터리에서 실행: - -```bash -uvx --from act-operator act new -``` - -Act Operator가 프로젝트 이름, 초기 Cast 이름, 기타 메타데이터를 묻고, -이어 시작용 Cast가 포함된 구조화된 Act 프로젝트를 생성합니다. - -## 프로젝트로 이동 - -```bash -cd -``` - -## 의존성 설치 - -```bash -uv sync -``` - -## 프로젝트 둘러보기 - -- 프로젝트별 지침은 `README.md`를 읽어 확인하세요 -- 아키텍처 컨텍스트와 AI 협업 가이드는 `CLAUDE.md`를 열어 확인하세요 -- 초기 Cast는 `casts/` 아래에 있으니 그곳에 그래프 로직을 추가하세요 - -여기까지 완료하면 **동작 가능한 Act 프로젝트와 초기 Cast**를 확보한 상태입니다. - -## 다음 단계 - - - - 개념과 용어를 다시 확인합니다 - - - 생성된 구조를 이해합니다. - - diff --git a/docs.json b/docs.json index 7735ed2..6273a30 100644 --- a/docs.json +++ b/docs.json @@ -71,15 +71,15 @@ "groups": [ { "group": "개요", - "pages": ["index-kr", "act-operator/overview-kr"] + "pages": ["ko/index", "ko/act-operator/overview"] }, { "group": "시작하기", "icon": "rocket", "pages": [ - "act-operator/python/install-kr", - "act-operator/python/quickstart-kr", - "act-operator/python/template-architecture-kr" + "ko/act-operator/python/install", + "ko/act-operator/python/quickstart", + "ko/act-operator/python/template-architecture" ] } ] @@ -105,23 +105,11 @@ "href": "https://dashboard.mintlify.com" } }, - "contextual": { - "options": [ - "copy", - "view", - "chatgpt", - "claude", - "perplexity", - "mcp", - "cursor", - "vscode" - ] - }, "footer": { "socials": { - "x": "https://x.com/mintlify", - "github": "https://github.com/mintlify", - "linkedin": "https://linkedin.com/company/mintlify" + "github": "https://github.com/Proact0/act-operator", + "linkedin": "https://linkedin.com/company/mintlify", + "discord": "https://discord.gg/5sSByzYeWf" } } } diff --git a/act-operator/overview-kr.mdx b/ko/act-operator/overview.mdx similarity index 51% rename from act-operator/overview-kr.mdx rename to ko/act-operator/overview.mdx index 17535e8..86a0300 100644 --- a/act-operator/overview-kr.mdx +++ b/ko/act-operator/overview.mdx @@ -4,22 +4,22 @@ description: "Act Operator로 LangGraph 개발을 간소화하세요" icon: "map" --- -Act Operator는 LangGraph 1.0+ 프로젝트를 **일관된 구조로 유지**하기 위한 **CLI 및 프로젝트 표준**입니다. +LangGraph 1.0+ 프로젝트를 더 **구조적으로 관리하고 커져도 유지보수 가능하게** 만들기 위해, Act Operator가 **CLI 및 프로젝트 표준**을 제공합니다. 이 페이지는 “LangGraph는 알지만 Act Operator는 처음”인 분을 위한 개요입니다. -이후 흐름은 **설치 → 빠른 시작 → 템플릿 아키텍처**로 이어집니다. +이 개요를 읽은 뒤에는 **설치 → 빠른 시작 → 템플릿 아키텍처** 순으로 보는 것을 권장합니다. -이 페이지에서 확인할 내용: +이 페이지에서 알게 되는 것: -- Act Operator가 해결하려는 문제 -- Act, Cast, Skill, CLAUDE.md가 무엇인지 -- 프로젝트가 어떻게 스캐폴딩되는지 +- Act Operator가 해결하는 문제 +- Act, Cast, Skill, CLAUDE.md의 의미 +- 스캐폴딩된 구조가 어떻게 맞물리는지 ## 왜 필요한가 -LangGraph는 에이전틱 워크플로를 빠르게 만들 수 있지만, 프로젝트가 커질수록 -그래프와 상태, 노드, 테스트가 뒤엉키기 쉽습니다. Act Operator는 구조를 명확히 해서 -프로젝트가 커져도 **이해하기 쉽고 테스트 가능하며 확장 가능한 상태**를 유지합니다. +LangGraph는 에이전틱 워크플로를 쉽게 만들 수 있지만, 프로젝트가 커질 때 +어떻게 조직할지는 알려주지 않습니다. Act Operator는 구조를 명시해 그래프가 +**이해 가능하고 테스트 가능하며 확장 가능한 상태**로 유지되도록 합니다. ## 작동 방식 @@ -45,21 +45,21 @@ AI 도구가 발견하고 따라갈 수 있는 지침 폴더입니다. ## 다음 단계 - - 설치와 설정 세부 사항 + + 설치와 설정 자세히 보기 - 0에서 동작하는 Cast까지. + 0에서 동작하는 Cast까지 진행하기 - 생성된 구조를 이해합니다. + 생성된 구조를 이해하기 diff --git a/act-operator/python/install-kr.mdx b/ko/act-operator/python/install.mdx similarity index 52% rename from act-operator/python/install-kr.mdx rename to ko/act-operator/python/install.mdx index 3caf48e..ba3acaf 100644 --- a/act-operator/python/install-kr.mdx +++ b/ko/act-operator/python/install.mdx @@ -1,17 +1,20 @@ --- title: "설치" -description: "Act Operator를 설정하고 첫 Act 프로젝트를 스캐폴딩하는 방법을 안내합니다." +description: "Act Operator를 설정하고 첫 Act 프로젝트를 스캐폴딩하세요." icon: "download" --- +사전 준비사항을 점검하고 첫 Act 프로젝트를 만듭니다. + ## 사전 준비 - Python **3.11+** - uv 설치 -Act Operator는 uv 기반으로 스캐폴딩을 진행하므로, 여기서는 환경 확인과 첫 프로젝트 생성을 합니다. +Act Operator는 uv 기반으로 스캐폴딩을 진행하므로 uv가 필요합니다. +아래에서 환경을 확인하고 첫 프로젝트를 생성하세요. -환경 확인: +환경을 확인하세요: ```bash python --version @@ -20,7 +23,7 @@ uv --version ## 새 Act 프로젝트 생성 -프로젝트를 만들 디렉터리에서 실행: +프로젝트를 만들 디렉터리에서 실행하세요: ```bash uvx --from act-operator act new @@ -34,15 +37,15 @@ Act Operator가 프로젝트 세부 정보를 묻고, 초기 Cast가 포함된 - 0에서 동작하는 Cast까지 + 0에서 동작하는 Cast까지 진행하기 - 생성된 구조를 이해합니다. + 생성된 구조를 이해하기 diff --git a/ko/act-operator/python/quickstart.mdx b/ko/act-operator/python/quickstart.mdx new file mode 100644 index 0000000..0e4e5f4 --- /dev/null +++ b/ko/act-operator/python/quickstart.mdx @@ -0,0 +1,53 @@ +--- +title: "빠른 시작" +description: "이 페이지는 Install 페이지를 이미 읽었고 Python 3.11+와 uv가 준비되어 있다고 가정합니다." +icon: "rocket" +--- + +이제 실제 프로젝트를 만들어 생성된 구조를 확인해봅니다. + +## 새 Act 만들기 + +프로젝트를 만들 디렉터리에서 실행하세요: + +```bash +uvx --from act-operator act new +``` + +Act Operator가 프로젝트 이름, 초기 Cast 이름, 기타 메타데이터를 묻습니다. +이어 시작용 Cast가 포함된 구조화된 Act 프로젝트를 생성합니다. + +## 프로젝트로 이동 + +```bash +cd +``` + +## 의존성 설치 + +```bash +uv sync +``` + +## 프로젝트 파악하기 + +- `README.md`에서 프로젝트별 지침을 확인하세요 +- `CLAUDE.md`를 열어 아키텍처 컨텍스트와 AI 협업 가이드를 확인하세요 +- 초기 Cast는 `casts/` 아래에 있으니 그곳에서 그래프 로직을 추가하세요 + +이 시점에는 **동작 가능한 Act 프로젝트와 초기 Cast**가 준비된 상태입니다. + +## 다음 단계 + + + + 개념과 용어를 확인하기 + + + 생성된 구조를 이해하기 + + diff --git a/act-operator/python/template-architecture-kr.mdx b/ko/act-operator/python/template-architecture.mdx similarity index 81% rename from act-operator/python/template-architecture-kr.mdx rename to ko/act-operator/python/template-architecture.mdx index d62c401..ea5e7dd 100644 --- a/act-operator/python/template-architecture-kr.mdx +++ b/ko/act-operator/python/template-architecture.mdx @@ -4,8 +4,8 @@ description: "`act new`가 생성하는 내용과 템플릿 구성 방식을 설 icon: "sitemap" --- -이 페이지는 `act new`로 생성된 구조가 **왜 그렇게 생겼는지**를 이해하는 데 목적이 있습니다. -빠른 시작에서 프로젝트를 만든 뒤, 확장하기 전에 한번 훑어보는 것을 권장합니다. +이 페이지는 `act new`로 생성된 레이아웃이 **왜 그렇게 구성되었는지**를 설명합니다. +빠른 시작 이후에 읽으면 프로젝트를 안전하게 확장하는 방법을 이해할 수 있습니다. ## 생성 방식 @@ -53,7 +53,7 @@ casts/ utils.py ``` -## 템플릿의 Skills +## 템플릿에 포함된 Skills 기본 Skills는 `.claude/skills/` 아래에 스캐폴딩됩니다: @@ -74,14 +74,14 @@ casts/ ## 다음 단계 - - 개념과 용어를 다시 확인합니다 + + 개념과 용어를 다시 확인하기 - 0에서 동작하는 Cast까지. + 0에서 동작하는 Cast까지 진행하기 diff --git a/index-kr.mdx b/ko/index.mdx similarity index 56% rename from index-kr.mdx rename to ko/index.mdx index 98bec6f..386d57c 100644 --- a/index-kr.mdx +++ b/ko/index.mdx @@ -5,10 +5,10 @@ description: "LangGraph 프로젝트를 자신 있게 스캐폴딩하고 확장 > **구조화된 LangGraph 1.0+ 프로젝트를 스캐폴딩하고, 규모가 커져도 유지보수 가능하게 가져가세요.** -Act Operator는 LangGraph를 아는 팀이 **프로젝트 구조를 표준화**할 수 있게 돕는 **CLI 및 프로젝트 표준**입니다. +LangGraph를 이미 쓰는 팀이라면, Act Operator는 **깨끗하고 반복 가능한 프로젝트 구조**를 갖추도록 돕는 **CLI 및 프로젝트 표준**입니다. Act와 Cast라는 프로젝트 단위를 도입해 구조를 분명히 하고, 규모가 커져도 아키텍처·개발·테스트가 같은 방향으로 유지되도록 AI Skills를 제공합니다. -LangGraph 프로젝트가: +LangGraph 프로젝트가 다음에 해당한다면: - 시작은 깔끔했지만 점점 이해하기 어려워졌거나 - 단일 그래프를 넘어서며 복잡해졌거나 @@ -16,28 +16,28 @@ LangGraph 프로젝트가: **Act Operator는 그 문제를 해결하기 위해 존재합니다.** -처음 보는 도구라면 아래 순서로 읽는 것이 가장 자연스럽습니다: +처음이라면 아래 순서로 읽어보세요: -- **개요**: 무엇을 해결하고 어떤 개념을 쓰는지 +- **개요**: 어떤 문제를 풀고 어떤 개념을 쓰는지 - **설치**: 환경 준비와 스캐폴딩 - **빠른 시작**: 프로젝트를 만들고 실행 흐름 확인 - **템플릿 아키텍처**: 생성된 구조를 이해하고 확장 ## Act Operator가 필요한 이유 -LangGraph는 에이전틱 워크플로를 쉽게 만들 수 있습니다. -하지만 성장하는 프로젝트를 조직하는 표준을 제공하지는 않습니다. +LangGraph로는 에이전틱 워크플로를 손쉽게 만들 수 있지만, +규모가 커질수록 구조를 어떻게 묶고 관리할지에 대한 표준은 제공하지 않습니다. -Act Operator가 제공하는 내용: +Act Operator가 제공하는 것: -- 상태, 노드, 에이전트, 도구들을 위한 명확하고 모듈식 구조 +- 상태, 노드, 에이전트, 도구를 위한 명확한 모듈 구조 - Cast 패키지로 여러 그래프를 확장·관리하는 방식 - 기본 Skills와 명시적 프로젝트 컨텍스트로 지원되는 AI 네이티브 개발 -- 아키텍처에 대한 추측을 줄이는 명확한 기본값들 +- 아키텍처에 대한 추측을 줄이는 의견이 담긴 기본값 -## 30초 안에 시작 해볼까요? +## 30초 안에 시작해볼까요? -Python 3.11+ 이상이 요구됩니다. +Python 3.11+ 이상이 필요합니다. ```bash uvx --from act-operator act new @@ -54,17 +54,17 @@ uvx --from act-operator act new ## Act란 -**Act**는 LangGraph 애플리케이션의 구조화된 모듈 단위입니다. +**Act**는 LangGraph 애플리케이션을 구성하는 구조화된 모듈입니다. 이렇게 이해하면 됩니다: -- 목적이 명확한 경계형 그래프 -- 상태, 노드, 에이전트, 의존성이 명시된 패키지 -- 이해, 테스트, 리팩터링이 가능한 설계 산출물 -- 사람과 AI 에이전트 모두를 위한 협업 표면 +- 목적과 경계가 분명한 그래프 +- 상태, 노드, 에이전트, 의존성이 명확히 정의된 패키지 +- 이해·테스트·리팩터링이 가능한 설계 단위 +- 사람과 AI 에이전트가 함께 일하기 위한 협업 인터페이스 -여러 Act(= Cast)가 하나의 저장소에 함께 존재해, -복잡한 에이전틱 시스템을 위한 유지보수 가능한 모노레포를 형성합니다. +여러 Act(= Cast)가 하나의 저장소에 함께 배치되어, +복잡한 에이전틱 시스템을 유지보수 가능한 모노레포 형태로 구성합니다. ## AI 협업을 위한 설계 @@ -82,20 +82,24 @@ Act Operator는 처음부터 AI 보조 개발을 염두에 두고 설계되었 현재 상황에 맞는 단계를 선택하세요: - - 개념, 기능, 대상 사용 사례를 확인합니다. + + 개념, 기능, 대상 사용 사례 확인하기 - - Python 프로젝트 설치 및 설정 안내. + + Python 프로젝트 설치 및 설정 확인하기 - - 0에서 동작하는 Cast까지 빠르게. + + 0에서 동작하는 Cast까지 진행하기 - 생성된 구조와 규칙을 이해합니다. + 생성된 구조와 규칙 이해하기 From ecbf6c65d9f8998df902db34e1043a698720ecbe Mon Sep 17 00:00:00 2001 From: Woojin Son Date: Fri, 13 Feb 2026 00:44:36 +0900 Subject: [PATCH 2/5] feat: update logo button - route to the main page for the selected language --- logo-lang.js | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 logo-lang.js diff --git a/logo-lang.js b/logo-lang.js new file mode 100644 index 0000000..1315089 --- /dev/null +++ b/logo-lang.js @@ -0,0 +1,151 @@ +(function () { + var koPrefix = "/ko"; + var defaultHome = "/"; + + function homeForPath(pathname) { + if (pathname === koPrefix || pathname.indexOf(koPrefix + "/") === 0) { + return koPrefix; + } + return defaultHome; + } + + function logoSelectors(anchorOnly) { + if (anchorOnly) { + return [ + "a[data-testid=\"nav-logo\"]", + "a.nav-logo", + "a#nav-logo", + "a[aria-label=\"Home\"]", + "a[aria-label=\"Homepage\"]" + ]; + } + return [ + "[data-testid=\"nav-logo\"]", + ".nav-logo", + "#nav-logo", + "[aria-label=\"Home\"]", + "[aria-label=\"Homepage\"]" + ]; + } + + function findLogoLink(root) { + var selectors = logoSelectors(true); + + var scope = root || document; + if (scope instanceof Element) { + for (var j = 0; j < selectors.length; j += 1) { + var closest = scope.closest(selectors[j]); + if (closest) { + return closest; + } + } + } + for (var i = 0; i < selectors.length; i += 1) { + var el = scope.querySelector(selectors[i]); + if (!el) { + continue; + } + if (el.tagName === "A") { + return el; + } + var link = el.closest("a"); + if (link) { + return link; + } + } + + var imgLogo = scope.querySelector("img[alt*=\"logo\" i]"); + if (imgLogo) { + return imgLogo.closest("a"); + } + + return null; + } + + function isLogoTarget(target) { + if (!(target instanceof Element)) { + return false; + } + var selectors = logoSelectors(false); + for (var i = 0; i < selectors.length; i += 1) { + if (target.closest(selectors[i])) { + return true; + } + } + return false; + } + + function updateLogoHref() { + var link = findLogoLink(); + if (!link) { + return; + } + var target = homeForPath(window.location.pathname); + if (link.getAttribute("href") !== target) { + link.setAttribute("href", target); + } + } + + function scheduleUpdate() { + updateLogoHref(); + window.setTimeout(updateLogoHref, 50); + window.setTimeout(updateLogoHref, 250); + } + + function wireLocationChange() { + var notify = function () { + window.dispatchEvent(new Event("locationchange")); + }; + + var pushState = history.pushState; + history.pushState = function () { + var result = pushState.apply(this, arguments); + notify(); + return result; + }; + + var replaceState = history.replaceState; + history.replaceState = function () { + var result = replaceState.apply(this, arguments); + notify(); + return result; + }; + + window.addEventListener("popstate", notify); + } + + function wireLogoClick() { + document.addEventListener( + "click", + function (event) { + var target = event.target; + if (!target || typeof target.closest !== "function") { + return; + } + if (!isLogoTarget(target)) { + return; + } + var destination = homeForPath(window.location.pathname); + event.preventDefault(); + event.stopPropagation(); + window.location.assign(destination); + }, + true + ); + } + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", scheduleUpdate); + } else { + scheduleUpdate(); + } + + wireLocationChange(); + wireLogoClick(); + window.addEventListener("locationchange", scheduleUpdate); + + var observer = new MutationObserver(function () { + updateLogoHref(); + }); + observer.observe(document.documentElement, { childList: true, subtree: true }); +})(); From 1ed38f05fe8a322a8d1f74c1d7f24064dca9ad3a Mon Sep 17 00:00:00 2001 From: Woojin Son Date: Fri, 13 Feb 2026 01:34:16 +0900 Subject: [PATCH 3/5] docs(tech): move english docs to en --- {act-operator => en/act-operator}/overview.mdx | 6 +++--- {act-operator => en/act-operator}/python/install.mdx | 4 ++-- {act-operator => en/act-operator}/python/quickstart.mdx | 4 ++-- .../act-operator}/python/template-architecture.mdx | 4 ++-- {essentials => en/essentials}/images.mdx | 0 {essentials => en/essentials}/markdown.mdx | 0 {essentials => en/essentials}/navigation.mdx | 0 {essentials => en/essentials}/reusable-snippets.mdx | 0 {essentials => en/essentials}/settings.mdx | 0 index.mdx => en/index.mdx | 8 ++++---- {snippets => en/snippets}/snippet-intro.mdx | 0 11 files changed, 13 insertions(+), 13 deletions(-) rename {act-operator => en/act-operator}/overview.mdx (88%) rename {act-operator => en/act-operator}/python/install.mdx (83%) rename {act-operator => en/act-operator}/python/quickstart.mdx (89%) rename {act-operator => en/act-operator}/python/template-architecture.mdx (92%) rename {essentials => en/essentials}/images.mdx (100%) rename {essentials => en/essentials}/markdown.mdx (100%) rename {essentials => en/essentials}/navigation.mdx (100%) rename {essentials => en/essentials}/reusable-snippets.mdx (100%) rename {essentials => en/essentials}/settings.mdx (100%) rename index.mdx => en/index.mdx (91%) rename {snippets => en/snippets}/snippet-intro.mdx (100%) diff --git a/act-operator/overview.mdx b/en/act-operator/overview.mdx similarity index 88% rename from act-operator/overview.mdx rename to en/act-operator/overview.mdx index 7174dce..3166c94 100644 --- a/act-operator/overview.mdx +++ b/en/act-operator/overview.mdx @@ -45,16 +45,16 @@ Design context and specifications for the project and each Cast. ## Next steps - + Install and setup details - + Go from zero to a working cast. Understand the generated structure. diff --git a/act-operator/python/install.mdx b/en/act-operator/python/install.mdx similarity index 83% rename from act-operator/python/install.mdx rename to en/act-operator/python/install.mdx index 9404e2f..2556083 100644 --- a/act-operator/python/install.mdx +++ b/en/act-operator/python/install.mdx @@ -31,13 +31,13 @@ Act Operator will prompt for project details and generate a structured Act with ## Next steps - + Go from zero to a working cast Understand the generated structure. diff --git a/act-operator/python/quickstart.mdx b/en/act-operator/python/quickstart.mdx similarity index 89% rename from act-operator/python/quickstart.mdx rename to en/act-operator/python/quickstart.mdx index e080114..f8bda84 100644 --- a/act-operator/python/quickstart.mdx +++ b/en/act-operator/python/quickstart.mdx @@ -40,13 +40,13 @@ At this point, you have a working Act project with an initial Cast. ## Next steps - + Review concepts and vocabulary Understand the generated structure. diff --git a/act-operator/python/template-architecture.mdx b/en/act-operator/python/template-architecture.mdx similarity index 92% rename from act-operator/python/template-architecture.mdx rename to en/act-operator/python/template-architecture.mdx index d6985cf..29695d9 100644 --- a/act-operator/python/template-architecture.mdx +++ b/en/act-operator/python/template-architecture.mdx @@ -74,10 +74,10 @@ The template includes two test areas: ## Next steps - + Review concepts and vocabulary - + Go from zero to a working cast. diff --git a/essentials/images.mdx b/en/essentials/images.mdx similarity index 100% rename from essentials/images.mdx rename to en/essentials/images.mdx diff --git a/essentials/markdown.mdx b/en/essentials/markdown.mdx similarity index 100% rename from essentials/markdown.mdx rename to en/essentials/markdown.mdx diff --git a/essentials/navigation.mdx b/en/essentials/navigation.mdx similarity index 100% rename from essentials/navigation.mdx rename to en/essentials/navigation.mdx diff --git a/essentials/reusable-snippets.mdx b/en/essentials/reusable-snippets.mdx similarity index 100% rename from essentials/reusable-snippets.mdx rename to en/essentials/reusable-snippets.mdx diff --git a/essentials/settings.mdx b/en/essentials/settings.mdx similarity index 100% rename from essentials/settings.mdx rename to en/essentials/settings.mdx diff --git a/index.mdx b/en/index.mdx similarity index 91% rename from index.mdx rename to en/index.mdx index 1b06bd9..3433251 100644 --- a/index.mdx +++ b/en/index.mdx @@ -84,19 +84,19 @@ Each project includes built-in Skills that allow AI tools to: Pick a path based on where you are: - + Concepts, features, and target use cases. - + Install and setup details for Python projects. - + Go from zero to a working cast fast. Understand the generated structure and conventions. diff --git a/snippets/snippet-intro.mdx b/en/snippets/snippet-intro.mdx similarity index 100% rename from snippets/snippet-intro.mdx rename to en/snippets/snippet-intro.mdx From bc27eb10ff94556baf038581621222975cd179c1 Mon Sep 17 00:00:00 2001 From: Woojin Son Date: Fri, 13 Feb 2026 01:34:58 +0900 Subject: [PATCH 4/5] docs(tech): remove useless docs (samples) --- development.mdx | 94 -------- en/essentials/images.mdx | 59 ------ en/essentials/markdown.mdx | 88 -------- en/essentials/navigation.mdx | 87 -------- en/essentials/reusable-snippets.mdx | 110 ---------- en/essentials/settings.mdx | 318 ---------------------------- en/snippets/snippet-intro.mdx | 4 - essentials/code.mdx | 35 --- quickstart.mdx | 80 ------- 9 files changed, 875 deletions(-) delete mode 100644 development.mdx delete mode 100644 en/essentials/images.mdx delete mode 100644 en/essentials/markdown.mdx delete mode 100644 en/essentials/navigation.mdx delete mode 100644 en/essentials/reusable-snippets.mdx delete mode 100644 en/essentials/settings.mdx delete mode 100644 en/snippets/snippet-intro.mdx delete mode 100644 essentials/code.mdx delete mode 100644 quickstart.mdx diff --git a/development.mdx b/development.mdx deleted file mode 100644 index ac633ba..0000000 --- a/development.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: 'Development' -description: 'Preview changes locally to update your docs' ---- - - - **Prerequisites**: - - Node.js version 19 or higher - - A docs repository with a `docs.json` file - - -Follow these steps to install and run Mintlify on your operating system. - - - - -```bash -npm i -g mint -``` - - - - -Navigate to your docs directory where your `docs.json` file is located, and run the following command: - -```bash -mint dev -``` - -A local preview of your documentation will be available at `http://localhost:3000`. - - - - -## Custom ports - -By default, Mintlify uses port 3000. You can customize the port Mintlify runs on by using the `--port` flag. For example, to run Mintlify on port 3333, use this command: - -```bash -mint dev --port 3333 -``` - -If you attempt to run Mintlify on a port that's already in use, it will use the next available port: - -```md -Port 3000 is already in use. Trying 3001 instead. -``` - -## Mintlify versions - -Please note that each CLI release is associated with a specific version of Mintlify. If your local preview does not align with the production version, please update the CLI: - -```bash -npm mint update -``` - -## Validating links - -The CLI can assist with validating links in your documentation. To identify any broken links, use the following command: - -```bash -mint broken-links -``` - -## Deployment - -If the deployment is successful, you should see the following: - - - Screenshot of a deployment confirmation message that says All checks have passed. - - -## Code formatting - -We suggest using extensions on your IDE to recognize and format MDX. If you're a VSCode user, consider the [MDX VSCode extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting. - -## Troubleshooting - - - - - This may be due to an outdated version of node. Try the following: - 1. Remove the currently-installed version of the CLI: `npm remove -g mint` - 2. Upgrade to Node v19 or higher. - 3. Reinstall the CLI: `npm i -g mint` - - - - - Solution: Go to the root of your device and delete the `~/.mintlify` folder. Then run `mint dev` again. - - - -Curious about what changed in the latest CLI version? Check out the [CLI changelog](https://www.npmjs.com/package/mintlify?activeTab=versions). diff --git a/en/essentials/images.mdx b/en/essentials/images.mdx deleted file mode 100644 index 1144eb2..0000000 --- a/en/essentials/images.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: 'Images and embeds' -description: 'Add image, video, and other HTML elements' -icon: 'image' ---- - - - -## Image - -### Using Markdown - -The [markdown syntax](https://www.markdownguide.org/basic-syntax/#images) lets you add images using the following code - -```md -![title](/path/image.jpg) -``` - -Note that the image file size must be less than 5MB. Otherwise, we recommend hosting on a service like [Cloudinary](https://cloudinary.com/) or [S3](https://aws.amazon.com/s3/). You can then use that URL and embed. - -### Using embeds - -To get more customizability with images, you can also use [embeds](/writing-content/embed) to add images - -```html - -``` - -## Embeds and HTML elements - - - -
- - - -Mintlify supports [HTML tags in Markdown](https://www.markdownguide.org/basic-syntax/#html). This is helpful if you prefer HTML tags to Markdown syntax, and lets you create documentation with infinite flexibility. - - - -### iFrames - -Loads another HTML page within the document. Most commonly used for embedding videos. - -```html - -``` diff --git a/en/essentials/markdown.mdx b/en/essentials/markdown.mdx deleted file mode 100644 index a45c1d5..0000000 --- a/en/essentials/markdown.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: 'Markdown syntax' -description: 'Text, title, and styling in standard markdown' -icon: 'text-size' ---- - -## Titles - -Best used for section headers. - -```md -## Titles -``` - -### Subtitles - -Best used for subsection headers. - -```md -### Subtitles -``` - - - -Each **title** and **subtitle** creates an anchor and also shows up on the table of contents on the right. - - - -## Text formatting - -We support most markdown formatting. Simply add `**`, `_`, or `~` around text to format it. - -| Style | How to write it | Result | -| ------------- | ----------------- | --------------- | -| Bold | `**bold**` | **bold** | -| Italic | `_italic_` | _italic_ | -| Strikethrough | `~strikethrough~` | ~strikethrough~ | - -You can combine these. For example, write `**_bold and italic_**` to get **_bold and italic_** text. - -You need to use HTML to write superscript and subscript text. That is, add `` or `` around your text. - -| Text Size | How to write it | Result | -| ----------- | ------------------------ | ---------------------- | -| Superscript | `superscript` | superscript | -| Subscript | `subscript` | subscript | - -## Linking to pages - -You can add a link by wrapping text in `[]()`. You would write `[link to google](https://google.com)` to [link to google](https://google.com). - -Links to pages in your docs need to be root-relative. Basically, you should include the entire folder path. For example, `[link to text](/writing-content/text)` links to the page "Text" in our components section. - -Relative links like `[link to text](../text)` will open slower because we cannot optimize them as easily. - -## Blockquotes - -### Singleline - -To create a blockquote, add a `>` in front of a paragraph. - -> Dorothy followed her through many of the beautiful rooms in her castle. - -```md -> Dorothy followed her through many of the beautiful rooms in her castle. -``` - -### Multiline - -> Dorothy followed her through many of the beautiful rooms in her castle. -> -> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. - -```md -> Dorothy followed her through many of the beautiful rooms in her castle. -> -> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. -``` - -### LaTeX - -Mintlify supports [LaTeX](https://www.latex-project.org) through the Latex component. - -8 x (vk x H1 - H2) = (0,1) - -```md -8 x (vk x H1 - H2) = (0,1) -``` diff --git a/en/essentials/navigation.mdx b/en/essentials/navigation.mdx deleted file mode 100644 index 60adeff..0000000 --- a/en/essentials/navigation.mdx +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: 'Navigation' -description: 'The navigation field in docs.json defines the pages that go in the navigation menu' -icon: 'map' ---- - -The navigation menu is the list of links on every website. - -You will likely update `docs.json` every time you add a new page. Pages do not show up automatically. - -## Navigation syntax - -Our navigation syntax is recursive which means you can make nested navigation groups. You don't need to include `.mdx` in page names. - - - -```json Regular Navigation -"navigation": { - "tabs": [ - { - "tab": "Docs", - "groups": [ - { - "group": "Getting Started", - "pages": ["quickstart"] - } - ] - } - ] -} -``` - -```json Nested Navigation -"navigation": { - "tabs": [ - { - "tab": "Docs", - "groups": [ - { - "group": "Getting Started", - "pages": [ - "quickstart", - { - "group": "Nested Reference Pages", - "pages": ["nested-reference-page"] - } - ] - } - ] - } - ] -} -``` - - - -## Folders - -Simply put your MDX files in folders and update the paths in `docs.json`. - -For example, to have a page at `https://yoursite.com/your-folder/your-page` you would make a folder called `your-folder` containing an MDX file called `your-page.mdx`. - - - -You cannot use `api` for the name of a folder unless you nest it inside another folder. Mintlify uses Next.js which reserves the top-level `api` folder for internal server calls. A folder name such as `api-reference` would be accepted. - - - -```json Navigation With Folder -"navigation": { - "tabs": [ - { - "tab": "Docs", - "groups": [ - { - "group": "Group Name", - "pages": ["your-folder/your-page"] - } - ] - } - ] -} -``` - -## Hidden pages - -MDX files not included in `docs.json` will not show up in the sidebar but are accessible through the search bar and by linking directly to them. diff --git a/en/essentials/reusable-snippets.mdx b/en/essentials/reusable-snippets.mdx deleted file mode 100644 index 376e27b..0000000 --- a/en/essentials/reusable-snippets.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Reusable snippets" -description: "Reusable, custom snippets to keep content in sync" -icon: "recycle" ---- - -import SnippetIntro from '/snippets/snippet-intro.mdx'; - - - -## Creating a custom snippet - -**Pre-condition**: You must create your snippet file in the `snippets` directory. - - - Any page in the `snippets` directory will be treated as a snippet and will not - be rendered into a standalone page. If you want to create a standalone page - from the snippet, import the snippet into another file and call it as a - component. - - -### Default export - -1. Add content to your snippet file that you want to re-use across multiple - locations. Optionally, you can add variables that can be filled in via props - when you import the snippet. - -```mdx snippets/my-snippet.mdx -Hello world! This is my content I want to reuse across pages. My keyword of the -day is {word}. -``` - - - The content that you want to reuse must be inside the `snippets` directory in - order for the import to work. - - -2. Import the snippet into your destination file. - -```mdx destination-file.mdx ---- -title: My title -description: My Description ---- - -import MySnippet from '/snippets/path/to/my-snippet.mdx'; - -## Header - -Lorem impsum dolor sit amet. - - -``` - -### Reusable variables - -1. Export a variable from your snippet file: - -```mdx snippets/path/to/custom-variables.mdx -export const myName = 'my name'; - -export const myObject = { fruit: 'strawberries' }; -``` - -2. Import the snippet from your destination file and use the variable: - -```mdx destination-file.mdx ---- -title: My title -description: My Description ---- - -import { myName, myObject } from '/snippets/path/to/custom-variables.mdx'; - -Hello, my name is {myName} and I like {myObject.fruit}. -``` - -### Reusable components - -1. Inside your snippet file, create a component that takes in props by exporting - your component in the form of an arrow function. - -```mdx snippets/custom-component.mdx -export const MyComponent = ({ title }) => ( -
-

{title}

-

... snippet content ...

-
-); -``` - - - MDX does not compile inside the body of an arrow function. Stick to HTML - syntax when you can or use a default export if you need to use MDX. - - -2. Import the snippet into your destination file and pass in the props - -```mdx destination-file.mdx ---- -title: My title -description: My Description ---- - -import { MyComponent } from '/snippets/custom-component.mdx'; - -Lorem ipsum dolor sit amet. - - -``` diff --git a/en/essentials/settings.mdx b/en/essentials/settings.mdx deleted file mode 100644 index 884de13..0000000 --- a/en/essentials/settings.mdx +++ /dev/null @@ -1,318 +0,0 @@ ---- -title: 'Global Settings' -description: 'Mintlify gives you complete control over the look and feel of your documentation using the docs.json file' -icon: 'gear' ---- - -Every Mintlify site needs a `docs.json` file with the core configuration settings. Learn more about the [properties](#properties) below. - -## Properties - - -Name of your project. Used for the global title. - -Example: `mintlify` - - - - - An array of groups with all the pages within that group - - - The name of the group. - - Example: `Settings` - - - - The relative paths to the markdown files that will serve as pages. - - Example: `["customization", "page"]` - - - - - - - - Path to logo image or object with path to "light" and "dark" mode logo images - - - Path to the logo in light mode - - - Path to the logo in dark mode - - - Where clicking on the logo links you to - - - - - - Path to the favicon image - - - - Hex color codes for your global theme - - - The primary color. Used for most often for highlighted content, section - headers, accents, in light mode - - - The primary color for dark mode. Used for most often for highlighted - content, section headers, accents, in dark mode - - - The primary color for important buttons - - - The color of the background in both light and dark mode - - - The hex color code of the background in light mode - - - The hex color code of the background in dark mode - - - - - - - - Array of `name`s and `url`s of links you want to include in the topbar - - - The name of the button. - - Example: `Contact us` - - - The url once you click on the button. Example: `https://mintlify.com/docs` - - - - - - - - - Link shows a button. GitHub shows the repo information at the url provided including the number of GitHub stars. - - - If `link`: What the button links to. - - If `github`: Link to the repository to load GitHub information from. - - - Text inside the button. Only required if `type` is a `link`. - - - - - - - Array of version names. Only use this if you want to show different versions - of docs with a dropdown in the navigation bar. - - - - An array of the anchors, includes the `icon`, `color`, and `url`. - - - The [Font Awesome](https://fontawesome.com/search?q=heart) icon used to feature the anchor. - - Example: `comments` - - - The name of the anchor label. - - Example: `Community` - - - The start of the URL that marks what pages go in the anchor. Generally, this is the name of the folder you put your pages in. - - - The hex color of the anchor icon background. Can also be a gradient if you pass an object with the properties `from` and `to` that are each a hex color. - - - Used if you want to hide an anchor until the correct docs version is selected. - - - Pass `true` if you want to hide the anchor until you directly link someone to docs inside it. - - - One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" - - - - - - - Override the default configurations for the top-most anchor. - - - The name of the top-most anchor - - - Font Awesome icon. - - - One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" - - - - - - An array of navigational tabs. - - - The name of the tab label. - - - The start of the URL that marks what pages go in the tab. Generally, this - is the name of the folder you put your pages in. - - - - - - Configuration for API settings. Learn more about API pages at [API Components](/api-playground/demo). - - - The base url for all API endpoints. If `baseUrl` is an array, it will enable for multiple base url - options that the user can toggle. - - - - - - The authentication strategy used for all API endpoints. - - - The name of the authentication parameter used in the API playground. - - If method is `basic`, the format should be `[usernameName]:[passwordName]` - - - The default value that's designed to be a prefix for the authentication input field. - - E.g. If an `inputPrefix` of `AuthKey` would inherit the default input result of the authentication field as `AuthKey`. - - - - - - Configurations for the API playground - - - - Whether the playground is showing, hidden, or only displaying the endpoint with no added user interactivity `simple` - - Learn more at the [playground guides](/api-playground/demo) - - - - - - Enabling this flag ensures that key ordering in OpenAPI pages matches the key ordering defined in the OpenAPI file. - - This behavior will soon be enabled by default, at which point this field will be deprecated. - - - - - - - A string or an array of strings of URL(s) or relative path(s) pointing to your - OpenAPI file. - - Examples: - - ```json Absolute - "openapi": "https://example.com/openapi.json" - ``` - ```json Relative - "openapi": "/openapi.json" - ``` - ```json Multiple - "openapi": ["https://example.com/openapi1.json", "/openapi2.json", "/openapi3.json"] - ``` - - - - - - An object of social media accounts where the key:property pair represents the social media platform and the account url. - - Example: - ```json - { - "x": "https://x.com/mintlify", - "website": "https://mintlify.com" - } - ``` - - - One of the following values `website`, `facebook`, `x`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news` - - Example: `x` - - - The URL to the social platform. - - Example: `https://x.com/mintlify` - - - - - - Configurations to enable feedback buttons - - - - Enables a button to allow users to suggest edits via pull requests - - - Enables a button to allow users to raise an issue about the documentation - - - - - - Customize the dark mode toggle. - - - Set if you always want to show light or dark mode for new users. When not - set, we default to the same mode as the user's operating system. - - - Set to true to hide the dark/light mode toggle. You can combine `isHidden` with `default` to force your docs to only use light or dark mode. For example: - - - ```json Only Dark Mode - "modeToggle": { - "default": "dark", - "isHidden": true - } - ``` - - ```json Only Light Mode - "modeToggle": { - "default": "light", - "isHidden": true - } - ``` - - - - - - - - - A background image to be displayed behind every page. See example with - [Infisical](https://infisical.com/docs) and [FRPC](https://frpc.io). - diff --git a/en/snippets/snippet-intro.mdx b/en/snippets/snippet-intro.mdx deleted file mode 100644 index e20fbb6..0000000 --- a/en/snippets/snippet-intro.mdx +++ /dev/null @@ -1,4 +0,0 @@ -One of the core principles of software development is DRY (Don't Repeat -Yourself). This is a principle that applies to documentation as -well. If you find yourself repeating the same content in multiple places, you -should consider creating a custom snippet to keep your content in sync. diff --git a/essentials/code.mdx b/essentials/code.mdx deleted file mode 100644 index ae2abbf..0000000 --- a/essentials/code.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: 'Code blocks' -description: 'Display inline code and code blocks' -icon: 'code' ---- - -## Inline code - -To denote a `word` or `phrase` as code, enclose it in backticks (`). - -``` -To denote a `word` or `phrase` as code, enclose it in backticks (`). -``` - -## Code blocks - -Use [fenced code blocks](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) by enclosing code in three backticks and follow the leading ticks with the programming language of your snippet to get syntax highlighting. Optionally, you can also write the name of your code after the programming language. - -```java HelloWorld.java -class HelloWorld { - public static void main(String[] args) { - System.out.println("Hello, World!"); - } -} -``` - -````md -```java HelloWorld.java -class HelloWorld { - public static void main(String[] args) { - System.out.println("Hello, World!"); - } -} -``` -```` diff --git a/quickstart.mdx b/quickstart.mdx deleted file mode 100644 index c711458..0000000 --- a/quickstart.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: "Quickstart" -description: "Start building awesome documentation in minutes" ---- - -## Get started in three steps - -Get your documentation site running locally and make your first customization. - -### Step 1: Set up your local environment - - - - During the onboarding process, you created a GitHub repository with your docs content if you didn't already have one. You can find a link to this repository in your [dashboard](https://dashboard.mintlify.com). - - To clone the repository locally so that you can make and preview changes to your docs, follow the [Cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) guide in the GitHub docs. - - - 1. Install the Mintlify CLI: `npm i -g mint` - 2. Navigate to your docs directory and run: `mint dev` - 3. Open `http://localhost:3000` to see your docs live! - - Your preview updates automatically as you edit files. - - - -### Step 2: Deploy your changes - - - - Install the Mintlify GitHub app from your [dashboard](https://dashboard.mintlify.com/settings/organization/github-app). - - Our GitHub app automatically deploys your changes to your docs site, so you don't need to manage deployments yourself. - - - For a first change, let's update the name and colors of your docs site. - - 1. Open `docs.json` in your editor. - 2. Change the `"name"` field to your project name. - 3. Update the `"colors"` to match your brand. - 4. Save and see your changes instantly at `http://localhost:3000`. - - Try changing the primary color to see an immediate difference! - - - -### Step 3: Go live - - - 1. Commit and push your changes. - 2. Your docs will update and be live in moments! - - -## Next steps - -Now that you have your docs running, explore these key features: - - - - - Learn MDX syntax and start writing your documentation. - - - - Make your docs match your brand perfectly. - - - - Include syntax-highlighted code blocks. - - - - Auto-generate API docs from OpenAPI specs. - - - - - - **Need help?** See our [full documentation](https://mintlify.com/docs) or join our [community](https://mintlify.com/community). - From d43ca090deceadf0f1ddb6ad15ce19b0dbebca09 Mon Sep 17 00:00:00 2001 From: Woojin Son Date: Sun, 15 Feb 2026 00:46:02 +0900 Subject: [PATCH 5/5] docs: add support email, socials url --- docs.json | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/docs.json b/docs.json index 6273a30..0dcf1e3 100644 --- a/docs.json +++ b/docs.json @@ -33,15 +33,15 @@ "groups": [ { "group": "Overview", - "pages": ["index", "act-operator/overview"] + "pages": ["en/index", "en/act-operator/overview"] }, { "group": "Get started", "icon": "rocket", "pages": [ - "act-operator/python/install", - "act-operator/python/quickstart", - "act-operator/python/template-architecture" + "en/act-operator/python/install", + "en/act-operator/python/quickstart", + "en/act-operator/python/template-architecture" ] } ] @@ -96,19 +96,14 @@ "links": [ { "label": "Support", - "href": "mailto:hi@mintlify.com" + "href": "jh.park@cloocus.com" } - ], - "primary": { - "type": "button", - "label": "Dashboard", - "href": "https://dashboard.mintlify.com" - } + ] }, "footer": { "socials": { "github": "https://github.com/Proact0/act-operator", - "linkedin": "https://linkedin.com/company/mintlify", + "linkedin": "https://www.linkedin.com/company/proact0", "discord": "https://discord.gg/5sSByzYeWf" } }