Clean up embed JS and add Tweet.html compatibility

This commit is contained in:
Zed 2026-08-08 23:00:47 +07:00
commit 3bfbb7b3fd
4 changed files with 13 additions and 10 deletions

View file

@ -24,4 +24,4 @@
// Expose for embedTweet.js // Expose for embedTweet.js
window._nitterSendHeight = sendHeight; window._nitterSendHeight = sendHeight;
})() })();

View file

@ -1,7 +1,6 @@
// This runs after embedResize.js sets up the sendHeight function // This runs after embedResize.js sets up the sendHeight function
(function() { (function() {
var sendHeight = window._nitterSendHeight; var sendHeight = window._nitterSendHeight;
if (!sendHeight) return;
// Make images load eagerly so height updates correctly // Make images load eagerly so height updates correctly
var lazyImages = document.querySelectorAll('img[loading="lazy"]'); var lazyImages = document.querySelectorAll('img[loading="lazy"]');
@ -9,7 +8,8 @@
lazyImages[i].loading = 'eager'; lazyImages[i].loading = 'eager';
} }
// Update height when images finish loading // Update height when images finish loading (only if sendHeight available)
if (sendHeight) {
var allImages = document.querySelectorAll('img'); var allImages = document.querySelectorAll('img');
for (var i = 0; i < allImages.length; i++) { for (var i = 0; i < allImages.length; i++) {
var img = allImages[i]; var img = allImages[i];
@ -17,10 +17,12 @@
img.addEventListener('load', sendHeight); img.addEventListener('load', sendHeight);
} }
} }
}
// Open all links in new tab (we're in an iframe) // Open all links in new tab (we're in an iframe)
var allLinks = document.querySelectorAll('a'); var allLinks = document.querySelectorAll('a');
for (var i = 0; i < allLinks.length; i++) { for (var i = 0; i < allLinks.length; i++) {
allLinks[i].target = '_blank'; allLinks[i].target = '_blank';
} }
})(); })();

View file

@ -81,8 +81,8 @@ routes:
if request.path.len == 0 or request.path[0] != '/': if request.path.len == 0 or request.path[0] != '/':
halt Http400 halt Http400
# skip all file URLs # skip all file URLs (except Twitter widget compatibility)
cond "." notin request.path cond "." notin request.path or request.path == "/embed/Tweet.html"
applyUrlPrefs() applyUrlPrefs()
get "/": get "/":

View file

@ -3,4 +3,5 @@
#proc renderOembedIframe*(embedUrl: string): string = #proc renderOembedIframe*(embedUrl: string): string =
# result = "" # result = ""
<iframe src="$embedUrl" style="width:100%;max-width:550px;height:250px;border:none" scrolling="no" loading="lazy" onload="let c=new MessageChannel;c.port1.onmessage=e=>this.style.height=e.data+'px';this.contentWindow.postMessage('','*',[c.port2])"></iframe> <iframe src="$embedUrl" style="width:100%;max-width:550px;height:250px;border:none" scrolling="no" loading="lazy" onload="let c=new MessageChannel;c.port1.onmessage=e=>this.style.height=e.data+'px';this.contentWindow.postMessage('','*',[c.port2])"></iframe>
# result = result.strip()
#end proc #end proc