File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change 125125 if ($ hyphaPage ) processCommandResult ($ hyphaPage ->process ($ O_O ->getRequest ()));
126126
127127 registerPostProcessingFunction ('dewikify ' );
128+ registerPostProcessingFunction ('add_captions_to_all_images ' );
128129
129130 // add hypha commands and navigation
130131 $ _cmds [] = '<a class="index" href="index/ ' .$ hyphaLanguage .'"> ' .__ ('index ' ).'</a> ' ;
Original file line number Diff line number Diff line change @@ -601,6 +601,34 @@ function wikify_link($node) {
601601 $ node ->text ('' );
602602 }
603603
604+ function add_captions_to_all_images ($ element ) {
605+ /** @var \DOMWrap\NodeList $img */
606+ // process images that reside within "main"
607+ foreach ($ element ->findXPath ('//*[@id="main"]//img[@title] | //*[@id="main"]//img[@data-attribution] ' ) as $ img ) {
608+ // do not process images that reside within the wymeditor
609+ if ($ img ->parents ('.wymeditor ' )->count () === 0 ) {
610+ add_caption_to_image ($ img );
611+ }
612+ }
613+ }
614+
615+ function add_caption_to_image ($ img ) {
616+ $ figure = new DOMWrap \Element ('figure ' );
617+ $ img ->parentNode ->insertBefore ($ figure , $ img );
618+ $ figure ->append ($ img );
619+
620+ $ title = $ img ->getAttribute ('title ' );
621+ $ text = $ title ? $ title : '' ;
622+ $ caption = new DOMWrap \Element ('figcaption ' , $ text );
623+ $ figure ->append ($ caption );
624+
625+ $ attribution = $ img ->getAttribute ('data-attribution ' );
626+ if ($ attribution ) {
627+ $ small = new DOMWrap \Element ('small ' , $ attribution );
628+ $ figure ->append ($ small );
629+ }
630+ }
631+
604632 /*
605633 Function: versionSelector
606634 generate html select element with available revisions for given page
You can’t perform that action at this time.
0 commit comments