Sự phát triển/Sự bắt đầu mới về Hệ sinh thái Kỹ thuật Wikimedia
Trang này cung cấp cái nhìn tổng quan về phần mềm và cơ sở hạ tầng của Wikimedia với công nghệ mới từ cộng tác viên. Mục tiêu của nó là giúp các nhà phát triển hiểu các lĩnh vực chính mà bạn có thể áp dụng các kỹ năng kỹ thuật của mình để giúp hỗ trợ và phát triển Sự thúc đẩy.
Các nguyên tắc cốt lõi và công nghệ
Nguồn mở
Hệ sinh thái kỹ thuật Wikimedia được hướng dẫn bởi các nguyên tắc phần mềm nguồn mở và miễn phí (FLOSS). Những người đóng góp trên khắp thế giới tình nguyện dành thời gian để duy trì và mở rộng công nghệ đằng sau các dự án Wikimedia. Điều này có nghĩa là hệ sinh thái kỹ thuật Wikimedia bao gồm nhiều dự án độc đáo với các nguyên tắc đóng góp, mẫu thiết kế, vị trí lưu trữ và quy trình đánh giá mã khác nhau. Contributors around the world volunteer their time to maintain and extend the technology behind Wikimedia projects. This means that the Wikimedia technical ecosystem consists of many unique projects with varying contributing guidelines, design patterns, hosting locations, and code review processes.
Các giá trị nguồn mở như chia sẻ quyền sở hữu và cam kết bảo mật mạnh mẽ là trọng tâm của Wikimedia với cơ sở hạ tầng kỹ thuật, phần mềm và dịch vụ . Ví dụ:
- Để kiểm soát phiên bản và đánh giá mã, Wikimedia Foundation (WMF) sử dụng Git và Gerrit. Git là một hệ thống kiểm soát phiên bản phân phối mã nguồn mở và miễn phí, còn Gerrit là một công cụ đánh giá mã cộng tác dựa trên web miễn phí tích hợp với Git.
- Wikimedia Dịch vụ đám mây(WMCS) cung cấp cơ sở hạ tầng điện toán đám mây, dịch vụ lưu trữ chia sẻ (nền tảng dưới dạng dịch vụ) và dịch vụ dữ liệu cho những người đóng góp cho các dự án phần mềm Wikimedia. Bạn có thể sử dụng miễn phí các dịch vụ này để lưu trữ các công cụ phần mềm cho phong trào Wikimedia, thay vì sử dụng các dịch vụ độc quyền, trả phí hoặc không phải nguồn mở.
Ngoài việc cung cấp các công cụ và dịch vụ cho những người đóng góp kỹ thuật, WMF còn duy trì cốt lõi cơ sở hạ tầng như trung tâm dữ liệu, tìm kiếm, kết nối mạng và định tuyến lưu lượng truy cập toàn cầu. Bạn không cần phải tìm hiểu về những điều đó để đóng góp cho các dự án wiki, nhưng bạn nên biết về phần mềm cốt lõi hỗ trợ Wikipedia và wiki khác: MediaWiki.
MediaWiki
Các dự án Wikimedia, bao gồm Wikipedia, chạy trên nền tảng phần mềm MediaWiki. MediaWiki là phần mềm mã nguồn mở và miễn phí, được xây dựng đặc biệt để thu thập và tổ chức kiến thức mở và miễn phí. Nó đa ngôn ngữ, có thể mở rộng, có thể tùy chỉnh và đáng tin cậy. MediaWiki cho phép người dùng trên toàn thế giới chỉnh sửa, sắp xếp, duy trì và cộng tác trên wiki. Nó quản lý việc hiển thị nội dung như văn bản, hình ảnh, định dạng và sửa đổi. MediaWiki không chỉ là một hệ thống quản lý nội dung: nó còn cung cấp các công cụ để xử lý thư rác và phá hoại cũng như các chức năng khác hỗ trợ cộng đồng quản lý kiến thức có thể tái sử dụng tự do trên nền tảng mở.
-
Thông tin thú vị: NASA sử dụng MediaWiki làm phần mềm wiki của mình.
Các lĩnh vực chính mà nhà phát triển có thể đóng góp
Phát triển MediaWiki, các ứng dụng, và các mở rộng
MediaWiki Lõi và phần mở rộng
Phần mềm MediaWiki được phát triển với sự cộng tác của mọi người từ khắp nơi trên thế giới. Cộng đồng kỹ thuật Wikimedia đã bổ sung nhiều tính năng chính cho MediaWiki và xây dựng một hệ sinh thái rộng lớn gồm các tiện ích mở rộng cho phần mềm cốt lõi. Do tính phức tạp của nó, việc đóng góp cho MediaWiki có thể khó khăn hơn các loại đóng góp kỹ thuật khác. Với tư cách là người đóng góp mới, hãy tập trung vào các tính năng và lỗi chỉ liên quan đến một vùng mã nhỏ. Tránh xây dựng giao diện và tiện ích mở rộng MediaWiki mới: mỗi tiện ích mở rộng mới sẽ tăng thêm gánh nặng bảo trì tổng thể của phần mềm và có thể chặn việc khởi chạy các tính năng mới, quan trọng. Here you can find good first tasks for MediaWiki core. Avoid building new MediaWiki skins and extensions: every new extension adds to the software's overall maintenance burden, and can block the launch of new, crucial features. Thay vào đó, hãy xem xét làm việc trên một trong nhiều các mở rộng hiện có.
Biên dịch mở rộng cho phép bản địa hóa MediaWiki và dịch mọi loại văn bản.
Nó hỗ trợ dịch trên web, chỉnh sửa, và hợp tác giữa các dịch giả trên toàn thế giới,đồng thời phía sau làm tích hợp với mã nguồn dễ dàng nhất có thể.
Những điều cần biết trước khi bạn bắt đầu:
|
Để tìm hiểu thêm, hãy ghé thăm Làm thế nào để trở thành một MediaWiki hacker .
Wikimedia ứng dụng di động
Các ứng dụng di động mở rộng phạm vi tiếp cận nội dung Wikimedia bằng cách cho phép người dùng tương tác với Wikimedia mà không cần sử dụng trình duyệt. Có các ứng dụng dành cho nền tảng Android, iOS và KaiOS, các ứng dụng dành cho các dự án Wikimedia khác nhau như Commons, Wikipedia và Wiktionary cũng như các ứng dụng dành cho các hoạt động như đọc, đóng góp, v.v. Nhiều ứng dụng có cộng đồng nhà phát triển sôi động và chào đón những người đóng góp mới.
Kiwix là một trình đọc ngoại tuyến - nó giúp mọi người có thể truy cập Wikipedia mà không cần truy cập internet.
Có nhiều loại nội dung khác nhau có sẵn trên Wikipedia.
Quá trình phát triển Kiwix sử dụng Java/Kotlin (Android), Swift (iOS), Qt (máy tính để bàn), NodeJS (mediawiki offliner) và C++.
-
Kiwix phân phối
-
Ảnh chụp màn hình của Kiwix trên iOS
Để tìm hiểu thêm, hãy truy cập Wikimedia Apps .
Tùy chỉnh MediaWiki thông qua phát triển trên wiki
Các mẫu và các mô-đun
Các bản mẫu cho phép một phần nội dung xuất hiện trên nhiều trang wiki ("việc loại trừ"). Nhiều wiki chủ yếu dựa vào các mẫu: có hàng nghìn mẫu, chúng được sử dụng trên hầu hết mọi trang và chúng không thể thiếu đối với chức năng của wiki. Bạn có thể chuyển tham số tới mẫu để tùy chỉnh cách xử lý nội dung trong các ngữ cảnh khác nhau.
Mẫu trích dẫn khối cung cấp định dạng cho các trích dẫn khối và bao gồm các tham số phân bổ được định dạng sẵn cho tác giả và nguồn của trích dẫn.
Điều này cho phép các biên tập viên sử dụng đánh dấu văn bản wiki để tạo kiểu một cách dễ dàng và nhất quán về cách hiển thị các trích dẫn khối trên các trang wiki.
Bạn không cần có tài khoản nhà phát triển để chỉnh sửa hoặc tạo mẫu và chúng được viết bằng wikitext. Điều đó làm cho mẫu trở thành một cách dễ dàng để bắt đầu tùy chỉnh hành vi wiki.
Mô-đun tương tự như các mẫu, nhưng thay vì được viết bằng wikitext, chúng sử dụng ngôn ngữ lập trình Lua. Mặc dù các mẫu là một phần của ứng dụng MediaWiki cốt lõi, việc hỗ trợ các mô-đun được triển khai bởi một tiện ích mở rộng có tên $scribunto. While templates are part of the core MediaWiki application, support for modules is implemented by an extension called Scribunto .
Mô-đun Routemap hỗ trợ một ngôn ngữ tùy chỉnh, phức tạp, đặc biệt để hiển thị bản đồ đường sắt. Nó được sử dụng trong hàng nghìn bài viết về đường sắt bằng nhiều ngôn ngữ. Việc sử dụng Lua cho phép mô-đun này thay thế mẫu bản đồ lộ trình cũ bằng cách triển khai nhanh hơn và thân thiện với thiết bị di động hơn. Using Lua enables this module to replace legacy route map templates with a faster and more mobile-friendly implementation.
Những điều cần biết trước khi bắt đầu:
|
Để tìm hiểu thêm về các mẫu, hãy truy cập Help:Templates . Để tìm hiểu thêm về các mô-đun và cách Lua được sử dụng trên MediaWiki, hãy truy cập Scribunto Lua manual. To learn more about modules and how Lua is used on MediaWiki, visit the Scribunto Lua manual.
Tập lệnh và tiện ích người dùng
MediaWiki hỗ trợ tùy chỉnh giao diện người dùng hoặc phát triển "trên wiki" để nâng cao chức năng cốt lõi của phần mềm. Kịch bản người dùng là JavaScript và/hoặc CSS cung cấp các tính năng bổ sung trên MediaWiki. Mã tồn tại trên wiki và được đưa vào từ phía máy khách trên MediaWiki thông qua tùy chọn của người dùng. Bạn có thể sửa đổi JavaScript và CSS cục bộ của mình để thay đổi giao diện và hoạt động của giao diện của riêng bạn. Người dùng cá nhân có thể thêm các tính năng cho chính mình miễn là họ tuân theo những mong đợi và hướng dẫn xung quanh việc thực hiện điều đó. Nếu bạn xây dựng thứ gì đó mà người khác có thể sử dụng, bạn có thể chia sẻ tập lệnh của mình một cách không chính thức hoặc làm việc với cộng đồng wiki để điều tra việc cung cấp các tùy chỉnh của bạn cho người dùng và dự án khác dưới dạng "tiện ích". User scripts are JavaScript and/or CSS that provide additional features on top of MediaWiki. Code lives on the wiki, and is injected from the client side on MediaWiki via user preferences. You can modify your local JavaScript and CSS to change the appearance and behavior of your own interface. Individual users can add features for themselves as long as they follow expectations and guidelines around doing so. If you build something that others can use, you can share your scripts informally, or work with a wiki community to investigate making your customisations available to other users and projects as a "gadget".
Tập lệnh người dùng này tính toán thời gian đọc của một bài viết và hiển thị nó trên trang.
var numWords = $("#mw-content-text > div").text().split(" ").length;
var headerWords = $("h1").text().split(" ").length;
var totalWords = numWords + headerWords;
var timeInMinutes = totalWords / 200;
var header = $("h1").text();
$("h1").text(header + " (it will take you " + timeInMinutes + " mins to read this article)");
Tiện ích là các tùy chỉnh do người dùng tạo có sẵn để cài đặt trên wiki, thông qua tiện ích mở rộng Gadgets MediaWiki. Nhiều tiện ích có nguồn gốc là tập lệnh người dùng được sử dụng rộng rãi trên wiki tại nhà của họ và quản trị viên muốn giúp mọi người tìm thấy và sử dụng chúng dễ dàng hơn. Quản trị viên có thể định cấu hình những tiện ích nào có sẵn và được bật theo mặc định cho toàn bộ trang web hoặc giao diện MediaWiki.
HotCat giúp người dùng dễ dàng xóa, thay đổi và thêm các danh mục vào các trang Wikipedia.
Nó có một danh sách gợi ý đề xuất các danh mục hiện có để tự động hoàn thành.
tiện ích được triển khai trên Wikipedia tiếng Ba Tư này giúp người kiểm duyệt nội dung sửa các chữ cái, ngữ pháp, số, URL, cấu trúc bài viết bằng tiếng Ả Rập, v.v.
Những điều cần biết trước khi bắt đầu:
|
Để tìm hiểu thêm về tập lệnh người dùng và tiện ích, hãy truy cập Gadget kitchen .
Xây dựng các công cụ và bot để hỗ trợ các dự án Wikimedia
MediaWiki API cung cấp quyền truy cập trực tiếp vào dữ liệu có trong cơ sở dữ liệu MediaWiki. Điều này bao gồm nội dung wiki, siêu dữ liệu, dữ liệu phân tích, v.v. Bạn có thể sử dụng các API này để xây dựng các ứng dụng đóng góp nội dung hoặc chức năng mới cho hệ sinh thái Wikimedia. Các mô-đun API cung cấp quyền truy cập theo chương trình vào nhiều chức năng tương tự được cung cấp bởi giao diện web MediaWiki.
Bots
Bots là các chương trình tự động trợ giúp các dự án wiki bằng cách thực hiện các nhiệm vụ quan trọng nhưng lặp đi lặp lại. Bot tiết kiệm công sức của con người bằng cách sửa các khoảng trống bị thiếu hoặc thừa, đề xuất bài viết cho người mới, sửa các liên kết bị hỏng, v.v. Tự động hóa bot hỗ trợ các tình nguyện viên của Wikimedia bằng cách cho phép họ dành nhiều thời gian hơn cho các nhiệm vụ đòi hỏi trí thông minh của con người, như viết bài, tìm nguồn, kiểm tra thực tế và tổng hợp nhiều quan điểm. Bots save human effort by correcting missing or extra spaces, suggesting articles to newcomers, fixing broken links, and more. Bot automation supports Wikimedia volunteers by allowing them to spend more of their time on tasks that require human intelligence, like writing articles, finding sources, fact checking, and synthesising multiple points of view.
Nó cũng hoàn thiện các mẫu tham khảo và thêm liên kết tới các nguồn tài nguyên nếu thích hợp.
Bot này được vận hành như một dịch vụ của Internet Archive hợp tác với cộng đồng Wikimedia.
Tính đến tháng 10 năm 2022, IABot đang chạy trên hơn 150 wiki Wikimedia.
IABot cũng có giao diện dựa trên trình duyệt (ứng dụng web) giúp truy cập dễ dàng vào một số dịch vụ và cấu hình của bot.
Bot có thể yêu cầu các trang và gửi các chỉnh sửa lên wiki giống như cách người dùng thực hiện các tác vụ tương tự trong trình duyệt web. Vì bot truy cập các trang theo cách giống như con người nên chúng có thể gặp phải xung đột khi chỉnh sửa, hết thời gian chờ trang hoặc gặp phải các sự cố không mong muốn khác khi yêu cầu trang hoặc thực hiện chỉnh sửa. Vì bot thường hoàn thành khối lượng công việc lớn nên bạn nên cân nhắc những tình huống này khi viết bot.
Những điều cần biết trước khi bắt đầu:
|
Để tìm hiểu thêm về bot, hãy truy cập Manual:Creating a bot .
Các công cụ
Các công cụ là những ứng dụng phần mềm giúp mọi người làm việc trong các dự án Wikimedia. Các công cụ có thể thực hiện tất cả các loại nhiệm vụ, như giúp người chỉnh sửa khám phá nội dung để cải thiện, đơn giản hóa việc lập kế hoạch chỉnh sửa, trực quan hóa nội dung wiki, giúp chống phá hoại và hơn thế nữa.
CropTool là một công cụ MediaWiki để cắt xén hình ảnh tại Wikimedia Commons và các trang Wikimedia khác.
Nó hỗ trợ các tệp JPEG, PNG, TIFF và GIF (hoạt hình), đồng thời có thể trích xuất các trang đơn lẻ từ tệp DJVU và PDF dưới dạng JPEG để cắt xén.
MediaWiki Action API cung cấp cho bạn quyền truy cập theo chương trình vào nội dung trên bất kỳ wiki Wikimedia nào. Bạn có thể sử dụng API hành động để tìm kiếm và hiển thị các trang wiki, lấy tệp phương tiện, chỉnh sửa trang và quản lý wiki. Thư viện khách hàng triển khai API MediaWiki có sẵn bằng nhiều ngôn ngữ, bao gồm cả Python và JavaScript.
Công cụ trùng lặp chọn một bài viết wiki ngẫu nhiên không có mục Wikidata liên quan và đưa ra một số kết quả phù hợp có thể có trên Wikidata.
Việc thêm dữ liệu có cấu trúc giúp bạn dễ dàng nắm bắt các chủ đề, khái niệm hoặc thực thể được thảo luận trong một bài viết.
Để khám phá thêm các công cụ Wikimedia, hãy truy cập Toolhub. Or, learn about hosting your tools and bots for free on Toolforge.
Những điều cần biết trước khi bắt đầu:
|
Tham gia cộng đồng công nghệ Wikimedia
Một cách tuyệt vời để tìm cách đóng góp là kết nối với cộng đồng kỹ thuật. Bạn có thể gặp gỡ mọi người và thảo luận về công việc phát triển trên nhiều kênh truyền thông và tại các sự kiện như Hackathons. Wikimedia Foundation cũng cung cấp các chương trình tiếp cận cộng đồng để cố vấn cho các nhà phát triển mới.
Bắt đầu với tư cách là cộng tác viên mới
- Truy cập trang Nhà phát triển mới để tìm hiểu thêm về cách bắt đầu phát triển và đóng góp cho nguồn mở Wikimedia.
- Sử dụng Developer Portal để tìm các tài nguyên và hướng dẫn được tuyển chọn cho lĩnh vực bạn quan tâm.