Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
f1e7114
add some ut and e2e and passed, add Demo vault
freedeaths Sep 4, 2025
6d439ae
fix toc scroll on desktop and tablet
freedeaths Sep 4, 2025
1992990
ignore lint now and ready to refactor
freedeaths Sep 5, 2025
659e633
modify path and fix config
freedeaths Sep 6, 2025
65d5dc2
refactor StorageService
freedeaths Sep 9, 2025
132464e
seamless cache service
freedeaths Sep 10, 2025
c5b4911
fix any lint
freedeaths Sep 10, 2025
54b1cdd
metadata service done and fix old services to keep it working
freedeaths Sep 10, 2025
245d6cc
keep old services working
freedeaths Sep 10, 2025
31de39c
filetree done
freedeaths Sep 11, 2025
627628a
graph service
freedeaths Sep 11, 2025
a1ee70e
tag service done
freedeaths Sep 11, 2025
0562f8b
update service doc
freedeaths Sep 11, 2025
d263f94
exif service done
freedeaths Sep 11, 2025
a876428
search service done
freedeaths Sep 11, 2025
e945ac7
front matter done
freedeaths Sep 12, 2025
e4e1529
footprints done
freedeaths Sep 12, 2025
ed36df1
vault service done
freedeaths Sep 12, 2025
370e071
markdown plugins and devTool, involving footprints
freedeaths Sep 14, 2025
496dbed
move old impl out from src/services
freedeaths Sep 14, 2025
67c84d3
WIP: new service, new component, with issues in components and lint
freedeaths Sep 23, 2025
15e621f
WIP: fix import type
freedeaths Sep 23, 2025
0c19fb7
fix image zooming
freedeaths Sep 23, 2025
396f63a
almost working
freedeaths Sep 26, 2025
6a65bd0
add pdf/mp4/mp3 embed and fix footnotes
freedeaths Sep 27, 2025
0af254a
fix hardcode path and fix div in p (pdf)
freedeaths Sep 27, 2025
020f413
clear deprecated impl
freedeaths Sep 27, 2025
c12bd93
rename new impl
freedeaths Sep 28, 2025
f74a28a
fix lint and obsidian links
freedeaths Sep 29, 2025
27a56a2
lint ok, test service 528 ok, build ok, review in mobile & desktop no…
freedeaths Sep 30, 2025
ceb08ee
fix cache
freedeaths Oct 15, 2025
3f5c18a
vault update
freedeaths Oct 15, 2025
fa3552a
fix e2e and fix ci
freedeaths Oct 15, 2025
3eea2dd
add fmt and do fmt
freedeaths Oct 15, 2025
62705f5
fix test in ci
freedeaths Oct 15, 2025
f4e5b6a
fix unit test
freedeaths Oct 15, 2025
363790d
fix typecheck
freedeaths Oct 15, 2025
1466c7f
fmt
freedeaths Oct 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
112 changes: 112 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Contributing to Helenite

[中文版本 / Chinese Version](./CONTRIBUTING_zh.md)

Thank you for your interest in contributing to Helenite! 🎉

## 🚀 Development Environment Setup

```bash
# Clone the repository
git clone https://github.com/your-username/helenite.git
cd helenite

# Install dependencies
npm install

# Start development server
npm run dev

# Run tests
npm test # Unit tests
npm run test:e2e # End-to-end tests
npm run typecheck # Type checking
npm run lint # Code quality check
npm run build # Build verification
```

## 📋 Code Quality Standards

### ✅ Required Checks for PR Approval
- **Type checking**: `npm run typecheck` must pass
- **Build verification**: `npm run build` must succeed
- **Tests**: All unit tests and E2E tests must pass
- **Code quality**: Must not introduce new ESLint errors

### ⚠️ Code Quality Warnings
- The project currently has 269 ESLint warnings (mainly `any` types)
- These warnings **will not block PR merging**, but new code should avoid introducing more
- We plan to systematically address these `any` types during the API refactoring phase

### 🎯 Coding Standards
- Use TypeScript strict mode
- Avoid `any` types, prefer specific type definitions
- Prefix unused variables with `_` (e.g., `_unused`)
- Follow React Hooks best practices
- Maintain code consistency and readability

## 🧪 Testing Requirements

### Unit Tests
- New features must include unit tests
- Utility functions and service layers need complete coverage
- Use Vitest + React Testing Library

### E2E Tests
- Critical user flows need E2E coverage
- Use Playwright with multi-browser support
- Current test pass rate: **50/50 (100%)**

### Responsive Testing
UI changes must be tested on:
- 📱 Mobile (< 768px)
- 📟 Tablet (768px - 1024px)
- 🖥️ Desktop (> 1024px)

