forked from UKSOURCE/ipv6
update task log
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
function convertMarkdownTableToCsv() {
|
||||
const mdPath = path.join(__dirname, '../TASK_LOG.md');
|
||||
const csvPath = path.join(__dirname, '../TASK_LOG.csv');
|
||||
|
||||
if (!fs.existsSync(mdPath)) {
|
||||
console.error('Không tìm thấy file TASK_LOG.md');
|
||||
return;
|
||||
}
|
||||
|
||||
const content = fs.readFileSync(mdPath, 'utf-8');
|
||||
const lines = content.split(/\r?\n/);
|
||||
const csvRows: string[] = [];
|
||||
|
||||
for (const line of lines) {
|
||||
const trimmed = line.trim();
|
||||
// Bảng Markdown bắt đầu bằng '|'
|
||||
if (trimmed.startsWith('|')) {
|
||||
// Bỏ qua dòng separator (ví dụ: | :---: | :---: |)
|
||||
if (trimmed.includes('---')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Cắt dòng bằng kí tự '|'
|
||||
const cells = trimmed.split('|');
|
||||
// split '|' của '| A | B |' sẽ ra ['', ' A ', ' B ', '']
|
||||
// Bỏ đi phần tử đầu tiên và cuối cùng
|
||||
const dataCells = cells.slice(1, cells.length - 1);
|
||||
|
||||
// Trim khoảng trắng và format lại từng cell
|
||||
const formattedCells = dataCells.map((cell, index) => {
|
||||
let value = cell.trim();
|
||||
|
||||
// Tự động chuyển đổi Status từ ký hiệu Markdown sang chữ thuần Tiếng Việt cho Excel (Cột Status có index là 8)
|
||||
if (index === 8) {
|
||||
if (value.includes('[x]')) {
|
||||
value = 'hoàn thành';
|
||||
} else if (value.includes('[/]')) {
|
||||
value = 'đang làm';
|
||||
} else if (value.includes('[ ]')) {
|
||||
value = 'chưa làm';
|
||||
}
|
||||
}
|
||||
|
||||
// Escape dấu nháy kép nếu có
|
||||
if (value.includes('"')) {
|
||||
value = value.replace(/"/g, '""');
|
||||
}
|
||||
// Bao quanh cell bằng dấu nháy kép để tránh lỗi dấu phẩy trong nội dung
|
||||
return `"${value}"`;
|
||||
});
|
||||
|
||||
csvRows.push(formattedCells.join(','));
|
||||
}
|
||||
}
|
||||
|
||||
fs.writeFileSync(csvPath, '\uFEFF' + csvRows.join('\n'), 'utf-8'); // Thêm BOM để Excel đọc đúng tiếng Việt có dấu
|
||||
console.log(`Đã chuyển đổi thành công sang file: ${csvPath}`);
|
||||
}
|
||||
|
||||
convertMarkdownTableToCsv();
|
||||
Reference in New Issue
Block a user