VisualEditor
VisualEditor is a MediaWiki extension that provides a WYSIWYG (what you see is what you get) rich-text editor for creating and modifying wiki pages, allowing users to work directly with formatted content rather than underlying wikitext markup.[1] Developed by the Wikimedia Foundation's Editing team, it leverages a JavaScript library to enable browser-based editing and integrates with the Parsoid parser to convert between visual content and wikitext.[1] First released as an opt-in alpha in mid-2012 on MediaWiki.org, VisualEditor became available on the English Wikipedia in December 2012 and expanded to nearly all languages by June 2013.[2] Key features include support for visual diffs to highlight changes, integration with Citoid for automatic citation generation, and TemplateData for editing complex templates without code.[1] The extension, licensed under the MIT License, has been stable since its inclusion in MediaWiki 1.35 in 2020 and requires no database schema changes, making it compatible with various skins such as Vector and Minerva Neue.[1] By July 2015, it was set as the default editor for over 75% of Wikipedias, and as of 2025, it remains the primary editing interface on most Wikimedia projects, with continued enhancements to features like citation tools.[2][3] Ongoing development addresses issues like loading speed and incomplete feature parity with wikitext editing, with community contributions encouraged via platforms like Gerrit.[2]Development
Origins and Goals
The development of VisualEditor was primarily motivated by a significant decline in the number of active editors on English Wikipedia, which peaked at approximately 50,000 in 2007 before dropping to around 37,000 by 2011, with active editors defined as those making five or more edits per month.[4][5] Wikimedia research identified the complexity of wiki markup as a substantial barrier preventing new and casual users from contributing effectively.[6] The Wikimedia Foundation's 2011 Editor Trends Study highlighted these issues, emphasizing the need for tools that could lower entry barriers and boost retention among non-technical participants.[7] In response, the Wikimedia Foundation initiated VisualEditor's development in May 2011 as part of a $1 million project focused on enhancing editing tools and features to revitalize editor participation. The project's core goals included simplifying the editing process for non-technical users, minimizing dependence on esoteric wiki markup syntax, and ultimately increasing editor retention and overall contributions to Wikimedia projects. By providing a what-you-see-is-what-you-get (WYSIWYG) interface, VisualEditor aimed to make article creation and modification as intuitive as using modern word processors, thereby attracting a broader demographic of contributors.[8] Key stakeholders in the early phases were the Wikimedia Foundation, which led the effort, and initial collaborators including Fandom, Inc. (formerly Wikia), whose engineering team contributed to prototyping and design.[9] Early milestones encompassed planning for an alpha version between 2011 and 2012, with the 2011-2012 annual plan setting targets for initial opt-in production usage by December 2011 and broader testing on small wikis thereafter.[10] These steps laid the groundwork for integrating tools like the Parsoid parser to handle MediaWiki's complex structure.[1]Technical Foundations
VisualEditor is built primarily as a JavaScript library that operates in web browsers, with supporting server-side components implemented in Node.js for real-time processing and PHP for integration with MediaWiki's ecosystem. This architecture enables client-side rendering and manipulation of content while leveraging server resources for parsing and serialization tasks. The entire extension is released under the MIT License, promoting open-source reuse and modification.[1][11] At its core, VisualEditor relies on the Parsoid parser to facilitate bidirectional conversion between MediaWiki's wikitext markup and an HTML Document Object Model (DOM) enriched with RDFa annotations. Parsoid, originally developed in JavaScript in 2012 specifically to support VisualEditor, generates a structured HTML representation from wikitext that preserves semantic information, such as template boundaries and node relationships, allowing for intuitive visual manipulation without losing underlying data. This conversion process is essential for enabling WYSIWYG editing, as it transforms the abstract wikitext into a concrete DOM that browsers can handle natively.[12][13] A key engineering challenge in VisualEditor's development was achieving reliable round-trip editing—ensuring that modifications made in the visual interface could be serialized back to equivalent wikitext without information loss or introducing "dirty diffs" that complicate version control. MediaWiki's original PHP-based parser was not designed for reversibility, often flattening complex structures like templates into irreversible HTML, which hindered seamless editing workflows. To address this, Parsoid introduced innovations such as a WHATWG-compliant DOM processing pipeline that retains metadata during parsing, enabling accurate reconstruction of wikitext. This required extensive automated testing on large corpora, including over 100,000 Wikipedia articles, to identify and resolve fidelity issues. In 2019, Parsoid was ported to PHP to align with MediaWiki's runtime environment, improving performance by approximately double while maintaining compatibility.[13][14][12] VisualEditor has been bundled as a standard component of MediaWiki since version 1.35, released in September 2020, streamlining its deployment across Wikimedia projects and third-party installations by integrating Parsoid directly into the core distribution. Beyond its role as a MediaWiki extension, the JavaScript library can operate standalone, independent of MediaWiki, Parsoid, or Node.js, allowing it to be embedded in other HTML5-based applications for general rich-text editing. This modularity supports broader adoption in non-wiki contexts while preserving the core visual editing capabilities.[12][1][15] As of 2025, VisualEditor remains actively maintained, with recent enhancements to integrations like Edit Check for improved editing validation introduced in 2023 and 2024.[16][17]Features and Capabilities
Core Editing Tools
VisualEditor offers a WYSIWYG (What You See Is What You Get) interface that enables users to edit wiki pages directly in a rich-text environment, manipulating text and applying formats without needing to interact with underlying wikitext markup.[10] This approach provides an intuitive experience similar to word processors, where changes are visible immediately as the editor renders content in HTML+RDFa format, generated through Parsoid for seamless integration with MediaWiki.[18] The primary toolbar serves as the central hub for core editing actions, featuring accessible icons and menus for essential operations. Users can apply bold (Ctrl+B on PC or ⌘ Cmd+B on Mac) and italics (Ctrl+I or ⌘ Cmd+I) formatting with simple shortcuts, while links are inserted via a dedicated chain icon or Ctrl+K (⌘ Cmd+K), allowing selection of internal or external targets.[18] For structure, the toolbar includes a pull-down menu to set paragraph styles such as headings or sub-headings, and buttons to create bulleted or numbered lists, with indentation adjusted using Tab or Shift+Tab keys. Tables can be inserted as a default 4x4 grid via the toolbar, followed by editing options in a contextual Table menu for adding or removing rows and columns. Basic templates are supported through an Insert menu icon, enabling users to add and configure simple parameterized elements without markup knowledge.[18] Media insertion is streamlined via the "Images and media" tool in the Insert menu, where users can upload files directly or select from existing ones, adding captions and alignment as needed.[18] Throughout the editing process, VisualEditor delivers real-time previews of modifications, ensuring that the visual layout matches the final published output in HTML+RDFa. Undo and redo functionalities are readily available via toolbar icons, supporting iterative refinements.[10] Since 2023, VisualEditor includes the Edit Check tool, which scans edits in real-time and suggests improvements such as checking pasted content for formatting issues, verifying link validity, and ensuring image licensing before publishing. This feature helps maintain article quality and is accessible via notifications in the editor interface.[19] The editor is designed for cross-platform compatibility, functioning reliably in modern web browsers on desktops across operating systems, making it accessible to a broad range of users without specialized software.[18]Integrations and Extensions
VisualEditor integrates with Citoid, a service that automates citation generation by translating URLs, DOIs, ISBNs, and other identifiers into formatted references using Zotero translators.[18] This feature, accessible via the citation tool in the editor's toolbar, populates citation templates with metadata such as author names, publication dates, and titles, reducing manual entry errors and streamlining the process for editors.[20] Citoid's integration has been available in VisualEditor since 2015, enhancing its utility for academic and reference-heavy wikis.[1] Support for templates in VisualEditor relies on TemplateData, a structured documentation system that enables a user-friendly interface for inserting and editing wiki-specific templates without raw wikitext knowledge. Editors can access parameters through dialog boxes that display descriptions and previews, allowing modifications to complex elements like infoboxes or navigation boxes directly in the visual mode.[18] Additionally, gadget support extends VisualEditor's customization via MediaWiki's Gadgets extension, permitting wiki administrators to add JavaScript-based tools, such as custom buttons for wrapping text in templates or automating repetitive edits.[21] These gadgets integrate seamlessly with the core toolbar, providing wiki-tailored enhancements without altering the base editor.[22] VisualEditor maintains compatibility with other MediaWiki extensions, exemplified by its integration with SyntaxHighlight, which enables visual editing of code blocks through a dedicated plugin.[23] When SyntaxHighlight is installed, users can edit<syntaxhighlight> tags via a popup interface in VisualEditor, supporting language selection, line numbering, and highlighting previews to facilitate accurate code insertion and modification.[23] This compatibility ensures that technical content, such as programming snippets, remains editable in a WYSIWYG environment without switching to source mode.[24]
In collaboration with Fandom (formerly Wikia), VisualEditor has been adapted for enhanced media handling on community-driven wikis, incorporating features like streamlined image uploads, gallery creation, and integration with Fandom's Portable Infoboxes.[25] This partnership, initiated around 2013, allows editors to search and insert media directly via toolbar icons, add captions and positioning options in real-time, and perform mass uploads for efficient content enrichment.[26] Fandom's implementation extends VisualEditor's core media tools to better support fan wikis' visual demands, such as embedding videos and organizing image galleries.[27]