mirror of
https://github.com/MrUnknownDE/unknownbin.git
synced 2026-04-13 11:33:45 +02:00
refactor: Improve SSR logic for homepage SEO
This commit is contained in:
25
server.js
25
server.js
@@ -83,29 +83,28 @@ app.get('/:id', (req, res) => {
|
||||
fileStorage.get(key, (data) => {
|
||||
if (data) {
|
||||
// Paste found, render it with dynamic SEO tags
|
||||
const title = `Paste ${key} - unknownBIN`;
|
||||
const description = data.substring(0, 160).replace(/\n/g, ' ');
|
||||
res.render('index', {
|
||||
paste: {
|
||||
key: key,
|
||||
data: data,
|
||||
title: title,
|
||||
description: description
|
||||
}
|
||||
title: `Paste ${key} - unknownBIN`,
|
||||
description: data.substring(0, 160).replace(/\n/g, ' ').trim(),
|
||||
content: data
|
||||
});
|
||||
} else {
|
||||
// Paste not found, render the homepage
|
||||
res.render('index', {
|
||||
paste: null
|
||||
// Paste not found, render the homepage with 404 status
|
||||
res.status(404).render('index', {
|
||||
title: '404 Not Found - unknownBIN',
|
||||
description: 'The paste you were looking for could not be found.',
|
||||
content: null
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
// Render the homepage
|
||||
// Render the homepage with static SEO tags
|
||||
res.render('index', {
|
||||
paste: null
|
||||
title: 'unknownBIN - A Secure & Modern Pastebin',
|
||||
description: 'unknownBIN is a secure and modern open-source Pastebin software written in Node.js. Easily share code, logs, and text snippets.',
|
||||
content: null
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -2,17 +2,10 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<% if (paste) { %>
|
||||
<title><%= paste.title %></title>
|
||||
<meta name="description" content="<%= paste.description %>">
|
||||
<meta property="og:title" content="<%= paste.title %>">
|
||||
<meta property="og:description" content="<%= paste.description %>">
|
||||
<% } else { %>
|
||||
<title>unknownBIN - A Secure Pastebin</title>
|
||||
<meta name="description" content="unknownBIN is a secure and modern open-source Pastebin software written in Node.js.">
|
||||
<meta property="og:title" content="unknownBIN - A Secure Pastebin">
|
||||
<meta property="og:description" content="unknownBIN is a secure and modern open-source Pastebin software written in Node.js.">
|
||||
<% } %>
|
||||
<title><%= title %></title>
|
||||
<meta name="description" content="<%= description %>">
|
||||
<meta property="og:title" content="<%= title %>">
|
||||
<meta property="og:description" content="<%= description %>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<link rel="stylesheet" type="text/css" href="/application.min.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="/highlight.min.css"/>
|
||||
@@ -29,7 +22,7 @@
|
||||
<div class="raw function" title="Raw [Ctrl + Shift + R]">Raw</div>
|
||||
</div>
|
||||
<div id="content">
|
||||
<pre id="code" style="display:none;" tabindex="0"><code <% if (paste) { %>id="preloaded-data"<% } %>><% if (paste) { %><%- paste.data %><% } %></code></pre>
|
||||
<pre id="code" style="display:none;" tabindex="0"><code <% if (content) { %>id="preloaded-data"<% } %>><% if (content) { %><%- content %><% } %></code></pre>
|
||||
<textarea spellcheck="false" style="display:none;"></textarea>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user