I've implemented the backend part of this, but I'm a bit unsure how the UX for this should work:
- The first title field is checked client side to make sure the page doesn't already exist
- The radio selector to pick what page you're importing from comes after the title input field
So...we can mark it as invalid until you pick that you're importing and then say it's okay? Or should we not do the extra validation client-side and let the server handle it?
We should probably do this in a way that warns the user that the page is going to be converted, and tells them the old wikitext can still be accessed in the revision history--maybe something like the warning we give for missing signatures when sending a mass message.
No. Special:ChangeContentModel does not actually modify the page content. It only handles cases where the content is already suitable for the target model (in this case, a JSON object encoding a description and a list of targets).
I think the "proper" way to do this is to offer a preview of the converted results (where the description is the page with the targets stripped out) and allow the user to make changes. However, stripping targets out is difficult, as there is no guarantee that they follow a fixed syntax in the wikitext (e.g. they could be abstracted away in a template, as they are on Meta). Since this isn't an easy task or a critical feature (you can already import targets from a wikitext delivery list), I'm not inclined to work on it at the moment.