ApiFusion.org/Sources/ui/tools/ImportWiki.html

From ApiFusion
Jump to: navigation, search

Goal

The tool for migration of mediawiki pages between different hosts with different mediawiki version.

It also could be used for moving the pages into selected parent root.

Use guide

  1. login into target wiki. You should have sufficient privileges to write into destination root and its child pages.
  2. open ImportWiki.html
  3. fill source and destination mediawiki root URLs. Since destination is assumed to be hosted on same server as ImportWiki.html the relative URL is OK.
  4. press step 1 button (Read page list) to read the namespaces and pages within.
  5. wait when all pages are listed. It could take a while - watch for counter change as indicator.
  6. select the namespace(s) to import. The file list should be re-fetched for selected namespaces.
  7. select other import options
  8. remove the pages which not belong to import on panel 2a
  9. press step 2 button to start the import process
  10. Watch for imported pages counted change.

Description

It is self-sufficient file to be deployed into destination wiki server.

As all synchronization is done over browser there is a significant limitation on scale and import time. It has a sense only if other means of wiki migration are not available. For example you could do not have an access to source wiki server CLI. Which is only reason why this tool was created.

If you want to make an enhancement feel free to copy the file sources, ApiFusion.org gives you an appropriate license. It would be great if you could contribute back.

Limitations

  • source wiki authorized access unsupported. I.e. if the page required login credentials it could not be imported unless you authorized the browser session.

Cross-site security settings

The owner of source wiki could set the site available for importing by anyone with Apache .htaccess or httpd.conf settings:

   Header add Access-Control-Allow-Origin "*"
   Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
   Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

The apifusion.com have opened own content to public that way.

But it is possible to void the cross-domain restriction within browser by plugin ( in FF it is a CorsE ) and do the import between sites even if their back-end prohibits cross-site scripting.

Another way around CORS restriction is using reverse proxy in Apache to serve source and destination from same domain( your localhost ).

See also