{"id":1056,"date":"2011-01-11T17:02:41","date_gmt":"2011-01-11T16:02:41","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=1056"},"modified":"2011-01-11T17:02:41","modified_gmt":"2011-01-11T16:02:41","slug":"validator-0-4-3introducing-auto-documentation","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/","title":{"rendered":"Validator 0.4.3:introducing auto-documentation"},"content":{"rendered":"<p>It&#8217;s been a while since the previous release of <a href=\"https:\/\/secure.wikimedia.org\/wikipedia\/mediawiki\/wiki\/Extension:Validator\">Validator<\/a>, but this minor update includes some cool new functionality.<\/p>\n<p>As I was <a href=\"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/01\/new-mediawiki-extension-subpagelist\/\">creating the SubPageList extension<\/a> and it&#8217;s documentation (at 27c3!), it occurred to me that to document the usage of the &lt;subpages \/&gt; parser hook, all the info I needed was already available via Validator. Since there was no way to get this info out in a meaningful way, I decided to create a new parser hook just for this purpose. It&#8217;s titled &#8220;describe&#8221; and describes one or more parser hooks implemented using the ParserHook class provided by Validator. This description includes a short text about the parser hooks functionality, a table with it&#8217;s parameters and their meta-data, syntax examples, a list of aliases (if any) and more. It&#8217;s possible to get the description in wikitext, as opposed directly in the page, so you can copy it, and use it (or parts of it) somewhere else. By default it&#8217;ll list all parser hooks it knows about directly in the page. An example can be seen <a href=\"http:\/\/0x20.be\/Jeroen_De_Dauw\/Describe_test\">here<\/a>.<\/p>\n<p><a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Validator\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1057 alignnone\" style=\"border: 1px solid black;\" title=\"Some documentation (for the coordinates parser function) generated using the describe parser hook\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/describe-coordinates-table.png\" alt=\"Some documentation (for the coordinates parser function) generated using the describe parser hook\" width=\"824\" height=\"207\" \/><\/a><\/p>\n<p>Many more not yet implemented features that make use of the parameter handling framework that is Validator can be imagined. One I might implement in the near future is linking to a special page that generates a description of how to use a certain parser hook based on something the user is doing wrong, and link to that from error messages. This can be done easily by building on top of the already existing error message system and the describe parser hook \ud83d\ude42<\/p>\n<p>I think Validator adds a lot of Value when creating parser hooks, and other parameter handling objects. The main problem currently is that when using it&#8217;s features in an extension, this extension obviously becomes dependent on Validator. From a technical perspective this does not really matter, but it complicates installation for users (especially since MediaWiki lacks any sort of extension management facilities). I therefore hope to get Validators functionality into MediaWiki core, or at least in the default MediaWiki distribution. I&#8217;m rather sceptical to if I can make this happen as a non core-developer, but if I succeed, it would be a great advantage for extension (and core) development, so it&#8217;s definitely worth a try.<\/p>\n<p><a href=\"https:\/\/secure.wikimedia.org\/wikipedia\/mediawiki\/wiki\/Extension:SubPageList\">SubPageList<\/a> 0.1 comes bundled with an alpha version of Validator 0.4.3, containing most of the new functionality. <a href=\"http:\/\/mapping.referata.com\/wiki\/\">Maps and Semantic Maps<\/a> will come bundled with it (or a newer version) on their next release.<\/p>\n<p><strong>Downloads<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/code.google.com\/p\/mwvalidator\/downloads\/list\">Zip and 7z archives<\/a><\/li>\n<li><a href=\"http:\/\/svn.wikimedia.org\/viewvc\/mediawiki\/tags\/extensions\/Validator\/REL_0_4_3\/\">SVN tag<\/a><\/li>\n<li><a href=\"http:\/\/svn.wikimedia.org\/viewvc\/mediawiki\/trunk\/extensions\/Validator\/\">SVN trunk<\/a><\/li>\n<li>There will be a new <a href=\"http:\/\/www.mediawiki.org\/wiki\/Semantic_Bundle\">Semantic Bundle<\/a> soonish which will include the latest Validator.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been a while since the previous release of Validator, but this minor update includes some cool new functionality. As&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7,8],"tags":[15,58,75,156,181,195,197,272],"class_list":["post-1056","post","type-post","status-publish","format-standard","hentry","category-programming","category-software","tag-27c3","tag-ccc","tag-describe","tag-mediawiki","tag-open-source","tag-php","tag-planet-wikimedia","tag-validator"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Validator 0.4.3:introducing auto-documentation - Blog of Jeroen De Dauw<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Validator 0.4.3:introducing auto-documentation - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"It&#8217;s been a while since the previous release of Validator, but this minor update includes some cool new functionality. As&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2011-01-11T16:02:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/describe-coordinates-table.png\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Validator 0.4.3:introducing auto-documentation\",\"datePublished\":\"2011-01-11T16:02:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/\"},\"wordCount\":442,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/01\\\/describe-coordinates-table.png\",\"keywords\":[\"27c3\",\"ccc\",\"Describe\",\"MediaWiki\",\"Open Source\",\"PHP\",\"Planet Wikimedia\",\"Validator\"],\"articleSection\":[\"Programming\",\"Software\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/\",\"name\":\"Validator 0.4.3:introducing auto-documentation - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/01\\\/describe-coordinates-table.png\",\"datePublished\":\"2011-01-11T16:02:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/01\\\/describe-coordinates-table.png\",\"contentUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/01\\\/describe-coordinates-table.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/01\\\/11\\\/validator-0-4-3introducing-auto-documentation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validator 0.4.3:introducing auto-documentation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jeroendedauw\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Validator 0.4.3:introducing auto-documentation - Blog of Jeroen De Dauw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/","og_locale":"en_US","og_type":"article","og_title":"Validator 0.4.3:introducing auto-documentation - Blog of Jeroen De Dauw","og_description":"It&#8217;s been a while since the previous release of Validator, but this minor update includes some cool new functionality. As&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2011-01-11T16:02:41+00:00","og_image":[{"url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/describe-coordinates-table.png","type":"","width":"","height":""}],"author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Validator 0.4.3:introducing auto-documentation","datePublished":"2011-01-11T16:02:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/"},"wordCount":442,"commentCount":2,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/describe-coordinates-table.png","keywords":["27c3","ccc","Describe","MediaWiki","Open Source","PHP","Planet Wikimedia","Validator"],"articleSection":["Programming","Software"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/","url":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/","name":"Validator 0.4.3:introducing auto-documentation - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/describe-coordinates-table.png","datePublished":"2011-01-11T16:02:41+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#primaryimage","url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/describe-coordinates-table.png","contentUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/describe-coordinates-table.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/11\/validator-0-4-3introducing-auto-documentation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Validator 0.4.3:introducing auto-documentation"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-h2","jetpack-related-posts":[{"id":1003,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/10\/06\/maps-and-semantic-maps-0-7-beta-1\/","url_meta":{"origin":1056,"position":0},"title":"Maps and Semantic Maps 0.7 beta 1","author":"Jeroen","date":"2010-10-06","format":false,"excerpt":"An early beta of the next big release of the Maps and Semantic Maps extensions is now available for download. The most notable new features in this release are tag extension support for all the Maps parser functions, more consistent error handling via Validator 0.4 and compatibility with the upcoming\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Semantic Maps reporting a fatal error in a map form input.","src":"..\/wp-content\/uploads\/2010\/10\/fatal-form-error.png","width":350,"height":200},"classes":[]},{"id":1127,"url":"https:\/\/www.entropywins.wtf\/blog\/2013\/07\/14\/parserhooks-declarative-oop-api-for-mediawiki-released\/","url_meta":{"origin":1056,"position":1},"title":"ParserHooks declarative OOP API for MediaWiki released","author":"Jeroen","date":"2013-07-14","format":false,"excerpt":"Yes, there now is a nice OOP API that allows you to create MediaWiki parser hooks in declarative fashion! A few years back, I was sitting in c-base after the 27th Chaos Communication Congress had ended. I decided to quickly hack up a decent SubPageList extension for MediaWiki on top\u2026","rel":"","context":"With 1 comment","block_context":{"text":"With 1 comment","link":"https:\/\/www.entropywins.wtf\/blog\/2013\/07\/14\/parserhooks-declarative-oop-api-for-mediawiki-released\/#comments"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1230,"url":"https:\/\/www.entropywins.wtf\/blog\/2011\/07\/30\/semantic-mediawiki-1-6-released\/","url_meta":{"origin":1056,"position":2},"title":"Semantic MediaWiki 1.6 released!","author":"Jeroen","date":"2011-07-30","format":false,"excerpt":"That\u2019s right, the next big release of Semantic MediaWiki is finally here! A little over a year and six minor releases after SMW 1.5. And a big release it is, packing my improvements and several new features. It has been in the making over the past four months and contains\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":616,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/17\/maps-and-semantic-maps-0-5-released\/","url_meta":{"origin":1056,"position":3},"title":"Maps and Semantic Maps 0.5 released","author":"Jeroen","date":"2009-12-17","format":false,"excerpt":"Earlier today, versions 0.5 of Maps and Semantic Maps where released. Some mayor new features where added, and a whole bunch of things have been refactored. I also did some effort to improve the documentation by adding some screencasts and revising the developer docs. Version 0.4.2 proved to be pretty\u2026","rel":"","context":"In \"Geocoding\"","block_context":{"text":"Geocoding","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/geocoding\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":625,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/26\/validator-0-2-released\/","url_meta":{"origin":1056,"position":4},"title":"Validator 0.2 released","author":"Jeroen","date":"2009-12-26","format":false,"excerpt":"Today I released Validator version 0.2, on which I've been working the last 2 days. It features massive rewriting to make it more flexible, and has some added functionality. Let's have a look at what changed. The most important change is, without any doubt, the new list support. Validator 0.1\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Error feedback in the form of a list for Validator_ERRORS_SHOW or Validator_ERRORS_STRICT.","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/validator-0.2-error-list.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":579,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/12\/you-will-be-validated-resistance-is-futile\/","url_meta":{"origin":1056,"position":5},"title":"You will be validated. Resistance is futile.","author":"Jeroen","date":"2009-12-12","format":false,"excerpt":"It has been over a week since I posted about any MediaWiki stuff, which can very well be a record since I started my blog. The reason for this is cause I've been busy with a lot of projects. You'll hear about them all later on, but now I just\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=1056"}],"version-history":[{"count":0,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1056\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=1056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=1056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}