Điều này không đúng, vì obsidian CHỈ hỗ trợ các tệp đánh dấu và trên hết, Obsidian có yêu cầu duy nhất là tệp đánh dấu có một. md, không được yêu cầu bởi tiêu chuẩn, hầu hết các chương trình hoặc hệ thống tệp
Obsidian không chỉ yêu cầu các tệp được trang trí đặc biệt dành riêng cho nó (không phải văn bản thuần túy như nó tuyên bố), mà nếu đó là văn bản thuần túy hoặc tệp đánh dấu và phần mở rộng không chính xác, obsidian sẽ từ chối mở chúng
Tôi có thể thấy trong chính API obsidian nơi nó có thể cho phép nhiều loại tệp hơn. Tôi chỉ bối rối tại sao trình soạn thảo văn bản thuần túy không thể chỉnh sửa văn bản thuần túy
giải pháp đề xuất
Cho phép mở bất kỳ tệp nào được mã hóa ở dạng văn bản thuần túy trong Obsidian để chỉnh sửa giống như một. tập tin md; . MD
Cách giải quyết hiện tại (tùy chọn)
Giải pháp thay thế hiện tại liên quan đến việc hoàn toàn không sử dụng obsidian để mở bất kỳ tệp nào trong kho tiền của bạn mà không phải là. md (mặc dù các tính năng của obsidian bao gồm các tệp mà bạn cần chỉnh sửa nhưng không phải. tập tin md [. css/. js])
Cách giải quyết này không phải lúc nào cũng hoạt động, vì đồng bộ hóa obsidian dường như cũng không theo dõi các chỉnh sửa trong các ứng dụng khác. Với các thử nghiệm của riêng tôi, tôi nhận thấy rằng việc chỉnh sửa một. js trong kho tiền của tôi trong một ứng dụng khác, thì việc mở obsidian có khả năng hoàn nguyên hoặc xóa tệp. js mà không cần ghi lại lịch sử của nó trong nhật ký thay đổi. Điều này rất tệ đối với một ứng dụng tập trung vào việc ghi lại thông tin
Một cách giải quyết khác là tạo một plugin tùy chỉnh, nhưng một plugin tùy chỉnh và thoát khỏi chế độ an toàn chỉ để chỉnh sửa tệp văn bản bằng trình chỉnh sửa văn bản có vẻ như là một bước mà nhiều người dùng cấp cơ sở không muốn chỉ sử dụng các tính năng đã được tích hợp sẵn
Đây là nỗ lực đầu tiên của tôi tại một plugin
github. com/obsidianmd/obsidian-releasesNewly Generated FileĐể tự động đặt href của chúng tôi, chúng tôi sẽ sử dụng sự kiện tải được kích hoạt bởi FileReader, bằng cách khai báo một hàm gọi lại
reader.onload = (e) => { const fileDownload = document.getElementById("fileDownload"); fileDownload.href = e.target.result; }
Trình soạn thảo văn bản của chúng tôi đang bắt đầu hình thành. Tại thời điểm này, chúng tôi có thể tải xuống tệp văn bản "tĩnh"
Đã đến lúc cung cấp một số quyền kiểm soát cho người dùng của chúng tôi và làm cho mọi thứ năng động hơn. Để thực hiện tác vụ này, chúng tôi sẽ tạo một kiểu nhập văn bản đơn giản, được sử dụng để tự động sửa đổi nội dung tệp của chúng tôi
Mã Javascript sẽ trông như thế này
Đoạn mã trên đã làm cho trình soạn thảo văn bản của chúng ta trở nên sống động. Bây giờ chúng tôi có thể sửa đổi văn bản hoặc tệp đã tải xuống của chúng tôi
Sử dụng FileReader để đọc tệp được tải lên bằng đầu vào của loại tệp
Cuối cùng, để mở rộng kiến thức về API FileReader, chúng tôi sẽ nâng cao trình chỉnh sửa của mình bằng một tính năng khác. Chúng tôi sẽ cung cấp cho người dùng khả năng tải lên tệp văn bản từ máy tính của họ và sửa đổi tệp đó bằng mã được viết ở trên
Để thực hiện điều này, chúng tôi sẽ tạo đầu vào của loại tệp và lắng nghe sự kiện thay đổi được kích hoạt bởi phần tử này để khởi tạo FileReader của chúng tôi (đây là cách sử dụng phổ biến nhất của api trình đọc tệp)
Codepen này bao gồm mã đầy đủ chức năng của chúng tôi. https. // codepen. io/zelig880/pen/XLraXj
Phần kết luận
Thật không thể tin được ngày nay có thể đạt được bao nhiêu với javascript trực tiếp trong trình duyệt
Trong vòng chưa đầy 50 dòng, chúng tôi đã có thể viết một trình soạn thảo văn bản đầy đủ chức năng, nó có thể chưa sẵn sàng để sản xuất (nó có một số lỗi), nhưng ý nghĩ rằng chúng tôi có thể đạt được rất nhiều điều mà chỉ cần rất ít mã đã lấp đầy tôi
TLDR
Có thể tìm thấy mã hoàn chỉnh cho trình soạn thảo văn bản của chúng tôi tại codepen sau. https. // codepen. io/zelig880/pen/XLraXj
Bài đăng này được viết bởi Simone Cuomo, người cố vấn và kỹ sư phần mềm cao cấp tại ThisDot
Bạn có thể theo dõi họ trên Twitter tại @zelig880
Công ty Dot này. là một công ty tư vấn có hai chi nhánh. luồng phương tiện và luồng phòng thí nghiệm. Dot Media này là phần chịu trách nhiệm giúp các nhà phát triển cập nhật những tiến bộ trong nền tảng web. Dot Labs này cung cấp cho các nhóm kiến thức chuyên môn về nền tảng web, sử dụng các phương pháp như cố vấn và đào tạo