/** * Formats a name. * * @param \Libreworks\Microformats\Name $name The name to format * @return string The HTML markup */ public function format(Name $name) { $names = ['p-honorific-prefix' => $name->getPrefix(), 'p-nickname' => $name->getNick(), 'p-given-name' => $name->getGiven(), 'p-additional-name' => $name->getMiddle(), 'p-family-name' => $name->getSurname(), 'p-honorific-suffix' => $name->getSuffix(), 'p-maiden-name' => $name->getMaiden()]; $tags = []; foreach ($names as $k => $v) { if (strlen($v) > 0) { $tags[] = '<span class="' . $k . '">' . htmlspecialchars($v) . '</span>'; } } $maiden = $name->getMaiden(); if (strlen($maiden) > 0) { $tags[] = '(née <span class="p-maiden-name">' . htmlspecialchars($names['p-maiden-name']) . '</span>)'; } return '<span class="p-name">' . implode(' ', $tags) . '</span>'; }