11<script >
2- import { browser } from ' $app/environment' ;
3- import { updateMenuSelector } from ' @/lib/menuSelectorUpdater.js' ;
4- import ReadingTime from ' @/components/ReadingTime.svelte' ;
5- import HumanDate from ' @/components/HumanDate.svelte' ;
6- let { data } = $props ();
7- const post = $derived (data .post );
8- let title = ' ' ;
2+ import { browser } from ' $app/environment' ;
3+ import { updateMenuSelector } from ' @/lib/menuSelectorUpdater.js' ;
4+ import ReadingTime from ' @/components/ReadingTime.svelte' ;
5+ import HumanDate from ' @/components/HumanDate.svelte' ;
6+ let { data } = $props ();
7+ const post = $derived (data .post );
8+ let title = ' ' ;
99
10- $effect (() => {
11- const cleanup = updateMenuSelector ({url: ' /blog' , color: ' text-cmxgreen' });
12- if (browser) { title = document .title }
13- return () => {
14- cleanup ();
15- if (browser) { document .title = title }
16- };
17- })
10+ $effect (() => {
11+ const cleanup = updateMenuSelector ({ url: ' /blog' , color: ' text-cmxgreen' });
12+ if (browser) {
13+ title = document .title ;
14+ }
15+ return () => {
16+ cleanup ();
17+ if (browser) {
18+ document .title = title;
19+ }
20+ };
21+ });
1822 </script >
1923
2024<svelte:head >
21- <title >{post .title }</title >
22- <meta name ="description" content ={post .meta_description } />
23- <meta property ="og:title" content ={post .title } />
24- <meta property ="og:description" content ={post .meta_description } />
25- <meta property ="og:image" content ={` https://content.codeandomexico.org/assets/${post .post_image } ` } />
25+ <title >{post .title }</title >
26+ <meta name ="description" content ={post .meta_description } />
27+ <meta property ="og:title" content ={post .title } />
28+ <meta property ="og:description" content ={post .meta_description } />
29+ <meta
30+ property =" og:image"
31+ content ={` https://content.codeandomexico.org/assets/${post .post_image } ` }
32+ />
2633</svelte:head >
2734
2835<section class =" my-10 pt-hero" >
29- <div class =" container m-auto max-w-prose my-8" >
30- <h1 class ="text-5xl font-black my-8" >{post .title }</h1 >
31- {#if post .authors }
32- <p class =" text-xl my-3" >Por
33- {#each post .authors as author , i }
34- <span >{author .authors_id .name || ' ' }{#if i < (post .authors .length - 1 )}, {/if }</span >
35- {/each }
36- </p >
37- {/if }
38- <p class =" text-lg text-gray-500" >
39- <ReadingTime text ={post .content }/><span class ="mx-2" >·</span ><HumanDate date ={post .date_published || post .date_created }/>
40- </p >
41- </div >
42- <img src ={` https://content.codeandomexico.org/assets/${post .post_image } ` } alt =" Imagen de blog" class =" w-full max-h-[450px] object-cover" />
43- <div class =" container m-auto p-3 prose prose-blockquote:text-2xl prose-blockquote:border-green-400" >
44- <p class ="prose text-lg" >{@html post .content }</p >
45- </div >
46- </section >
36+ <div class =" container m-auto max-w-prose mb-8 px-4" >
37+ <h1 class ="text-5xl font-black mb-4" >{post .title }</h1 >
38+ {#if post .authors }
39+ <p class =" text-xl my-4" >
40+ Por
41+ {#each post .authors as author , i }
42+ <span
43+ >{author .authors_id .name || ' ' }{#if i < post .authors .length - 1 },
44+ {/if }</span
45+ >
46+ {/each }
47+ </p >
48+ {/if }
49+ <p class =" text-lg text-gray-500" >
50+ <HumanDate date ={post .date_published || post .date_created } />
51+ </p >
52+ <p class =" text-sm text-gray-500" >
53+ <ReadingTime text ={post .content } />
54+ </p >
55+ </div >
56+ <img
57+ src ={` https://content.codeandomexico.org/assets/${post .post_image } ` }
58+ alt =" Imagen de blog"
59+ class =" w-full max-h-[450px] object-cover mb-8"
60+ />
61+ <div
62+ class =" container m-auto px-4 prose prose-blockquote:text-2xl prose-blockquote:border-green-400"
63+ >
64+ <p class ="prose text-lg" >{@html post .content }</p >
65+ </div >
66+ </section >
0 commit comments