It makes me a little nervous that there has been so little activity on this forum as of late. I fear my request here will go unheard. But I'm going to say it anyway.
I've been in the process of building a library to use the XML-RPC API that Wikidot provides, but I've encountered one serious limitation: there's no good way to delete pages.
I understand that there is a danger in allowing this. Someone could inadvertently delete their entire site because they called this method in the wrong loop or something. It would be unrecoverable. (Though I'm certain a little effort could make it so there is a workaround for this, but I'll leave that out for now.)
I'm aware that I can simply rename a page to deleted:XXXXX, and that's what might be the most common from the web interface itself. For manual operations like the web interface is designed for, this works just fine. But once there is an API available, another program will be the user, and these programs can create many more pages much more quickly. A true delete operation needs to be provided, despite the danger.
On the other hand, if this is simply not an option, then I want to reiterate what I've heard other people say: build better tools in the admin console to delete lots of pages quickly. Perhaps an option to trash all pages that are in the deleted category, or perhaps a way where you can see a list of all of the pages and check a box by the ones you want to delete and do a batch delete. Either of those options would be massively better than having to manually navigate to all of the deleted pages and delete them.
Something has got to give in this area. Please find a way to make it happen.
Here are two use cases that I'm bumping up against that motivate this request:
- I'm building a .NET library that uses the XML-RPC API you provide, and I want to be able to build unit tests that will verify that creating a page from scratch works. In running my tests, I'll either create thousands of unique pages that I'll have to go delete manually, or I need to tear down the page (delete it) in my unit test so that I can repeat it later. Simply moving to the "deleted:" category doesn't cut it, because the second time around, the deleted page already exists, and I can't overwrite it.
- When I finish the API, I intend on having a section of my wiki generated by a script. In most cases, I'll be updating existing pages or adding new pages, but when my script detects that a page no longer exists, it has to be able to delete them. The section is large enough, and there will be enough deleted pages, that manually visiting the deleted pages and removing them sounds like a horrible waste of time.
We need a more efficient way to delete pages, whether through the API (preferred) or better bulk deletion tools in the admin console.