Niedzielski has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/392078 )
Change subject: Update: show image on image File pages ...................................................................... Update: show image on image File pages Add the missing image to File namespace pages. https://www.mediawiki.org/wiki/Parsoid/Known_differences_with_PHP_parser_output#Differences_because_of_implementation_differences_or_functionality_gaps Bug: T179829 Bug: T153801 Bug: T148118 Change-Id: I1289296431bc958927bd690eac6afbd442780df5 --- M package.json A src/common/marshallers/page/file-page-lead-expected.test.json A src/common/marshallers/page/file-page-lead-restbase.test.json M src/common/marshallers/page/page-unmarshaller.test.ts M src/common/marshallers/page/page-unmarshaller.ts M src/common/marshallers/restbase.ts M src/common/models/page/page-base.ts M src/common/models/page/page.ts A src/common/pages/wiki.css M src/common/pages/wiki.tsx 10 files changed, 217 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/marvin refs/changes/78/392078/1 diff --git a/package.json b/package.json index 72e1e48..4272f71 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ }, { "path": "dist/public/pages/wiki.*.js", - "maxSize": "3.3KB" + "maxSize": "3.6KB" } ] } diff --git a/src/common/marshallers/page/file-page-lead-expected.test.json b/src/common/marshallers/page/file-page-lead-expected.test.json new file mode 100644 index 0000000..36f0fbc --- /dev/null +++ b/src/common/marshallers/page/file-page-lead-expected.test.json @@ -0,0 +1,59 @@ + +{ + "pageID": 1228779, + "titleID": "File:Muybridge_race_horse_animated.gif", + "titleText": "File:Muybridge race horse animated.gif", + "titleHTML": "File:Muybridge race horse animated.gif", + "lastModified": "2017-03-22T17:20:33Z", + "descriptionText": "", + "etag": { + "revision": 802006980, + "timeID": "4f754377-a235-11e7-a776-efb84f18649a" + }, + "revision": 238166671, + "namespace": 6, + "mainPage": false, + "disambiguationPage": false, + "lastModifier": { + "anonymous": false, + "user": "Kaldari", + "gender": "unknown" + }, + "permissions": {}, + "editable": true, + "languageCount": 0, + "thumbnail": [ + { "url": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", "width": 320 }, + { "url": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", "width": 640 }, + { "url": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", "width": 800 }, + { "url": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", "width": 1024 } + ], + "fileImage": { + "thumbnail": { + "url": "https://upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", + "width": 300, + "height": 200, + "landscape": true + }, + "url": "https://upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif" + }, + "sections": [ + { + "index": 0, + "level": 0, + "fragment": "", + "titleHTML": "", + "contentHTML": "<span></span><p class=\"skipped\"><span>\n</span></p><div id=\"accessments\" dir=\"ltr\" lang=\"en\">\n<table cellspacing=\"0\" cellpadding=\"0\" style=\"background:transparent;margin:0.5em auto\">\n<tbody><tr><td>\n<table style=\"clear:both;margin:0em auto;width:100%; box-sizing: border-box; border:2px solid #E5D4A1;background-color:#FAF5E6; direction:ltr;\"><tbody><tr><td>\n<table style=\"background:transparent;\">\n<tbody><tr>\n\n<td style=\"width:40px;text-align:center;\" rowspan=\"2\">\n<figure class=\"mw-halign-center\"><a href=\"/wiki/Commons:Picture_of_the_Year/2009\" class=\"image\"><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/5/59/PODY_candidate.svg/40px-PODY_candidate.svg.png\" data-file-type=\"drawing\" height=\"30\" width=\"40\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/5/59/PODY_candidate.svg/80px-PODY_candidate.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/5/59/PODY_candidate.svg/60px-PODY_candidate.svg.png 1.5x\"></a><figcaption>POTY</figcaption></figure><p><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/40px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"38\" width=\"40\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/80px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/60px-Cscr-featured.svg.png 1.5x\"></span></span></p></td>\n<td></td>\n\n<td style=\"width:30px;text-align:center;\" rowspan=\"2\">\n<p><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png\" data-file-type=\"drawing\" height=\"40\" width=\"30\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/60px-Commons-logo.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/30px-Wikipedia-logo-v2.svg.png\" data-file-type=\"drawing\" height=\"27\" width=\"30\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/60px-Wikipedia-logo-v2.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/45px-Wikipedia-logo-v2.svg.png 1.5x\"></span></span></p></td></tr>\n<tr>\n<td style=\"font-size:95%;\">This is a <b>featured picture</b> on Wikimedia Commons (<a href=\"/wiki/Commons:Featured_pictures\" title=\"Commons:Featured pictures\">Featured pictures</a>) and is <a href=\"/wiki/Commons:Featured_picture_candidates/File:Muybridge_race_horse_animated.gif\" title=\"Commons:Featured picture candidates/File:Muybridge race horse animated.gif\">considered</a> one of the finest images.<br><hr><hr>\n<table class=\"collapsible collapsed\" align=\"left\" style=\"width:100%; margin:auto; clear:both; padding:1px; border:1px solid #FAF5E6; background:#FAF5E6;\">\n<tbody><tr><th colspan=\"0\" style=\"padding-left:1em; padding-right:.4em; text-align:center; background-color:#E5D4A1; font-size:100%; color:#000000;\">Wikipedia</th></tr>\n<tr>\n<td style=\"text-align:left;font-size:100%;\">\n<p><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Arabic language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/ar:ويكيبيديا:صور%20مختارة\" title=\"w:ar:ويكيبيديا:صور مختارة\" class=\"external\">صور مختارة</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/ar:ويكيبيديا:ترشيحات_الصور_المختارة/Muybridge%20race%20horse%20animated.gif\" title=\"w:ar:ويكيبيديا:ترشيحات الصور المختارة/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the German language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/de:Wikipedia:Exzellente%20Bilder\" title=\"w:de:Wikipedia:Exzellente Bilder\" class=\"external\">Exzellente Bilder</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/de:Wikipedia:Kandidaten%20für%20exzellente%20Bilder/Muybridge%20race%20horse%20animated.gif\" title=\"w:de:Wikipedia:Kandidaten für exzellente Bilder/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the English language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/en:Wikipedia:Featured%20pictures\" title=\"w:en:Wikipedia:Featured pictures\" class=\"external\">Featured pictures</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/en:Wikipedia:Featured%20picture%20candidates/Muybridge%20galloping%20horse\" title=\"w:en:Wikipedia:Featured picture candidates/Muybridge galloping horse\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Spanish language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/es:Wikipedia:Recursos%20destacados\" title=\"w:es:Wikipedia:Recursos destacados\" class=\"external\">Recursos destacados</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/es:Wikipedia:Candidatos%20a%20recursos%20destacados/Muybridge%20race%20horse%20animated.gif\" title=\"w:es:Wikipedia:Candidatos a recursos destacados/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Persian language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/fa:ویکیپدیا:نگارههای%20برگزیده\" title=\"w:fa:ویکیپدیا:نگارههای برگزیده\" class=\"external\">نگارههای برگزیده</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/fa:ویکیپدیا:گزیدن%20نگاره%20برگزیده/Muybridge%20race%20horse%20animated.gif\" title=\"w:fa:ویکیپدیا:گزیدن نگاره برگزیده/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Turkish language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/tr:Vikipedi:Seçkin%20resimler\" title=\"w:tr:Vikipedi:Seçkin resimler\" class=\"external\">Seçkin resimler</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/tr:Vikipedi:Seçkin%20resim%20adayları/Muybridge%20race%20horse%20animated.gif\" title=\"w:tr:Vikipedi:Seçkin resim adayları/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br></p></td></tr>\n</tbody></table>\n<hr>\n<p>If you have an image of similar quality that can be published under a <a href=\"/wiki/Commons:Licensing\" title=\"Commons:Licensing\">suitable copyright license</a>, be sure to <a href=\"/wiki/Special:Upload\" title=\"Special:Upload\">upload</a> it, <a href=\"/wiki/Commons:Copyright_tags\" title=\"Commons:Copyright tags\">tag</a> it, and <a href=\"/wiki/Commons:Featured_picture_candidates\" title=\"Commons:Featured picture candidates\">nominate it</a>.<br></p>\n<hr>\n<p><span style=\"font-size:x-small;line-height:140%\" class=\"plainlinks noprint\"><a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ar\" class=\"external\">العربية</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/as\" class=\"external\">অসমীয়া</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/az\" class=\"external\">Azərbaycanca</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/be-tarask\" class=\"external\">Беларуская (тарашкевіца)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/bn\" class=\"external\">বাংলা</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ca\" class=\"external\">Català</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/cs\" class=\"external\">Čeština</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/cy\" class=\"external\">Cymraeg</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/da\" class=\"external\">Dansk</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/de\" class=\"external\">Deutsch</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/diq\" class=\"external\">Zazaki</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/el\" class=\"external\">Ελληνικά</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/en\" class=\"external\">English</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/eo\" class=\"external\">Esperanto</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/es\" class=\"external\">Español</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/et\" class=\"external\">Eesti</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/eu\" class=\"external\">Euskara</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/fa\" class=\"external\">فارسی</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tg\" class=\"external\">Тоҷикӣ</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/fi\" class=\"external\">Suomi</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/fr\" class=\"external\">Français</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/gl\" class=\"external\">Galego</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/he\" class=\"external\">עברית</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hi\" class=\"external\">हिन्दी</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hr\" class=\"external\">Hrvatski</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hu\" class=\"external\">Magyar</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hy\" class=\"external\">Հայերեն</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/id\" class=\"external\">Bahasa Indonesia</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/it\" class=\"external\">Italiano</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ja\" class=\"external\">日本語</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ka\" class=\"external\">ქართული</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/kk\" class=\"external\">Қазақша</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ko\" class=\"external\">한국어</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ko-kp\" class=\"external\">한국어 (조선)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/lb\" class=\"external\">Lëtzebuergesch</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/lt\" class=\"external\">Lietuvių</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/mk\" class=\"external\">Македонски</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ml\" class=\"external\">മലയാളം</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/mr\" class=\"external\">मराठी</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ms\" class=\"external\">Bahasa Melayu</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/mt\" class=\"external\">Malti</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/nds\" class=\"external\">Plattdüütsch</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/nl\" class=\"external\">Nederlands</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/nn\" class=\"external\">Norsk nynorsk</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/no\" class=\"external\">Norsk</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/pl\" class=\"external\">Polski</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/pt\" class=\"external\">Português</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/pt-br\" class=\"external\">Português do Brasil</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ro\" class=\"external\">Română</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ru\" class=\"external\">Русский</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/sl\" class=\"external\">Slovenščina</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/sr\" class=\"external\">Српски / srpski</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/sv\" class=\"external\">Svenska</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ta\" class=\"external\">தமிழ்</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/th\" class=\"external\">ไทย</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tl\" class=\"external\">Tagalog</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tr\" class=\"external\">Türkçe</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tt\" class=\"external\">Татарча/tatarça</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/uk\" class=\"external\">Українська</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/vi\" class=\"external\">Tiếng Việt</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/yo\" class=\"external\">Yorùbá</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/zh-hans\" class=\"external\">中文(简体)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/zh-hant\" class=\"external\">中文(繁體)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/yue\" class=\"external\">粵語</a><span> </span>| <small class=\"plainlinks\"><a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/w/index.php?title=Template:Assessments/translate/lang&action=edit\" class=\"external\">+/−</a></small></span></p></td></tr>\n\n</tbody></table>\n</td></tr></tbody></table></td></tr>\n</tbody></table>\n</div>\n\n", + "reference": false + }, + { + "index": 1, + "level": 1, + "fragment": "Summary", + "titleHTML": "<span>Summary</span>", + "contentHTML": "", + "reference": false + } + ], + "htmlHatnotes": [] +} diff --git a/src/common/marshallers/page/file-page-lead-restbase.test.json b/src/common/marshallers/page/file-page-lead-restbase.test.json new file mode 100644 index 0000000..90df165 --- /dev/null +++ b/src/common/marshallers/page/file-page-lead-restbase.test.json @@ -0,0 +1,45 @@ +{ + "ns": 6, + "imageinfo": { + "thumburl": "https://upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", + "thumbwidth": 300, + "thumbheight": 200, + "url": "https://upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", + "descriptionurl": "http://commons.wikimedia.org/wiki/File:Muybridge_race_horse_animated.gif", + "descriptionshorturl": "http://commons.wikimedia.org/w/index.php?curid=1228779" + }, + "id": 1228779, + "revision": "238166671", + "lastmodified": "2017-03-22T17:20:33Z", + "lastmodifier": { + "user": "Kaldari", + "gender": "unknown" + }, + "displaytitle": "File:Muybridge race horse animated.gif", + "normalizedtitle": "File:Muybridge race horse animated.gif", + "protection": {}, + "editable": true, + "languagecount": 0, + "image": { + "file": "Muybridge_race_horse_animated.gif", + "urls": { + "320": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", + "640": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", + "800": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif", + "1024": "//upload.wikimedia.org/wikipedia/commons/d/dd/Muybridge_race_horse_animated.gif" + } + }, + "hatnotes": [], + "sections": [ + { + "id": 0, + "text": "<span></span><p class=\"skipped\"><span>\n</span></p><div id=\"accessments\" dir=\"ltr\" lang=\"en\">\n<table cellspacing=\"0\" cellpadding=\"0\" style=\"background:transparent;margin:0.5em auto\">\n<tbody><tr><td>\n<table style=\"clear:both;margin:0em auto;width:100%; box-sizing: border-box; border:2px solid #E5D4A1;background-color:#FAF5E6; direction:ltr;\"><tbody><tr><td>\n<table style=\"background:transparent;\">\n<tbody><tr>\n\n<td style=\"width:40px;text-align:center;\" rowspan=\"2\">\n<figure class=\"mw-halign-center\"><a href=\"/wiki/Commons:Picture_of_the_Year/2009\" class=\"image\"><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/5/59/PODY_candidate.svg/40px-PODY_candidate.svg.png\" data-file-type=\"drawing\" height=\"30\" width=\"40\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/5/59/PODY_candidate.svg/80px-PODY_candidate.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/5/59/PODY_candidate.svg/60px-PODY_candidate.svg.png 1.5x\"></a><figcaption>POTY</figcaption></figure><p><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/40px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"38\" width=\"40\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/80px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/60px-Cscr-featured.svg.png 1.5x\"></span></span></p></td>\n<td></td>\n\n<td style=\"width:30px;text-align:center;\" rowspan=\"2\">\n<p><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png\" data-file-type=\"drawing\" height=\"40\" width=\"30\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/60px-Commons-logo.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/30px-Wikipedia-logo-v2.svg.png\" data-file-type=\"drawing\" height=\"27\" width=\"30\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/60px-Wikipedia-logo-v2.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/45px-Wikipedia-logo-v2.svg.png 1.5x\"></span></span></p></td></tr>\n<tr>\n<td style=\"font-size:95%;\">This is a <b>featured picture</b> on Wikimedia Commons (<a href=\"/wiki/Commons:Featured_pictures\" title=\"Commons:Featured pictures\">Featured pictures</a>) and is <a href=\"/wiki/Commons:Featured_picture_candidates/File:Muybridge_race_horse_animated.gif\" title=\"Commons:Featured picture candidates/File:Muybridge race horse animated.gif\">considered</a> one of the finest images.<br><hr><hr>\n<table class=\"collapsible collapsed\" align=\"left\" style=\"width:100%; margin:auto; clear:both; padding:1px; border:1px solid #FAF5E6; background:#FAF5E6;\">\n<tbody><tr><th colspan=\"0\" style=\"padding-left:1em; padding-right:.4em; text-align:center; background-color:#E5D4A1; font-size:100%; color:#000000;\">Wikipedia</th></tr>\n<tr>\n<td style=\"text-align:left;font-size:100%;\">\n<p><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Arabic language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/ar:ويكيبيديا:صور%20مختارة\" title=\"w:ar:ويكيبيديا:صور مختارة\" class=\"external\">صور مختارة</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/ar:ويكيبيديا:ترشيحات_الصور_المختارة/Muybridge%20race%20horse%20animated.gif\" title=\"w:ar:ويكيبيديا:ترشيحات الصور المختارة/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the German language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/de:Wikipedia:Exzellente%20Bilder\" title=\"w:de:Wikipedia:Exzellente Bilder\" class=\"external\">Exzellente Bilder</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/de:Wikipedia:Kandidaten%20für%20exzellente%20Bilder/Muybridge%20race%20horse%20animated.gif\" title=\"w:de:Wikipedia:Kandidaten für exzellente Bilder/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the English language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/en:Wikipedia:Featured%20pictures\" title=\"w:en:Wikipedia:Featured pictures\" class=\"external\">Featured pictures</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/en:Wikipedia:Featured%20picture%20candidates/Muybridge%20galloping%20horse\" title=\"w:en:Wikipedia:Featured picture candidates/Muybridge galloping horse\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Spanish language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/es:Wikipedia:Recursos%20destacados\" title=\"w:es:Wikipedia:Recursos destacados\" class=\"external\">Recursos destacados</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/es:Wikipedia:Candidatos%20a%20recursos%20destacados/Muybridge%20race%20horse%20animated.gif\" title=\"w:es:Wikipedia:Candidatos a recursos destacados/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Persian language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/fa:ویکیپدیا:نگارههای%20برگزیده\" title=\"w:fa:ویکیپدیا:نگارههای برگزیده\" class=\"external\">نگارههای برگزیده</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/fa:ویکیپدیا:گزیدن%20نگاره%20برگزیده/Muybridge%20race%20horse%20animated.gif\" title=\"w:fa:ویکیپدیا:گزیدن نگاره برگزیده/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/15px-Cscr-featured.svg.png\" data-file-type=\"drawing\" height=\"14\" width=\"15\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/30px-Cscr-featured.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Cscr-featured.svg/23px-Cscr-featured.svg.png 1.5x\"></span></span><span><span><img src=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/10px-Sound-icon-empty.svg.png\" data-file-type=\"drawing\" height=\"8\" width=\"10\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/20px-Sound-icon-empty.svg.png 2x, //upload.wikimedia.org/wikipedia/commons/thumb/0/04/Sound-icon-empty.svg/15px-Sound-icon-empty.svg.png 1.5x\"></span></span>This is a <b>featured picture</b> on the Turkish language Wikipedia (<a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/tr:Vikipedi:Seçkin%20resimler\" title=\"w:tr:Vikipedi:Seçkin resimler\" class=\"external\">Seçkin resimler</a>) and is <a rel=\"mw:ExtLink\" href=\"https://en.wikipedia.org/wiki/tr:Vikipedi:Seçkin%20resim%20adayları/Muybridge%20race%20horse%20animated.gif\" title=\"w:tr:Vikipedi:Seçkin resim adayları/Muybridge race horse animated.gif\" class=\"external\">considered</a> one of the finest images.<br></p></td></tr>\n</tbody></table>\n<hr>\n<p>If you have an image of similar quality that can be published under a <a href=\"/wiki/Commons:Licensing\" title=\"Commons:Licensing\">suitable copyright license</a>, be sure to <a href=\"/wiki/Special:Upload\" title=\"Special:Upload\">upload</a> it, <a href=\"/wiki/Commons:Copyright_tags\" title=\"Commons:Copyright tags\">tag</a> it, and <a href=\"/wiki/Commons:Featured_picture_candidates\" title=\"Commons:Featured picture candidates\">nominate it</a>.<br></p>\n<hr>\n<p><span style=\"font-size:x-small;line-height:140%\" class=\"plainlinks noprint\"><a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ar\" class=\"external\">العربية</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/as\" class=\"external\">অসমীয়া</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/az\" class=\"external\">Azərbaycanca</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/be-tarask\" class=\"external\">Беларуская (тарашкевіца)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/bn\" class=\"external\">বাংলা</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ca\" class=\"external\">Català</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/cs\" class=\"external\">Čeština</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/cy\" class=\"external\">Cymraeg</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/da\" class=\"external\">Dansk</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/de\" class=\"external\">Deutsch</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/diq\" class=\"external\">Zazaki</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/el\" class=\"external\">Ελληνικά</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/en\" class=\"external\">English</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/eo\" class=\"external\">Esperanto</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/es\" class=\"external\">Español</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/et\" class=\"external\">Eesti</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/eu\" class=\"external\">Euskara</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/fa\" class=\"external\">فارسی</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tg\" class=\"external\">Тоҷикӣ</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/fi\" class=\"external\">Suomi</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/fr\" class=\"external\">Français</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/gl\" class=\"external\">Galego</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/he\" class=\"external\">עברית</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hi\" class=\"external\">हिन्दी</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hr\" class=\"external\">Hrvatski</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hu\" class=\"external\">Magyar</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/hy\" class=\"external\">Հայերեն</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/id\" class=\"external\">Bahasa Indonesia</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/it\" class=\"external\">Italiano</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ja\" class=\"external\">日本語</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ka\" class=\"external\">ქართული</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/kk\" class=\"external\">Қазақша</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ko\" class=\"external\">한국어</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ko-kp\" class=\"external\">한국어 (조선)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/lb\" class=\"external\">Lëtzebuergesch</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/lt\" class=\"external\">Lietuvių</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/mk\" class=\"external\">Македонски</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ml\" class=\"external\">മലയാളം</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/mr\" class=\"external\">मराठी</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ms\" class=\"external\">Bahasa Melayu</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/mt\" class=\"external\">Malti</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/nds\" class=\"external\">Plattdüütsch</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/nl\" class=\"external\">Nederlands</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/nn\" class=\"external\">Norsk nynorsk</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/no\" class=\"external\">Norsk</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/pl\" class=\"external\">Polski</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/pt\" class=\"external\">Português</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/pt-br\" class=\"external\">Português do Brasil</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ro\" class=\"external\">Română</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ru\" class=\"external\">Русский</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/sl\" class=\"external\">Slovenščina</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/sr\" class=\"external\">Српски / srpski</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/sv\" class=\"external\">Svenska</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/ta\" class=\"external\">தமிழ்</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/th\" class=\"external\">ไทย</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tl\" class=\"external\">Tagalog</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tr\" class=\"external\">Türkçe</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/tt\" class=\"external\">Татарча/tatarça</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/uk\" class=\"external\">Українська</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/vi\" class=\"external\">Tiếng Việt</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/yo\" class=\"external\">Yorùbá</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/zh-hans\" class=\"external\">中文(简体)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/zh-hant\" class=\"external\">中文(繁體)</a><span> </span>| <a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/wiki/Template:Assessments/translate/yue\" class=\"external\">粵語</a><span> </span>| <small class=\"plainlinks\"><a rel=\"mw:ExtLink\" href=\"//commons.wikimedia.org/w/index.php?title=Template:Assessments/translate/lang&action=edit\" class=\"external\">+/−</a></small></span></p></td></tr>\n\n</tbody></table>\n</td></tr></tbody></table></td></tr>\n</tbody></table>\n</div>\n\n" + }, + { + "id": 1, + "toclevel": 1, + "anchor": "Summary", + "line": "<span>Summary</span>" + } + ] +} diff --git a/src/common/marshallers/page/page-unmarshaller.test.ts b/src/common/marshallers/page/page-unmarshaller.test.ts index 03940a5..5f988a9 100644 --- a/src/common/marshallers/page/page-unmarshaller.test.ts +++ b/src/common/marshallers/page/page-unmarshaller.test.ts @@ -3,6 +3,7 @@ import { PageImage } from "../../models/page/image"; import { PageNamespace } from "../../models/page/namespace"; import { + FilePageImage, Page, PageLead, PageBody, @@ -21,7 +22,8 @@ unmarshalPageSection, unmarshalPageSections, unmarshalPageUser, - unmarshalPageUserGender + unmarshalPageUserGender, + unmarshalFilePageImage } from "./page-unmarshaller"; const NOW = new Date(Date.now()).toString(); @@ -78,6 +80,34 @@ gender: PageUserGender.FEMALE }; assert.deepStrictEqual(unmarshalPageUser(json as {}), expected); + }); + + describe(".unmarshalFilePageImage()", () => { + [false, true].forEach(landscape => { + it(`unmarshals ${landscape ? "landscape" : "portrait"}`, () => { + const width = landscape ? 2 : 1; + const height = landscape ? 1 : 2; + const json: RESTBase.PageSections.FileImage = { + thumburl: "thumburl", + thumbwidth: width, + thumbheight: height, + url: "url", + descriptionurl: "descriptionurl", + descriptionshorturl: "descriptionshorturl" + }; + const expected: FilePageImage = { + thumbnail: { + url: "thumburl", + width, + height, + landscape + }, + url: "url" + }; + const result = unmarshalFilePageImage(json as {}); + assert.deepStrictEqual(result, expected); + }); + }); }); describe(".unmarshalPageSection()", () => { @@ -226,6 +256,21 @@ ); assert.deepStrictEqual(result, expected); }); + + it("unmarshals a server response for a File page", () => { + const json = require("./file-page-lead-restbase.test.json"); + const result = unmarshalPageLead({ + url: + "https://zh.wikipedia.org/api/rest_v1/page/mobile-sections-lead/File:Muybridge_race_horse_animated.gif", + headers: HEADERS, + json + }); + const expected = reviveFile( + `${__dirname}/file-page-lead-expected.test.json`, + pageLeadReviver + ); + assert.deepStrictEqual(result, expected); + }); }); describe(".unmarshalPageBody()", () => { diff --git a/src/common/marshallers/page/page-unmarshaller.ts b/src/common/marshallers/page/page-unmarshaller.ts index aa070ae..9ed89d8 100644 --- a/src/common/marshallers/page/page-unmarshaller.ts +++ b/src/common/marshallers/page/page-unmarshaller.ts @@ -1,6 +1,12 @@ import { PageImage } from "../../models/page/image"; import { PageTitleID } from "../../models/page/title"; -import { Page, PageLead, PageBody, PageSection } from "../../models/page/page"; +import { + Page, + PageLead, + PageBody, + PageSection, + FilePageImage +} from "../../models/page/page"; import { PageUser, PageUserGender } from "../../models/page/user"; import { IsomorphicHeaders } from "../../types/isomorphic-unfetch-extras"; import { JSONArray, JSONObject } from "../../types/json"; @@ -46,6 +52,19 @@ gender: unmarshalPageUserGender(type.gender) }; }; + +export function unmarshalFilePageImage(json: JSONObject): FilePageImage { + const type: RESTBase.PageSections.FileImage = json as any; + return { + thumbnail: { + url: type.thumburl, + width: type.thumbwidth, + height: type.thumbheight, + landscape: type.thumbwidth > type.thumbheight + }, + url: type.url + }; +} export const unmarshalPageSection = (json: JSONObject): PageSection => { const type: RESTBase.PageSections.AnySection = json as any; @@ -110,6 +129,9 @@ if (type.pronunciation) { result.pronunciationURL = type.pronunciation.url; } + if (type.imageinfo) { + result.fileImage = unmarshalFilePageImage(type.imageinfo as {}); + } return result; }; diff --git a/src/common/marshallers/restbase.ts b/src/common/marshallers/restbase.ts index 1364eb0..d7b3a5e 100644 --- a/src/common/marshallers/restbase.ts +++ b/src/common/marshallers/restbase.ts @@ -50,7 +50,7 @@ lang: string; dir: string; timestamp: string; - description: string; + description?: string; // Empty on file pages. coordinates?: Geolocation; } } @@ -68,6 +68,15 @@ file: string; // Currently: "320", "640", "800", "1024". urls: { [width: string]: string }; + } + + export interface FileImage { + thumburl: string; + thumbwidth: number; + thumbheight: number; + url: string; + descriptionurl: string; + descriptionshorturl: string; } export interface Issue { @@ -137,6 +146,7 @@ pronunciation?: TitlePronunciation; mainpage?: boolean; disambiguation?: boolean; + imageinfo?: FileImage; } // https://phabricator.wikimedia.org/diffusion/GMOA/browse/master/spec.yaml;399c85e3e782ffa7fef2d4a73c4ee85e98c9114d$680 diff --git a/src/common/models/page/page-base.ts b/src/common/models/page/page-base.ts index 2a4be54..3ac6fef 100644 --- a/src/common/models/page/page-base.ts +++ b/src/common/models/page/page-base.ts @@ -17,7 +17,7 @@ /** An (unencoded) PageTitleID that is not necessarily denormalized. */ requestTitleID?: PageTitleID | string; lastModified: Date; - descriptionText: string; + descriptionText?: string; geolocation?: PageGeolocation; etag: ETag; } diff --git a/src/common/models/page/page.ts b/src/common/models/page/page.ts index f8b0489..0917b1e 100644 --- a/src/common/models/page/page.ts +++ b/src/common/models/page/page.ts @@ -3,6 +3,11 @@ import { PageNamespace } from "./namespace"; import { PagePermissionMap, PageUser } from "./user"; +export interface FilePageImage { + thumbnail: PageImage; + url: string; +} + export interface PageSection { /** Section offset; the lead is zero. */ index: number; @@ -39,6 +44,7 @@ editable: boolean; languageCount: number; thumbnail: PageImage[]; + fileImage?: FilePageImage; pronunciationURL?: string; /** * The first index is a fully populated lead section. Subsequent sections do diff --git a/src/common/pages/wiki.css b/src/common/pages/wiki.css new file mode 100644 index 0000000..7588a62 --- /dev/null +++ b/src/common/pages/wiki.css @@ -0,0 +1,15 @@ +.Wiki-file-image:after { + /* Add an empty node that clears the left and right so the page summary + container can wrap its contents fully even if they're floated. */ + content: ""; + clear: both; + + /* Make the node dimensionless. */ + display: block; + width: 0; + height: 0; + + /* Forbid scrollbars and hide. */ + overflow: hidden; + visibility: hidden; +} diff --git a/src/common/pages/wiki.tsx b/src/common/pages/wiki.tsx index 0f19784..cf914e1 100644 --- a/src/common/pages/wiki.tsx +++ b/src/common/pages/wiki.tsx @@ -11,7 +11,9 @@ import ContentPage from "../components/content-page/content-page"; import HttpResponse from "../http/http-response"; import { RedirectError } from "../http/fetch-with-redirect"; +import { Thumbnail } from "../components/thumbnail/thumbnail"; import { unmarshalPageTitleID } from "../marshallers/page-base/page-base-unmarshaller"; // eslint-disable-line max-len +import "./wiki.css"; interface PageParams extends RouteParams { /** @@ -70,6 +72,14 @@ subtitle={page.descriptionText} footer={<ContentFooter lastModified={page.lastModified} />} > + {page.fileImage && ( + <div class="Wiki-file-image"> + <Thumbnail + image={page.fileImage.thumbnail} + url={page.fileImage.url} + /> + </div> + )} <ContentPage sections={page.sections} /> </Page> </App> -- To view, visit https://gerrit.wikimedia.org/r/392078 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1289296431bc958927bd690eac6afbd442780df5 Gerrit-PatchSet: 1 Gerrit-Project: marvin Gerrit-Branch: master Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org> Gerrit-Reviewer: Sniedzielski <sniedziel...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits