Tôi đang viết một gói R có tên là slidify
giúp dễ dàng tạo các trang HTML5 có thể lặp lại từ các tệp R Markdown. Gói này sử dụng các tệp css
và js
từ một số khung tạo trình chiếu HTML5 hiện có như dzslides
, deck.js
v.v. Hiện tại, tôi đã sắp xếp các phiên bản đã tải xuống của các nội dung bên ngoài này trong thư mụccủa slidify
, để nó tự động có sẵn cho người dùng khi cài đặt. Trong khi cách tiếp cận này đơn giản, có một số nhược điểm:Quản lý tài sản bên ngoài trong Gói R
Các khuôn khổ này được cập nhật liên tục trên
github
. Theo thiết lập hiện tại, tôi sẽ phải đẩy một phiên bản mới của gói mỗi khi có bất kỳ khung công tác nào được cập nhật.Nếu tôi thực hiện bất kỳ điều chỉnh nào cho mặc định
css
vàjs
đi kèm với các khung này, thì tôi cần phải hợp nhất các bản cập nhật cẩn thận để không bị mấtslidify
các tùy chỉnh cụ thể.
Tôi đã có một vài suy nghĩ về cách quản lý việc này.
Không gói các thư viện này bằng
slidify
. Thay vào đó, hãy cung cấpfunction
để cho phép người dùng thêm các khung mà họ mong muốn.Thêm các khung này vào thư mục
inst\libraries
trênslidify
, nhưng dưới dạngsubmodules
. Bây giờ, tôi không có ý tưởng nếu thêm chúng nhưsubmodules
sẽ nhận được chúng được cài đặt nếu ai đó đã sử dụngdevtools::install_github
.
Vì vậy, câu hỏi của tôi là, khi viết một gói R làm cách nào để quản lý các phụ thuộc không phải R được cập nhật liên tục?
Tôi thực sự thích câu hỏi của bạn; tinh chỉnh các phrasing ở cuối để tránh bỏ phiếu "không xây dựng". – joran
Cảm ơn bạn đã chỉnh sửa. Nó làm cho câu hỏi sạch hơn. – Ramnath
Một khả năng là xem các gói 'xlsx' và' XLConnect'. Cả hai đều phụ thuộc vào các thư viện Java. 'xlsx' định nghĩa (và phụ thuộc vào) một gói độc lập' xlsxjars' chỉ chứa các thư viện. Bằng cách này, mã hạ lưu được tách ra khỏi các thư viện. – Andrie