Html2Wiki edit

Html2Wiki project page on MediaWiki.org

Html2Wiki code in Wikimedia Git

Html2Wiki code on GitHub

Composer For extensions

Development Website edit





MediaWiki edit

  1. MediaWiki Architecture from The Architecture of Open Source Applications., volume II
  2. Manual:MediaWiki architecture
  3. mediawiki-core/master - also an example of Doxygen which is used by MediaWiki
  4. VisualEditor/master/
  5. http://api.jquery.com/
  6. php simplexmlelement.getname.php
  7. API:Main_page - esp. for creating content outside normal edit flow
  8. API:Calling internally
  9. Manual:Parameters to index.php
  10. Manual:Ajax about using the jQuery in MediaWiki
  11. How to become a MediaWiki hacker / Extension Writing Tutorial
  12. Manual:Developing extensions
  13. Manual:Database_layout
  14. Manual:Coding conventions / PHP
  15. Manual:How to debug [1]
  16. Manual:WebRequest.php
  17. ResourceLoader/Default_modules discusses using jQuery and the other resources
  18. Manual:$wgResourceModules
  19. Manual:Special_pages
  20. Manual:$wgEnableUploads 
  21. Manual:$wgUploadDirectory - use this to change the upload location for ext.
  22. Manual:$wgHashedUploadDirectory set this false to get an easier 1to1 view I don't think I can use the upload facility at all (unless extending it considerably) because of the assumptions built into the upload facility (it's for assets, and would pollute the 'recent files' gallery etc.)
  23. Manual:Edit.php
  24. Manual:Edit token
  25. For Vagrant, there is a LocalSettings.php in /vagrant which overrides /vagrant/mediawiki/LocalSettings.php  (e.g. images is in /srv/images)
  26. Markup spec tells us what HTML allowed in wiki markup

DOM Parsing edit

  1. PHP DOM is based on libxml and native to PHP, so fast, but finicky can do XPath queries
  2. StackOverflow review
  3. phpquery is similar to jQuery (but last updated 2009) explained
  4. querypath does jQuery selectors; is installed with Composer and does HTML5 also
  5. simplehtmldom is written in PHP and not based on libxml.  More generous.

Parsoid edit

  1. to html
  2. Parsoid/Setup
  3. Parsoid/Debugging
  4. Parsoid/Troubleshooting

Pre-processing / Validators edit

  1. php manual / ref.tidy.php The PHP lib-tidy binding
  2. Tidy man page (configuration options including "new-blocklevel-tags")
  3. http://htmlpurifier.org/
  4. http://htmlpurifier.org/demo.php?post
  5. https://validator.nu/ is the best choice for API/service/testing https://about.validator.nu/
  6. W3C's validator, and Step-by-step guide (source available for "Unicorn" - the combined validator)
  7. http://oli.jp/2009/html5-structure4/ background article explaining HTML4 -> HTML5 which can almost be summarized by "change the doctype".

Existing / Example code edit

  1. Extensions within Category:Bulk upload
  2. Extension:UploadLocal looks really good for showing how to hook into the upload process, and repeat it, with a display of files to be processed. Drawbacks: it handles ONLY images, and those must already be on the server.  May not be current, but looks fairly current.
  3. Extension:MsUpload looks really good - especially for hooking into the Edit screen and calling the API using HTML5 AJAX for drag and drop ease.  It specifically offers a new method of creating document sets: create/edit the category page, and uploads will be tagged with that category.  Drawbacks: dependency on Plupload and fallback to Flash and Silverlight which means hacking it might be impractical.  In any case, these authors have related extensions that make this extension and those others very likely a part of the solution.
  4. Extension:UploadWizard is an extension that allows a user to upload multiple files with a step-by-step JavaScript wizard.
  5. The simple way to HTML5 is to replace the first 4 lines of an HTML4 doc with
    <!DOCTYPE html>
    <html lang="en-US">
      <meta charset="UTF-8">
      <title>HTML5 Syntax and Coding Style</title>
  6. Snippets for AJAX
  7. The "Working Wiki" extension to MediaWiki is an advanced and interesting project for later follow-up.

in-browser Editing edit

  1. Mozilla Gecko's built-in rich text editor
  2. Kevin Roth's RTE

[1] wfDebug( __METHOD__ . ": unzipping stuff" ); will put something in the log file

MWDebug::log("Setting $attribute to  ${$attribute}"); will put something in the console