mirror of
https://github.com/yamadashy/repomix.git
synced 2025-06-11 00:25:54 +03:00
feat(website): Add Vietnamese language support
Co-Authored-By: Kazuki Yamada <koukun0120@gmail.com>
This commit is contained in:
1
.github/instructions/website.instructions.md
vendored
1
.github/instructions/website.instructions.md
vendored
@@ -16,6 +16,7 @@ The website documentation is available in the following languages:
|
||||
- Spanish (Español) (es)
|
||||
- Portuguese Brazilian (Português do Brasil) (pt-br)
|
||||
- Indonesian (Bahasa Indonesia) (id)
|
||||
- Vietnamese (Tiếng Việt) (vi)
|
||||
|
||||
All translations should be accurate and maintain consistent terminology across languages. When adding new features or documentation, please ensure that the English version is updated first, followed by translations in other languages.
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { configJa } from './config/configJa';
|
||||
import { configKo } from './config/configKo';
|
||||
import { configPtBr } from './config/configPtBr';
|
||||
import { configShard } from './config/configShard';
|
||||
import { configVi } from './config/configVi';
|
||||
import { configZhCn } from './config/configZhCn';
|
||||
import { configZhTw } from './config/configZhTw';
|
||||
|
||||
@@ -24,5 +25,6 @@ export default defineConfig({
|
||||
de: { label: 'Deutsch (Deutschland)', ...configDe },
|
||||
fr: { label: 'Français (France)', ...configFr },
|
||||
id: { label: 'Indonesia (Indonesia)', ...configId },
|
||||
vi: { label: 'Tiếng Việt (Việt Nam)', ...configVi },
|
||||
},
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ import { configIdSearch } from './configId';
|
||||
import { configJaSearch } from './configJa';
|
||||
import { configKoSearch } from './configKo';
|
||||
import { configPtBrSearch } from './configPtBr';
|
||||
import { configViSearch } from './configVi';
|
||||
import { configZhCnSearch } from './configZhCn';
|
||||
import { configZhTwSearch } from './configZhTw';
|
||||
|
||||
@@ -71,6 +72,7 @@ export const configShard = defineConfig({
|
||||
...configJaSearch,
|
||||
...configKoSearch,
|
||||
...configPtBrSearch,
|
||||
...configViSearch,
|
||||
...configZhCnSearch,
|
||||
...configZhTwSearch,
|
||||
},
|
||||
|
||||
77
website/client/.vitepress/config/configVi.ts
Normal file
77
website/client/.vitepress/config/configVi.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
import { type DefaultTheme, defineConfig } from 'vitepress';
|
||||
|
||||
export const configVi = defineConfig({
|
||||
lang: 'vi',
|
||||
description: 'Đóng gói codebase của bạn thành các định dạng thân thiện với AI',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'Hướng dẫn', link: '/vi/guide/', activeMatch: '^/vi/guide/' },
|
||||
{
|
||||
text: 'Tiện ích Chrome',
|
||||
link: 'https://chromewebstore.google.com/detail/repomix/fimfamikepjgchehkohedilpdigcpkoa',
|
||||
},
|
||||
{ text: 'Tham gia Discord', link: 'https://discord.gg/wNYzTwZFku' },
|
||||
],
|
||||
sidebar: {
|
||||
'/vi/guide/': [
|
||||
{
|
||||
text: 'Giới thiệu',
|
||||
items: [
|
||||
{ text: 'Bắt đầu', link: '/vi/guide/' },
|
||||
{ text: 'Cài đặt', link: '/vi/guide/installation' },
|
||||
{ text: 'Sử dụng cơ bản', link: '/vi/guide/usage' },
|
||||
{ text: 'Ví dụ Prompt', link: '/vi/guide/prompt-examples' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Hướng dẫn',
|
||||
items: [
|
||||
{ text: 'Định dạng đầu ra', link: '/vi/guide/output' },
|
||||
{ text: 'Tùy chọn dòng lệnh', link: '/vi/guide/command-line-options' },
|
||||
{ text: 'Cấu hình', link: '/vi/guide/configuration' },
|
||||
{ text: 'Hướng dẫn tùy chỉnh', link: '/vi/guide/custom-instructions' },
|
||||
{ text: 'Xử lý kho lưu trữ từ xa', link: '/vi/guide/remote-repository-processing' },
|
||||
{ text: 'Xóa bình luận', link: '/vi/guide/comment-removal' },
|
||||
{ text: 'Nén mã', link: '/vi/guide/code-compress' },
|
||||
{ text: 'Bảo mật', link: '/vi/guide/security' },
|
||||
{ text: 'Máy chủ MCP', link: '/vi/guide/mcp-server' },
|
||||
{ text: 'GitHub Actions', link: '/vi/guide/github-actions' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Nâng cao',
|
||||
items: [
|
||||
{
|
||||
text: 'Sử dụng Repomix như một thư viện',
|
||||
link: '/vi/guide/development/using-repomix-as-a-library',
|
||||
},
|
||||
{ text: 'Mẹo phát triển hỗ trợ AI', link: '/vi/guide/tips/best-practices' },
|
||||
{ text: 'Đóng góp cho Repomix', link: '/vi/guide/development/' },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const configViSearch: DefaultTheme.LocalSearchOptions['locales'] = {
|
||||
vi: {
|
||||
translations: {
|
||||
button: {
|
||||
buttonText: 'Tìm kiếm',
|
||||
buttonAriaLabel: 'Tìm kiếm',
|
||||
},
|
||||
modal: {
|
||||
noResultsText: 'Không tìm thấy kết quả',
|
||||
resetButtonTitle: 'Đặt lại tìm kiếm',
|
||||
backButtonTitle: 'Quay lại',
|
||||
displayDetails: 'Hiển thị chi tiết',
|
||||
footer: {
|
||||
selectText: 'Chọn',
|
||||
navigateText: 'Điều hướng',
|
||||
closeText: 'Đóng',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
194
website/client/src/vi/guide/code-compress.md
Normal file
194
website/client/src/vi/guide/code-compress.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# Nén mã
|
||||
|
||||
Repomix cung cấp tính năng nén mã để giảm kích thước đầu ra bằng cách chỉ bao gồm chữ ký hàm và loại bỏ phần thân hàm. Điều này đặc biệt hữu ích khi làm việc với các codebase lớn và giới hạn token của mô hình ngôn ngữ lớn (LLM).
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Tính năng nén mã:
|
||||
|
||||
- Giữ lại chữ ký hàm, lớp và phương thức
|
||||
- Loại bỏ phần thân hàm và phương thức
|
||||
- Duy trì cấu trúc tổng thể của codebase
|
||||
- Giảm đáng kể số lượng token
|
||||
|
||||
Điều này cho phép AI hiểu cấu trúc và API của codebase mà không cần xem xét từng dòng mã triển khai.
|
||||
|
||||
## Sử dụng tính năng nén mã
|
||||
|
||||
### Thông qua dòng lệnh
|
||||
|
||||
Để bật nén mã khi chạy Repomix:
|
||||
|
||||
```bash
|
||||
repomix --compress-code
|
||||
```
|
||||
|
||||
### Thông qua tệp cấu hình
|
||||
|
||||
Bạn cũng có thể bật nén mã trong tệp cấu hình `repomix.config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"advanced": {
|
||||
"compressCode": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Ví dụ nén mã
|
||||
|
||||
### Mã gốc
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* Lớp User đại diện cho người dùng trong hệ thống
|
||||
*/
|
||||
class User {
|
||||
private name: string;
|
||||
private email: string;
|
||||
private age: number;
|
||||
|
||||
/**
|
||||
* Tạo một người dùng mới
|
||||
*/
|
||||
constructor(name: string, email: string, age: number) {
|
||||
this.name = name;
|
||||
this.email = email;
|
||||
this.age = age;
|
||||
console.log(`Người dùng mới được tạo: ${name}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trả về tên người dùng
|
||||
*/
|
||||
getName(): string {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Trả về email người dùng
|
||||
*/
|
||||
getEmail(): string {
|
||||
return this.email;
|
||||
}
|
||||
|
||||
/**
|
||||
* Trả về tuổi người dùng
|
||||
*/
|
||||
getAge(): number {
|
||||
return this.age;
|
||||
}
|
||||
|
||||
/**
|
||||
* Kiểm tra xem người dùng có phải là người trưởng thành không
|
||||
*/
|
||||
isAdult(): boolean {
|
||||
return this.age >= 18;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cập nhật thông tin người dùng
|
||||
*/
|
||||
updateInfo(name?: string, email?: string, age?: number): void {
|
||||
if (name) this.name = name;
|
||||
if (email) this.email = email;
|
||||
if (age) this.age = age;
|
||||
console.log('Thông tin người dùng đã được cập nhật');
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Mã đã nén
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* Lớp User đại diện cho người dùng trong hệ thống
|
||||
*/
|
||||
class User {
|
||||
private name: string;
|
||||
private email: string;
|
||||
private age: number;
|
||||
|
||||
/**
|
||||
* Tạo một người dùng mới
|
||||
*/
|
||||
constructor(name: string, email: string, age: number) { /* ... */ }
|
||||
|
||||
/**
|
||||
* Trả về tên người dùng
|
||||
*/
|
||||
getName(): string { /* ... */ }
|
||||
|
||||
/**
|
||||
* Trả về email người dùng
|
||||
*/
|
||||
getEmail(): string { /* ... */ }
|
||||
|
||||
/**
|
||||
* Trả về tuổi người dùng
|
||||
*/
|
||||
getAge(): number { /* ... */ }
|
||||
|
||||
/**
|
||||
* Kiểm tra xem người dùng có phải là người trưởng thành không
|
||||
*/
|
||||
isAdult(): boolean { /* ... */ }
|
||||
|
||||
/**
|
||||
* Cập nhật thông tin người dùng
|
||||
*/
|
||||
updateInfo(name?: string, email?: string, age?: number): void { /* ... */ }
|
||||
}
|
||||
```
|
||||
|
||||
## Lợi ích của nén mã
|
||||
|
||||
### Giảm số lượng token
|
||||
|
||||
Nén mã có thể giảm đáng kể số lượng token cần thiết để đại diện cho codebase, cho phép bạn đưa vào nhiều tệp hơn trong cùng một giới hạn token.
|
||||
|
||||
### Tập trung vào cấu trúc
|
||||
|
||||
Bằng cách chỉ hiển thị chữ ký hàm, AI có thể tập trung vào cấu trúc tổng thể và API của codebase thay vì chi tiết triển khai.
|
||||
|
||||
### Phân tích cấp cao
|
||||
|
||||
Nén mã rất hữu ích cho các nhiệm vụ phân tích cấp cao như:
|
||||
- Hiểu cấu trúc dự án
|
||||
- Xác định mẫu thiết kế
|
||||
- Phân tích phụ thuộc
|
||||
- Tạo tài liệu
|
||||
|
||||
## Khi nào nên sử dụng nén mã
|
||||
|
||||
Nén mã đặc biệt hữu ích trong các trường hợp sau:
|
||||
|
||||
- **Codebase lớn**: Khi codebase của bạn quá lớn để phù hợp với giới hạn token của LLM
|
||||
- **Phân tích cấu trúc**: Khi bạn muốn AI tập trung vào cấu trúc tổng thể thay vì chi tiết triển khai
|
||||
- **Tạo tài liệu**: Khi bạn muốn tạo tài liệu dựa trên API công khai
|
||||
- **Hiểu tổng quan**: Khi bạn cần hiểu tổng quan về một codebase lớn
|
||||
|
||||
## Khi nào không nên sử dụng nén mã
|
||||
|
||||
Nén mã có thể không phù hợp trong các trường hợp sau:
|
||||
|
||||
- **Phân tích mã chi tiết**: Khi bạn cần AI phân tích chi tiết triển khai
|
||||
- **Tìm lỗi**: Khi bạn đang tìm kiếm lỗi trong mã
|
||||
- **Tối ưu hóa hiệu suất**: Khi bạn muốn AI đề xuất cải tiến hiệu suất
|
||||
- **Tái cấu trúc mã**: Khi bạn cần AI hiểu đầy đủ logic hiện tại để đề xuất tái cấu trúc
|
||||
|
||||
## Kết hợp với các tính năng khác
|
||||
|
||||
Nén mã có thể được kết hợp với các tính năng khác của Repomix:
|
||||
|
||||
```bash
|
||||
repomix --compress-code --remove-comments --style markdown
|
||||
```
|
||||
|
||||
Lệnh này sẽ tạo một đầu ra Markdown với mã đã nén và không có bình luận, giảm đáng kể kích thước đầu ra.
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Xóa bình luận](comment-removal.md): Tìm hiểu về tính năng xóa bình luận
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
89
website/client/src/vi/guide/command-line-options.md
Normal file
89
website/client/src/vi/guide/command-line-options.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# Tùy chọn dòng lệnh
|
||||
|
||||
Repomix cung cấp nhiều tùy chọn dòng lệnh để tùy chỉnh hành vi của nó. Dưới đây là danh sách đầy đủ các tùy chọn có sẵn.
|
||||
|
||||
## Tùy chọn cơ bản
|
||||
|
||||
| Tùy chọn | Mô tả |
|
||||
| --- | --- |
|
||||
| `--help`, `-h` | Hiển thị thông tin trợ giúp |
|
||||
| `--version`, `-v` | Hiển thị phiên bản |
|
||||
| `--init` | Tạo tệp cấu hình mẫu (`repomix.config.json`) |
|
||||
|
||||
## Tùy chọn đầu vào
|
||||
|
||||
| Tùy chọn | Mô tả |
|
||||
| --- | --- |
|
||||
| `--remote <url>` | Xử lý kho lưu trữ từ xa thay vì kho lưu trữ cục bộ |
|
||||
| `--include <patterns>` | Chỉ bao gồm các tệp khớp với các mẫu được cung cấp (phân tách bằng dấu phẩy) |
|
||||
| `--ignore <patterns>` | Bỏ qua các tệp khớp với các mẫu được cung cấp (phân tách bằng dấu phẩy) |
|
||||
| `--no-respect-gitignore` | Không tôn trọng các tệp .gitignore |
|
||||
| `--config <path>` | Chỉ định đường dẫn đến tệp cấu hình |
|
||||
|
||||
## Tùy chọn đầu ra
|
||||
|
||||
| Tùy chọn | Mô tả |
|
||||
| --- | --- |
|
||||
| `--output-file <path>`, `-o <path>` | Chỉ định tên tệp đầu ra |
|
||||
| `--style <style>` | Định dạng đầu ra (xml, markdown, plain) |
|
||||
| `--remove-comments` | Xóa bình luận khỏi mã nguồn |
|
||||
| `--show-line-numbers` | Hiển thị số dòng trong đầu ra |
|
||||
| `--top-files-length <number>` | Số lượng tệp hàng đầu để hiển thị trong tóm tắt |
|
||||
|
||||
## Tùy chọn bảo mật
|
||||
|
||||
| Tùy chọn | Mô tả |
|
||||
| --- | --- |
|
||||
| `--no-security-check` | Tắt kiểm tra bảo mật |
|
||||
| `--secretlint-config <path>` | Chỉ định đường dẫn đến tệp cấu hình Secretlint |
|
||||
|
||||
## Tùy chọn nâng cao
|
||||
|
||||
| Tùy chọn | Mô tả |
|
||||
| --- | --- |
|
||||
| `--compress-code` | Nén mã bằng cách chỉ bao gồm chữ ký hàm |
|
||||
| `--no-token-count` | Tắt đếm token |
|
||||
| `--no-color` | Tắt đầu ra màu |
|
||||
| `--debug` | Bật chế độ gỡ lỗi |
|
||||
|
||||
## Ví dụ
|
||||
|
||||
### Đóng gói với các tùy chọn cơ bản
|
||||
|
||||
```bash
|
||||
repomix --style markdown --output-file codebase.md
|
||||
```
|
||||
|
||||
### Đóng gói với các mẫu bao gồm và loại trừ
|
||||
|
||||
```bash
|
||||
repomix --include "src/**/*.ts,**/*.md" --ignore "**/*.test.ts,docs/**"
|
||||
```
|
||||
|
||||
### Đóng gói với các tùy chọn nâng cao
|
||||
|
||||
```bash
|
||||
repomix --remove-comments --show-line-numbers --compress-code
|
||||
```
|
||||
|
||||
### Đóng gói kho lưu trữ từ xa
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/yamadashy/repomix --style markdown
|
||||
```
|
||||
|
||||
## Sử dụng với tệp cấu hình
|
||||
|
||||
Thay vì chỉ định tất cả các tùy chọn trên dòng lệnh, bạn có thể sử dụng tệp cấu hình:
|
||||
|
||||
```bash
|
||||
repomix --config custom-config.json
|
||||
```
|
||||
|
||||
Hoặc chỉ cần đặt một tệp `repomix.config.json` trong thư mục hiện tại.
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
- [Sử dụng cơ bản](usage.md): Quay lại hướng dẫn sử dụng cơ bản
|
||||
- [Xử lý kho lưu trữ từ xa](remote-repository-processing.md): Tìm hiểu thêm về xử lý kho lưu trữ từ xa
|
||||
178
website/client/src/vi/guide/comment-removal.md
Normal file
178
website/client/src/vi/guide/comment-removal.md
Normal file
@@ -0,0 +1,178 @@
|
||||
# Xóa bình luận
|
||||
|
||||
Repomix cung cấp tùy chọn để xóa bình luận khỏi mã nguồn trong đầu ra, giúp giảm kích thước đầu ra và tập trung vào mã thực tế.
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Bình luận trong mã nguồn rất hữu ích cho các nhà phát triển, nhưng chúng có thể:
|
||||
|
||||
- Chiếm không gian token quý giá khi làm việc với các mô hình ngôn ngữ lớn (LLMs)
|
||||
- Chứa thông tin không liên quan hoặc lỗi thời
|
||||
- Làm phân tâm khỏi cấu trúc mã thực tế
|
||||
|
||||
Tính năng xóa bình luận của Repomix giúp giải quyết những vấn đề này bằng cách loại bỏ bình luận khỏi đầu ra.
|
||||
|
||||
## Sử dụng tính năng xóa bình luận
|
||||
|
||||
### Thông qua dòng lệnh
|
||||
|
||||
Để bật xóa bình luận khi chạy Repomix:
|
||||
|
||||
```bash
|
||||
repomix --remove-comments
|
||||
```
|
||||
|
||||
Lệnh này sẽ xóa tất cả các bình luận khỏi mã nguồn trong đầu ra.
|
||||
|
||||
### Thông qua tệp cấu hình
|
||||
|
||||
Bạn cũng có thể bật xóa bình luận trong tệp cấu hình `repomix.config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"removeComments": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Các loại bình luận được xóa
|
||||
|
||||
Repomix xóa các loại bình luận sau:
|
||||
|
||||
### Bình luận dòng đơn
|
||||
|
||||
```javascript
|
||||
// Đây là một bình luận dòng đơn
|
||||
const x = 5;
|
||||
```
|
||||
|
||||
### Bình luận nhiều dòng
|
||||
|
||||
```javascript
|
||||
/*
|
||||
* Đây là một bình luận
|
||||
* nhiều dòng
|
||||
*/
|
||||
const y = 10;
|
||||
```
|
||||
|
||||
### Bình luận tài liệu
|
||||
|
||||
```javascript
|
||||
/**
|
||||
* Hàm này tính tổng hai số
|
||||
* @param {number} a - Số thứ nhất
|
||||
* @param {number} b - Số thứ hai
|
||||
* @returns {number} Tổng của a và b
|
||||
*/
|
||||
function add(a, b) {
|
||||
return a + b;
|
||||
}
|
||||
```
|
||||
|
||||
### Bình luận JSX/TSX
|
||||
|
||||
```jsx
|
||||
const element = (
|
||||
<div>
|
||||
{/* Đây là một bình luận JSX */}
|
||||
<p>Hello, world!</p>
|
||||
</div>
|
||||
);
|
||||
```
|
||||
|
||||
### Bình luận HTML
|
||||
|
||||
```html
|
||||
<!-- Đây là một bình luận HTML -->
|
||||
<div>Hello, world!</div>
|
||||
```
|
||||
|
||||
## Hỗ trợ ngôn ngữ
|
||||
|
||||
Tính năng xóa bình luận hỗ trợ nhiều ngôn ngữ lập trình, bao gồm nhưng không giới hạn ở:
|
||||
|
||||
- JavaScript/TypeScript
|
||||
- Python
|
||||
- Java
|
||||
- C/C++
|
||||
- C#
|
||||
- Go
|
||||
- Ruby
|
||||
- PHP
|
||||
- HTML/CSS
|
||||
- Rust
|
||||
- Swift
|
||||
- Kotlin
|
||||
|
||||
## Khi nào nên sử dụng xóa bình luận
|
||||
|
||||
Xóa bình luận đặc biệt hữu ích trong các trường hợp sau:
|
||||
|
||||
- **Giới hạn token**: Khi bạn cần giảm số lượng token để phù hợp với giới hạn ngữ cảnh của LLM
|
||||
- **Tập trung vào mã**: Khi bạn muốn AI tập trung vào mã thực tế thay vì bình luận
|
||||
- **Bình luận lỗi thời**: Khi codebase có bình luận lỗi thời có thể gây nhầm lẫn cho AI
|
||||
- **Phân tích mã**: Khi bạn muốn AI phân tích cấu trúc mã mà không bị ảnh hưởng bởi bình luận
|
||||
|
||||
## Khi nào nên giữ lại bình luận
|
||||
|
||||
Trong một số trường hợp, bạn có thể muốn giữ lại bình luận:
|
||||
|
||||
- **Tài liệu API**: Khi bình luận chứa thông tin API quan trọng
|
||||
- **Giải thích thuật toán phức tạp**: Khi bình luận giải thích các thuật toán hoặc logic phức tạp
|
||||
- **Bối cảnh dự án**: Khi bình luận cung cấp bối cảnh quan trọng về dự án
|
||||
- **Hướng dẫn sử dụng**: Khi bình luận chứa hướng dẫn sử dụng quan trọng
|
||||
|
||||
## Ví dụ so sánh
|
||||
|
||||
### Với bình luận
|
||||
|
||||
```javascript
|
||||
/**
|
||||
* Lớp User đại diện cho người dùng trong hệ thống
|
||||
*/
|
||||
class User {
|
||||
/**
|
||||
* Tạo một người dùng mới
|
||||
* @param {string} name - Tên người dùng
|
||||
* @param {string} email - Email người dùng
|
||||
*/
|
||||
constructor(name, email) {
|
||||
// Lưu trữ tên người dùng
|
||||
this.name = name;
|
||||
// Lưu trữ email người dùng
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
/**
|
||||
* Trả về thông tin người dùng dưới dạng chuỗi
|
||||
* @returns {string} Thông tin người dùng
|
||||
*/
|
||||
getInfo() {
|
||||
// Trả về thông tin người dùng
|
||||
return `${this.name} (${this.email})`;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Không có bình luận
|
||||
|
||||
```javascript
|
||||
class User {
|
||||
constructor(name, email) {
|
||||
this.name = name;
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
getInfo() {
|
||||
return `${this.name} (${this.email})`;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Nén mã](code-compress.md): Tìm hiểu về tính năng nén mã
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
152
website/client/src/vi/guide/configuration.md
Normal file
152
website/client/src/vi/guide/configuration.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# Cấu hình
|
||||
|
||||
Repomix có thể được cấu hình thông qua tệp cấu hình JSON, cho phép bạn lưu trữ các tùy chọn và chia sẻ cấu hình giữa các dự án.
|
||||
|
||||
## Tạo tệp cấu hình
|
||||
|
||||
Để tạo một tệp cấu hình mẫu, hãy chạy:
|
||||
|
||||
```bash
|
||||
repomix --init
|
||||
```
|
||||
|
||||
Lệnh này sẽ tạo một tệp `repomix.config.json` trong thư mục hiện tại với các cài đặt mặc định.
|
||||
|
||||
## Vị trí tệp cấu hình
|
||||
|
||||
Repomix tìm kiếm tệp cấu hình theo thứ tự sau:
|
||||
|
||||
1. Đường dẫn được chỉ định bởi tùy chọn `--config`
|
||||
2. `repomix.config.json` trong thư mục hiện tại
|
||||
3. `.repomixrc` trong thư mục hiện tại
|
||||
4. `.repomixrc.json` trong thư mục hiện tại
|
||||
5. `.repomixrc.js` trong thư mục hiện tại (phải xuất một đối tượng)
|
||||
|
||||
## Cấu trúc cấu hình
|
||||
|
||||
Tệp cấu hình có cấu trúc sau:
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"style": "xml",
|
||||
"filePath": "repomix-output.xml",
|
||||
"removeComments": false,
|
||||
"showLineNumbers": false,
|
||||
"topFilesLength": 10
|
||||
},
|
||||
"ignore": {
|
||||
"respectGitignore": true,
|
||||
"customPatterns": []
|
||||
},
|
||||
"security": {
|
||||
"check": true,
|
||||
"secretlintConfigPath": null
|
||||
},
|
||||
"advanced": {
|
||||
"compressCode": false,
|
||||
"tokenCount": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Tùy chọn cấu hình
|
||||
|
||||
### Cấu hình đầu ra
|
||||
|
||||
| Tùy chọn | Mô tả | Giá trị mặc định |
|
||||
| --- | --- | --- |
|
||||
| `output.style` | Định dạng đầu ra | `"xml"` |
|
||||
| `output.filePath` | Đường dẫn tệp đầu ra | `"repomix-output.xml"` |
|
||||
| `output.removeComments` | Xóa bình luận khỏi mã nguồn | `false` |
|
||||
| `output.showLineNumbers` | Hiển thị số dòng trong đầu ra | `false` |
|
||||
| `output.topFilesLength` | Số lượng tệp hàng đầu để hiển thị trong tóm tắt | `10` |
|
||||
|
||||
### Cấu hình bỏ qua
|
||||
|
||||
| Tùy chọn | Mô tả | Giá trị mặc định |
|
||||
| --- | --- | --- |
|
||||
| `ignore.respectGitignore` | Tôn trọng các tệp .gitignore | `true` |
|
||||
| `ignore.customPatterns` | Mảng các mẫu glob để bỏ qua | `[]` |
|
||||
|
||||
### Cấu hình bảo mật
|
||||
|
||||
| Tùy chọn | Mô tả | Giá trị mặc định |
|
||||
| --- | --- | --- |
|
||||
| `security.check` | Bật kiểm tra bảo mật | `true` |
|
||||
| `security.secretlintConfigPath` | Đường dẫn đến tệp cấu hình Secretlint | `null` |
|
||||
|
||||
### Cấu hình nâng cao
|
||||
|
||||
| Tùy chọn | Mô tả | Giá trị mặc định |
|
||||
| --- | --- | --- |
|
||||
| `advanced.compressCode` | Nén mã bằng cách chỉ bao gồm chữ ký hàm | `false` |
|
||||
| `advanced.tokenCount` | Bật đếm token | `true` |
|
||||
|
||||
## Ví dụ cấu hình
|
||||
|
||||
### Cấu hình cơ bản
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"style": "markdown",
|
||||
"filePath": "codebase.md"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cấu hình với mẫu bỏ qua tùy chỉnh
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"style": "xml",
|
||||
"filePath": "repomix-output.xml"
|
||||
},
|
||||
"ignore": {
|
||||
"respectGitignore": true,
|
||||
"customPatterns": ["*.test.ts", "docs/**", "**/*.log"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cấu hình đầy đủ
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"style": "markdown",
|
||||
"filePath": "codebase.md",
|
||||
"removeComments": true,
|
||||
"showLineNumbers": true,
|
||||
"topFilesLength": 20
|
||||
},
|
||||
"ignore": {
|
||||
"respectGitignore": true,
|
||||
"customPatterns": ["*.test.ts", "docs/**"]
|
||||
},
|
||||
"security": {
|
||||
"check": true,
|
||||
"secretlintConfigPath": "./secretlint.config.js"
|
||||
},
|
||||
"advanced": {
|
||||
"compressCode": true,
|
||||
"tokenCount": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Ghi đè cấu hình
|
||||
|
||||
Các tùy chọn dòng lệnh sẽ ghi đè các cài đặt trong tệp cấu hình. Ví dụ, nếu tệp cấu hình của bạn chỉ định `"style": "xml"` nhưng bạn chạy `repomix --style markdown`, đầu ra sẽ ở định dạng Markdown.
|
||||
|
||||
## Sử dụng .repomixignore
|
||||
|
||||
Ngoài việc chỉ định các mẫu bỏ qua trong tệp cấu hình, bạn cũng có thể tạo một tệp `.repomixignore` trong thư mục gốc của dự án. Tệp này sử dụng cú pháp tương tự như `.gitignore` và sẽ được sử dụng cùng với bất kỳ mẫu bỏ qua nào được chỉ định trong tệp cấu hình.
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
- [Hướng dẫn tùy chỉnh](custom-instructions.md): Tìm hiểu về hướng dẫn tùy chỉnh
|
||||
- [Bảo mật](security.md): Tìm hiểu về tính năng bảo mật của Repomix
|
||||
115
website/client/src/vi/guide/custom-instructions.md
Normal file
115
website/client/src/vi/guide/custom-instructions.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# Hướng dẫn tùy chỉnh
|
||||
|
||||
Repomix cho phép bạn thêm hướng dẫn tùy chỉnh vào đầu ra của mình, giúp hướng dẫn AI về cách hiểu và làm việc với codebase của bạn.
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Hướng dẫn tùy chỉnh là một cách mạnh mẽ để:
|
||||
|
||||
1. Cung cấp ngữ cảnh về dự án của bạn
|
||||
2. Giải thích các quy ước mã
|
||||
3. Hướng dẫn AI về các phần quan trọng của codebase
|
||||
4. Chỉ định các nhiệm vụ cụ thể bạn muốn AI thực hiện
|
||||
|
||||
## Thêm hướng dẫn tùy chỉnh
|
||||
|
||||
Có hai cách chính để thêm hướng dẫn tùy chỉnh vào đầu ra Repomix:
|
||||
|
||||
### 1. Sử dụng tệp hướng dẫn
|
||||
|
||||
Cách được khuyến nghị là tạo một tệp hướng dẫn riêng biệt và tham chiếu đến nó khi chạy Repomix:
|
||||
|
||||
```bash
|
||||
repomix --instructions path/to/instructions.md
|
||||
```
|
||||
|
||||
Tệp hướng dẫn có thể ở bất kỳ định dạng nào (Markdown được khuyến nghị cho khả năng đọc), và nội dung của nó sẽ được thêm vào đầu ra.
|
||||
|
||||
### 2. Sử dụng tệp cấu hình
|
||||
|
||||
Bạn cũng có thể chỉ định hướng dẫn trong tệp cấu hình Repomix:
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"style": "xml",
|
||||
"filePath": "repomix-output.xml"
|
||||
},
|
||||
"instructions": {
|
||||
"content": "Đây là codebase của dự án X. Vui lòng tập trung vào...",
|
||||
"filePath": "path/to/instructions.md"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Nếu cả `content` và `filePath` đều được chỉ định, `filePath` sẽ được ưu tiên.
|
||||
|
||||
## Hướng dẫn tùy chỉnh trong thư mục
|
||||
|
||||
Repomix cũng hỗ trợ hướng dẫn tùy chỉnh dựa trên thư mục. Bạn có thể tạo các tệp hướng dẫn trong thư mục `.github/instructions/` của kho lưu trữ của bạn:
|
||||
|
||||
- `.github/instructions/base.instructions.md`: Hướng dẫn cơ bản áp dụng cho toàn bộ kho lưu trữ
|
||||
- `.github/instructions/path/to/dir.instructions.md`: Hướng dẫn cụ thể cho thư mục
|
||||
|
||||
Mỗi tệp hướng dẫn có thể bắt đầu bằng front matter YAML để chỉ định phạm vi áp dụng:
|
||||
|
||||
```markdown
|
||||
---
|
||||
applyTo: '**/*.ts'
|
||||
---
|
||||
|
||||
# Hướng dẫn TypeScript
|
||||
|
||||
Các tệp TypeScript trong dự án này tuân theo...
|
||||
```
|
||||
|
||||
Thuộc tính `applyTo` chấp nhận các mẫu glob để chỉ định các tệp mà hướng dẫn áp dụng.
|
||||
|
||||
## Ví dụ hướng dẫn tùy chỉnh
|
||||
|
||||
Dưới đây là một ví dụ về tệp hướng dẫn tùy chỉnh hiệu quả:
|
||||
|
||||
```markdown
|
||||
# Hướng dẫn dự án Repomix
|
||||
|
||||
## Tổng quan dự án
|
||||
Repomix là một công cụ đóng gói kho lưu trữ mã nguồn thành các định dạng thân thiện với AI. Nó được thiết kế để giúp bạn chia sẻ codebase của mình với các mô hình ngôn ngữ lớn.
|
||||
|
||||
## Cấu trúc dự án
|
||||
- `src/`: Mã nguồn chính
|
||||
- `core/`: Chức năng cốt lõi để xử lý kho lưu trữ
|
||||
- `formatters/`: Các trình định dạng đầu ra (XML, Markdown, Plain)
|
||||
- `utils/`: Tiện ích và trợ giúp
|
||||
|
||||
## Quy ước mã
|
||||
- Chúng tôi sử dụng TypeScript với kiểu nghiêm ngặt
|
||||
- Chúng tôi tuân theo quy ước đặt tên camelCase cho biến và PascalCase cho lớp
|
||||
- Các hàm nên có một trách nhiệm duy nhất
|
||||
|
||||
## Nhiệm vụ
|
||||
Vui lòng phân tích codebase và đề xuất cách cải thiện:
|
||||
1. Xác định các vấn đề hiệu suất tiềm ẩn
|
||||
2. Đề xuất cải tiến cho khả năng bảo trì
|
||||
3. Đánh giá khả năng mở rộng của kiến trúc hiện tại
|
||||
|
||||
## Lưu ý quan trọng
|
||||
- Tệp `src/core/processor.ts` chứa logic xử lý chính
|
||||
- Chúng tôi đang xem xét thêm hỗ trợ cho các định dạng đầu ra mới
|
||||
```
|
||||
|
||||
## Thực hành tốt nhất
|
||||
|
||||
Khi tạo hướng dẫn tùy chỉnh:
|
||||
|
||||
1. **Bắt đầu với tổng quan**: Cung cấp ngữ cảnh ngắn gọn về dự án
|
||||
2. **Giải thích cấu trúc**: Phác thảo cấu trúc thư mục và mục đích của chúng
|
||||
3. **Làm rõ quy ước**: Đề cập đến bất kỳ quy ước mã hoặc mẫu thiết kế nào
|
||||
4. **Chỉ định nhiệm vụ**: Nêu rõ những gì bạn muốn AI làm
|
||||
5. **Đánh dấu các khu vực quan trọng**: Hướng dẫn sự chú ý đến các tệp hoặc mô-đun quan trọng
|
||||
6. **Giữ ngắn gọn**: Tập trung vào thông tin có giá trị nhất
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Xử lý kho lưu trữ từ xa](remote-repository-processing.md): Tìm hiểu về xử lý kho lưu trữ từ xa
|
||||
- [Cấu hình](configuration.md): Tìm hiểu thêm về tùy chọn cấu hình
|
||||
- [Bảo mật](security.md): Tìm hiểu về tính năng bảo mật của Repomix
|
||||
190
website/client/src/vi/guide/development/index.md
Normal file
190
website/client/src/vi/guide/development/index.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# Đóng góp cho Repomix
|
||||
|
||||
Repomix là một dự án mã nguồn mở và chúng tôi hoan nghênh đóng góp từ cộng đồng. Trang này cung cấp thông tin về cách bạn có thể đóng góp cho dự án.
|
||||
|
||||
## Thiết lập môi trường phát triển
|
||||
|
||||
### Yêu cầu
|
||||
|
||||
- Node.js (phiên bản 16 trở lên)
|
||||
- npm hoặc yarn
|
||||
- Git
|
||||
|
||||
### Clone kho lưu trữ
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yamadashy/repomix.git
|
||||
cd repomix
|
||||
```
|
||||
|
||||
### Cài đặt phụ thuộc
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
hoặc nếu bạn sử dụng yarn:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
```
|
||||
|
||||
### Xây dựng dự án
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Chạy các bài kiểm tra
|
||||
|
||||
```bash
|
||||
npm run test
|
||||
```
|
||||
|
||||
### Chạy linter
|
||||
|
||||
```bash
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## Cấu trúc dự án
|
||||
|
||||
Dự án Repomix được tổ chức như sau:
|
||||
|
||||
```
|
||||
repomix/
|
||||
├── src/ # Mã nguồn chính
|
||||
│ ├── cli/ # Giao diện dòng lệnh
|
||||
│ ├── core/ # Chức năng cốt lõi
|
||||
│ ├── formatters/ # Trình định dạng đầu ra
|
||||
│ ├── security/ # Kiểm tra bảo mật
|
||||
│ └── utils/ # Tiện ích
|
||||
├── test/ # Bài kiểm tra
|
||||
├── website/ # Tài liệu trang web
|
||||
├── .github/ # Cấu hình GitHub
|
||||
├── package.json # Cấu hình npm
|
||||
└── tsconfig.json # Cấu hình TypeScript
|
||||
```
|
||||
|
||||
## Quy trình đóng góp
|
||||
|
||||
### 1. Tạo một vấn đề
|
||||
|
||||
Trước khi bắt đầu làm việc trên một tính năng hoặc sửa lỗi, hãy tạo một vấn đề trên GitHub để thảo luận về nó. Điều này giúp đảm bảo rằng công việc của bạn phù hợp với hướng đi của dự án và tránh trùng lặp nỗ lực.
|
||||
|
||||
### 2. Fork kho lưu trữ
|
||||
|
||||
Fork kho lưu trữ Repomix vào tài khoản GitHub của bạn.
|
||||
|
||||
### 3. Tạo một nhánh
|
||||
|
||||
Tạo một nhánh mới cho tính năng hoặc sửa lỗi của bạn:
|
||||
|
||||
```bash
|
||||
git checkout -b feature/your-feature-name
|
||||
```
|
||||
|
||||
hoặc
|
||||
|
||||
```bash
|
||||
git checkout -b fix/your-bug-fix
|
||||
```
|
||||
|
||||
### 4. Thực hiện thay đổi của bạn
|
||||
|
||||
Thực hiện thay đổi của bạn, tuân theo các quy ước mã của dự án:
|
||||
|
||||
- Sử dụng TypeScript cho mã mới
|
||||
- Tuân theo quy ước đặt tên camelCase cho biến và PascalCase cho lớp
|
||||
- Viết bài kiểm tra cho mã mới
|
||||
- Đảm bảo tất cả các bài kiểm tra đều vượt qua
|
||||
- Cập nhật tài liệu nếu cần
|
||||
|
||||
### 5. Commit thay đổi của bạn
|
||||
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "feat: add new feature" # hoặc "fix: fix some bug"
|
||||
```
|
||||
|
||||
Chúng tôi sử dụng quy ước commit [Conventional Commits](https://www.conventionalcommits.org/).
|
||||
|
||||
### 6. Đẩy lên fork của bạn
|
||||
|
||||
```bash
|
||||
git push origin feature/your-feature-name
|
||||
```
|
||||
|
||||
### 7. Tạo một Pull Request
|
||||
|
||||
Tạo một Pull Request từ nhánh của bạn đến nhánh `main` của kho lưu trữ Repomix. Trong mô tả Pull Request của bạn:
|
||||
|
||||
- Tham chiếu đến vấn đề mà PR giải quyết
|
||||
- Mô tả thay đổi của bạn
|
||||
- Mô tả cách kiểm tra thay đổi của bạn
|
||||
- Thêm ảnh chụp màn hình nếu có thay đổi trực quan
|
||||
|
||||
### 8. Xem xét mã
|
||||
|
||||
Nhóm Repomix sẽ xem xét PR của bạn và có thể yêu cầu thay đổi. Hãy kiên nhẫn và phản hồi các yêu cầu xem xét một cách kịp thời.
|
||||
|
||||
### 9. Hợp nhất
|
||||
|
||||
Sau khi PR của bạn được phê duyệt, nó sẽ được hợp nhất vào nhánh chính.
|
||||
|
||||
## Hướng dẫn đóng góp
|
||||
|
||||
### Mã
|
||||
|
||||
- Viết mã rõ ràng và dễ bảo trì
|
||||
- Bao gồm nhận xét cho mã phức tạp
|
||||
- Tuân theo các quy ước mã hiện có
|
||||
- Viết bài kiểm tra cho mã mới
|
||||
- Đảm bảo tất cả các bài kiểm tra đều vượt qua
|
||||
- Cập nhật tài liệu nếu cần
|
||||
|
||||
### Tài liệu
|
||||
|
||||
- Viết tài liệu rõ ràng và ngắn gọn
|
||||
- Bao gồm ví dụ khi có thể
|
||||
- Kiểm tra chính tả và ngữ pháp
|
||||
- Giữ cho tài liệu cập nhật với các thay đổi mã
|
||||
|
||||
### Báo cáo lỗi
|
||||
|
||||
Khi báo cáo lỗi, hãy bao gồm:
|
||||
|
||||
- Phiên bản Repomix bạn đang sử dụng
|
||||
- Hệ điều hành và phiên bản của bạn
|
||||
- Các bước để tái tạo lỗi
|
||||
- Hành vi thực tế và hành vi mong đợi
|
||||
- Ảnh chụp màn hình hoặc nhật ký nếu có
|
||||
|
||||
### Yêu cầu tính năng
|
||||
|
||||
Khi yêu cầu tính năng, hãy bao gồm:
|
||||
|
||||
- Mô tả rõ ràng về tính năng
|
||||
- Lý do tại sao tính năng này sẽ có giá trị
|
||||
- Ví dụ về cách tính năng sẽ được sử dụng
|
||||
- Bất kỳ tài liệu tham khảo hoặc ví dụ từ các dự án khác
|
||||
|
||||
## Phát hành
|
||||
|
||||
Repomix tuân theo [Semantic Versioning](https://semver.org/). Các phiên bản được đặt tên theo định dạng `MAJOR.MINOR.PATCH`:
|
||||
|
||||
- `MAJOR`: Thay đổi không tương thích với API
|
||||
- `MINOR`: Thêm chức năng tương thích ngược
|
||||
- `PATCH`: Sửa lỗi tương thích ngược
|
||||
|
||||
## Liên hệ
|
||||
|
||||
Nếu bạn có bất kỳ câu hỏi nào về đóng góp cho Repomix, vui lòng:
|
||||
|
||||
- [Tham gia Discord của chúng tôi](https://discord.gg/wNYzTwZFku)
|
||||
- [Mở một vấn đề trên GitHub](https://github.com/yamadashy/repomix/issues)
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Sử dụng Repomix như một thư viện](using-repomix-as-a-library.md): Tìm hiểu cách sử dụng Repomix như một thư viện trong dự án của bạn
|
||||
- [Mẹo phát triển hỗ trợ AI](../tips/best-practices.md): Tìm hiểu về các thực hành tốt nhất cho phát triển hỗ trợ AI
|
||||
@@ -0,0 +1,311 @@
|
||||
# Sử dụng Repomix như một thư viện
|
||||
|
||||
Ngoài việc sử dụng Repomix như một công cụ dòng lệnh, bạn cũng có thể tích hợp nó trực tiếp vào các ứng dụng JavaScript hoặc TypeScript của mình như một thư viện.
|
||||
|
||||
## Cài đặt
|
||||
|
||||
Để sử dụng Repomix như một thư viện, trước tiên hãy cài đặt nó như một phụ thuộc:
|
||||
|
||||
```bash
|
||||
# Sử dụng npm
|
||||
npm install repomix
|
||||
|
||||
# Sử dụng yarn
|
||||
yarn add repomix
|
||||
|
||||
# Sử dụng pnpm
|
||||
pnpm add repomix
|
||||
```
|
||||
|
||||
## Sử dụng cơ bản
|
||||
|
||||
Dưới đây là một ví dụ cơ bản về cách sử dụng Repomix trong mã của bạn:
|
||||
|
||||
```typescript
|
||||
import { processRepository } from 'repomix';
|
||||
|
||||
async function packMyRepo() {
|
||||
try {
|
||||
const result = await processRepository({
|
||||
path: '/path/to/your/repository',
|
||||
output: {
|
||||
style: 'xml',
|
||||
filePath: 'output.xml',
|
||||
},
|
||||
});
|
||||
|
||||
console.log('Repository packed successfully!');
|
||||
console.log(`Output saved to: ${result.outputPath}`);
|
||||
console.log(`Total files: ${result.stats.fileCount}`);
|
||||
console.log(`Total tokens: ${result.stats.totalTokens}`);
|
||||
} catch (error) {
|
||||
console.error('Error packing repository:', error);
|
||||
}
|
||||
}
|
||||
|
||||
packMyRepo();
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### processRepository
|
||||
|
||||
Hàm chính để xử lý một kho lưu trữ:
|
||||
|
||||
```typescript
|
||||
async function processRepository(options: RepositoryProcessorOptions): Promise<RepositoryProcessorResult>
|
||||
```
|
||||
|
||||
#### Tùy chọn
|
||||
|
||||
Đối tượng `RepositoryProcessorOptions` chấp nhận các tùy chọn sau:
|
||||
|
||||
```typescript
|
||||
interface RepositoryProcessorOptions {
|
||||
// Đường dẫn đến kho lưu trữ cục bộ
|
||||
path?: string;
|
||||
|
||||
// URL của kho lưu trữ từ xa (thay thế cho path)
|
||||
remote?: string;
|
||||
|
||||
// Cấu hình đầu ra
|
||||
output?: {
|
||||
// Định dạng đầu ra (xml, markdown, plain)
|
||||
style?: 'xml' | 'markdown' | 'plain';
|
||||
|
||||
// Đường dẫn tệp đầu ra
|
||||
filePath?: string;
|
||||
|
||||
// Xóa bình luận khỏi mã nguồn
|
||||
removeComments?: boolean;
|
||||
|
||||
// Hiển thị số dòng trong đầu ra
|
||||
showLineNumbers?: boolean;
|
||||
|
||||
// Số lượng tệp hàng đầu để hiển thị trong tóm tắt
|
||||
topFilesLength?: number;
|
||||
|
||||
// Nội dung hướng dẫn tùy chỉnh
|
||||
instructions?: string;
|
||||
|
||||
// Đường dẫn đến tệp hướng dẫn
|
||||
instructionsPath?: string;
|
||||
};
|
||||
|
||||
// Cấu hình bỏ qua
|
||||
ignore?: {
|
||||
// Tôn trọng các tệp .gitignore
|
||||
respectGitignore?: boolean;
|
||||
|
||||
// Mảng các mẫu glob để bỏ qua
|
||||
customPatterns?: string[];
|
||||
};
|
||||
|
||||
// Cấu hình bảo mật
|
||||
security?: {
|
||||
// Bật kiểm tra bảo mật
|
||||
check?: boolean;
|
||||
|
||||
// Đường dẫn đến tệp cấu hình Secretlint
|
||||
secretlintConfigPath?: string;
|
||||
};
|
||||
|
||||
// Cấu hình nâng cao
|
||||
advanced?: {
|
||||
// Nén mã bằng cách chỉ bao gồm chữ ký hàm
|
||||
compressCode?: boolean;
|
||||
|
||||
// Bật đếm token
|
||||
tokenCount?: boolean;
|
||||
};
|
||||
|
||||
// Mẫu bao gồm (phân tách bằng dấu phẩy)
|
||||
include?: string;
|
||||
}
|
||||
```
|
||||
|
||||
#### Kết quả
|
||||
|
||||
Hàm `processRepository` trả về một Promise giải quyết thành một đối tượng `RepositoryProcessorResult`:
|
||||
|
||||
```typescript
|
||||
interface RepositoryProcessorResult {
|
||||
// Đường dẫn đến tệp đầu ra
|
||||
outputPath: string;
|
||||
|
||||
// Nội dung đầu ra
|
||||
output: string;
|
||||
|
||||
// Thống kê về kho lưu trữ đã xử lý
|
||||
stats: {
|
||||
// Số lượng tệp đã xử lý
|
||||
fileCount: number;
|
||||
|
||||
// Tổng số dòng
|
||||
totalLines: number;
|
||||
|
||||
// Tổng số token
|
||||
totalTokens: number;
|
||||
|
||||
// Thông tin về các tệp hàng đầu
|
||||
topFiles: Array<{
|
||||
path: string;
|
||||
lines: number;
|
||||
tokens: number;
|
||||
}>;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Ví dụ nâng cao
|
||||
|
||||
### Xử lý kho lưu trữ từ xa
|
||||
|
||||
```typescript
|
||||
import { processRepository } from 'repomix';
|
||||
|
||||
async function packRemoteRepo() {
|
||||
const result = await processRepository({
|
||||
remote: 'https://github.com/yamadashy/repomix',
|
||||
output: {
|
||||
style: 'markdown',
|
||||
filePath: 'repomix-source.md',
|
||||
},
|
||||
});
|
||||
|
||||
console.log(`Repository packed to: ${result.outputPath}`);
|
||||
}
|
||||
|
||||
packRemoteRepo();
|
||||
```
|
||||
|
||||
### Tùy chọn đầu ra tùy chỉnh
|
||||
|
||||
```typescript
|
||||
import { processRepository } from 'repomix';
|
||||
|
||||
async function packWithCustomOptions() {
|
||||
const result = await processRepository({
|
||||
path: './my-project',
|
||||
output: {
|
||||
style: 'xml',
|
||||
filePath: 'output.xml',
|
||||
removeComments: true,
|
||||
showLineNumbers: true,
|
||||
topFilesLength: 20,
|
||||
instructions: 'Đây là codebase của dự án X. Vui lòng tập trung vào...',
|
||||
},
|
||||
ignore: {
|
||||
respectGitignore: true,
|
||||
customPatterns: ['*.test.ts', 'docs/**'],
|
||||
},
|
||||
advanced: {
|
||||
compressCode: true,
|
||||
tokenCount: true,
|
||||
},
|
||||
});
|
||||
|
||||
console.log(`Packed ${result.stats.fileCount} files with ${result.stats.totalTokens} tokens`);
|
||||
}
|
||||
|
||||
packWithCustomOptions();
|
||||
```
|
||||
|
||||
### Xử lý đầu ra trong bộ nhớ
|
||||
|
||||
```typescript
|
||||
import { processRepository } from 'repomix';
|
||||
import * as fs from 'fs';
|
||||
|
||||
async function processAndModifyOutput() {
|
||||
// Xử lý kho lưu trữ
|
||||
const result = await processRepository({
|
||||
path: './my-project',
|
||||
output: {
|
||||
style: 'markdown',
|
||||
// Không chỉ định filePath để không ghi vào tệp
|
||||
},
|
||||
});
|
||||
|
||||
// Sửa đổi đầu ra
|
||||
const modifiedOutput = `# Codebase được xử lý bởi ứng dụng tùy chỉnh\n\n${result.output}`;
|
||||
|
||||
// Ghi đầu ra đã sửa đổi vào tệp
|
||||
fs.writeFileSync('custom-output.md', modifiedOutput);
|
||||
|
||||
console.log('Custom processing complete!');
|
||||
}
|
||||
|
||||
processAndModifyOutput();
|
||||
```
|
||||
|
||||
### Tích hợp với Express
|
||||
|
||||
```typescript
|
||||
import express from 'express';
|
||||
import { processRepository } from 'repomix';
|
||||
|
||||
const app = express();
|
||||
app.use(express.json());
|
||||
|
||||
app.post('/process', async (req, res) => {
|
||||
try {
|
||||
const { repoPath, options } = req.body;
|
||||
|
||||
const result = await processRepository({
|
||||
path: repoPath,
|
||||
...options,
|
||||
});
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
stats: result.stats,
|
||||
output: result.output,
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: error.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
app.listen(3000, () => {
|
||||
console.log('Repomix API server running on port 3000');
|
||||
});
|
||||
```
|
||||
|
||||
## Xử lý lỗi
|
||||
|
||||
Khi sử dụng Repomix như một thư viện, hãy đảm bảo xử lý lỗi đúng cách:
|
||||
|
||||
```typescript
|
||||
import { processRepository } from 'repomix';
|
||||
|
||||
async function safelyPackRepo() {
|
||||
try {
|
||||
const result = await processRepository({
|
||||
path: './my-project',
|
||||
});
|
||||
return result;
|
||||
} catch (error) {
|
||||
if (error.code === 'SECURITY_ISSUE') {
|
||||
console.error('Security issue detected:', error.message);
|
||||
// Xử lý vấn đề bảo mật
|
||||
} else if (error.code === 'INVALID_PATH') {
|
||||
console.error('Invalid repository path:', error.message);
|
||||
// Xử lý đường dẫn không hợp lệ
|
||||
} else {
|
||||
console.error('Unexpected error:', error);
|
||||
// Xử lý lỗi khác
|
||||
}
|
||||
throw error; // Hoặc xử lý lỗi và trả về giá trị mặc định
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Đóng góp cho Repomix](./index.md): Tìm hiểu cách đóng góp cho dự án
|
||||
- [Mẹo phát triển hỗ trợ AI](../tips/best-practices.md): Tìm hiểu về các thực hành tốt nhất cho phát triển hỗ trợ AI
|
||||
- [Cấu hình](../configuration.md): Tìm hiểu thêm về các tùy chọn cấu hình
|
||||
205
website/client/src/vi/guide/github-actions.md
Normal file
205
website/client/src/vi/guide/github-actions.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# GitHub Actions
|
||||
|
||||
Repomix có thể được tích hợp vào quy trình CI/CD của bạn bằng cách sử dụng GitHub Actions, cho phép bạn tự động đóng gói kho lưu trữ của mình và cung cấp đầu ra cho các bước tiếp theo.
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Tích hợp Repomix với GitHub Actions cho phép bạn:
|
||||
|
||||
- Tự động đóng gói kho lưu trữ của bạn khi có thay đổi
|
||||
- Lưu trữ đầu ra đã đóng gói dưới dạng artifact
|
||||
- Sử dụng đầu ra đã đóng gói trong các bước quy trình công việc tiếp theo
|
||||
- Tích hợp với các công cụ AI trong quy trình CI/CD của bạn
|
||||
|
||||
## Sử dụng hành động Repomix
|
||||
|
||||
Repomix cung cấp một hành động GitHub chính thức mà bạn có thể sử dụng trong quy trình công việc của mình:
|
||||
|
||||
```yaml
|
||||
name: Repomix
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
pack:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Pack repository
|
||||
uses: yamadashy/repomix-action@v1
|
||||
with:
|
||||
output-file: 'repomix-output.xml'
|
||||
style: 'xml'
|
||||
remove-comments: false
|
||||
show-line-numbers: false
|
||||
|
||||
- name: Upload packed output
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: repomix-output
|
||||
path: repomix-output.xml
|
||||
```
|
||||
|
||||
## Tùy chọn cấu hình
|
||||
|
||||
Hành động Repomix hỗ trợ các tùy chọn cấu hình sau:
|
||||
|
||||
| Tùy chọn | Mô tả | Mặc định |
|
||||
| --- | --- | --- |
|
||||
| `output-file` | Tên tệp đầu ra | `repomix-output.xml` |
|
||||
| `style` | Định dạng đầu ra (xml, markdown, plain) | `xml` |
|
||||
| `remove-comments` | Xóa bình luận khỏi mã nguồn | `false` |
|
||||
| `show-line-numbers` | Hiển thị số dòng trong đầu ra | `false` |
|
||||
| `include` | Mẫu bao gồm (phân tách bằng dấu phẩy) | |
|
||||
| `ignore` | Mẫu bỏ qua (phân tách bằng dấu phẩy) | |
|
||||
| `respect-gitignore` | Tôn trọng các tệp .gitignore | `true` |
|
||||
| `compress-code` | Nén mã bằng cách chỉ bao gồm chữ ký hàm | `false` |
|
||||
| `security-check` | Bật kiểm tra bảo mật | `true` |
|
||||
| `token-count` | Bật đếm token | `true` |
|
||||
|
||||
## Ví dụ quy trình công việc
|
||||
|
||||
### Đóng gói và tải lên artifact
|
||||
|
||||
```yaml
|
||||
name: Pack Repository
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
pack:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Pack repository
|
||||
uses: yamadashy/repomix-action@v1
|
||||
with:
|
||||
output-file: 'codebase.md'
|
||||
style: 'markdown'
|
||||
remove-comments: true
|
||||
show-line-numbers: true
|
||||
|
||||
- name: Upload packed output
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: codebase
|
||||
path: codebase.md
|
||||
```
|
||||
|
||||
### Đóng gói với các mẫu tùy chỉnh
|
||||
|
||||
```yaml
|
||||
name: Pack Repository
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
pack:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Pack repository
|
||||
uses: yamadashy/repomix-action@v1
|
||||
with:
|
||||
output-file: 'repomix-output.xml'
|
||||
include: 'src/**/*.ts,**/*.md'
|
||||
ignore: '**/*.test.ts,docs/**'
|
||||
compress-code: true
|
||||
```
|
||||
|
||||
### Đóng gói và sử dụng trong bước tiếp theo
|
||||
|
||||
```yaml
|
||||
name: Analyze Repository
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Pack repository
|
||||
uses: yamadashy/repomix-action@v1
|
||||
with:
|
||||
output-file: 'codebase.md'
|
||||
style: 'markdown'
|
||||
|
||||
- name: Analyze codebase
|
||||
uses: some-ai-analysis-action@v1
|
||||
with:
|
||||
input-file: 'codebase.md'
|
||||
```
|
||||
|
||||
## Sử dụng Repomix trực tiếp
|
||||
|
||||
Nếu bạn muốn sử dụng Repomix trực tiếp trong quy trình công việc của mình thay vì sử dụng hành động chính thức, bạn có thể làm như sau:
|
||||
|
||||
```yaml
|
||||
name: Pack Repository
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
pack:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18'
|
||||
|
||||
- name: Install Repomix
|
||||
run: npm install -g repomix
|
||||
|
||||
- name: Pack repository
|
||||
run: repomix --style markdown --output-file codebase.md
|
||||
|
||||
- name: Upload packed output
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: codebase
|
||||
path: codebase.md
|
||||
```
|
||||
|
||||
## Lưu ý bảo mật
|
||||
|
||||
Khi sử dụng Repomix trong GitHub Actions, hãy lưu ý những điểm sau:
|
||||
|
||||
- Đảm bảo rằng kiểm tra bảo mật được bật để ngăn chặn việc vô tình tiết lộ thông tin nhạy cảm
|
||||
- Xem xét sử dụng bí mật GitHub cho thông tin nhạy cảm thay vì mã hóa cứng chúng trong mã
|
||||
- Hãy cẩn thận khi chia sẻ artifact đã đóng gói, vì chúng có thể chứa thông tin nhạy cảm
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
- [Bảo mật](security.md): Tìm hiểu về tính năng bảo mật của Repomix
|
||||
66
website/client/src/vi/guide/index.md
Normal file
66
website/client/src/vi/guide/index.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Bắt đầu với Repomix
|
||||
|
||||
<script setup>
|
||||
import HomeBadges from '../../../components/HomeBadges.vue'
|
||||
</script>
|
||||
|
||||
Repomix là một công cụ đóng gói toàn bộ kho lưu trữ của bạn thành một tệp duy nhất, thân thiện với AI. Nó được thiết kế để giúp bạn cung cấp codebase cho các Mô hình Ngôn ngữ Lớn (LLMs) như ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, và nhiều mô hình khác.
|
||||
|
||||
<HomeBadges />
|
||||
|
||||
## Bắt đầu nhanh
|
||||
|
||||
Chạy lệnh này trong thư mục dự án của bạn:
|
||||
|
||||
```bash
|
||||
npx repomix
|
||||
```
|
||||
|
||||
Vậy là xong! Bạn sẽ tìm thấy một tệp `repomix-output.xml` chứa toàn bộ kho lưu trữ của bạn ở định dạng thân thiện với AI.
|
||||
|
||||
Sau đó, bạn có thể gửi tệp này đến trợ lý AI với một prompt như:
|
||||
|
||||
```
|
||||
Tệp này chứa tất cả các tệp trong kho lưu trữ được kết hợp thành một.
|
||||
Tôi muốn tái cấu trúc mã, vì vậy hãy xem xét nó trước.
|
||||
```
|
||||
|
||||
AI sẽ phân tích toàn bộ codebase của bạn và cung cấp những hiểu biết toàn diện:
|
||||
|
||||

|
||||
|
||||
Khi thảo luận về các thay đổi cụ thể, AI có thể giúp tạo mã. Với các tính năng như Artifacts của Claude, bạn thậm chí có thể nhận được nhiều tệp phụ thuộc lẫn nhau:
|
||||
|
||||

|
||||
|
||||
Chúc bạn code vui vẻ! 🚀
|
||||
|
||||
## Tính năng chính
|
||||
|
||||
- **Đầu ra được tối ưu hóa cho AI**: Định dạng codebase của bạn để AI dễ dàng xử lý
|
||||
- **Đếm token**: Theo dõi việc sử dụng token cho giới hạn ngữ cảnh LLM
|
||||
- **Nhận biết Git**: Tôn trọng các tệp `.gitignore` và `.git/info/exclude` của bạn
|
||||
- **Tập trung vào bảo mật**: Phát hiện thông tin nhạy cảm
|
||||
- **Nhiều định dạng đầu ra**: Lựa chọn giữa văn bản thuần túy, XML hoặc Markdown
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Hướng dẫn cài đặt](installation.md): Các cách khác nhau để cài đặt Repomix
|
||||
- [Hướng dẫn sử dụng](usage.md): Tìm hiểu về các tính năng cơ bản và nâng cao
|
||||
- [Cấu hình](configuration.md): Tùy chỉnh Repomix cho nhu cầu của bạn
|
||||
- [Tính năng bảo mật](security.md): Tìm hiểu về kiểm tra bảo mật
|
||||
|
||||
## Cộng đồng
|
||||
|
||||
Tham gia [cộng đồng Discord](https://discord.gg/wNYzTwZFku) của chúng tôi để:
|
||||
- Nhận trợ giúp với Repomix
|
||||
- Chia sẻ trải nghiệm của bạn
|
||||
- Đề xuất tính năng mới
|
||||
- Kết nối với những người dùng khác
|
||||
|
||||
## Hỗ trợ
|
||||
|
||||
Tìm thấy lỗi hoặc cần trợ giúp?
|
||||
- [Mở một vấn đề trên GitHub](https://github.com/yamadashy/repomix/issues)
|
||||
- Tham gia máy chủ Discord của chúng tôi
|
||||
- Kiểm tra [tài liệu](https://repomix.com)
|
||||
115
website/client/src/vi/guide/installation.md
Normal file
115
website/client/src/vi/guide/installation.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# Cài đặt
|
||||
|
||||
Có nhiều cách để cài đặt và sử dụng Repomix. Chọn phương pháp phù hợp nhất với quy trình làm việc của bạn.
|
||||
|
||||
## Sử dụng npx (Không cần cài đặt)
|
||||
|
||||
Cách đơn giản nhất để sử dụng Repomix mà không cần cài đặt là thông qua `npx`:
|
||||
|
||||
```bash
|
||||
npx repomix
|
||||
```
|
||||
|
||||
Lệnh này sẽ tải và chạy phiên bản mới nhất của Repomix trực tiếp từ npm.
|
||||
|
||||
## Cài đặt toàn cục
|
||||
|
||||
Để sử dụng Repomix từ bất kỳ đâu trong hệ thống của bạn, bạn có thể cài đặt nó toàn cục:
|
||||
|
||||
### Sử dụng npm
|
||||
|
||||
```bash
|
||||
npm install -g repomix
|
||||
```
|
||||
|
||||
### Sử dụng yarn
|
||||
|
||||
```bash
|
||||
yarn global add repomix
|
||||
```
|
||||
|
||||
### Sử dụng pnpm
|
||||
|
||||
```bash
|
||||
pnpm add -g repomix
|
||||
```
|
||||
|
||||
### Sử dụng Homebrew (macOS/Linux)
|
||||
|
||||
```bash
|
||||
brew install repomix
|
||||
```
|
||||
|
||||
Sau khi cài đặt toàn cục, bạn có thể chạy Repomix từ bất kỳ thư mục nào:
|
||||
|
||||
```bash
|
||||
repomix
|
||||
```
|
||||
|
||||
## Cài đặt cục bộ trong dự án
|
||||
|
||||
Nếu bạn muốn sử dụng Repomix như một phần của quy trình làm việc dự án của mình, bạn có thể cài đặt nó cục bộ:
|
||||
|
||||
### Sử dụng npm
|
||||
|
||||
```bash
|
||||
npm install --save-dev repomix
|
||||
```
|
||||
|
||||
### Sử dụng yarn
|
||||
|
||||
```bash
|
||||
yarn add --dev repomix
|
||||
```
|
||||
|
||||
### Sử dụng pnpm
|
||||
|
||||
```bash
|
||||
pnpm add -D repomix
|
||||
```
|
||||
|
||||
Sau đó, bạn có thể chạy nó thông qua npm scripts trong `package.json` của bạn:
|
||||
|
||||
```json
|
||||
{
|
||||
"scripts": {
|
||||
"pack-code": "repomix"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Và chạy nó với:
|
||||
|
||||
```bash
|
||||
npm run pack-code
|
||||
```
|
||||
|
||||
## Sử dụng Docker
|
||||
|
||||
Repomix cũng có sẵn dưới dạng hình ảnh Docker, cho phép bạn chạy nó trong một môi trường container:
|
||||
|
||||
```bash
|
||||
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix
|
||||
```
|
||||
|
||||
Lệnh này gắn kết thư mục hiện tại của bạn vào container và chạy Repomix trên nó.
|
||||
|
||||
## Sử dụng GitHub Actions
|
||||
|
||||
Repomix có thể được tích hợp vào quy trình CI/CD của bạn bằng cách sử dụng GitHub Actions. Xem [Hướng dẫn GitHub Actions](github-actions.md) để biết thêm chi tiết.
|
||||
|
||||
## Xác minh cài đặt
|
||||
|
||||
Để xác minh rằng Repomix đã được cài đặt đúng cách, hãy chạy:
|
||||
|
||||
```bash
|
||||
repomix --version
|
||||
```
|
||||
|
||||
Lệnh này sẽ hiển thị phiên bản Repomix hiện được cài đặt.
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Sử dụng cơ bản](usage.md): Tìm hiểu cách sử dụng Repomix
|
||||
- [Cấu hình](configuration.md): Tùy chỉnh Repomix cho nhu cầu của bạn
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Khám phá tất cả các tùy chọn có sẵn
|
||||
168
website/client/src/vi/guide/mcp-server.md
Normal file
168
website/client/src/vi/guide/mcp-server.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# Máy chủ MCP
|
||||
|
||||
Repomix bao gồm một máy chủ MCP (Model Code Processor) tích hợp, cho phép bạn chạy một máy chủ cục bộ để xử lý các yêu cầu đóng gói mã từ các công cụ khác.
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Máy chủ MCP là một máy chủ HTTP nhẹ cung cấp API để đóng gói kho lưu trữ mã nguồn. Nó cho phép các ứng dụng khác (như tiện ích mở rộng trình duyệt Repomix) gửi yêu cầu để xử lý kho lưu trữ cục bộ hoặc từ xa.
|
||||
|
||||
Máy chủ MCP đặc biệt hữu ích cho:
|
||||
|
||||
- Tích hợp với tiện ích mở rộng trình duyệt Repomix
|
||||
- Tạo API đóng gói mã cho các công cụ khác
|
||||
- Xử lý các yêu cầu đóng gói từ các ứng dụng khác
|
||||
|
||||
## Khởi động máy chủ MCP
|
||||
|
||||
Để khởi động máy chủ MCP, sử dụng lệnh sau:
|
||||
|
||||
```bash
|
||||
repomix serve
|
||||
```
|
||||
|
||||
Theo mặc định, máy chủ sẽ lắng nghe trên cổng 3000. Bạn có thể chỉ định một cổng khác bằng cách sử dụng tùy chọn `--port`:
|
||||
|
||||
```bash
|
||||
repomix serve --port 8080
|
||||
```
|
||||
|
||||
## Tùy chọn máy chủ
|
||||
|
||||
| Tùy chọn | Mô tả | Mặc định |
|
||||
| --- | --- | --- |
|
||||
| `--port` | Cổng để lắng nghe | 3000 |
|
||||
| `--host` | Máy chủ để lắng nghe | localhost |
|
||||
| `--cors-origin` | Nguồn gốc CORS được phép | * |
|
||||
|
||||
Ví dụ:
|
||||
|
||||
```bash
|
||||
repomix serve --port 8080 --host 0.0.0.0 --cors-origin https://example.com
|
||||
```
|
||||
|
||||
## API máy chủ MCP
|
||||
|
||||
Máy chủ MCP cung cấp các điểm cuối API sau:
|
||||
|
||||
### Trạng thái máy chủ
|
||||
|
||||
```
|
||||
GET /status
|
||||
```
|
||||
|
||||
Trả về trạng thái máy chủ và thông tin phiên bản.
|
||||
|
||||
Ví dụ phản hồi:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "ok",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
```
|
||||
|
||||
### Xử lý kho lưu trữ cục bộ
|
||||
|
||||
```
|
||||
POST /process/local
|
||||
```
|
||||
|
||||
Xử lý một kho lưu trữ cục bộ và trả về đầu ra đã đóng gói.
|
||||
|
||||
Tham số yêu cầu:
|
||||
|
||||
```json
|
||||
{
|
||||
"path": "/path/to/repository",
|
||||
"options": {
|
||||
"style": "xml",
|
||||
"removeComments": false,
|
||||
"showLineNumbers": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Xử lý kho lưu trữ từ xa
|
||||
|
||||
```
|
||||
POST /process/remote
|
||||
```
|
||||
|
||||
Xử lý một kho lưu trữ từ xa và trả về đầu ra đã đóng gói.
|
||||
|
||||
Tham số yêu cầu:
|
||||
|
||||
```json
|
||||
{
|
||||
"url": "https://github.com/owner/repo",
|
||||
"options": {
|
||||
"style": "markdown",
|
||||
"removeComments": true,
|
||||
"showLineNumbers": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Sử dụng với tiện ích mở rộng trình duyệt
|
||||
|
||||
Máy chủ MCP được thiết kế để hoạt động với [tiện ích mở rộng trình duyệt Repomix](https://chromewebstore.google.com/detail/repomix/fimfamikepjgchehkohedilpdigcpkoa). Khi tiện ích mở rộng được cài đặt và máy chủ MCP đang chạy, bạn có thể dễ dàng đóng gói các kho lưu trữ GitHub trực tiếp từ trình duyệt của mình.
|
||||
|
||||
Quy trình làm việc điển hình:
|
||||
|
||||
1. Khởi động máy chủ MCP: `repomix serve`
|
||||
2. Truy cập một kho lưu trữ GitHub trong trình duyệt của bạn
|
||||
3. Nhấp vào biểu tượng tiện ích mở rộng Repomix
|
||||
4. Chọn tùy chọn đóng gói của bạn
|
||||
5. Nhấp vào "Đóng gói kho lưu trữ"
|
||||
|
||||
Tiện ích mở rộng sẽ gửi yêu cầu đến máy chủ MCP cục bộ của bạn, xử lý kho lưu trữ và trả về đầu ra đã đóng gói.
|
||||
|
||||
## Tích hợp với các công cụ khác
|
||||
|
||||
Bạn có thể tích hợp máy chủ MCP với các công cụ khác bằng cách gửi yêu cầu HTTP đến các điểm cuối API của nó.
|
||||
|
||||
Ví dụ sử dụng curl:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:3000/process/remote \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"url":"https://github.com/yamadashy/repomix","options":{"style":"markdown"}}'
|
||||
```
|
||||
|
||||
Ví dụ sử dụng JavaScript:
|
||||
|
||||
```javascript
|
||||
async function processRepository() {
|
||||
const response = await fetch('http://localhost:3000/process/remote', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
url: 'https://github.com/yamadashy/repomix',
|
||||
options: {
|
||||
style: 'markdown',
|
||||
removeComments: true,
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
console.log(data.output);
|
||||
}
|
||||
```
|
||||
|
||||
## Lưu ý bảo mật
|
||||
|
||||
Khi chạy máy chủ MCP, hãy lưu ý những điểm sau:
|
||||
|
||||
- Máy chủ có quyền truy cập vào hệ thống tệp cục bộ của bạn
|
||||
- Theo mặc định, máy chủ chỉ lắng nghe trên localhost
|
||||
- Nếu bạn thay đổi máy chủ thành `0.0.0.0`, nó sẽ có thể truy cập được từ các máy khác
|
||||
- Xem xét cấu hình `--cors-origin` để giới hạn các nguồn gốc có thể gửi yêu cầu
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [GitHub Actions](github-actions.md): Tìm hiểu về tích hợp GitHub Actions
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
193
website/client/src/vi/guide/output.md
Normal file
193
website/client/src/vi/guide/output.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# Định dạng đầu ra
|
||||
|
||||
Repomix hỗ trợ nhiều định dạng đầu ra khác nhau để đáp ứng các nhu cầu khác nhau. Mỗi định dạng có ưu điểm riêng và phù hợp với các trường hợp sử dụng khác nhau.
|
||||
|
||||
## Định dạng có sẵn
|
||||
|
||||
Repomix hỗ trợ ba định dạng đầu ra chính:
|
||||
|
||||
1. **XML** (mặc định)
|
||||
2. **Markdown**
|
||||
3. **Văn bản thuần túy**
|
||||
|
||||
Bạn có thể chỉ định định dạng đầu ra bằng cách sử dụng tùy chọn `--style`:
|
||||
|
||||
```bash
|
||||
# XML (mặc định)
|
||||
repomix --style xml
|
||||
|
||||
# Markdown
|
||||
repomix --style markdown
|
||||
|
||||
# Văn bản thuần túy
|
||||
repomix --style plain
|
||||
```
|
||||
|
||||
## Định dạng XML
|
||||
|
||||
Định dạng XML là định dạng mặc định và được khuyến nghị cho hầu hết các trường hợp sử dụng. Nó cung cấp cấu trúc rõ ràng và dễ dàng cho AI phân tích.
|
||||
|
||||
Ví dụ về đầu ra XML:
|
||||
|
||||
```xml
|
||||
<repository name="repomix" path="/path/to/repomix">
|
||||
<stats>
|
||||
<file_count>42</file_count>
|
||||
<total_lines>1234</total_lines>
|
||||
<total_tokens>5678</total_tokens>
|
||||
</stats>
|
||||
<top_files>
|
||||
<file path="src/index.ts" lines="100" tokens="450" />
|
||||
<file path="src/utils.ts" lines="80" tokens="320" />
|
||||
<!-- ... -->
|
||||
</top_files>
|
||||
<files>
|
||||
<file path="src/index.ts" language="typescript">
|
||||
import { processRepository } from './core';
|
||||
// Nội dung tệp...
|
||||
</file>
|
||||
<file path="src/utils.ts" language="typescript">
|
||||
export function formatOutput(data) {
|
||||
// Nội dung tệp...
|
||||
}
|
||||
</file>
|
||||
<!-- ... -->
|
||||
</files>
|
||||
</repository>
|
||||
```
|
||||
|
||||
Định dạng XML đặc biệt hữu ích cho:
|
||||
- Cung cấp cấu trúc rõ ràng cho AI
|
||||
- Bao gồm siêu dữ liệu về mỗi tệp (ngôn ngữ, số dòng, số token)
|
||||
- Phân tích tự động bởi các công cụ
|
||||
|
||||
## Định dạng Markdown
|
||||
|
||||
Định dạng Markdown cung cấp đầu ra dễ đọc hơn cho con người, đồng thời vẫn duy trì cấu trúc đủ tốt cho AI.
|
||||
|
||||
Ví dụ về đầu ra Markdown:
|
||||
|
||||
```markdown
|
||||
# Repository: repomix
|
||||
|
||||
## Stats
|
||||
- File count: 42
|
||||
- Total lines: 1234
|
||||
- Total tokens: 5678
|
||||
|
||||
## Top Files
|
||||
1. src/index.ts (100 lines, 450 tokens)
|
||||
2. src/utils.ts (80 lines, 320 tokens)
|
||||
...
|
||||
|
||||
## Files
|
||||
|
||||
### src/index.ts (typescript)
|
||||
```typescript
|
||||
import { processRepository } from './core';
|
||||
// Nội dung tệp...
|
||||
```
|
||||
|
||||
### src/utils.ts (typescript)
|
||||
```typescript
|
||||
export function formatOutput(data) {
|
||||
// Nội dung tệp...
|
||||
}
|
||||
```
|
||||
...
|
||||
```
|
||||
|
||||
Định dạng Markdown đặc biệt hữu ích cho:
|
||||
- Đọc và xem xét bởi con người
|
||||
- Chia sẻ codebase trong các tài liệu hoặc wiki
|
||||
- Sử dụng với các công cụ hỗ trợ Markdown
|
||||
|
||||
## Định dạng văn bản thuần túy
|
||||
|
||||
Định dạng văn bản thuần túy cung cấp đầu ra đơn giản nhất, không có định dạng đặc biệt.
|
||||
|
||||
Ví dụ về đầu ra văn bản thuần túy:
|
||||
|
||||
```
|
||||
Repository: repomix
|
||||
|
||||
Stats:
|
||||
File count: 42
|
||||
Total lines: 1234
|
||||
Total tokens: 5678
|
||||
|
||||
Top Files:
|
||||
1. src/index.ts (100 lines, 450 tokens)
|
||||
2. src/utils.ts (80 lines, 320 tokens)
|
||||
...
|
||||
|
||||
Files:
|
||||
|
||||
File: src/index.ts (typescript)
|
||||
import { processRepository } from './core';
|
||||
// Nội dung tệp...
|
||||
|
||||
File: src/utils.ts (typescript)
|
||||
export function formatOutput(data) {
|
||||
// Nội dung tệp...
|
||||
}
|
||||
...
|
||||
```
|
||||
|
||||
Định dạng văn bản thuần túy đặc biệt hữu ích cho:
|
||||
- Tương thích tối đa với các công cụ khác nhau
|
||||
- Trường hợp khi định dạng không quan trọng
|
||||
- Sử dụng với các công cụ AI cũ hơn có thể gặp khó khăn với XML hoặc Markdown
|
||||
|
||||
## Tùy chọn định dạng bổ sung
|
||||
|
||||
Ngoài việc chọn định dạng đầu ra, Repomix cũng cung cấp các tùy chọn bổ sung để tùy chỉnh đầu ra:
|
||||
|
||||
### Xóa bình luận
|
||||
|
||||
Để xóa bình luận khỏi mã nguồn trong đầu ra:
|
||||
|
||||
```bash
|
||||
repomix --remove-comments
|
||||
```
|
||||
|
||||
Điều này có thể hữu ích để giảm kích thước đầu ra và tập trung vào mã thực tế.
|
||||
|
||||
### Hiển thị số dòng
|
||||
|
||||
Để bao gồm số dòng trong đầu ra:
|
||||
|
||||
```bash
|
||||
repomix --show-line-numbers
|
||||
```
|
||||
|
||||
Điều này giúp dễ dàng tham khảo các dòng cụ thể khi thảo luận về mã với AI.
|
||||
|
||||
### Số lượng tệp hàng đầu
|
||||
|
||||
Để chỉ định số lượng tệp hàng đầu để hiển thị trong tóm tắt:
|
||||
|
||||
```bash
|
||||
repomix --top-files-length 20
|
||||
```
|
||||
|
||||
Mặc định là 10 tệp.
|
||||
|
||||
## Tên tệp đầu ra tùy chỉnh
|
||||
|
||||
Để chỉ định tên tệp đầu ra:
|
||||
|
||||
```bash
|
||||
repomix --output-file my-codebase.xml
|
||||
```
|
||||
|
||||
Mặc định, Repomix sẽ tạo:
|
||||
- `repomix-output.xml` cho định dạng XML
|
||||
- `repomix-output.md` cho định dạng Markdown
|
||||
- `repomix-output.txt` cho định dạng văn bản thuần túy
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
- [Xóa bình luận](comment-removal.md): Tìm hiểu thêm về tính năng xóa bình luận
|
||||
147
website/client/src/vi/guide/prompt-examples.md
Normal file
147
website/client/src/vi/guide/prompt-examples.md
Normal file
@@ -0,0 +1,147 @@
|
||||
# Ví dụ Prompt
|
||||
|
||||
Khi sử dụng Repomix để đóng gói codebase của bạn, việc tạo prompt hiệu quả cho AI là rất quan trọng để có được kết quả tốt nhất. Trang này cung cấp các ví dụ prompt để sử dụng với đầu ra Repomix.
|
||||
|
||||
## Prompt cơ bản
|
||||
|
||||
Dưới đây là một prompt cơ bản để bắt đầu:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Vui lòng phân tích codebase và cung cấp tổng quan về cấu trúc và chức năng của nó.
|
||||
```
|
||||
|
||||
## Phân tích codebase
|
||||
|
||||
Để có phân tích codebase chi tiết:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Vui lòng:
|
||||
|
||||
1. Phân tích cấu trúc tổng thể của dự án
|
||||
2. Xác định các mô-đun chính và mối quan hệ giữa chúng
|
||||
3. Giải thích luồng dữ liệu và luồng điều khiển
|
||||
4. Xác định các mẫu thiết kế được sử dụng
|
||||
5. Đánh giá khả năng bảo trì và mở rộng của codebase
|
||||
```
|
||||
|
||||
## Tìm lỗi
|
||||
|
||||
Để tìm lỗi tiềm ẩn:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Tôi đang gặp phải [mô tả vấn đề]. Vui lòng:
|
||||
|
||||
1. Phân tích codebase để tìm lỗi tiềm ẩn
|
||||
2. Xác định các vấn đề hiệu suất có thể có
|
||||
3. Kiểm tra các lỗ hổng bảo mật
|
||||
4. Đề xuất sửa chữa cho bất kỳ vấn đề nào bạn tìm thấy
|
||||
```
|
||||
|
||||
## Tái cấu trúc mã
|
||||
|
||||
Để tái cấu trúc codebase:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Tôi muốn tái cấu trúc nó để cải thiện khả năng bảo trì và mở rộng. Vui lòng:
|
||||
|
||||
1. Xác định các khu vực cần tái cấu trúc
|
||||
2. Đề xuất các thay đổi cụ thể để cải thiện cấu trúc mã
|
||||
3. Cung cấp ví dụ về mã đã tái cấu trúc cho các phần quan trọng
|
||||
4. Giải thích lợi ích của các thay đổi được đề xuất
|
||||
```
|
||||
|
||||
## Thêm tính năng mới
|
||||
|
||||
Để thêm tính năng mới:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Tôi muốn thêm tính năng sau: [mô tả tính năng]. Vui lòng:
|
||||
|
||||
1. Phân tích codebase để xác định nơi tính năng mới nên được tích hợp
|
||||
2. Đề xuất các thay đổi cần thiết để triển khai tính năng
|
||||
3. Cung cấp mã mẫu cho tính năng mới
|
||||
4. Giải thích cách tính năng mới tương tác với mã hiện có
|
||||
```
|
||||
|
||||
## Tạo tài liệu
|
||||
|
||||
Để tạo tài liệu:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Tôi cần tạo tài liệu toàn diện. Vui lòng:
|
||||
|
||||
1. Tạo tổng quan về dự án
|
||||
2. Tạo tài liệu API cho các mô-đun chính
|
||||
3. Giải thích cách sử dụng các tính năng chính
|
||||
4. Cung cấp ví dụ sử dụng cho các trường hợp sử dụng phổ biến
|
||||
5. Tạo hướng dẫn cài đặt và cấu hình
|
||||
```
|
||||
|
||||
## Đánh giá mã
|
||||
|
||||
Để đánh giá chất lượng mã:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Vui lòng đánh giá chất lượng mã và cung cấp phản hồi về:
|
||||
|
||||
1. Khả năng đọc và khả năng bảo trì
|
||||
2. Hiệu suất và tối ưu hóa
|
||||
3. Tuân thủ các thực hành tốt nhất
|
||||
4. Bảo mật và xử lý lỗi
|
||||
5. Khả năng kiểm tra và khả năng mở rộng
|
||||
```
|
||||
|
||||
## Chuyển đổi mã
|
||||
|
||||
Để chuyển đổi mã từ một ngôn ngữ hoặc framework sang ngôn ngữ hoặc framework khác:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Nó hiện được viết bằng [ngôn ngữ/framework hiện tại]. Tôi muốn chuyển đổi nó sang [ngôn ngữ/framework mới]. Vui lòng:
|
||||
|
||||
1. Phân tích codebase hiện tại
|
||||
2. Cung cấp kế hoạch chuyển đổi
|
||||
3. Chuyển đổi các mô-đun chính sang [ngôn ngữ/framework mới]
|
||||
4. Giải thích bất kỳ thay đổi kiến trúc nào cần thiết
|
||||
```
|
||||
|
||||
## Tối ưu hóa hiệu suất
|
||||
|
||||
Để tối ưu hóa hiệu suất:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Tôi đang gặp phải vấn đề hiệu suất, đặc biệt là với [mô tả vấn đề]. Vui lòng:
|
||||
|
||||
1. Xác định các điểm nghẽn hiệu suất tiềm ẩn
|
||||
2. Đề xuất tối ưu hóa cụ thể
|
||||
3. Cung cấp mã đã tối ưu hóa cho các phần quan trọng
|
||||
4. Đề xuất các thay đổi kiến trúc để cải thiện hiệu suất tổng thể
|
||||
```
|
||||
|
||||
## Tích hợp với công nghệ khác
|
||||
|
||||
Để tích hợp với công nghệ khác:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của dự án của tôi được đóng gói bởi Repomix. Tôi muốn tích hợp nó với [công nghệ]. Vui lòng:
|
||||
|
||||
1. Phân tích codebase để xác định điểm tích hợp tốt nhất
|
||||
2. Đề xuất các thay đổi cần thiết để tích hợp với [công nghệ]
|
||||
3. Cung cấp mã mẫu cho tích hợp
|
||||
4. Giải thích bất kỳ thay đổi cấu hình hoặc phụ thuộc nào cần thiết
|
||||
```
|
||||
|
||||
## Tùy chỉnh prompt
|
||||
|
||||
Khi tùy chỉnh prompt của bạn, hãy xem xét bao gồm:
|
||||
|
||||
1. **Bối cảnh dự án**: Cung cấp thông tin về mục đích và phạm vi của dự án
|
||||
2. **Yêu cầu cụ thể**: Nêu rõ những gì bạn cần từ AI
|
||||
3. **Định dạng đầu ra**: Chỉ định cách bạn muốn thông tin được trình bày
|
||||
4. **Giới hạn**: Đề cập đến bất kỳ ràng buộc hoặc giới hạn nào
|
||||
5. **Ưu tiên**: Làm rõ các khía cạnh quan trọng nhất đối với bạn
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Sử dụng cơ bản](usage.md): Tìm hiểu cách sử dụng Repomix
|
||||
- [Định dạng đầu ra](output.md): Tìm hiểu về các định dạng đầu ra khác nhau
|
||||
- [Hướng dẫn tùy chỉnh](custom-instructions.md): Tìm hiểu về hướng dẫn tùy chỉnh
|
||||
143
website/client/src/vi/guide/remote-repository-processing.md
Normal file
143
website/client/src/vi/guide/remote-repository-processing.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# Xử lý kho lưu trữ từ xa
|
||||
|
||||
Repomix có thể xử lý các kho lưu trữ từ xa mà không cần clone chúng cục bộ, giúp bạn dễ dàng đóng gói và phân tích các dự án mã nguồn mở.
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Tính năng xử lý kho lưu trữ từ xa cho phép bạn:
|
||||
|
||||
- Đóng gói các kho lưu trữ GitHub công khai
|
||||
- Chỉ định nhánh, thẻ hoặc commit cụ thể
|
||||
- Xử lý các đường dẫn cụ thể trong kho lưu trữ
|
||||
- Phân tích các dự án mã nguồn mở mà không cần clone chúng
|
||||
|
||||
## Cú pháp cơ bản
|
||||
|
||||
Để xử lý một kho lưu trữ từ xa, sử dụng tùy chọn `--remote`:
|
||||
|
||||
```bash
|
||||
repomix --remote <url_or_shorthand>
|
||||
```
|
||||
|
||||
## Định dạng URL được hỗ trợ
|
||||
|
||||
Repomix hỗ trợ nhiều định dạng URL khác nhau:
|
||||
|
||||
### Định dạng rút gọn
|
||||
|
||||
```bash
|
||||
repomix --remote owner/repo
|
||||
```
|
||||
|
||||
Ví dụ:
|
||||
|
||||
```bash
|
||||
repomix --remote yamadashy/repomix
|
||||
```
|
||||
|
||||
### URL đầy đủ
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/owner/repo
|
||||
```
|
||||
|
||||
Ví dụ:
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/yamadashy/repomix
|
||||
```
|
||||
|
||||
### URL nhánh cụ thể
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/owner/repo/tree/branch
|
||||
```
|
||||
|
||||
Ví dụ:
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/yamadashy/repomix/tree/main
|
||||
```
|
||||
|
||||
### Chỉ định commit cụ thể
|
||||
|
||||
Để xử lý một commit cụ thể, sử dụng tùy chọn `--remote-branch` với mã hash commit:
|
||||
|
||||
```bash
|
||||
repomix --remote owner/repo --remote-branch commit_hash
|
||||
```
|
||||
|
||||
Ví dụ:
|
||||
|
||||
```bash
|
||||
repomix --remote yamadashy/repomix --remote-branch 836abcd7335137228ad77feb28655d85712680f1
|
||||
```
|
||||
|
||||
### URL đường dẫn cụ thể
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/owner/repo/tree/branch/path/to/directory
|
||||
```
|
||||
|
||||
Ví dụ:
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/yamadashy/repomix/tree/main/src
|
||||
```
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
### Đóng gói kho lưu trữ từ xa với định dạng mặc định
|
||||
|
||||
```bash
|
||||
repomix --remote yamadashy/repomix
|
||||
```
|
||||
|
||||
### Đóng gói kho lưu trữ từ xa với định dạng Markdown
|
||||
|
||||
```bash
|
||||
repomix --remote yamadashy/repomix --style markdown
|
||||
```
|
||||
|
||||
### Đóng gói một nhánh cụ thể
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/yamadashy/repomix/tree/develop
|
||||
```
|
||||
|
||||
### Đóng gói một thư mục cụ thể trong kho lưu trữ
|
||||
|
||||
```bash
|
||||
repomix --remote https://github.com/yamadashy/repomix/tree/main/src
|
||||
```
|
||||
|
||||
### Đóng gói một commit cụ thể
|
||||
|
||||
```bash
|
||||
repomix --remote yamadashy/repomix --remote-branch 836abcd7335137228ad77feb28655d85712680f1
|
||||
```
|
||||
|
||||
## Giới hạn và lưu ý
|
||||
|
||||
Khi sử dụng tính năng xử lý kho lưu trữ từ xa, hãy lưu ý những điểm sau:
|
||||
|
||||
- **Chỉ hỗ trợ kho lưu trữ công khai**: Tính năng này chỉ hoạt động với các kho lưu trữ GitHub công khai.
|
||||
- **Giới hạn kích thước**: Các kho lưu trữ rất lớn có thể gặp vấn đề do giới hạn API GitHub.
|
||||
- **Không có hỗ trợ .gitignore**: Khi xử lý kho lưu trữ từ xa, Repomix không thể tôn trọng các tệp .gitignore vì nó không có quyền truy cập vào cấu hình Git cục bộ.
|
||||
- **Giới hạn API**: Có thể áp dụng giới hạn tốc độ API GitHub.
|
||||
|
||||
## Sử dụng với Docker
|
||||
|
||||
Bạn cũng có thể xử lý các kho lưu trữ từ xa bằng cách sử dụng hình ảnh Docker của Repomix:
|
||||
|
||||
```bash
|
||||
docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote yamadashy/repomix
|
||||
```
|
||||
|
||||
Lệnh này sẽ đóng gói kho lưu trữ từ xa và lưu đầu ra vào thư mục `output` cục bộ của bạn.
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
- [GitHub Actions](github-actions.md): Tìm hiểu về tích hợp GitHub Actions
|
||||
141
website/client/src/vi/guide/security.md
Normal file
141
website/client/src/vi/guide/security.md
Normal file
@@ -0,0 +1,141 @@
|
||||
# Bảo mật
|
||||
|
||||
Repomix tích hợp các tính năng bảo mật mạnh mẽ để giúp ngăn chặn việc vô tình tiết lộ thông tin nhạy cảm khi chia sẻ codebase của bạn với các mô hình ngôn ngữ lớn (LLMs).
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Khi đóng gói codebase để chia sẻ với AI, có nguy cơ vô tình bao gồm thông tin nhạy cảm như:
|
||||
|
||||
- Khóa API
|
||||
- Mật khẩu
|
||||
- Khóa bí mật
|
||||
- Token truy cập
|
||||
- Thông tin xác thực cơ sở dữ liệu
|
||||
- Thông tin cá nhân
|
||||
|
||||
Repomix giúp giảm thiểu rủi ro này bằng cách tích hợp [Secretlint](https://github.com/secretlint/secretlint), một công cụ phát hiện bí mật trong mã.
|
||||
|
||||
## Kiểm tra bảo mật tự động
|
||||
|
||||
Theo mặc định, Repomix thực hiện kiểm tra bảo mật trên tất cả các tệp trước khi đưa chúng vào đầu ra. Nếu phát hiện thông tin nhạy cảm, Repomix sẽ:
|
||||
|
||||
1. Hiển thị cảnh báo
|
||||
2. Cung cấp thông tin về vị trí của thông tin nhạy cảm
|
||||
3. Cho bạn tùy chọn để tiếp tục hoặc hủy bỏ quá trình
|
||||
|
||||
## Sử dụng kiểm tra bảo mật
|
||||
|
||||
### Bật kiểm tra bảo mật (mặc định)
|
||||
|
||||
Kiểm tra bảo mật được bật theo mặc định. Không cần thực hiện bất kỳ hành động nào để sử dụng tính năng này.
|
||||
|
||||
### Tắt kiểm tra bảo mật
|
||||
|
||||
Nếu bạn muốn tắt kiểm tra bảo mật (không được khuyến nghị), bạn có thể sử dụng tùy chọn `--no-security-check`:
|
||||
|
||||
```bash
|
||||
repomix --no-security-check
|
||||
```
|
||||
|
||||
Hoặc trong tệp cấu hình:
|
||||
|
||||
```json
|
||||
{
|
||||
"security": {
|
||||
"check": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cấu hình Secretlint tùy chỉnh
|
||||
|
||||
Bạn có thể cung cấp cấu hình Secretlint tùy chỉnh để điều chỉnh các quy tắc phát hiện:
|
||||
|
||||
```bash
|
||||
repomix --secretlint-config path/to/secretlint.config.js
|
||||
```
|
||||
|
||||
Hoặc trong tệp cấu hình:
|
||||
|
||||
```json
|
||||
{
|
||||
"security": {
|
||||
"secretlintConfigPath": "./secretlint.config.js"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Các loại bí mật được phát hiện
|
||||
|
||||
Repomix có thể phát hiện nhiều loại thông tin nhạy cảm, bao gồm:
|
||||
|
||||
- **Khóa API**: AWS, Google Cloud, Azure, GitHub, Stripe, v.v.
|
||||
- **Mật khẩu**: Mật khẩu được mã hóa cứng trong mã
|
||||
- **Khóa bí mật**: Khóa SSH, khóa JWT, v.v.
|
||||
- **Token truy cập**: OAuth, token truy cập cá nhân, v.v.
|
||||
- **Thông tin xác thực cơ sở dữ liệu**: Chuỗi kết nối, thông tin đăng nhập, v.v.
|
||||
- **Thông tin cá nhân**: Số điện thoại, địa chỉ email, v.v.
|
||||
|
||||
## Thực hành tốt nhất về bảo mật
|
||||
|
||||
Ngoài việc sử dụng kiểm tra bảo mật của Repomix, hãy xem xét các thực hành tốt nhất sau:
|
||||
|
||||
### 1. Sử dụng biến môi trường
|
||||
|
||||
Lưu trữ thông tin nhạy cảm trong biến môi trường thay vì mã hóa cứng chúng trong mã:
|
||||
|
||||
```javascript
|
||||
// Không tốt
|
||||
const apiKey = "sk_live_1234567890abcdef";
|
||||
|
||||
// Tốt
|
||||
const apiKey = process.env.API_KEY;
|
||||
```
|
||||
|
||||
### 2. Sử dụng tệp .env
|
||||
|
||||
Lưu trữ biến môi trường trong tệp `.env` và đảm bảo tệp này được thêm vào `.gitignore`:
|
||||
|
||||
```
|
||||
# .env
|
||||
API_KEY=sk_live_1234567890abcdef
|
||||
DATABASE_URL=postgres://user:password@localhost/db
|
||||
```
|
||||
|
||||
### 3. Sử dụng quản lý bí mật
|
||||
|
||||
Xem xét sử dụng dịch vụ quản lý bí mật như:
|
||||
- AWS Secrets Manager
|
||||
- Google Secret Manager
|
||||
- HashiCorp Vault
|
||||
- Azure Key Vault
|
||||
|
||||
### 4. Xem lại đầu ra
|
||||
|
||||
Luôn xem lại đầu ra của Repomix trước khi chia sẻ nó với AI để đảm bảo không có thông tin nhạy cảm nào bị lọt qua.
|
||||
|
||||
### 5. Sử dụng tệp .repomixignore
|
||||
|
||||
Thêm các tệp có thể chứa thông tin nhạy cảm vào tệp `.repomixignore`:
|
||||
|
||||
```
|
||||
# .repomixignore
|
||||
.env
|
||||
config/secrets.yml
|
||||
credentials/
|
||||
```
|
||||
|
||||
## Xử lý cảnh báo bảo mật
|
||||
|
||||
Khi Repomix phát hiện thông tin nhạy cảm, bạn có một số tùy chọn:
|
||||
|
||||
1. **Sửa vấn đề**: Xóa hoặc thay thế thông tin nhạy cảm trong mã nguồn
|
||||
2. **Bỏ qua tệp**: Thêm tệp có vấn đề vào `.repomixignore`
|
||||
3. **Tiếp tục với rủi ro**: Tiếp tục quá trình đóng gói (không được khuyến nghị)
|
||||
4. **Tùy chỉnh quy tắc**: Điều chỉnh cấu hình Secretlint để giảm cảnh báo sai
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Cấu hình](configuration.md): Tìm hiểu về tệp cấu hình
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Xem tất cả các tùy chọn dòng lệnh có sẵn
|
||||
- [Máy chủ MCP](mcp-server.md): Tìm hiểu về tính năng máy chủ MCP
|
||||
129
website/client/src/vi/guide/tips/best-practices.md
Normal file
129
website/client/src/vi/guide/tips/best-practices.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# Mẹo phát triển hỗ trợ AI
|
||||
|
||||
Khi phát triển phần mềm với sự hỗ trợ của AI, có một số thực hành tốt nhất có thể giúp bạn tối đa hóa hiệu quả và chất lượng của quá trình phát triển. Trang này cung cấp các mẹo và hướng dẫn để làm việc hiệu quả với AI khi sử dụng Repomix.
|
||||
|
||||
## Chuẩn bị codebase của bạn
|
||||
|
||||
### Tổ chức mã
|
||||
|
||||
Trước khi đóng gói codebase của bạn với Repomix, hãy xem xét tổ chức nó theo cách giúp AI dễ dàng hiểu:
|
||||
|
||||
- **Cấu trúc thư mục rõ ràng**: Sử dụng cấu trúc thư mục có ý nghĩa phản ánh kiến trúc của ứng dụng
|
||||
- **Tệp README toàn diện**: Bao gồm tổng quan về dự án, hướng dẫn thiết lập và thông tin quan trọng khác
|
||||
- **Tài liệu mã**: Thêm nhận xét và tài liệu cho các phần phức tạp của mã
|
||||
- **Quy ước đặt tên nhất quán**: Sử dụng quy ước đặt tên nhất quán trong toàn bộ codebase
|
||||
|
||||
### Tối ưu hóa cho AI
|
||||
|
||||
- **Loại bỏ mã không sử dụng**: Xóa mã chết hoặc không sử dụng để giảm nhiễu
|
||||
- **Tách các tệp lớn**: Chia các tệp lớn thành các mô-đun nhỏ hơn, tập trung hơn
|
||||
- **Giảm thiểu phụ thuộc**: Giảm thiểu phụ thuộc không cần thiết để đơn giản hóa codebase
|
||||
- **Chuẩn hóa định dạng**: Sử dụng trình định dạng mã để đảm bảo phong cách nhất quán
|
||||
|
||||
## Tạo prompt hiệu quả
|
||||
|
||||
### Cấu trúc prompt
|
||||
|
||||
Khi làm việc với đầu ra Repomix, hãy cấu trúc prompt của bạn để có kết quả tốt nhất:
|
||||
|
||||
- **Bắt đầu với bối cảnh**: Cung cấp bối cảnh về dự án và mục tiêu của bạn
|
||||
- **Chia thành các bước**: Chia các nhiệm vụ phức tạp thành các bước nhỏ hơn, tuần tự
|
||||
- **Chỉ định định dạng đầu ra**: Nêu rõ cách bạn muốn phản hồi được định dạng
|
||||
- **Đặt câu hỏi cụ thể**: Tránh các câu hỏi mơ hồ; càng cụ thể càng tốt
|
||||
|
||||
### Ví dụ prompt hiệu quả
|
||||
|
||||
```
|
||||
Tệp này chứa codebase của ứng dụng quản lý nhiệm vụ của tôi được đóng gói bởi Repomix.
|
||||
|
||||
Bối cảnh: Đây là một ứng dụng React với backend Node.js sử dụng MongoDB.
|
||||
|
||||
Tôi muốn cải thiện hiệu suất của ứng dụng, đặc biệt là thời gian tải ban đầu. Vui lòng:
|
||||
|
||||
1. Xác định các vấn đề hiệu suất tiềm ẩn trong mã frontend (tập trung vào các thành phần React và quản lý trạng thái)
|
||||
2. Đề xuất các tối ưu hóa cụ thể với ví dụ mã
|
||||
3. Đề xuất các thay đổi kiến trúc có thể cải thiện hiệu suất tổng thể
|
||||
|
||||
Định dạng phản hồi của bạn như sau:
|
||||
- Tóm tắt các vấn đề hiệu suất được xác định
|
||||
- Danh sách các tối ưu hóa được đề xuất với ví dụ trước/sau
|
||||
- Đề xuất kiến trúc với lý do
|
||||
```
|
||||
|
||||
## Làm việc với phản hồi AI
|
||||
|
||||
### Đánh giá phản hồi
|
||||
|
||||
Khi nhận phản hồi từ AI dựa trên codebase của bạn:
|
||||
|
||||
- **Xác minh tính chính xác**: Kiểm tra phản hồi để đảm bảo nó chính xác và phù hợp với codebase của bạn
|
||||
- **Hiểu lý do**: Đảm bảo bạn hiểu lý do đằng sau các đề xuất
|
||||
- **Đánh giá tính khả thi**: Xem xét liệu các đề xuất có thực tế và phù hợp với dự án của bạn không
|
||||
- **Tìm kiếm các giả định**: Xác định bất kỳ giả định nào mà AI có thể đã đưa ra
|
||||
|
||||
### Lặp lại và cải thiện
|
||||
|
||||
- **Làm rõ khi cần thiết**: Nếu phản hồi không rõ ràng, hãy yêu cầu làm rõ
|
||||
- **Cung cấp phản hồi**: Cho AI biết những gì hữu ích và những gì không hữu ích
|
||||
- **Tinh chỉnh prompt**: Điều chỉnh prompt của bạn dựa trên phản hồi bạn nhận được
|
||||
- **Chia nhỏ vấn đề**: Nếu phản hồi quá rộng, hãy chia vấn đề thành các phần nhỏ hơn
|
||||
|
||||
## Các trường hợp sử dụng phổ biến
|
||||
|
||||
### Phân tích mã
|
||||
|
||||
Khi sử dụng AI để phân tích codebase:
|
||||
|
||||
- Yêu cầu tổng quan cấp cao trước khi đi vào chi tiết
|
||||
- Tập trung vào các khu vực cụ thể của mối quan tâm
|
||||
- Yêu cầu xác định các mẫu và chống mẫu
|
||||
- Yêu cầu đánh giá về khả năng bảo trì và mở rộng
|
||||
|
||||
### Tái cấu trúc mã
|
||||
|
||||
Khi sử dụng AI để tái cấu trúc mã:
|
||||
|
||||
- Giải thích vấn đề với mã hiện tại
|
||||
- Chỉ định các mục tiêu của tái cấu trúc
|
||||
- Yêu cầu các bước từng bước để thực hiện tái cấu trúc
|
||||
- Yêu cầu giải thích về cách tái cấu trúc cải thiện mã
|
||||
|
||||
### Gỡ lỗi
|
||||
|
||||
Khi sử dụng AI để gỡ lỗi:
|
||||
|
||||
- Cung cấp thông báo lỗi đầy đủ
|
||||
- Mô tả hành vi mong đợi và thực tế
|
||||
- Bao gồm bối cảnh liên quan (phiên bản, môi trường)
|
||||
- Yêu cầu các nguyên nhân tiềm ẩn và giải pháp
|
||||
|
||||
### Tạo tính năng mới
|
||||
|
||||
Khi sử dụng AI để phát triển tính năng mới:
|
||||
|
||||
- Mô tả tính năng và mục đích của nó
|
||||
- Chỉ định cách nó nên tích hợp với mã hiện có
|
||||
- Yêu cầu thiết kế cấp cao trước khi triển khai
|
||||
- Yêu cầu các trường hợp kiểm tra để xác minh tính năng
|
||||
|
||||
## Tối ưu hóa quy trình phát triển
|
||||
|
||||
### Tích hợp AI vào quy trình phát triển
|
||||
|
||||
- **Sử dụng AI cho các nhiệm vụ lặp đi lặp lại**: Tự động hóa các nhiệm vụ lặp đi lặp lại như tạo mã soạn sẵn
|
||||
- **Sử dụng AI cho đánh giá mã**: Yêu cầu AI xem xét mã của bạn để tìm lỗi và cải tiến
|
||||
- **Sử dụng AI cho tài liệu**: Tạo và duy trì tài liệu với sự trợ giúp của AI
|
||||
- **Sử dụng AI cho kiểm tra**: Tạo các trường hợp kiểm tra và kịch bản kiểm tra với sự trợ giúp của AI
|
||||
|
||||
### Cân bằng đầu vào của AI và con người
|
||||
|
||||
- **Xác minh đầu ra của AI**: Luôn xem xét và xác minh đầu ra của AI trước khi tích hợp nó
|
||||
- **Duy trì kiểm soát sáng tạo**: Sử dụng AI như một công cụ, không phải là người thay thế cho sự sáng tạo của con người
|
||||
- **Kết hợp chuyên môn của con người**: Kết hợp kiến thức miền và chuyên môn kỹ thuật của bạn với khả năng của AI
|
||||
- **Lặp lại và cải thiện**: Sử dụng phản hồi từ AI để cải thiện quy trình phát triển của bạn
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Đóng góp cho Repomix](../development/index.md): Tìm hiểu cách đóng góp cho dự án
|
||||
- [Sử dụng Repomix như một thư viện](../development/using-repomix-as-a-library.md): Tìm hiểu cách sử dụng Repomix như một thư viện
|
||||
- [Sử dụng cơ bản](../usage.md): Quay lại hướng dẫn sử dụng cơ bản
|
||||
193
website/client/src/vi/guide/usage.md
Normal file
193
website/client/src/vi/guide/usage.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# Sử dụng cơ bản
|
||||
|
||||
Repomix được thiết kế để dễ sử dụng với các tùy chọn mặc định hợp lý, đồng thời cung cấp khả năng tùy chỉnh mạnh mẽ cho các trường hợp sử dụng nâng cao.
|
||||
|
||||
## Đóng gói kho lưu trữ cục bộ
|
||||
|
||||
### Đóng gói toàn bộ kho lưu trữ
|
||||
|
||||
Để đóng gói toàn bộ kho lưu trữ hiện tại của bạn, chỉ cần chạy Repomix trong thư mục gốc của dự án:
|
||||
|
||||
```bash
|
||||
repomix
|
||||
```
|
||||
|
||||
Lệnh này sẽ tạo một tệp `repomix-output.xml` trong thư mục hiện tại, chứa toàn bộ codebase của bạn ở định dạng XML.
|
||||
|
||||
### Đóng gói một thư mục cụ thể
|
||||
|
||||
Để đóng gói một thư mục cụ thể thay vì toàn bộ kho lưu trữ:
|
||||
|
||||
```bash
|
||||
repomix path/to/directory
|
||||
```
|
||||
|
||||
### Đóng gói các tệp cụ thể
|
||||
|
||||
Bạn có thể chỉ định các tệp hoặc mẫu cụ thể để đóng gói bằng cách sử dụng tùy chọn `--include`:
|
||||
|
||||
```bash
|
||||
repomix --include "src/**/*.ts,**/*.md"
|
||||
```
|
||||
|
||||
Điều này sẽ đóng gói tất cả các tệp TypeScript trong thư mục `src` và tất cả các tệp Markdown trong toàn bộ dự án.
|
||||
|
||||
## Đóng gói kho lưu trữ từ xa
|
||||
|
||||
Repomix có thể đóng gói các kho lưu trữ từ xa mà không cần clone chúng cục bộ:
|
||||
|
||||
```bash
|
||||
# Sử dụng định dạng rút gọn
|
||||
repomix --remote yamadashy/repomix
|
||||
|
||||
# Sử dụng URL đầy đủ
|
||||
repomix --remote https://github.com/yamadashy/repomix
|
||||
|
||||
# Chỉ định nhánh
|
||||
repomix --remote https://github.com/yamadashy/repomix/tree/main
|
||||
|
||||
# Sử dụng URL của commit
|
||||
repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1
|
||||
```
|
||||
|
||||
## Tùy chọn đầu ra
|
||||
|
||||
### Định dạng đầu ra
|
||||
|
||||
Repomix hỗ trợ nhiều định dạng đầu ra:
|
||||
|
||||
```bash
|
||||
# XML (mặc định)
|
||||
repomix --style xml
|
||||
|
||||
# Markdown
|
||||
repomix --style markdown
|
||||
|
||||
# Văn bản thuần túy
|
||||
repomix --style plain
|
||||
```
|
||||
|
||||
### Tên tệp đầu ra tùy chỉnh
|
||||
|
||||
Để chỉ định tên tệp đầu ra:
|
||||
|
||||
```bash
|
||||
repomix --output-file my-codebase.xml
|
||||
```
|
||||
|
||||
### Xóa bình luận
|
||||
|
||||
Để xóa bình luận khỏi mã nguồn trong đầu ra:
|
||||
|
||||
```bash
|
||||
repomix --remove-comments
|
||||
```
|
||||
|
||||
### Hiển thị số dòng
|
||||
|
||||
Để bao gồm số dòng trong đầu ra:
|
||||
|
||||
```bash
|
||||
repomix --show-line-numbers
|
||||
```
|
||||
|
||||
## Bỏ qua tệp và thư mục
|
||||
|
||||
### Sử dụng .gitignore
|
||||
|
||||
Theo mặc định, Repomix tôn trọng các tệp `.gitignore` của bạn. Để ghi đè hành vi này:
|
||||
|
||||
```bash
|
||||
repomix --no-respect-gitignore
|
||||
```
|
||||
|
||||
### Mẫu bỏ qua tùy chỉnh
|
||||
|
||||
Để chỉ định các mẫu bỏ qua bổ sung:
|
||||
|
||||
```bash
|
||||
repomix --ignore "**/*.log,tmp/,**/*.min.js"
|
||||
```
|
||||
|
||||
### Sử dụng .repomixignore
|
||||
|
||||
Bạn cũng có thể tạo một tệp `.repomixignore` trong thư mục gốc của dự án để chỉ định các mẫu bỏ qua cụ thể cho Repomix.
|
||||
|
||||
## Tùy chọn nâng cao
|
||||
|
||||
### Nén mã
|
||||
|
||||
Để nén mã bằng cách chỉ bao gồm chữ ký hàm và loại bỏ phần thân:
|
||||
|
||||
```bash
|
||||
repomix --compress-code
|
||||
```
|
||||
|
||||
### Kiểm tra bảo mật
|
||||
|
||||
Để tắt kiểm tra bảo mật:
|
||||
|
||||
```bash
|
||||
repomix --no-security-check
|
||||
```
|
||||
|
||||
### Đếm token
|
||||
|
||||
Để tắt đếm token:
|
||||
|
||||
```bash
|
||||
repomix --no-token-count
|
||||
```
|
||||
|
||||
## Sử dụng tệp cấu hình
|
||||
|
||||
Để tạo một tệp cấu hình mẫu:
|
||||
|
||||
```bash
|
||||
repomix --init
|
||||
```
|
||||
|
||||
Điều này sẽ tạo một tệp `repomix.config.json` mà bạn có thể chỉnh sửa để tùy chỉnh hành vi của Repomix.
|
||||
|
||||
Ví dụ về tệp cấu hình:
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"style": "markdown",
|
||||
"filePath": "custom-output.md",
|
||||
"removeComments": true,
|
||||
"showLineNumbers": true,
|
||||
"topFilesLength": 10
|
||||
},
|
||||
"ignore": {
|
||||
"customPatterns": ["*.test.ts", "docs/**"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Sử dụng với AI
|
||||
|
||||
Sau khi tạo tệp đầu ra, bạn có thể tải nó lên các công cụ AI như:
|
||||
|
||||
- ChatGPT
|
||||
- Claude
|
||||
- Gemini
|
||||
- Perplexity
|
||||
- Phind
|
||||
- Và các LLM khác
|
||||
|
||||
Khi tải lên tệp, bạn có thể sử dụng một prompt như:
|
||||
|
||||
```
|
||||
Tệp này chứa toàn bộ codebase của tôi. Tôi muốn bạn:
|
||||
1. Phân tích cấu trúc tổng thể
|
||||
2. Xác định các mẫu thiết kế được sử dụng
|
||||
3. Đề xuất cải tiến
|
||||
```
|
||||
|
||||
## Tiếp theo là gì?
|
||||
|
||||
- [Tùy chọn dòng lệnh](command-line-options.md): Danh sách đầy đủ các tùy chọn dòng lệnh
|
||||
- [Cấu hình](configuration.md): Tùy chỉnh Repomix thông qua tệp cấu hình
|
||||
- [Xử lý kho lưu trữ từ xa](remote-repository-processing.md): Thông tin chi tiết về xử lý kho lưu trữ từ xa
|
||||
191
website/client/src/vi/index.md
Normal file
191
website/client/src/vi/index.md
Normal file
@@ -0,0 +1,191 @@
|
||||
---
|
||||
layout: home
|
||||
title: Repomix
|
||||
titleTemplate: Đóng gói codebase của bạn thành các định dạng thân thiện với AI
|
||||
aside: false
|
||||
editLink: false
|
||||
|
||||
features:
|
||||
- icon: 🤖
|
||||
title: Tối ưu hóa cho AI
|
||||
details: Định dạng codebase của bạn theo cách dễ dàng cho AI hiểu và xử lý.
|
||||
|
||||
- icon: ⚙️
|
||||
title: Nhận biết Git
|
||||
details: Tự động tôn trọng các tệp .gitignore của bạn.
|
||||
|
||||
- icon: 🛡️
|
||||
title: Tập trung vào bảo mật
|
||||
details: Tích hợp Secretlint để kiểm tra bảo mật mạnh mẽ nhằm phát hiện và ngăn chặn việc đưa thông tin nhạy cảm vào.
|
||||
|
||||
- icon: 📊
|
||||
title: Đếm token
|
||||
details: Cung cấp số lượng token cho mỗi tệp và toàn bộ kho lưu trữ, hữu ích cho giới hạn ngữ cảnh LLM.
|
||||
|
||||
---
|
||||
|
||||
<div class="cli-section">
|
||||
|
||||
## Bắt đầu nhanh
|
||||
|
||||
Sau khi bạn đã tạo một tệp đóng gói (`repomix-output.xml`) bằng Repomix, bạn có thể gửi nó đến trợ lý AI (như ChatGPT, Claude) với một prompt như:
|
||||
|
||||
```
|
||||
Tệp này chứa tất cả các tệp trong kho lưu trữ được kết hợp thành một.
|
||||
Tôi muốn tái cấu trúc mã, vì vậy hãy xem xét nó trước.
|
||||
```
|
||||
|
||||
AI sẽ phân tích toàn bộ codebase của bạn và cung cấp những hiểu biết toàn diện:
|
||||
|
||||

|
||||
|
||||
Khi thảo luận về các thay đổi cụ thể, AI có thể giúp tạo mã. Với các tính năng như Artifacts của Claude, bạn thậm chí có thể nhận được nhiều tệp phụ thuộc lẫn nhau:
|
||||
|
||||

|
||||
|
||||
Chúc bạn code vui vẻ! 🚀
|
||||
|
||||
|
||||
## Sử dụng công cụ CLI {#using-the-cli-tool}
|
||||
|
||||
Repomix có thể được sử dụng như một công cụ dòng lệnh, cung cấp các tính năng mạnh mẽ và tùy chọn tùy chỉnh.
|
||||
|
||||
**Công cụ CLI có thể truy cập các kho lưu trữ riêng tư** vì nó sử dụng git được cài đặt cục bộ của bạn.
|
||||
|
||||
### Bắt đầu nhanh
|
||||
|
||||
Bạn có thể thử Repomix ngay lập tức trong thư mục dự án của bạn mà không cần cài đặt:
|
||||
|
||||
```bash
|
||||
npx repomix
|
||||
```
|
||||
|
||||
Hoặc cài đặt toàn cục để sử dụng nhiều lần:
|
||||
|
||||
```bash
|
||||
# Cài đặt bằng npm
|
||||
npm install -g repomix
|
||||
|
||||
# Hoặc sử dụng yarn
|
||||
yarn global add repomix
|
||||
|
||||
# Hoặc sử dụng Homebrew (macOS/Linux)
|
||||
brew install repomix
|
||||
|
||||
# Sau đó chạy trong bất kỳ thư mục dự án nào
|
||||
repomix
|
||||
```
|
||||
|
||||
Vậy là xong! Repomix sẽ tạo một tệp `repomix-output.xml` trong thư mục hiện tại của bạn, chứa toàn bộ kho lưu trữ của bạn ở định dạng thân thiện với AI.
|
||||
|
||||
|
||||
|
||||
### Cách sử dụng
|
||||
|
||||
Để đóng gói toàn bộ kho lưu trữ của bạn:
|
||||
|
||||
```bash
|
||||
repomix
|
||||
```
|
||||
|
||||
Để đóng gói một thư mục cụ thể:
|
||||
|
||||
```bash
|
||||
repomix path/to/directory
|
||||
```
|
||||
|
||||
Để đóng gói các tệp hoặc thư mục cụ thể bằng cách sử dụng [mẫu glob](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax):
|
||||
|
||||
```bash
|
||||
repomix --include "src/**/*.ts,**/*.md"
|
||||
```
|
||||
|
||||
Để loại trừ các tệp hoặc thư mục cụ thể:
|
||||
|
||||
```bash
|
||||
repomix --ignore "**/*.log,tmp/"
|
||||
```
|
||||
|
||||
Để đóng gói một kho lưu trữ từ xa:
|
||||
```bash
|
||||
# Sử dụng định dạng rút gọn
|
||||
npx repomix --remote yamadashy/repomix
|
||||
|
||||
# Sử dụng URL đầy đủ (hỗ trợ nhánh và đường dẫn cụ thể)
|
||||
npx repomix --remote https://github.com/yamadashy/repomix
|
||||
npx repomix --remote https://github.com/yamadashy/repomix/tree/main
|
||||
|
||||
# Sử dụng URL của commit
|
||||
npx repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1
|
||||
```
|
||||
|
||||
Để khởi tạo một tệp cấu hình mới (`repomix.config.json`):
|
||||
|
||||
```bash
|
||||
repomix --init
|
||||
```
|
||||
|
||||
Sau khi bạn đã tạo tệp đóng gói, bạn có thể sử dụng nó với các công cụ AI Tạo sinh như Claude, ChatGPT và Gemini.
|
||||
|
||||
#### Sử dụng Docker
|
||||
|
||||
Bạn cũng có thể chạy Repomix bằng Docker 🐳
|
||||
Điều này hữu ích nếu bạn muốn chạy Repomix trong môi trường biệt lập hoặc thích sử dụng container.
|
||||
|
||||
Cách sử dụng cơ bản (thư mục hiện tại):
|
||||
|
||||
```bash
|
||||
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix
|
||||
```
|
||||
|
||||
Để đóng gói một thư mục cụ thể:
|
||||
```bash
|
||||
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory
|
||||
```
|
||||
|
||||
Xử lý một kho lưu trữ từ xa và xuất ra thư mục `output`:
|
||||
|
||||
```bash
|
||||
docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomix
|
||||
```
|
||||
|
||||
### Định dạng đầu ra
|
||||
|
||||
Chọn định dạng đầu ra ưa thích của bạn:
|
||||
|
||||
```bash
|
||||
# Định dạng XML (mặc định)
|
||||
repomix --style xml
|
||||
|
||||
# Định dạng Markdown
|
||||
repomix --style markdown
|
||||
|
||||
# Định dạng văn bản thuần túy
|
||||
repomix --style plain
|
||||
```
|
||||
|
||||
### Tùy chỉnh
|
||||
|
||||
Tạo một `repomix.config.json` cho các cài đặt cố định:
|
||||
|
||||
```json
|
||||
{
|
||||
"output": {
|
||||
"style": "markdown",
|
||||
"filePath": "custom-output.md",
|
||||
"removeComments": true,
|
||||
"showLineNumbers": true,
|
||||
"topFilesLength": 10
|
||||
},
|
||||
"ignore": {
|
||||
"customPatterns": ["*.test.ts", "docs/**"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Thêm ví dụ
|
||||
::: tip Cần thêm trợ giúp? 💡
|
||||
Hãy xem tài liệu toàn diện của chúng tôi trong [Hướng dẫn](/vi/guide/) hoặc khám phá [Kho lưu trữ GitHub](https://github.com/yamadashy/repomix) để biết thêm ví dụ và mã nguồn.
|
||||
:::
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user