Compare commits

...

2 commits

Author SHA1 Message Date
Alex Gleason
358b2e8a53 Merge branch 'deno-2.3.1' into 'main'
Deno v2.3.1

See merge request soapbox-pub/ditto!736
2025-05-21 09:39:42 +00:00
Alex Gleason
4594f2dbeb
Deno v2.3.1 2025-05-03 03:02:08 -05:00
4 changed files with 45 additions and 16 deletions

View file

@ -1,4 +1,4 @@
image: denoland/deno:2.2.2 image: denoland/deno:2.3.1
default: default:
interruptible: true interruptible: true

View file

@ -1 +1 @@
deno 2.2.2 deno 2.3.1

View file

@ -28,7 +28,9 @@ export function contentToHtml(content: string, mentions: MastodonMention[], opts
hashtag: ({ content }) => { hashtag: ({ content }) => {
const tag = content.replace(/^#/, ''); const tag = content.replace(/^#/, '');
const href = conf.local(`/tags/${tag}`); const href = conf.local(`/tags/${tag}`);
return html`<a class="mention hashtag" href="${href}" rel="tag"><span>#</span>${tag}</a>`; return html`
<a class="mention hashtag" href="${href}" rel="tag"><span>#</span>${tag}</a>
`;
}, },
url: ({ attributes, content }) => { url: ({ attributes, content }) => {
try { try {
@ -47,7 +49,10 @@ export function contentToHtml(content: string, mentions: MastodonMention[], opts
const acct = mention?.acct ?? npub; const acct = mention?.acct ?? npub;
const name = mention?.acct ?? npub.substring(0, 8); const name = mention?.acct ?? npub.substring(0, 8);
const href = mention?.url ?? conf.local(`/@${acct}`); const href = mention?.url ?? conf.local(`/@${acct}`);
return html`<span class="h-card"><a class="u-url mention" href="${href}" rel="ugc">@<span>${name}</span></a></span>${extra}`; return html`
<span class="h-card"><a class="u-url mention" href="${href}" rel="ugc">@<span
>${name}</span></a></span>${extra}
`;
} else { } else {
return ''; return '';
} }

View file

@ -21,34 +21,58 @@ export function renderMetadata(url: string, { account, status, instance }: Metad
const height = attachment?.meta?.original?.height; const height = attachment?.meta?.original?.height;
if (title) { if (title) {
tags.push(html`<title>${title}</title>`); tags.push(html`
tags.push(html`<meta property="og:title" content="${title}">`); <title>${title}</title>
tags.push(html`<meta name="twitter:title" content="${title}">`); `);
tags.push(html`
<meta property="og:title" content="${title}">
`);
tags.push(html`
<meta name="twitter:title" content="${title}">
`);
} }
if (description) { if (description) {
tags.push(html`<meta name="description" content="${description}">`); tags.push(html`
tags.push(html`<meta property="og:description" content="${description}">`); <meta name="description" content="${description}">
tags.push(html`<meta name="twitter:description" content="${description}">`); `);
tags.push(html`
<meta property="og:description" content="${description}">
`);
tags.push(html`
<meta name="twitter:description" content="${description}">
`);
} }
if (image) { if (image) {
tags.push(html`<meta property="og:image" content="${image}">`); tags.push(html`
tags.push(html`<meta name="twitter:image" content="${image}">`); <meta property="og:image" content="${image}">
`);
tags.push(html`
<meta name="twitter:image" content="${image}">
`);
} }
if (typeof width === 'number' && typeof height === 'number') { if (typeof width === 'number' && typeof height === 'number') {
tags.push(html`<meta property="og:image:width" content="${width}">`); tags.push(html`
tags.push(html`<meta property="og:image:height" content="${height}">`); <meta property="og:image:width" content="${width}">
`);
tags.push(html`
<meta property="og:image:height" content="${height}">
`);
} }
if (siteName) { if (siteName) {
tags.push(html`<meta property="og:site_name" content="${siteName}">`); tags.push(html`
<meta property="og:site_name" content="${siteName}">
`);
} }
// Extra tags (always present if other tags exist). // Extra tags (always present if other tags exist).
if (tags.length > 0) { if (tags.length > 0) {
tags.push(html`<meta property="og:url" content="${url}">`); tags.push(html`
<meta property="og:url" content="${url}">
`);
tags.push('<meta property="og:type" content="website">'); tags.push('<meta property="og:type" content="website">');
tags.push('<meta name="twitter:card" content="summary">'); tags.push('<meta name="twitter:card" content="summary">');
} }