phần mềm wiki tự do nguồn mở được sử dụng bởi Wikipedia và các dự án Wikimedia khác From Wikipedia, the free encyclopedia
MediaWiki là phần mềm wiki tự do nguồn mở được phát hành dưới Giấy phép Công cộng GNU (GPL). Nó được sử dụng trên Wikipedia và gần như tất cả các trang web Wikimedia khác, bao gồm Wiktionary, Wikimedia Commons và Wikidata; các trang này xác định phần lớn yêu cầu đặt ra cho MediaWiki.[5] Nó được phát triển để sử dụng trên Wikipedia vào năm 2002 và được đặt tên là "MediaWiki" vào năm 2003.[6] MediaWiki ban đầu được phát triển bởi Magnus Manske và được cải tiến bởi Lee Daniel Crocker.[7][8] Kể từ đó sự phát triển của MediaWiki đã được điều phối bởi Wikimedia Foundation.
Bài viết này cần thêm chú thích nguồn gốc để kiểm chứng thông tin. |
![]() | |
![]() Trang chính của Wikipedia tiếng Việt, phiên bản 1.43.0-wmf.16 (eb9847e) của MediaWiki | |
Thiết kế bởi | Magnus Manske, Lee Daniel Crocker |
---|---|
Phát triển bởi | Wikimedia Foundation |
Phát hành lần đầu | 25 tháng 1 năm 2002 |
Phiên bản ổn định | |
Kho mã nguồn | |
Viết bằng | PHP[2] |
Hệ điều hành | Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris |
Kích thước | 63.81 MB (đã nén) |
Ngôn ngữ có sẵn | 459[3] ngôn ngữ |
Danh sách ngôn ngữ | |
Thể loại | Wiki |
Giấy phép | Giấy phép Công cộng GNU[4] |
Website | mediawiki.org (tiếng Anh) |
MediaWiki được viết bằng ngôn ngữ lập trình PHP và lưu trữ tất cả nội dung văn bản vào cơ sở dữ liệu. Phần mềm này được tối ưu hóa để xử lý hiệu quả các dự án lớn, có thể có hàng terabyte nội dung và hàng trăm nghìn lượt xem mỗi giây.[5][9] Bởi vì Wikipedia là một trong những trang web lớn nhất thế giới, mối quan tâm chính của các nhà phát triển là đạt được khả năng mở rộng thông qua nhiều lớp bộ nhớ đệm và sao chép cơ sở dữ liệu. Một khía cạnh khác của MediaWiki là tính quốc tế hóa của nó; giao diện của nó có sẵn trong hơn 300 ngôn ngữ.[10] MediaWiki hiện có hơn 1.000 cài đặt cấu hình.[11] và hơn 1.800 tiện ích mở rộng có sẵn để cho phép thêm hoặc thay đổi các tính năng khác nhau[12]
Bên cạnh việc sử dụng trên các trang Wikimedia, MediaWiki đã được sử dụng như một hệ thống quản trị nội dung và quản lý tri thức trên hàng chục nghìn trang web và hàng nghìn công ty, công cộng và tư nhân, bao gồm các trang web Fandom (website), wikiHow, Miraheze và các cài đặt nội bộ lớn như Intellipedia và Diplopedia.
MediaWiki là một phần mềm tự do nguồn mở và được phân phối theo các điều khoản của Giấy phép Công cộng GNU phiên bản 2 hoặc bất kỳ phiên bản nào mới hơn. Tài liệu của MediaWiki hiện có tại www.mediawiki.org và được phát hành theo giấy phép Creative Commons BY-SA 3.0 và một phần thuộc phạm vi công cộng.[13] Cụ thể, hướng dẫn sử dụng và nội dung khác tại MediaWiki.org được cấp phép Creative Commons, trong khi tập hợp các trang trợ giúp dự định được sao chép tự do vào bản cài đặt wiki mới và/hoặc được phân phối cùng với phần mềm MediaWiki thuộc về phạm vi công cộng. Điều này được thực hiện để loại bỏ các vấn đề pháp lý phát sinh từ các trang trợ giúp được nhập vào wiki với các giấy phép không tương thích với giấy phép Creative Commons.[14] Nói chung, sự phát triển của MediaWiki ủng hộ việc sử dụng các định dạng phương tiện mã nguồn mở.[15]
MediaWiki có một cộng đồng tình nguyện tích cực để phát triển và bảo trì. Bất kể ai có đóng góp cho dự án bằng cách gửi các bản vá thường được cấp quyền truy cập để thực hiện các sửa đổi đối với kho lưu trữ Git/Gerrit của dự án theo yêu cầu.[16] Cũng có nhiều lập trình viên được trả lương chủ yếu phát triển các dự án cho Wikimedia Foundation. Các nhà phát triển MediaWiki tham gia Google Summer of Code bằng cách tạo điều kiện phân công cố vấn cho các sinh viên muốn làm việc trong các dự án lõi và phần mở rộng của MediaWiki.[17] Trong năm trước tháng 11 năm 2012, có khoảng hai trăm nhà phát triển đã thực hiện các thay đổi đối với lõi hoặc phần mở rộng của MediaWiki.[18] Các bản phát hành chính của MediaWiki được tạo ra khoảng sáu tháng một lần bằng cách chụp nhanh nhánh phát triển, được lưu giữ liên tục ở trạng thái ổn định;[19] các bản phát hành nhỏ được phát hành khi cần thiết để sửa lỗi (đặc biệt là các vấn đề về bảo mật).
MediaWiki được phát triển trên mô hình phát triển tích hợp liên tục, trong đó các thay đổi phần mềm được đẩy trực tiếp lên các trang Wikimedia trên cơ sở thường xuyên.[19]
Trang web theo dõi lỗi của MediaWiki là phabricator.wikimedia.org, chạy Phabricator. Trang web cũng được sử dụng cho các yêu cầu tính năng và cải tiến.
Khi Wikipedia được ra mắt vào tháng 1 năm 2001, nó chạy trên hệ thống phần mềm wiki UseModWiki. UseModWiki được viết bằng ngôn ngữ lập trình Perl và lưu trữ tất cả các trang wiki trong tệp văn bản (.txt). Phần mềm này sớm được chứng minh là hạn chế cả về chức năng lẫn hiệu suất. Vào giữa năm 2001, Magnus Manske - một nhà phát triển và sinh viên tại Đại học Cologne, đồng thời là biên tập viên Wikipedia - bắt đầu làm việc trên phần mềm mới thay thế UseModWiki, được thiết kế đặc biệt để Wikipedia sử dụng. Phần mềm này được viết bằng ngôn ngữ kịch bản PHP và lưu trữ tất cả thông tin của nó trong cơ sở dữ liệu MySQL. Phần mềm mới được phát triển phần lớn vào ngày 24 tháng 8 năm 2001 và một wiki thử nghiệm cho nó đã được khởi tạo ngay sau đó.
Lần triển khai đầy đủ đầu tiên của phần mềm này là Meta Wikipedia mới vào ngày 9 tháng 11 năm 2001. Ngay lập tức, cộng đồng Wikipedia mong muốn triển khai nó trên Wikipedia tiếng Anh.[20] Tuy nhiên, Manske lo sợ về bất kỳ lỗi tiềm ẩn nào gây hại cho trang web non trẻ trong thời gian diễn ra kỳ thi cuối kỳ mà anh ấy phải hoàn thành ngay trước Giáng sinh;[21] điều này dẫn đến việc ra mắt trên Wikipedia tiếng Anh bị trì hoãn cho đến ngày 25 tháng 1 năm 2002. Sau đó, phần mềm dần dần được triển khai trên tất cả các trang Wikipedia tiếng Anh vào thời điểm đó. Phần mềm này được gọi là "tập lệnh PHP" và là "giai đoạn II", với tên "giai đoạn I", có hiệu lực hồi tố cho việc sử dụng UseModWiki.
Việc sử dụng ngày càng tăng nhanh chóng khiến các vấn đề về quá tải lại phát sinh và ngay sau đó, một lần viết lại phần mềm khác bắt đầu; lần này được thực hiện bởi Lee Daniel Crocker, được gọi là "giai đoạn III". Phần mềm mới này cũng được viết bằng PHP, với phần phụ trợ MySQL và giữ giao diện cơ bản của phần mềm giai đoạn II, nhưng có thêm chức năng có khả năng mở rộng rộng hơn. Phần mềm "giai đoạn III" xuất hiện trên Wikipedia vào tháng 7 năm 2002.
Wikimedia Foundation được công bố vào ngày 20 tháng 6 năm 2003. Vào tháng 7, một biên tập viên Wikipedia, Daniel Mayer đã đề xuất tên "MediaWiki" cho phần mềm, như một cách chơi chữ trên "Wikimedia".[22] Tên "MediaWiki" dần dần được đưa vào sử dụng bắt đầu từ tháng 8 năm 2003. Tên này thường gây nhầm lẫn do sự giống nhau (có chủ ý) của nó với tên "Wikimedia" (bản thân tên này cũng tương tự như "Wikipedia").[23]
Biểu trưng cũ do Erik Möller tạo ra, sử dụng một bức ảnh bông hoa do Florence Nibart-Devouard chụp, và ban đầu được gửi tới cuộc thi biểu trưng cho một biểu trưng mới của Wikipedia, được tổ chức từ ngày 20 tháng 7 đến ngày 27 tháng 8 năm 2003.[24][25] Biểu trưng đứng ở vị trí thứ ba và được chọn để đại diện cho MediaWiki chứ không phải Wikipedia, với biểu trưng ở vị trí thứ hai được sử dụng cho Wikimedia Foundation.[26] Dấu ngoặc vuông kép ([[ ]]) tượng trưng cho cú pháp mà MediaWiki sử dụng để tạo siêu liên kết đến các trang wiki khác; trong khi đóa hoa hướng dương đại diện cho sự đa dạng về nội dung trên Wikipedia, sự phát triển không ngừng và cả sự hoang dã của nó.[27]
Sau đó, Brion Vibber, Giám đốc kỹ thuật của Wikimedia Foundation[28] đã đảm nhận vai trò Quản lý phát hành và Nhà phát triển tích cực nhất.[6][29]
Các cột mốc quan trọng trong quá trình phát triển MediaWiki bao gồm: hệ thống phân loại bằng thể loại (2004); chức năng phân tích cú pháp, (2006); Flagged Revision, (2008);[30] "ResourceLoader", một hệ thống phân phối CSS và JavaScript (2011);[31] và Trình soạn thảo trực quan, một nền tảng chỉnh sửa "những gì bạn đang thấy là những gì bạn sẽ nhận được" (WYSIWYG) (2013).[32]
Phiên bản đầu tiên của MediaWiki là phiên bản 1.1, được phát hành vào tháng 12 năm 2003.
Nhờ vào việc được sử dụng trong Wikipedia và các dự án khác của Wikimedia Foundation, MediaWiki dần trở nên nổi tiếng. Fandom, một dịch vụ lưu trữ wiki trước đây gọi là Wikia. Miraheze, một nền tảng hosting lưu trữ wiki khá phổ biến với hơn 7000 wiki được lưu trữ cũng chạy trên MediaWiki. wikiHow và SNPedia cũng là những wiki công khai khác chạy trên MediaWiki. WikiLeaks cũng bắt đầu như một trang web dựa trên MediaWiki nhưng hiện không còn là wiki nữa.
Có một số bách khoa toàn thư wiki thay thế cho Wikipedia chạy trên MediaWiki, bao gồm Citizendium, Metapedia, Scholarpedia và Conservapedia. MediaWiki cũng được sử dụng nội bộ bởi một số lượng lớn các công ty, bao gồm cả Novell và Intel.[33][34]
Việc sử dụng MediaWiki đáng chú ý trong các chính phủ bao gồm Intellipedia, được sử dụng bởi Cộng đồng Tình báo Hoa Kỳ, Diplopedia, được Bộ Ngoại giao Hoa Kỳ sử dụng và milWiki, một phần của milSuite được Bộ Quốc phòng Hoa Kỳ sử dụng. Các cơ quan của Liên Hợp Quốc như Chương trình Phát triển của Liên Hợp Quốc và INSTRAW đã chọn triển khai wiki của họ bằng MediaWiki, bởi vì "phần mềm này chạy Wikipedia và do đó được đảm bảo sẽ được kiểm tra kỹ lưỡng, sẽ tiếp tục được phát triển tốt trong tương lai và các kỹ thuật viên tương lai trên các phần mềm này wiki sẽ có nhiều khả năng tiếp xúc với MediaWiki hơn bất kỳ phần mềm wiki nào khác."[35]
Quỹ Phần mềm Tự do sử dụng MediaWiki để triển khai trang LibrePlanet.[36]
MediaWiki cung cấp một bộ tính năng cốt lõi phong phú và một cơ chế để đính kèm phần mở rộng để cung cấp chức năng bổ sung.
Do sự nhấn mạnh vào tính đa ngôn ngữ trong các dự án Wikimedia, quá trình quốc tế hóa và địa phương hóa đã nhận được sự quan tâm đáng kể của các nhà phát triển. Giao diện người dùng đã được dịch toàn bộ hoặc một phần sang hơn 300 ngôn ngữ trên translatewiki.net,[10] và có thể được quản trị viên trang web tùy chỉnh thêm (toàn bộ giao diện có thể chỉnh sửa thông qua wiki).
Một số tiện ích mở rộng, đáng chú ý nhất là những tiện ích được thu thập trong Gói tiện ích mở rộng ngôn ngữ MediaWiki, được thiết kế để nâng cao hơn nữa tính đa ngôn ngữ và quốc tế hóa của MediaWiki.
Việc cài đặt MediaWiki yêu cầu người dùng có đặc quyền quản trị trên máy chủ chạy cả PHP và loại cơ sở dữ liệu SQL tương thích. Một số người dùng thấy rằng việc thiết lập máy chủ ảo là hữu ích nếu phần lớn trang web của họ chạy trong một framework (chẳng hạn như Zope hoặc Ruby on Rails) phần lớn không tương thích với MediaWiki.[37] Lưu trữ đám mây có thể loại bỏ nhu cầu triển khai một máy chủ mới.[38]
Một tập lệnh cài đặt PHP được truy cập thông qua trình duyệt web để khởi tạo trình cài đặt của wiki. Nó hiện lên cho người dùng về một bộ tham số bắt buộc tối thiểu, để lại các thay đổi khác, chẳng hạn như cho phép tải lên[39], thêm biểu trưng trang web[40] và cài đặt tiện ích mở rộng, được thực hiện bằng cách sửa đổi cài đặt cấu hình có trong tệp có tên LocalSettings.php
.[41] Một số khía cạnh khác của MediaWiki có thể được cấu hình thông qua các trang đặc biệt hoặc bằng cách chỉnh sửa các trang nhất định; chẳng hạn, các bộ lọc sai phạm có thể được định cấu hình thông qua một trang đặc biệt[42] và một số tiện ích nhất định có thể được thêm vào bằng cách tạo các trang JavaScript trong không gian tên MediaWiki.[43] Cộng đồng MediaWiki đã xuất bản một bản hướng dẫn chi tiết để cài đặt MediaWiki.[44]
Một trong những khác biệt sớm nhất giữa MediaWiki (và tiền thân của nó, UseModWiki) và các công cụ wiki khác là việc sử dụng "free links" thay vì CamelCase. Khi MediaWiki được tạo ra, thông thường các wiki yêu cầu văn bản như "WorldWideWeb" để tạo liên kết đến một trang về World Wide Web; mặt khác, các liên kết trong MediaWiki được tạo bởi các từ xung quanh có dấu ngoặc vuông kép và bất kỳ khoảng trắng nào giữa chúng đều được giữ nguyên, ví dụ: World Wide Web
.
MediaWiki sử dụng mã đánh dấu wiki nhẹ có thể mở rộng được thiết kế để dễ sử dụng và dễ học hơn HTML.[45] Có một số công cụ chuyên dụng để chuyển đổi nội dung chẳng hạn như các bảng giữa mã đánh dấu MediaWiki và HTML.[46] Những nỗ lực đã được thực hiện để tạo ra một đặc tả đánh dấu MediaWiki, nhưng dường như đã đạt được sự đồng thuận rằng mã Wiki yêu cầu các quy tắc ngữ pháp nhạy cảm với ngữ cảnh.[47][48] Bảng so sánh song song sau đây minh họa sự khác biệt giữa mã đánh dấu wiki và HTML:
Cú pháp (mã "hậu trường" dùng để thêm định dạng cho văn bản) |
HTML tương đương (một loại mã "hậu trường" khácdùng để thêm định dạng cho văn bản) |
Đầu ra đã kết xuất (được nhìn thấy trên màn hình bởi một người xem trang web) |
---|---|---|
====A dialogue====
"Take some more [[tea]]," the March Hare said to Alice, very earnestly.
"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."
"You mean you can't take ''less''," said the Hatter: "it's '''very''' easy to take ''more'' than nothing."
|
<h4>A dialogue</h4>
<p>"Take some more <a href="/wiki/Tea" title="Tea">tea</a>," the March Hare said to Alice, very earnestly.</p>
<p>"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."</p>
<p>"You mean you can't take <i>less</i>," said the Hatter: "it's <b>very</b> easy to take <i>more</i> than nothing."</p>
|
A dialogue
"Take some more tea," the March Hare said to Alice, very earnestly. "I've had nothing yet," Alice replied in an offended tone: "so I can't take more." "You mean you can't take less," said the Hatter: "it's very easy to take more than nothing." |
(Trích dẫn ở trên từ Alice ở xứ sở thần tiên của Lewis Carroll)
Các công cụ chỉnh sửa trang mặc định của MediaWiki được mô tả là hơi khó học.[49] Một cuộc khảo sát các sinh viên được chỉ định sử dụng wiki dựa trên MediaWiki cho thấy rằng khi họ được hỏi một câu hỏi mở về các vấn đề chính với wiki, 24% đã trích dẫn các vấn đề kỹ thuật với định dạng, ví dụ:. "Không thể tìm ra cách đưa hình ảnh vào. Không thể tìm ra cách hiển thị liên kết bằng từ; nó chèn một số."[50]
Để giúp việc sửa đổi các trang dài dễ dàng hơn, MediaWiki cho phép sửa đổi một đề mục của một trang (được xác định bởi tiêu đề của nó). Người dùng đã đăng ký cũng có thể cho biết liệu sửa đổi của họ có nhỏ hay không. Sửa lỗi chính tả, ngữ pháp hoặc dấu chấm câu là những ví dụ về chỉnh sửa nhỏ, trong khi thêm các đoạn văn bản mới là một ví dụ về chỉnh sửa không nhỏ.
Đôi khi trong khi một người dùng đang chỉnh sửa, người dùng thứ hai sẽ lưu phần chỉnh sửa vào cùng một phần của trang. Sau đó, khi người dùng đầu tiên cố gắng lưu trang, mâu thuẫn sửa đổi sẽ xảy ra. Sau đó, người dùng thứ hai có cơ hội hợp nhất nội dung của họ vào trang vì nó hiện tồn tại sau lần lưu trang của người dùng đầu tiên.
Giao diện người dùng của MediaWiki đã được địa phương hóa bằng nhiều ngôn ngữ khác nhau. Ngôn ngữ cho chính nội dung wiki cũng có thể được đặt, để gửi trong tiêu đề HTTP "Ngôn ngữ-nội dung" và thuộc tính HTML "lang".
MediaWiki có một Web API (giao diện lập trình ứng dụng) có thể mở rộng cung cấp quyền truy cập trực tiếp, cấp cao vào dữ liệu có trong cơ sở dữ liệu MediaWiki. Các chương trình máy khách có thể sử dụng API để đăng nhập, nhận dữ liệu và đăng các thay đổi. API hỗ trợ các ứng dụng khách JavaScript và ứng dụng người dùng cuối dựa trên web mỏng (chẳng hạn như các công cụ chống phá hoại). API có thể được truy cập bởi thành phần backend của một trang web khác.[51] Một thư viện bot Python mở rộng, Pywikibot,[52] và một công cụ bán tự động phổ biến có tên là AutoWikiBrowser, cũng có giao diện với API.[53] API được truy cập thông qua các URL như https://en.wikipedia.org/w/api.php?action=query&list=recentchanges
. Trong trường hợp này, truy vấn sẽ yêu cầu Wikipedia cung cấp thông tin liên quan đến 10 lần sửa đổi cuối cùng đối với trang web. Một trong những lợi thế được nhận thấy của API là tính độc lập về ngôn ngữ của nó; nó nhận các kết nối HTTP từ máy khách và có thể gửi phản hồi ở nhiều định dạng khác nhau, chẳng hạn như XML, PHP được tuần tự hóa hoặc JSON.[54] Mã máy khách đã được phát triển để cung cấp các lớp trừu tượng cho API.[55]
MediaWiki hỗ trợ nội dung phong phú được tạo thông qua cú pháp chuyên biệt. Ví dụ: phần mềm đi kèm với hỗ trợ tùy chọn để hiển thị các công thức toán học bằng LaTeX và trình phân tích cú pháp đặc biệt được viết bằng OCaml. Chức năng tương tự cho các nội dung khác nhau, từ dòng thời gian đồ họa đến các điểm toán học và khuông nhạc cho đến chữ tượng hình Ai Cập, đều có sẵn thông qua các tiện ích mở rộng.
Phần mềm đã trở nên mạnh mẽ hơn trong việc xử lý nhiều loại tệp phương tiện đã tải lên. Chức năng phong phú nhất của nó là trong lĩnh vực hình ảnh, nơi có thể tạo các thư viện hình ảnh và hình thu nhỏ tương đối dễ dàng. Ngoài ra còn có hỗ trợ cho siêu dữ liệu Exif. Việc sử dụng MediaWiki để vận hành Wikimedia Commons, một trong những kho lưu trữ nội dung đa phương tiện miễn phí lớn nhất, đã thúc đẩy nhu cầu có thêm chức năng trong lĩnh vực này.
Đối với việc sửa đổi theo WYSIWYG, VisualEditor có sẵn để sử dụng trong MediaWiki giúp đơn giản hóa quá trình chỉnh sửa cho các biên tập viên và đã được đóng gói kể từ MediaWiki 1.35.[56] Các tiện ích mở rộng khác tồn tại để xử lý chỉnh sửa WYSIWYG ở các mức độ khác nhau.[57]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.