Page MenuHomePhabricator

Create a special page for starting a new article
Open, Needs TriagePublic

Description

One UX wart of MediaWiki that survived for a surprisingly long time is that there is no explicit way of starting a new article. If you want to edit an existing article, there is a relatively easy-to-discover edit button; if you want to create an article that's referenced from the current article but doesn't exist, there's the red link mechanism; but if you want to start a new article without a red link, there's nothing. You need to either manually edit the URL, or type the article name in the search box and then click the red link on the search result page (sometimes - T163423, T316400), or go to your sandbox (if the wiki is configured to show a sandbox link in your user menu) and add a red link to it; none of those options are even remotely intuitive. The Inputbox extension adds the functionality to insert a small form into a wiki page, where you can type in the page name and then it sends you to edit that page, and sometimes editors add that to various help pages, but there is nothing similar built into the software and so whether the user finds the right help page (or whether that wiki even has one) is very hit and miss.

T322740: Contribute entry point adds a "New page" option to the contribution menu, presumably to fix this issue, but then the place it links to is just a set of red links someone else put together, which isn't very useful (T327063). It should instead link to a special page which is basically just a prompt to enter the name of the article, and then it sends you to edit it.

Over time that could include all kinds of features, there has been a lot of discussion to figure out how an "article wizard" should look like and various wiki communities collected lots of good ideas (see e.g. Sdkb's proposal or T156442), but we should probably start small.

An MVP Special:NewArticle could look something like this:

[interface message that can be customized by the community]
[textfield for article title][submit button]
[another interface message that can be customized by the community]

with some logic to warn the user if the given title, or something very close to it, already exists; on submit, it would just open the given page in the default editor, with preload and editintro support.

Related:

Event Timeline

This should be a new extension instead of part of MediaWiki core. In some wiki like Wikidata this special page is completely useless.

This should be a new extension instead of part of MediaWiki core. In some wiki like Wikidata this special page is completely useless.

I'd say instead it should be disable-able on a per-namespace basis by extensions (and LocalSettings config).

This should be a new extension instead of part of MediaWiki core. In some wiki like Wikidata this special page is completely useless.

Starting a new page is core functionality so the entry point to do so should also be in core. Eventually it would be nice if extensions could integrate/replace/whatever. I don't think it would be an initial requirement.

I'd say instead it should be disable-able on a per-namespace basis by extensions (and LocalSettings config).

Maybe it should check whether the user can actually create the page: get the default content model for the main namespace and call ContentHandler::supportsDirectEditing(). Although Wikibase should probably just replace the "new page" card with a link to Special:NewItem in the first place (see T321379: Special:Contribute should give the possibility to prevent specific cards from being displayed or change the link target).

I'd say instead it should be disable-able on a per-namespace basis by extensions (and LocalSettings config).

Maybe it should check whether the user can actually create the page: get the default content model for the main namespace and call ContentHandler::supportsDirectEditing(). Although Wikibase should probably just replace the "new page" card with a link to Special:NewItem in the first place (see T321379: Special:Contribute should give the possibility to prevent specific cards from being displayed or change the link target).

That could work. Would be nice to tie up that loose end as part of this (which Wikifunctions is about to have as well).