From d6a2c04852484e53e566ed8de52b05b1df6f9455 Mon Sep 17 00:00:00 2001 From: raon0211 Date: Mon, 8 Apr 2024 23:41:54 +0900 Subject: [PATCH] docs: Update docs --- docs/README.md | 40 ------------ docs/src/pages/docs/_meta.json | 5 +- docs/src/pages/docs/api/disassembleHangul.md | 26 ++++++++ ...semble.md => disassembleHangulToGroups.md} | 24 +------ docs/src/pages/docs/engineer-features.mdx | 17 ----- docs/src/pages/docs/features.mdx | 17 +++++ docs/src/pages/docs/introduction.mdx | 57 +++++++++++++++++ docs/src/pages/docs/story.mdx | 64 ------------------- docs/src/pages/index.mdx | 11 ++-- docs/theme.config.tsx | 8 +-- package.json | 4 +- 11 files changed, 116 insertions(+), 157 deletions(-) delete mode 100644 docs/README.md create mode 100644 docs/src/pages/docs/api/disassembleHangul.md rename docs/src/pages/docs/api/{disassemble.md => disassembleHangulToGroups.md} (53%) delete mode 100644 docs/src/pages/docs/engineer-features.mdx create mode 100644 docs/src/pages/docs/features.mdx create mode 100644 docs/src/pages/docs/introduction.mdx delete mode 100644 docs/src/pages/docs/story.mdx diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index a75ac524..00000000 --- a/docs/README.md +++ /dev/null @@ -1,40 +0,0 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. - -[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. - -The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. - -This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/docs/src/pages/docs/_meta.json b/docs/src/pages/docs/_meta.json index 7d48dfb4..4267e40e 100644 --- a/docs/src/pages/docs/_meta.json +++ b/docs/src/pages/docs/_meta.json @@ -1,5 +1,6 @@ { - "story": "es-hangul 이야기", + "introduction": "es-hangul 이야기", "installation": "설치하기", - "engineer-features": "기술적 특징" + "features": "기술적 특징", + "api": "API" } diff --git a/docs/src/pages/docs/api/disassembleHangul.md b/docs/src/pages/docs/api/disassembleHangul.md new file mode 100644 index 00000000..87e36a9a --- /dev/null +++ b/docs/src/pages/docs/api/disassembleHangul.md @@ -0,0 +1,26 @@ +--- +title: disassembleHangul +--- + + +# disassembleHangul + +한글 문자열을 글자별로 초성/중성/종성 단위로 완전히 분리하여, 하나의 문자열로 만듭니다. + +자세한 예시는 아래 Example을 참고하세요. + +```typescript +function disassembleHangul( + // 분리할 한글 문자열 + str: string +): string; +``` + +## Examples + +```tsx +disassembleHangul('값'); // 'ㄱㅏㅂㅅ' +disassembleHangul('값이 비싸다'); // 'ㄱㅏㅂㅅㅇㅣ ㅂㅣㅆㅏㄷㅏ' +disassembleHangul('ㅘ'); // 'ㅗㅏ' +disassembleHangul('ㄵ'); // 'ㄴㅈ' +``` diff --git a/docs/src/pages/docs/api/disassemble.md b/docs/src/pages/docs/api/disassembleHangulToGroups.md similarity index 53% rename from docs/src/pages/docs/api/disassemble.md rename to docs/src/pages/docs/api/disassembleHangulToGroups.md index b2106171..31b8d8d8 100644 --- a/docs/src/pages/docs/api/disassemble.md +++ b/docs/src/pages/docs/api/disassembleHangulToGroups.md @@ -1,5 +1,5 @@ --- -title: disassemble +title: disassembleHangulToGroups --- # disassembleHangulToGroups @@ -24,25 +24,3 @@ disassembleHangulToGroups('값'); // [['ㄱ', 'ㅏ', 'ㅂ', 'ㅅ']] disassembleHangulToGroups('ㅘ'); // [['ㅗ', 'ㅏ']] disassembleHangulToGroups('ㄵ'); // [['ㄴ', 'ㅈ']] ``` - -# disassembleHangul - -한글 문자열을 글자별로 초성/중성/종성 단위로 완전히 분리하여, 하나의 문자열로 만듭니다. - -자세한 예시는 아래 Example을 참고하세요. - -```typescript -function disassembleHangul( - // 분리할 한글 문자열 - str: string -): string; -``` - -## Examples - -```tsx -disassembleHangul('값'); // 'ㄱㅏㅂㅅ' -disassembleHangul('값이 비싸다'); // 'ㄱㅏㅂㅅㅇㅣ ㅂㅣㅆㅏㄷㅏ' -disassembleHangul('ㅘ'); // 'ㅗㅏ' -disassembleHangul('ㄵ'); // 'ㄴㅈ' -``` diff --git a/docs/src/pages/docs/engineer-features.mdx b/docs/src/pages/docs/engineer-features.mdx deleted file mode 100644 index 6d55ecf2..00000000 --- a/docs/src/pages/docs/engineer-features.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# es-hangul은 어떠한 기술적 장점을 갖고 있나요? - -## zero dependency - -es-hangul은 어떠한 외부 라이브러리에도 의존하지 않습니다. 이는 es-hangul을 사용하는 프로젝트가 다른 라이브러리의 버전 충돌 문제를 걱정하지 않아도 된다는 것을 의미합니다. - -## treeshakable - -es-hangul은 esm 모듈을 제공하며, 이는 webpack, rollup, parcel 등의 번들러에서 tree shaking을 지원합니다. 이는 es-hangul을 사용하는 프로젝트가 필요한 기능만 가져다 사용할 수 있게 해줍니다. - -## typescript 지원 - -es-hangul은 typescript를 지원합니다. 이는 es-hangul을 사용하는 프로젝트가 타입 안정성을 확보할 수 있게 해줍니다. - -## 선언적 API - -es-hangul은 선언적 API를 제공합니다. 이는 es-hangul을 사용하는 개발자가 함수를 직관적으로 사용할 수 있게 해줍니다. diff --git a/docs/src/pages/docs/features.mdx b/docs/src/pages/docs/features.mdx new file mode 100644 index 00000000..67e1c949 --- /dev/null +++ b/docs/src/pages/docs/features.mdx @@ -0,0 +1,17 @@ +# 기술적 특징 + +## Tree-shakable + +ECMAScript Modules를 이용하여 사용하는 함수만 애플리케이션에 포함할 수 있습니다. 예를 들어, `josa` 함수를 사용하는 경우, 해당 함수와 연관된 로직만 애플리케이션에 포함됩니다. + +## TypeScript 지원 + +편리하게 사용할 수 있는 정확한 TypeScript 타입을 제공함으로써, 개발자는 개발 단계에서 타입 오류를 쉽게 감지할 수 있습니다. + +## Zero-dependency + +외부 라이브러리에 의존하지 않고, 모든 기능을 컴팩트하게 라이브러리 1개로 제공합니다. + +## 현대적이고 선언적인 API + +현대적인 JavaScript에 어울리는, 사용하기 편리한 API를 제공합니다. diff --git a/docs/src/pages/docs/introduction.mdx b/docs/src/pages/docs/introduction.mdx new file mode 100644 index 00000000..83cf25a6 --- /dev/null +++ b/docs/src/pages/docs/introduction.mdx @@ -0,0 +1,57 @@ +# 소개 + +한글을 다루는 제품을 개발할 때, 초성 검색, 정확한 조사 붙이기와 같은 작업을 수행해야 할 경우가 많습니다. 그 외로 초성, 중성, 종성 등의 한글을 분리하거나 결합해야 하는 경우도 있죠. `es-hangul` 은 이렇게 비즈니스에서 반복적으로 발생하는 한글 관련한 기능을 쉽고 빠르게 구현할 수 있도록 돕습니다. + +
+ +## 특징 + +1. **크기**: 한글을 다루는 데에 필요한 최소한의 코드를 제공함으로써, 사용자가 내려받는 JavaScript의 크기를 줄일 수 있습니다. (전체 라이브러리가 Gzip 압축 기준 1KB 정도입니다.) +2. **정확성**: 모든 함수는 테스트 코드로 검증되어 버전에 관계없이 정확한 기능을 제공합니다. +3. **API**: 다양한 애플리케이션에서 편리하게 사용할 수 있는 현대적인 API를 제공합니다. + +
+ +## 사용 예시 + +### 초성 검색 + +사용자의 입력으로 받은 문자열의 초성이 특정 단어에 포함되어 있는지 검사할 수 있습니다. 예를 들어, '라면'이라는 단어에 'ㄹㅁ'으로 시작하는 초성이 포함되어 있는지 확인할 수 있습니다. + +```tsx +import { chosungIncludes } from 'es-hangul'; + +const searchWord = '라면'; +const userInput = 'ㄹㅁ'; + +const result = chosungIncludes(searchWord, userInput); +console.log(result); // true +``` + +### 한글 문자열 분해 +주어진 한글 문자열을 초성, 중성, 종성으로 분해하여 배열 형태로 반환하는 기능입니다. 이를 통해 문자열을 더 세밀하게 분석하거나 수정할 수 있습니다. + +```tsx +import { disassembleHangul } from 'es-hangul'; + +const word = '안녕하세요'; +const disassembled = disassembleHangul(word); +console.log(disassembled); // 'ㅇㅏㄴㄴㅕㅇㅎㅏㅅㅔㅇㅛ' +``` + +### 자연스러운 조사 처리 + +한글에서 동일한 단어라도 앞에 오는 단어에 따라 조사가 달라지는 경우가 많습니다. 단어의 마지막 글자가 받침이 있는지 여부에 따라 적절한 조사를 자동으로 선택할 수 있습니다. + +```tsx +import { josa } from 'es-hangul'; + +const word1 = '사과'; +const sentence1 = josa(word1, '을/를') + ' 먹었습니다.'; +console.log(sentence1); // '사과를 먹었습니다.' + +const word2 = '바나나'; +const sentence2 = josa(word2, '이/가') + ' 맛있습니다.'; +console.log(sentence2); // '바나나가 맛있습니다.' +``` + diff --git a/docs/src/pages/docs/story.mdx b/docs/src/pages/docs/story.mdx deleted file mode 100644 index b8429967..00000000 --- a/docs/src/pages/docs/story.mdx +++ /dev/null @@ -1,64 +0,0 @@ -# 왜 es-hangul을 사용하면 좋은가요? - -es-hangul은 한글의 복잡한 특성을 이해하고 처리하는 작업을 간소화하도록 설계된 JavaScript 라이브러리입니다. 한글의 구성 요소인 초성, 중성, 종성을 분리하거나 결합하는 과정이 개발자에게는 번거로운 작업이 될 수 있습니다. es-hangul은 이러한 과정을 단순화하여, 개발자가 한글 관련 기능을 쉽고 빠르게 구현할 수 있게 해줍니다. 예를 들어, 사용자의 입력을 초성 검색에 활용하거나, 정확한 조사를 붙여 자연스러운 문장을 생성하는 기능을 제공합니다. 이는 검색 엔진, 텍스트 에디터, 교육 플랫폼 등 다양한 분야에서 한글 처리의 정확도와 효율성을 높여줍니다. es-hangul을 사용함으로써, 복잡한 한글 처리 로직을 라이브러리에 위임하고, 개발자는 비즈니스 로직 개발에 더 집중할 수 있습니다. - -
- -# 특성 - -1. 한국어 특성의 깊은 이해
- 한국어의 독특한 특성인 초성, 중성, 종성을 기반으로 한 문자열 처리 기능은 한국어 처리에 있어 높은 수준의 정확성과 효율성을 제공해줍니다. - -2. 문장을 자연스럽게 만드는 도구
- 유동적으로 조사 등을 선택할 수 있게 함에 따라 자연스러운 문장 형성을 도와줍니다. - -3. 다양한 애플리케이션
- 검색 엔진, 텍스트 에디터, 교육 플랫폼 등 다양한 종류의 애플리케이션에서 한글 처리를 위한 강력한 기능을 제공합니다. - -
- -# 사용 예시 - -es-hangul 라이브러리를 활용하면 한글 처리를 위한 다양한 기능을 손쉽게 구현할 수 있습니다.
-다음은 es-hangul을 활용한 몇 가지 코드 예시입니다. - -예시 1: 초성 검색 -사용자의 입력으로 받은 문자열의 초성이 특정 단어에 포함되어 있는지 검사하는 기능입니다.예를 들어, '라면'이라는 단어에 'ㄹㅁ'으로 시작하는 초성이 포함되어 있는지 확인할 수 있습니다. - -```tsx -import { chosungIncludes } from 'es-hangul'; - -const searchWord = '라면'; -const userInput = 'ㄹㅁ'; - -const result = chosungIncludes(searchWord, userInput); -console.log(result); // true -``` - -예시 2: 한글 문자열 분해 -주어진 한글 문자열을 초성, 중성, 종성으로 분해하여 배열 형태로 반환하는 기능입니다. 이를 통해 문자열을 더 세밀하게 분석하거나 수정할 수 있습니다. - -```tsx -import { disassembleHangul } from 'es-hangul'; - -const word = '안녕하세요'; -const disassembled = disassembleHangul(word); -console.log(disassembled); // 'ㅇㅏㄴㄴㅕㅇㅎㅏㅅㅔㅇㅛ' -``` - -예시 3: 자연스러운 조사 처리 -한글에서 동일한 단어라도 앞에 오는 단어에 따라 조사가 달라지는 경우가 많습니다. es-hangul은 단어의 마지막 글자가 받침이 있는지 여부에 따라 적절한 조사를 자동으로 선택해줍니다. - -```tsx -import { josa } from 'es-hangul'; - -const word1 = '사과'; -const sentence1 = josa(word1, '을/를') + ' 먹었습니다.'; -console.log(sentence1); // '사과를 먹었습니다.' - -const word2 = '바나나'; -const sentence2 = josa(word2, '이/가') + ' 맛있습니다.'; -console.log(sentence2); // '바나나가 맛있습니다.' -``` - -이러한 기능들을 통해 개발자는 한글 처리를 더욱 효과적으로 할 수 있으며, 애플리케이션의 사용자 경험을 개선하는 데 기여할 수 있습니다. diff --git a/docs/src/pages/index.mdx b/docs/src/pages/index.mdx index 17c50a0c..04a68594 100644 --- a/docs/src/pages/index.mdx +++ b/docs/src/pages/index.mdx @@ -12,21 +12,22 @@ import { Callout, useTheme, Steps } from 'nextra-theme-docs'; 0 0, 20px 20px; background-size: 40px 40px; + word-break: keep-all; } .dark body { background-image: radial-gradient(#333 1px, transparent 0), radial-gradient(#333 1px, transparent 0); } `} -
-

이에스-한글

+ + +
-

한글을 다루는 모던한 방법

+

현대적인 JavaScript 한글 라이브러리

- 한글을 쉽고, 선언적으로 다룰 수 있는 도구들을 제공합니다. 반복적이고 복잡한 부분은 es-hangul에 위임한 뒤, - 비즈니스에 집중할 수 있습니다. + es-hangul은 편리하게 한글을 다룰 수 있도록 돕는 작은 JavaScript 라이브러리입니다. 초성을 검색하고, 조사를 붙이는 등의 동작을 편리하고 깔끔한 API로 제공합니다.
diff --git a/docs/theme.config.tsx b/docs/theme.config.tsx index 49708abc..f04bf20e 100644 --- a/docs/theme.config.tsx +++ b/docs/theme.config.tsx @@ -76,19 +76,19 @@ const config: DocsThemeConfig = { className="flex items-center gap-1 text-current" target="_blank" rel="noopener noreferrer" - title="vercel.com homepage" - href="https://vercel.com?utm_source=nextra.site" + title="toss homepage" + href="https://toss.im" > Powered by Vercel.com
-

© {new Date().getFullYear()} The Opensource Project.

+

© {new Date().getFullYear()} Viva Republica, Inc.

); }, diff --git a/package.json b/package.json index 012a1d5e..18834f82 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,9 @@ }, "exports": { ".": { - "require": "./dist/index.js", + "types": "./dist/index.d.ts", "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" + "require": "./dist/index.js" }, "./package.json": "./package.json" },