Show download link for vcard on profile
| 
						 | 
				
			
			@ -194,6 +194,9 @@
 | 
			
		|||
    --voteresult-width: 80%;
 | 
			
		||||
    --voteresult-width-mobile: 80%;
 | 
			
		||||
    --voteresult-width-tiny: 40%;
 | 
			
		||||
    --vcard-icon-size: 32px;
 | 
			
		||||
    --vcard-icon-size-mobile: 32px;
 | 
			
		||||
    --vcard-icon-size-tiny: 32px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@font-face {
 | 
			
		||||
| 
						 | 
				
			
			@ -1074,6 +1077,10 @@ div.container {
 | 
			
		|||
        font-size: var(--font-size);
 | 
			
		||||
        color: var(--title-color);
 | 
			
		||||
    }
 | 
			
		||||
    .vcard img {
 | 
			
		||||
        width: var(--vcard-icon-size);
 | 
			
		||||
        float: right;
 | 
			
		||||
    }
 | 
			
		||||
    .followText {
 | 
			
		||||
        font-size: var(--follow-text-size1);
 | 
			
		||||
        font-family: 'NimbusSanL';
 | 
			
		||||
| 
						 | 
				
			
			@ -1837,6 +1844,10 @@ div.container {
 | 
			
		|||
    blockquote {
 | 
			
		||||
        font-size: var(--quote-font-size-mobile);
 | 
			
		||||
    }
 | 
			
		||||
    .vcard img {
 | 
			
		||||
        width: var(--vcard-icon-size-mobile);
 | 
			
		||||
        float: right;
 | 
			
		||||
    }
 | 
			
		||||
    .accountsTable {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        border: 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -2572,6 +2583,10 @@ div.container {
 | 
			
		|||
    blockquote {
 | 
			
		||||
        font-size: var(--quote-font-size-tiny);
 | 
			
		||||
    }
 | 
			
		||||
    .vcard img {
 | 
			
		||||
        width: var(--vcard-icon-size-tiny);
 | 
			
		||||
        float: right;
 | 
			
		||||
    }
 | 
			
		||||
    .accountsTable {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        border: 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
		 After Width: | Height: | Size: 7.9 KiB  | 
| 
		 After Width: | Height: | Size: 7.9 KiB  | 
| 
		 After Width: | Height: | Size: 7.9 KiB  | 
| 
		 After Width: | Height: | Size: 7.9 KiB  | 
| 
		 After Width: | Height: | Size: 7.5 KiB  | 
| 
		 After Width: | Height: | Size: 8.9 KiB  | 
| 
		 After Width: | Height: | Size: 7.0 KiB  | 
| 
		 After Width: | Height: | Size: 8.1 KiB  | 
| 
		 After Width: | Height: | Size: 7.0 KiB  | 
| 
		 After Width: | Height: | Size: 7.9 KiB  | 
| 
		 After Width: | Height: | Size: 8.3 KiB  | 
| 
		 After Width: | Height: | Size: 8.3 KiB  | 
| 
		 After Width: | Height: | Size: 8.8 KiB  | 
| 
		 After Width: | Height: | Size: 7.4 KiB  | 
| 
		 After Width: | Height: | Size: 8.3 KiB  | 
| 
		 After Width: | Height: | Size: 7.9 KiB  | 
| 
						 | 
				
			
			@ -453,6 +453,14 @@ def _get_profile_header(base_dir: str, http_prefix: str,
 | 
			
		|||
        '        <p>' + profile_description_short + '</p>\n' + login_button
 | 
			
		||||
    if pinned_content:
 | 
			
		||||
        html_str += pinned_content.replace('<p>', '<p>📎', 1)
 | 
			
		||||
 | 
			
		||||
    # show vcard download link
 | 
			
		||||
    html_str += \
 | 
			
		||||
        '    <a href="/users/' + nickname + '.vcf" ' + \
 | 
			
		||||
        'download="contact_' + nickname + '@' + domain_full + '.vcf">' + \
 | 
			
		||||
        '<img class="vcard" src="/icons/vcard.png" ' + \
 | 
			
		||||
        'title="vCard" alt="vCard" /></a>\n'
 | 
			
		||||
 | 
			
		||||
    html_str += \
 | 
			
		||||
        '      </figcaption>\n' + \
 | 
			
		||||
        '    </figure>\n\n'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||