mirror of
https://github.com/ld3z/new-manga.git
synced 2026-11-09 20:43:45 -07:00
fix custom feed length
This commit is contained in:
parent
60f236dea2
commit
a4641ea675
4 changed files with 20 additions and 11 deletions
|
|
@ -71,14 +71,14 @@ const isNSFW = comic.md_comics.content_rating === 'erotica';
|
||||||
<div class="relative mt-3" aria-label="Comic genres">
|
<div class="relative mt-3" aria-label="Comic genres">
|
||||||
<div class="flex flex-wrap gap-2">
|
<div class="flex flex-wrap gap-2">
|
||||||
{genreNames.slice(0, 3).map(genre => (
|
{genreNames.slice(0, 3).map(genre => (
|
||||||
<span class="bg-hover text-primary/80 px-3 py-1 rounded-full text-xs font-medium truncate transition-all hover:bg-hover/80" title={genre}>
|
<span class="bg-hover text-primary/80 px-3 py-1 rounded-full text-xs font-medium truncate">
|
||||||
{genre}
|
{genre}
|
||||||
</span>
|
</span>
|
||||||
))}
|
))}
|
||||||
{genreNames.length > 3 && (
|
{genreNames.length > 3 && (
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="expand-tags-btn bg-hover text-primary/80 px-3 py-1 rounded-full text-xs font-medium hover:bg-hover/80 cursor-pointer transition-colors"
|
class="expand-tags-btn bg-hover text-primary/80 px-3 py-1 rounded-full text-xs font-medium hover:bg-hover/80 hover:scale-105 cursor-pointer transition-all duration-200 ease-in-out"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
data-comic-id={comic.id}
|
data-comic-id={comic.id}
|
||||||
>
|
>
|
||||||
|
|
@ -95,7 +95,7 @@ const isNSFW = comic.md_comics.content_rating === 'erotica';
|
||||||
>
|
>
|
||||||
<div class="flex flex-wrap gap-2">
|
<div class="flex flex-wrap gap-2">
|
||||||
{genreNames.slice(3).map(genre => (
|
{genreNames.slice(3).map(genre => (
|
||||||
<span class="bg-hover text-primary/80 px-3 py-1 rounded-full text-xs font-medium truncate transition-all hover:bg-hover/80" title={genre}>
|
<span class="bg-hover text-primary/80 px-3 py-1 rounded-full text-xs font-medium truncate">
|
||||||
{genre}
|
{genre}
|
||||||
</span>
|
</span>
|
||||||
))}
|
))}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ const genres = await fetchGenres();
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
value={genre.id}
|
value={genre.id}
|
||||||
class="genre-checkbox"
|
class="genre-checkbox w-4 h-4 rounded border border-hover/30 bg-primary checked:bg-accent transition-all duration-200 ease-in-out"
|
||||||
/>
|
/>
|
||||||
<span class="text-sm">{genre.name}</span>
|
<span class="text-sm">{genre.name}</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
|
||||||
|
|
@ -50,9 +50,9 @@ const languages = [
|
||||||
<div id="slug-list" class="space-y-2">
|
<div id="slug-list" class="space-y-2">
|
||||||
{currentSlugs.map(slug => (
|
{currentSlugs.map(slug => (
|
||||||
<div class="flex items-center justify-between p-3 bg-primary rounded-lg border border-hover/30" data-slug={slug}>
|
<div class="flex items-center justify-between p-3 bg-primary rounded-lg border border-hover/30" data-slug={slug}>
|
||||||
<span class="text-primary">{slug}</span>
|
<span class="text-primary truncate pr-2">{slug}</span>
|
||||||
<button
|
<button
|
||||||
class="text-red-500 hover:text-red-600 transition-colors"
|
class="text-red-500 hover:text-red-600 transition-colors flex-shrink-0 pl-2"
|
||||||
data-remove={slug}
|
data-remove={slug}
|
||||||
>
|
>
|
||||||
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||||
|
|
@ -139,14 +139,14 @@ const languages = [
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
div.className = 'flex items-center gap-4 p-4 bg-primary rounded-lg border border-hover/30 hover:border-accent/50 transition-all duration-300 group relative';
|
div.className = 'flex items-center gap-4 p-4 bg-primary rounded-lg border border-hover/30 hover:border-accent/50 transition-all duration-300 group relative overflow-hidden';
|
||||||
|
|
||||||
// Add a link to the comic
|
// Add a link to the comic
|
||||||
const link = document.createElement('a');
|
const link = document.createElement('a');
|
||||||
link.href = `https://comick.io/comic/${slug}`;
|
link.href = `https://comick.io/comic/${slug}`;
|
||||||
link.target = '_blank';
|
link.target = '_blank';
|
||||||
link.rel = 'noopener noreferrer';
|
link.rel = 'noopener noreferrer';
|
||||||
link.className = 'flex items-center gap-4 flex-1';
|
link.className = 'flex items-center gap-4 flex-1 min-w-0';
|
||||||
|
|
||||||
// Handle cover image
|
// Handle cover image
|
||||||
if (data.comic?.md_covers?.[0]?.b2key) {
|
if (data.comic?.md_covers?.[0]?.b2key) {
|
||||||
|
|
@ -168,7 +168,7 @@ const languages = [
|
||||||
}
|
}
|
||||||
|
|
||||||
const info = document.createElement('div');
|
const info = document.createElement('div');
|
||||||
info.className = 'flex-1 min-w-0';
|
info.className = 'flex-1 min-w-0 truncate';
|
||||||
info.innerHTML = `
|
info.innerHTML = `
|
||||||
<div class="font-medium text-lg truncate group-hover:text-accent transition-colors">
|
<div class="font-medium text-lg truncate group-hover:text-accent transition-colors">
|
||||||
${data.comic?.title || slug}
|
${data.comic?.title || slug}
|
||||||
|
|
@ -185,7 +185,7 @@ const languages = [
|
||||||
div.appendChild(link);
|
div.appendChild(link);
|
||||||
|
|
||||||
const removeBtn = document.createElement('button');
|
const removeBtn = document.createElement('button');
|
||||||
removeBtn.className = 'text-red-500 hover:text-red-600 transition-colors p-2 hover:bg-red-500/10 rounded-full flex-shrink-0 relative z-10';
|
removeBtn.className = 'text-red-500 hover:text-red-600 transition-colors p-2 hover:bg-red-500/10 rounded-full flex-shrink-0';
|
||||||
removeBtn.innerHTML = `
|
removeBtn.innerHTML = `
|
||||||
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||||
<path d="M6 18L18 6M6 6l12 12"></path>
|
<path d="M6 18L18 6M6 6l12 12"></path>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ const announcement = {
|
||||||
<div class="relative" id="settings-dropdown">
|
<div class="relative" id="settings-dropdown">
|
||||||
<button
|
<button
|
||||||
id="settings-button"
|
id="settings-button"
|
||||||
class="p-2.5 sm:p-3 bg-secondary rounded-lg hover:bg-hover transition-colors shadow-lg border border-hover/30 flex items-center gap-2"
|
class="p-2.5 sm:p-3 bg-secondary rounded-lg hover:bg-hover transition-all duration-200 shadow-lg border border-hover/30 flex items-center gap-2 hover:-translate-y-0.5"
|
||||||
aria-label="Settings"
|
aria-label="Settings"
|
||||||
>
|
>
|
||||||
<svg class="w-4 h-4 sm:w-5 sm:h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
<svg class="w-4 h-4 sm:w-5 sm:h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||||
|
|
@ -271,6 +271,15 @@ const announcement = {
|
||||||
.animate-pulse {
|
.animate-pulse {
|
||||||
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes bounce {
|
||||||
|
0%, 100% { transform: translateY(0); }
|
||||||
|
50% { transform: translateY(-3px); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-bounce {
|
||||||
|
animation: bounce 1s infinite;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style define:vars={{ bgUrl: background.url }}>
|
<style define:vars={{ bgUrl: background.url }}>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue