Website Phòng thí nghiệm IRoD
Đây là website chính thức của Phòng thí nghiệm Thiết kế Robot Tương tác (IRoD Lab), được xây dựng bằng Quarto và lưu trữ trên GitHub Pages.
🌐 Website: irodlab.com
📝 CMS: irodlab.netlify.app/admin
📦 Repository: IROD-Lab/irod_lab_website
📋 Mục Lục
- Bắt Đầu Nhanh
- Cấu Trúc Thư Mục
- Đóng Góp
- Hệ Thống Quản Lý Nội Dung (CMS)
- Thêm Trang Cá Nhân
- Thêm Nội Dung Khác
- Quản Lý Danh Sách Công Bố
- Chi Tiết Kỹ Thuật
🚀 Bắt Đầu Nhanh
Yêu Cầu
- Trình quản lý gói uv
- Git
Cài Đặt & Xem Trước
Clone repository:
git clone https://github.com/IROD-Lab/irod_lab_website.git cd irod_lab_websiteCài đặt các gói phụ thuộc:
uv syncLệnh này sẽ cài đặt tất cả các gói Python cần thiết bao gồm
quarto-cli, do đó bạn không cần cài đặt Quarto riêng.Kích hoạt môi trường ảo:
# Trên Windows (PowerShell) .venv\Scripts\Activate.ps1 # Trên macOS/Linux source .venv/bin/activateXem trước website:
quarto previewLệnh này sẽ khởi động một máy chủ phát triển cục bộ. Mở trình duyệt và truy cập URL hiển thị (thường là
http://localhost:4200) để xem website. Các thay đổi đối với tệp tin sẽ tự động làm mới trang xem trước.
📁 Cấu Trúc Thư Mục
irod_group/
├── content/ # Thư mục nội dung chính
│ ├── people/
│ │ └── members/ # Trang cá nhân thành viên (mỗi người một thư mục)
│ ├── research/
│ │ ├── featured/ # Trang dự án nghiên cứu
│ │ └── references.bib # Cơ sở dữ liệu công bố chính
│ ├── news/
│ │ └── cms/ # Bài viết tin tức
│ └── openings/
│ └── positions/ # Thông tin tuyển dụng
├── images/ # Hình ảnh toàn site (logo, favicon, mặc định)
├── admin/ # Cấu hình Decap CMS
│ └── config.yml
├── components/ # Các thành phần tái sử dụng
│ └── auto_pubs.qmd # Danh sách công bố tự động
├── scripts/ # Các script Python
│ └── list_pubs.py # Phân tích/tạo danh sách công bố
├── _site/ # Website đã được tạo (không chỉnh sửa)
├── _quarto.yml # Cấu hình Quarto
└── pyproject.toml # Các gói Python (quản lý bởi uv)
Các Thư Mục Quan Trọng
content/people/members/: Mỗi thành viên có thư mục riêng (vd:firstname.lastname/) chứaindex.qmdvà ảnh cá nhâncontent/research/featured/: Các dự án nghiên cứu, mỗi dự án trong một thư mục riêng vớiindex.qmd, hình ảnh, và tùy chọnreferences.bibcontent/news/cms/: Các bài viết tin tức được quản lý qua CMScontent/openings/positions/: Thông tin tuyển dụng và cơ hội việc làmimages/: Tài sản toàn site (logo, favicon, hình ảnh mặc định nhưblank.jpg)_site/: Kết quả tự động tạo ra (không chỉnh sửa thủ công các tệp ở đây)
🤝 Đóng Góp
Chúng tôi sử dụng quy trình Git tiêu chuẩn với pull request.
Quy Trình
Tạo một nhánh mới cho các thay đổi của bạn:
git checkout -b ten-nhanh-mo-ta-cua-banVí dụ:
them-thanh-vien-moi,cap-nhat-du-an,sua-loi-chinh-taThực hiện thay đổi (chỉnh sửa tệp, thêm hình ảnh, v.v.)
Commit các thay đổi:
git add . git commit -m "Thông điệp mô tả thay đổi"Push nhánh của bạn:
git push origin ten-nhanh-mo-ta-cua-banMở Pull Request trên GitHub:
- Truy cập repository trên GitHub
- Nhấp “Pull requests” → “New pull request”
- Chọn nhánh của bạn và tạo PR
- Yêu cầu quản trị viên xem xét
Sau khi được phê duyệt, các thay đổi sẽ được merge vào
mainvà tự động triển khai
🖥️ Hệ Thống Quản Lý Nội Dung (CMS)
Cách dễ nhất để thêm hoặc chỉnh sửa nội dung là thông qua giao diện CMS trên web.
Truy Cập CMS
Yêu Cầu
Để truy cập CMS, bạn cần:
- Tài khoản GitHub có quyền truy cập vào tổ chức IROD-Lab
- Quyền truy cập repository
irod_lab_website - Xác thực Netlify (được xử lý tự động thông qua GitHub)
Yêu Cầu Quyền Truy Cập
Liên hệ quản trị viên phòng thí nghiệm để: - Được thêm vào tổ chức IROD-Lab trên GitHub - Nhận quyền ghi vào repository
Sau khi có quyền truy cập, đăng nhập vào CMS bằng thông tin đăng nhập GitHub của bạn.
Nội Dung Có Thể Quản Lý Qua CMS
- ✅ Trang cá nhân thành viên
- ✅ Dự án nghiên cứu
- ✅ Bài viết tin tức
- ✅ Thông tin tuyển dụng
- ✅ Các trang chính của site (trang chủ, giới thiệu, v.v.)
- ❌ Danh sách công bố (xem Quản Lý Danh Sách Công Bố)
👤 Thêm Trang Cá Nhân
Bạn có thể thêm hoặc chỉnh sửa trang cá nhân bằng CMS (khuyến nghị) hoặc chỉnh sửa tệp trực tiếp.
Phương Pháp 1: Sử Dụng CMS (Khuyến Nghị)
- Đăng nhập vào irodlab.netlify.app/admin
- Nhấp “Members” ở thanh bên trái
- Nhấp “New Member”
- Điền các trường bắt buộc:
- Title: Họ tên đầy đủ của bạn (vd: “Nguyen Van Nam”)
- Role: Chọn vị trí của bạn (PI, Post-Doc, PhD, MSc, RA, Alumni)
- Image: Nhấp để tải lên ảnh đại diện của bạn
- Body: Viết tiểu sử, sở thích nghiên cứu, v.v. (hỗ trợ Markdown và HTML)
- Nhấp “Save” (bản nháp) hoặc “Publish” (công khai ngay lập tức)
Phương Pháp 2: Chỉnh Sửa Tệp Trực Tiếp
Tạo một thư mục trong
content/people/members/với tên của bạn:content/people/members/firstname.lastname/Thêm ảnh đại diện vào thư mục này (bất kỳ định dạng hình ảnh nào):
content/people/members/firstname.lastname/photo.jpgTạo
index.qmdvới mẫu này:--- title: "Họ Tên Đầy Đủ Của Bạn" role: "msc" # Tùy chọn: pi, pd, phd, msc, ra, alumni image: photo.jpg # Chỉ tên tệp (không phải đường dẫn đầy đủ) --- Viết tiểu sử của bạn ở đây. Bạn có thể sử dụng định dạng Markdown hoặc HTML. ## Học Vấn - Thông tin về bằng cấp của bạn ## Sở Thích Nghiên Cứu - Các sở thích của bạnCommit và push các thay đổi của bạn (xem Đóng Góp)
Hướng Dẫn Về Ảnh Đại Diện
- Định dạng: Bất kỳ định dạng hình ảnh nào (JPG, PNG, AVIF, WebP, v.v.)
- Kích thước: Giữ kích thước tệp hợp lý (khuyến nghị < 2 MB)
- Lưu trữ: Đặt hình ảnh trong thư mục thành viên của bạn (không phải trong
images/) - Tham chiếu: Chỉ sử dụng tên tệp trong frontmatter (vd:
image: photo.jpg) - Mặc định: Nếu không có ảnh, sẽ sử dụng
/images/blank.jpg
Các Vai Trò Có Sẵn
pi: Giảng viên / Giáo sưpd: Nghiên cứu viên sau tiến sĩphd: Nghiên cứu sinh tiến sĩmsc: Học viên cao họcra: Trợ lý nghiên cứualumni: Cựu thành viên phòng thí nghiệm
📄 Thêm Nội Dung Khác
Dự Án Nghiên Cứu
Vị trí: content/research/featured/
Mỗi dự án là một thư mục chứa: - index.qmd - Mô tả dự án với frontmatter (tiêu đề, ngày tháng, danh mục, hình ảnh, v.v.) - Hình ảnh cục bộ (tham chiếu bằng tên tệp) - Tùy chọn references.bib - Công bố liên quan đến dự án
Cấu trúc ví dụ:
content/research/featured/du-an-cua-toi-2024/
├── index.qmd
├── anh-du-an.jpg
└── references.bib (tùy chọn)
Qua CMS: Đăng nhập → “Research Projects” → “New Research Project”
Qua Tệp: Sao chép một thư mục dự án hiện có làm mẫu
Bài Viết Tin Tức
Vị trí: content/news/cms/
Qua CMS: Đăng nhập → “News” → “New News”
Qua Tệp: Tạo thư mục có ngày (vd: YYYY-MM-DD-slug/index.qmd)
Thông Tin Tuyển Dụng
Vị trí: content/openings/positions/
Qua CMS: Đăng nhập → “Openings” → “New Opening”
Qua Tệp: Tạo thư mục với tên mô tả (vd: vi-tri-phd-2025/index.qmd)
📚 Quản Lý Danh Sách Công Bố
⚠️ Quan trọng: Danh sách công bố KHÔNG được quản lý qua CMS. Chúng phải được chỉnh sửa trực tiếp trong tệp BibTeX.
Cơ Sở Dữ Liệu Công Bố
Tệp: content/research/references.bib
Đây là cơ sở dữ liệu BibTeX chính chứa tất cả các công bố của phòng thí nghiệm. Danh sách công bố được tự động tạo và hiển thị trên trang nghiên cứu.
Thêm Công Bố Mới
Mở
content/research/references.bibThêm một mục BibTeX theo định dạng phù hợp:
@article{key2024, title = {Tiêu Đề Bài Báo Của Bạn}, author = {Tác giả 1 and Tác giả 2 and Tác giả 3}, journal = {Tên Tạp Chí}, year = {2024}, volume = {10}, number = {5}, pages = {123--145}, doi = {10.1234/example.doi}, url = {https://doi.org/10.1234/example.doi} }Lưu tệp và commit các thay đổi của bạn
Cách Hoạt Động
- Tệp BibTeX: Tất cả công bố được lưu trong
content/research/references.bib - Script Python:
scripts/list_pubs.pyphân tích tệp BibTeX và phân loại công bố - Component Tự Động:
components/auto_pubs.qmdbao gồm script Python - Hiển thị: Công bố tự động xuất hiện trên trang nghiên cứu
Các Loại Mục Được Hỗ Trợ
@article- Bài báo tạp chí@inproceedings/@conference- Bài báo hội nghị@book/@incollection- Sách và chương sách@phdthesis/@mastersthesis- Luận án
Tính Năng Đặc Biệt
- Xử Lý DOI Trùng Lặp: Script tự động xử lý các mục DOI trùng lặp (phổ biến khi xuất từ Zotero)
- Phân Loại Tự Động: Công bố được sắp xếp vào các danh mục (Bài Báo Tạp Chí, Bài Báo Hội Nghị, Sách, Luận Án)
- Sắp Xếp Theo Thời Gian: Công bố mới nhất xuất hiện đầu tiên
Mẹo
- Xuất từ các trình quản lý tài liệu tham khảo (Zotero, Mendeley, v.v.) sang định dạng BibTeX
- Đảm bảo mỗi mục có một key duy nhất (vd:
nguyen2024a,nguyen2024b) - Bao gồm DOI khi có sẵn để liên kết tốt hơn
- Script tự động xử lý định dạng
🔧 Chi Tiết Kỹ Thuật
Công Nghệ Sử Dụng
Các Gói Python
Được định nghĩa trong pyproject.toml: - quarto-cli - Công cụ dòng lệnh Quarto - pybtex - Phân tích BibTeX cho công bố - matplotlib, numpy, pandas, plotly - Trực quan hóa dữ liệu - ipykernel - Hỗ trợ Jupyter notebook
Nội Dung Động
- Listings: Tính năng listing của Quarto hiển thị động các thành viên, dự án, tin tức, v.v.
- Lọc Theo Vai Trò: Trang thành viên tự động nhóm người theo vai trò
- Công Bố Tự Động: Script Python phân tích BibTeX và tạo HTML
Giao Diện
- Sáng: Flatly
- Tối: Darkly
- CSS Tùy Chỉnh:
styles.css(phông chữ Google Sans)
Chỉnh Sửa Cấu Hình
- Quarto:
_quarto.yml - Python:
pyproject.toml - CMS:
admin/config.yml
📝 Ghi Chú Bổ Sung
- Các thay đổi đối với nhánh
maintự động kích hoạt triển khai - Xem trước các thay đổi của bạn ở local trước khi push
- CMS tạo commit trực tiếp vào nhánh của bạn
- Hình ảnh được lưu cục bộ cùng với nội dung (không phải trong một thư mục trung tâm)
- Để biết câu hỏi hoặc vấn đề, liên hệ quản trị viên phòng thí nghiệm
Cập Nhật Lần Cuối: Tháng 3 năm 2026