Skip to content

Commit 9ea64ad

Browse files
figcaption: Adds figcaption
Wraps images with title or data-attribution attribute in a figure element. Places the title in a figcaption element. Places the data-attribution in a small element.
1 parent e00160a commit 9ea64ad

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

index.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
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>';

system/core/pages.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)