Web hiện đại là tất cả về nội dung động. Nhưng trong hầu hết các trường hợp, đây là một ảo ảnh công nghệ. Một số lượng lớn trang web sử dụng các trang được tạo động, tức là nội dung được đọc từ cơ sở dữ liệu và hiển thị trên màn hình khi được yêu cầu, ngay cả đối với những thứ không nhất thiết phải có bất kỳ tương tác nào. Điều này làm tốn tài nguyên và thậm chí có thể được coi là kém an toàn hơn vì các hướng dẫn sai hoặc không đúng định dạng về mặt lý thuyết có thể tạo ra điều gì đó không mong muốn.
Web cũ là tất cả về nội dung tĩnh - các trang HTML có liên kết và hình ảnh và không nhiều thứ khác. Không tệ, rất nhẹ về tài nguyên và an toàn như máy chủ Web. Nhưng sau đó, không có nhiều tương tác xảy ra và việc cập nhật nội dung có thể rất tẻ nhạt. Điều gì sẽ xảy ra nếu có một cái gì đó ở giữa hai thế giới? Đó sẽ là Nikola, một trình tạo trang web tĩnh.
Khám phá, cài đặt, thử nghiệm
Bản chất của ý tưởng là - bạn tạo các trang web tĩnh của mình một cách linh hoạt. Một loạt các tập lệnh Python giúp bạn tạo và chỉnh sửa các trang của mình, sửa các liên kết, v.v. trong nền, do đó bạn không cần phải thực hiện việc đó theo cách thủ công mỗi khi thay đổi điều gì đó. Plugin và chủ đề làm cho nhiệm vụ này trở nên dễ dàng hơn. Sự khác biệt so với CMS truyền thống là không có cơ sở dữ liệu và bạn xây dựng mọi thứ cục bộ trước khi tải lên bất cứ nơi nào trang web của bạn hoạt động. Ngoài ra, đó chỉ là HTML và hình ảnh.
Tôi thấy điều này thú vị vì việc tạo nội dung ngoại tuyến trong thời hiện đại không hề dễ dàng. Tôi đã viết về điều này vào năm 2018 và thật đáng buồn, trớ trêu thay, về mặt logic, KompoZer cổ đại lại là công cụ phù hợp nhất cung cấp cho bạn cả GUI và tính linh hoạt của việc chỉnh sửa mã trực tiếp nếu bạn mong muốn. Nikola cung cấp một phương pháp kết hợp - chủ yếu là dòng lệnh, nhưng bạn cũng có một trình chỉnh sửa trực quan cùng với các bản xem trước trực tiếp của trình duyệt.
Tôi đã làm theo các hướng dẫn thiết lập chung (lệnh pip và virtualenv) và điều này hoạt động tốt. Tôi đoán toàn bộ điều có thể được tự động hóa (đặt bên trong một tập lệnh). Khi bước này hoàn tất, tôi làm theo hướng dẫn trực tuyến về cách tạo trang web (demo) đầu tiên.
nikola init --demo test-site
Tạo trang Nikola
======
Đây là Nikola v8.0.2. Bây giờ chúng tôi sẽ hỏi bạn một số câu hỏi đơn giản về trang web mới của bạn. Thay vào đó, nếu bạn không muốn trả lời và muốn sử dụng các giá trị mặc định, chỉ cần khởi động lại với tham số `-q`.
--- Câu hỏi về trang web---
Tiêu đề trang web [My Nikola Site]:
Khi tôi đã cung cấp dữ liệu cơ bản - bạn cũng cần có một miền, miền này đã được đăng ký, vì miền này sẽ được sử dụng làm trang chủ - sau đó tôi bắt đầu tạo bài đăng đầu tiên. Tôi đã làm điều này theo hướng dẫn và gặp sự cố ngay lập tức.
(nikola) roger@tester:~/nikola/test-site$ nikola new_post -e
Tạo bài đăng mới
-----------------
Tiêu đề:Tại sao Người sử dụng lửng không được phép lái xe
Đang quét bài viết........xong!
[2019-04-07T18:05:25Z] THÔNG TIN:new_post:Nội dung bài đăng của bạn ở:posts/why-badgers-nên-be-allowed-to-drive.rst
[2019-04 -07T18:05:25Z] LỖI:new_post:Biến môi trường $EDITOR chưa được đặt, không thể chỉnh sửa bài đăng bằng '-e'. Vui lòng chỉnh sửa bài đăng theo cách thủ công.
Vấn đề là, tôi cần xuất biến EDITOR theo cách thủ công. Tôi đặt nó thành Kate trong KDE, nhưng đối với vấn đề đó, tôi có thể sử dụng bất kỳ trình soạn thảo nào, kể cả Notepad++, khá tiện lợi. Sau đó, nếu bạn làm điều này, bạn sẽ không gặp phải lỗi này nữa.
Đoạn edit hơi...dị. Nikola sử dụng các tệp có phần mở rộng .rst để biểu thị chúng là được cấu trúc lại Văn bản, mặc dù bạn có thể định cấu hình các định dạng khác như Markdown theo cách thủ công. Tôi thấy điều này hơi kỳ lạ, bởi vì điều này buộc mọi người phải học một cú pháp (kỳ quặc) khác. Điều đó cũng có nghĩa là không có sự tách biệt về phong cách và nội dung.
Điều này có nghĩa là bạn không thể chỉ làm việc - bạn cần học một ngôn ngữ khác và ngôn ngữ này sau đó được kết xuất thành HTML, nhưng tôi đang tự hỏi về các lớp CSS, các kiểu, các phần tử HTML thực tế thì sao. Rốt cuộc, nếu ai đó đang tạo một trang web, họ có nên kiểm soát cú pháp thực tế không? Cuối cùng, tôi đã hoàn thành bài đăng đầu tiên của mình và tôi để Nikola xây dựng.
Khi bước này hoàn tất, bạn có thể xem trước các thay đổi của mình bên trong trình duyệt. Sau đó, bạn có các chủ đề và plugin bổ sung trong trường hợp bạn không muốn hack bất cứ thứ gì của riêng mình. Cho đến nay, điều này không tệ, nhưng tôi vẫn có một số câu hỏi. Điều lớn nhất trong số đó là, tiếp theo là gì? Giả sử tôi hài lòng với trang web, tôi chỉ tải toàn bộ nội dung lên máy chủ của mình qua FTP hay sao? Và làm cách nào để xử lý các bản cập nhật?
Đó không phải là tôi trong ảnh, đó là một người tuyệt vời hơn tôi rất nhiều.
Tôi đã tìm thấy những điều thú vị khác, chẳng hạn như khả năng triển khai cho các hệ thống xây dựng khác nhau, khả năng nhập các ý chính, tạo biểu đồ và hình thu nhỏ cũng như sử dụng các khối mã. Nhưng tôi vẫn nghĩ rằng không có đủ sự tập trung vào trạng thái cuối cùng, tức là sau khi người dùng hoàn thành việc tạo nội dung, làm cách nào để họ chuyển từ môi trường xây dựng cục bộ sang triển khai trực tuyến một cách đơn giản?
Kết luận
Câu hỏi thực sự quan trọng mà người ta cần đặt ra là, nếu Nikola Tesla thiết lập một trang web, thì ngày nay ông ấy sẽ sử dụng công nghệ gì? Trang chủ của Microsoft? Geocite? Ni-cô-la? Tôi thích khái niệm này, tôi thích ý tưởng giúp người dùng tiết kiệm nhiều thời gian cho các bản cập nhật khung trang web không cần thiết, nhưng tôi thấy cách tiếp cận này quá phức tạp. Tôi biết, xây dựng trang web không phải là một trò chơi, nhưng nó cũng không phải là trò chơi khăm.
Đối với tôi, Nikola có thể làm tốt hơn với thiết lập hợp lý hơn, khả năng sử dụng HTML trực tiếp hoặc ít nhất là thêm các khối mã cũng như các phần triển khai và xem trước trực quan hơn. Tôi biết câu trả lời đã có sẵn, nhưng vẻ đẹp đang có những công cụ đơn giản, dễ hiểu, mang lại nhiều hơn những gì họ yêu cầu. Nếu một người phải lao động ồ ạt chỉ để có thể triển khai trang đầu tiên của họ, thì chính những công cụ được cho là tiết kiệm thời gian lại trở thành vấn đề mà họ dự định cứu ngay từ đầu. Điều đó nói rằng, tôi thích Nikola, đây là một cách tiếp cận rất hay và tôi sẽ để mắt đến. Rốt cuộc, ai biết được Web 4.0 hay bất cứ thứ gì sẽ mang lại.
Chúc mừng.