{{! foopgp HTML template for op=index / op=vindex. Renders as a fragment that fits inside the existing CGI body wrapper from start_html (HTML5, viewport-scaled). Two-column layout per key: UATs left (180x180, letterboxed to preserve aspect ratio), UIDs right. The KeyId pub-line link, the Download button and the photo URL all target ?search=0x followed by the full fingerprint; sig issuer links stay on the 16-hex keyid (cf. C-side comment). Only the part of each UID (chevrons included) is turned into a mailto: link, client-side by the inline JS. Per-UID sig lists ride inside a native
element so the toggle works with zero JS; we open it by default in op=vindex (verbose) and leave it closed in op=index. In op=index revoked UIDs+UATs are filtered out C-side; op=vindex shows them for experts, dimmed, and the UID row picks up a small "revoked" badge. Inline JS localises the static labels against navigator.language (EN/FR/DE/ES/IT/UK/PL); falls back to EN if the locale is unknown or JS is disabled. CAVEAT: this comment block must not contain the two consecutive close-mustache chars; the naive parser closes the comment on the first such occurrence. }} {{^keys}}

❌ Key not found.

{{/keys}} {{#keys}}
{{#other_uids}}{{#is_uat}}{{/is_uat}}{{/other_uids}}
0x{{keyid_hex16}}{{algo_modern}}{{date_str_iso}}{{#has_expiry}}{{#is_expired}}expired: {{expires_str_iso}}{{/is_expired}}{{^is_expired}}expires: {{expires_str_iso}}{{/is_expired}}{{/has_expiry}}{{^has_expiry}}no expiration set{{/has_expiry}}{{#revoked}}REVOKED{{#has_revoked_date}}: {{revoked_str_iso}}{{/has_revoked_date}}{{/revoked}}
{{fingerprint_formatted_trimmed}}
{{#has_primary_uid}}
{{primary_uid}}
certifications: {{primary_sig_count}}
{{#primary_sigs}}
{{kind}}0x{{keyid_hex16}}{{#has_date}}{{date_str_iso}}{{/has_date}}{{#signer_uid_known}}{{signer_uid}}{{/signer_uid_known}}{{^signer_uid_known}}[user id not found]{{/signer_uid_known}}
{{/primary_sigs}}
{{/has_primary_uid}}{{#other_uids}}{{^is_uat}}
{{text}}{{#revoked}}REVOKED{{/revoked}}
certifications: {{sig_count}}
{{#sigs}}
{{kind}}0x{{keyid_hex16}}{{#has_date}}{{date_str_iso}}{{/has_date}}{{#signer_uid_known}}{{signer_uid}}{{/signer_uid_known}}{{^signer_uid_known}}[user id not found]{{/signer_uid_known}}
{{/sigs}}
{{/is_uat}}{{/other_uids}}
{{/keys}}