## 🔄 Refactoring Roadmap

The project is undergoing **Phase 2: API Interface Layer Refactoring**:

### 🎯 Refactoring Goals
- Unified API interface design
- Support multiple data sources (Obsidian metadata.json / pure file system)
- Complete type definitions, eliminate `any` types
- Improve code quality and maintainability

### 📅 Refactoring Priority
1. **File Tree API** → Graph API → Search API → Tag API
2. During refactoring, we'll systematically resolve current `any` type warnings
3. Welcome to participate in interface design discussions

## 📝 PR Submission Process

1. **Fork the project** and create a feature branch
2. **Develop locally** and ensure all checks pass
3. **Submit PR** using the provided PR template
4. **CI checks** will run automatically to ensure code quality
5. **Code review** and merge after approval

## 🤝 Community Guidelines

- Maintain friendly and professional communication
- Respect different viewpoints and suggestions
- Prioritize user experience and code quality
- Welcome newcomers with patient guidance

## 📚 Project Resources

- **Architecture Documentation**: [CLAUDE.md](../CLAUDE.md)
- **Issue Tracking**: [GitHub Issues](https://github.com/your-username/helenite/issues)
- **Discussions**: [GitHub Discussions](https://github.com/your-username/helenite/discussions)
- **Test Reports**: CI checks in PRs

## 🌐 Multi-language Support

We welcome contributions in multiple languages:
- **English** (Primary)
- **Chinese (Simplified)** - 简体中文
- **Japanese** - 日本語 (Community contributions welcome)

---

Happy Coding! 🚀
112 changes: 112 additions & 0 deletions .github/CONTRIBUTING_zh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# 为 Helenite 项目贡献代码

[English Version / 英文版本](./CONTRIBUTING.md)

感谢您对 Helenite 项目的贡献!🎉

## 🚀 开发环境设置

```bash
# 克隆仓库
git clone https://github.com/your-username/helenite.git
cd helenite

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 运行测试
npm test # 单元测试
npm run test:e2e # E2E 测试
npm run typecheck # 类型检查
npm run lint # 代码质量检查
npm run build # 构建验证
```

## 📋 代码质量标准

### ✅ PR 必须通过的检查
- **类型检查**: `npm run typecheck` 必须通过
- **构建验证**: `npm run build` 必须成功
- **测试**: 所有单元测试和 E2E 测试必须通过
- **代码质量**: 不能引入新的 ESLint 错误

### ⚠️ 代码质量警告
- 项目当前有 269 个 ESLint 警告(主要是 `any` 类型)
- 这些警告**不会阻止 PR 合并**,但新代码应该避免引入更多
- 我们计划在 API 重构阶段系统性解决这些 `any` 类型

### 🎯 编码规范
- 使用 TypeScript 严格模式
- 避免使用 `any` 类型,优先使用具体类型定义
- 未使用的变量以 `_` 开头 (如 `_unused`)
- 遵循 React Hooks 最佳实践
- 保持代码一致性和可读性

## 🧪 测试要求

### 单元测试
- 新功能必须包含单元测试
- 工具函数和服务层需要完整覆盖
- 使用 Vitest + React Testing Library

### E2E 测试
- 关键用户流程需要 E2E 覆盖
- 使用 Playwright,支持多浏览器
- 当前测试通过率:**50/50 (100%)**

### 响应式测试
UI 变更需要在以下设备上测试:
- 📱 移动端 (< 768px)
- 📟 平板端 (768px - 1024px)
- 🖥️ 桌面端 (> 1024px)

## 🔄 重构规划

项目正在进行 **Phase 2: API 接口层重构**:

### 🎯 重构目标
- 统一 API 接口设计
- 支持多种数据源(Obsidian metadata.json / 纯文件系统)
- 完善类型定义,消除 `any` 类型
- 提升代码质量和可维护性

### 📅 重构优先级
1. **文件树 API** → 图谱 API → 搜索 API → 标签 API
2. 重构时会系统性解决当前的 `any` 类型警告
3. 欢迎参与接口设计讨论

## 📝 提交 PR 流程

1. **Fork 项目** 并创建功能分支
2. **本地开发** 并确保所有检查通过
3. **提交 PR** 使用提供的 PR 模板
4. **CI 检查** 会自动运行,确保代码质量
5. **代码审查** 通过后即可合并

## 🤝 社区准则

- 保持友善和专业的沟通
- 尊重不同的观点和建议
- 优先考虑用户体验和代码质量
- 欢迎新手贡献者,提供耐心指导

## 📚 项目资源

- **架构文档**: [CLAUDE.md](../CLAUDE.md)
- **问题跟踪**: [GitHub Issues](https://github.com/your-username/helenite/issues)
- **讨论交流**: [GitHub Discussions](https://github.com/your-username/helenite/discussions)
- **测试报告**: PR 中的 CI 检查

## 🌐 多语言支持

我们欢迎多种语言的贡献:
- **英文** (主要)
- **简体中文**
- **日语** - 日本語 (欢迎社区贡献)

---

编程愉快! 🚀
52 changes: 52 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: Bug Report / Bug 报告
about: Create a report to help us improve / 创建报告帮助我们改进
title: '[Bug] '
labels: ['bug']
assignees: ''
---

**Describe the bug / 描述错误**
A clear and concise description of what the bug is.
清晰简洁地描述遇到的错误。

**To Reproduce / 重现步骤**
Steps to reproduce the behavior:
重现该行为的步骤:

1. Go to '...' / 访问 '...'
2. Click on '....' / 点击 '....'
3. Scroll down to '....' / 滚动到 '....'
4. See error / 看到错误

**Expected behavior / 预期行为**
A clear and concise description of what you expected to happen.
清晰简洁地描述您期望发生的情况。

**Screenshots / 截图**
If applicable, add screenshots to help explain your problem.
如适用,添加截图来帮助解释您的问题。

**Environment / 环境信息:**
- OS: [e.g. iOS, Windows, macOS, Linux]
- Browser: [e.g. chrome, safari, firefox]
- Browser Version: [e.g. 22]
- Device: [e.g. iPhone 12, Desktop]
- Screen Size: [e.g. 1920x1080, Mobile]

**Vault Information / 库信息 (if applicable / 如适用):**
- Vault Size: [e.g. 100 files, 1GB]
- Has metadata.json: [Yes/No]
- Obsidian Version: [e.g. 1.4.16]

**Additional context / 附加上下文**
Add any other context about the problem here.
在此添加有关问题的任何其他上下文。

**Console Errors / 控制台错误**
If you see any errors in the browser console, please paste them here.
如果您在浏览器控制台中看到任何错误,请在此处粘贴。

```
Paste console errors here / 在此粘贴控制台错误
```
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: Feature Request / 功能请求
about: Suggest an idea for this project / 为该项目提出想法
title: '[Feature] '
labels: ['enhancement']
assignees: ''
---

**Is your feature request related to a problem? Please describe. / 您的功能请求是否与问题相关?请描述。**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
清晰简洁地描述问题是什么。例如:我总是对 [...] 感到困扰

**Describe the solution you'd like / 描述您想要的解决方案**
A clear and concise description of what you want to happen.
清晰简洁地描述您希望发生的情况。

**Describe alternatives you've considered / 描述您考虑过的替代方案**
A clear and concise description of any alternative solutions or features you've considered.
清晰简洁地描述您考虑过的任何替代解决方案或功能。

**Use Case / 使用场景**
Describe when and how this feature would be used.
描述何时以及如何使用此功能。

**Priority / 优先级**
- [ ] High / 高 (Critical for workflow / 工作流程关键)
- [ ] Medium / 中 (Nice to have / 很好有)
- [ ] Low / 低 (Future enhancement / 未来增强)

**Implementation Ideas / 实现想法 (Optional / 可选)**
If you have ideas about how this could be implemented, please share them.
如果您对如何实现有想法,请分享。

**Additional context / 附加上下文**
Add any other context or screenshots about the feature request here.
在此添加有关功能请求的任何其他上下文或屏幕截图。

**Related Features / 相关功能**
Are there any existing features this would integrate with?
是否有任何现有功能与此集成?
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Question / 问题咨询
about: Ask a question about usage or setup / 询问使用或设置问题
title: '[Question] '
labels: ['question']
assignees: ''
---

**What would you like to know? / 您想了解什么?**
A clear and concise description of your question.
清晰简洁地描述您的问题。

**Context / 上下文**
Please provide context about what you're trying to achieve.
请提供您想要实现的目标的上下文。

**What have you tried? / 您尝试了什么?**
Describe any attempts you've made to solve this yourself.
描述您为自己解决此问题所做的任何尝试。

**Environment / 环境信息 (if applicable / 如适用):**
- OS: [e.g. iOS, Windows, macOS, Linux]
- Browser: [e.g. chrome, safari, firefox]
- Node.js Version: [e.g. 18.17.0]
- Helenite Version: [e.g. main branch, v1.0.0]

**Screenshots or Code / 截图或代码**
If applicable, add screenshots or code snippets.
如适用,添加屏幕截图或代码片段。

```
Code or configuration here
代码或配置内容
```

**Additional Information / 附加信息**
Any other information that might be helpful.
任何其他可能有用的信息。
Loading