From 7e0c1e6d361883d0ea4f003b82a8745ae1d5b737 Mon Sep 17 00:00:00 2001 From: Artem Novichkov Date: Thu, 31 Oct 2024 20:14:47 +0500 Subject: [PATCH] Update post previews and colors --- public/images/companies/skyeng.png | Bin 2703 -> 3445 bytes src/app/_components/experience.tsx | 14 +++++----- src/app/_components/header.tsx | 6 ++-- src/app/_components/post-preview.tsx | 40 +++++++++++++++++---------- src/app/blog/[slug]/page.tsx | 2 +- src/app/blog/page.tsx | 2 +- src/app/components/post-preview.js | 24 ---------------- src/app/globals.css | 6 ++-- src/app/layout.tsx | 2 +- src/app/page.tsx | 6 ++-- 10 files changed, 44 insertions(+), 58 deletions(-) delete mode 100644 src/app/components/post-preview.js diff --git a/public/images/companies/skyeng.png b/public/images/companies/skyeng.png index b6448daad875fde7f76d6b6de4f15fc778d8f09d..896d258a40bbafb9312931f2a9f7b02fee734bc5 100644 GIT binary patch literal 3445 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 Bo9X}n literal 2703 zcmd5;XHydh5DhJ~fb?=8Nbx}Fav&fY3{9#W3PDARgmz$vM0zlks37sE5=v;6J3*-t z=^g1s=L7{s%5V0bY)iw@!d$)u--y)xow; z^S?&{6|)k83KTTO`K;2`z(}WH#ulk3ng7)G@}MN!3xzTllF?2fHX+r1{T1jxl+*R? zQY~T6+bkw2I-Lk@jefw+rY>Jz9mwQSS%kor{HV`PO9{6; zYFVMsJzq(ls~RnD*s7j!B_$M&iL^@3KA}Xy=On4R?Gd^=C(0#gQgei}eN{I0;o{<= zGp5lzX1DRYTSa3NlG@x5MmZd}lW7TG8EUe5{!5c#;24wP)fT(bm#$2Qb&@(0c}N>G z)ud?QW z=*^Lv>(69#*2hQb8aJ@-ZkA`g^Qe9K_2d0Q;TIW(Oh5Ci_v8aJ=^Z`qg$<^h)b$h_ za^p3tCr=kEY2agEV?OWA6p>JCRdmT{I9kr=4=FgMebYgYU=QpLoEv(f^?jXDM+72DPf_6^5?j(BNwL-geA@+j$ z;s)6K+Q2xQbyV%y#61}KV|{A)x`^V#a;3a0@n)+d`N`sHHcSSm{ghX>>4&9%OjSs8 z#KI|MJQY0+8P3%?iLaH~YyWu*D8>^-YPOXfrDU1GH~wDE0|;Au8W1G6z>gftIhSV?B6H8r?*#8o2yg;t zj0|D%W)VW16Fo>idv^ZR8N*bhhVQ{|A=99*4PpK3Q}5aYfaCM^Av??+KXjX_^)n`@ z<>B`%aR2Vgu*wbVLnD)Zq%IY&<^RhCe-!YwhtzsOfEw0C-J~Ay57T>R3_F@?f?>(C0Jk{J!T3 zN3?+H-$nTlOQm~EY>oIU7vtEDBV7rMeBrqvKR_#*O%B7jrHUwONxc*0N$B5hMSFGR&JAo$4~^2%Q35VBzW+?=ax9a} z46%? z*FG814#u1j$sV_lY#i|lnCVL9HQQzpe=IS*YU^ragSybftjkidvE^q z*C%jA2BTf-WB1qFO|#$%d#j^83<{c#v%ygB`TJNBLS}S71W)$i_I&dF`|5)xxHYa9 z_ZAq19D9yD)g00FVspm3Mr<-H_$@ezje$HC@*T-DXqOl*0V{tY9SwESN6x%Fe!oBv z2q@RlkpGFSLbM`GGu4b0#e=nt%jsezgZQ_jb9bv)-XTvIFM_l_PoMLGDM?bzV z4Qm(bbf;9`uCEB|HqnsCwIA!yP7H1K5ZBD3F1R;^`*#%kyOq)wnvxLlqs}<+Tte-# zA;5%rxB1~tQJ7f!IKMW?ta#5di5`doOqN;lqdP#V&X-%$v(7r)J2~8c^d>_ZV=6mO zIYm|(tolEBPrV&p}bQB`I-daX&_zo;X9@ zkB&EvlD`!F$a#7>qy8gK?mh2Sj|WK%8REr_PPq8KU?Z# zaR=4h3tB8CVE0TT1HzMM0?)*URu=6b-^&p%s1f!EPkm0+gw9&Z!E8A?J6FoszX;i6SYSNik2;avd=*yEo@=^$vo4MYqT_C zq2XIA63>Uv51ste$x?&JgkpeCOA`C|HBqBJ!xf?hc|I$%Xy*U)L85vCpi}q$f$mFi P{zrhFwX; -

+

Experience

-

+

Full-time positions

    @@ -16,7 +16,7 @@ export default function Experience() { ))}
-

+

Part-time positions

    @@ -60,15 +60,15 @@ const Position: React.FC = ({ position }) => { width={40} height={40} /> -
    -

    {position.title}

    - +

    {position.title}

    +
    {position.company} -
    +
    {startDateTag} {`→`} {finishDateTag} diff --git a/src/app/_components/header.tsx b/src/app/_components/header.tsx index 60c3b40..9b2da5c 100644 --- a/src/app/_components/header.tsx +++ b/src/app/_components/header.tsx @@ -4,13 +4,13 @@ export default function Header() { return (
    diff --git a/src/app/_components/post-preview.tsx b/src/app/_components/post-preview.tsx index e91748e..bc47f12 100644 --- a/src/app/_components/post-preview.tsx +++ b/src/app/_components/post-preview.tsx @@ -1,6 +1,9 @@ import Image from 'next/image' import Link from 'next/link' import { Post } from '@/interfaces/post'; +import PostDate from './post-date'; +import readingTime from 'reading-time' +import ViewCounter from './view-counter'; interface PostPreviewProps { post: Post; @@ -9,21 +12,30 @@ interface PostPreviewProps { export default function PostPreview({ post }: PostPreviewProps) { return ( -
    -

    - {post.title} -

    -

    - {post.description} -

    - {`cover`} +
    + {`cover`} +
    +
    +

    + {post.title} +

    +

    + {post.description} +

    +
    +
    + + {` • `} + {readingTime(post.content).text} +
    +
    ) } \ No newline at end of file diff --git a/src/app/blog/[slug]/page.tsx b/src/app/blog/[slug]/page.tsx index 1de31cf..94e82cf 100644 --- a/src/app/blog/[slug]/page.tsx +++ b/src/app/blog/[slug]/page.tsx @@ -51,7 +51,7 @@ export default async function BlogPost({ params }: { params: { slug: string } }) return (
    -

    +

    {post.title}

    diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx index da6ae27..7f2ad20 100644 --- a/src/app/blog/page.tsx +++ b/src/app/blog/page.tsx @@ -5,7 +5,7 @@ export default function Blog() { const posts = getAllPosts(); return (
    -

    Blog

    +

    Blog

      {posts.map((post) => ( diff --git a/src/app/components/post-preview.js b/src/app/components/post-preview.js deleted file mode 100644 index ff19107..0000000 --- a/src/app/components/post-preview.js +++ /dev/null @@ -1,24 +0,0 @@ -import Image from 'next/image' -import Link from 'next/link' - -export default function PostPreview({ post }) { - return ( - -
      -

      - {post.title} -

      -

      - {post.description} -

      - {post.title} -
      - - ) -} \ No newline at end of file diff --git a/src/app/globals.css b/src/app/globals.css index 8cfe9d4..2aa5549 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -13,15 +13,13 @@ position: sticky; z-index: 10; top: 0; - backdrop-filter: saturate(180%) blur(20px); - transition: background-color 0.1 ease-in-out; } .shiki { - background-color: rgb(17 24 39) !important; + background-color: rgb(31 41 55) !important; } /* inline code */ .prose code:not(.shiki code) { - @apply px-1 py-0.5 border rounded-md bg-gray-100 dark:bg-gray-900 border-gray-100 dark:border-gray-800 dark:border-gray-800 text-gray-800 dark:text-white; + @apply px-1 py-0.5 border rounded-md bg-gray-100 dark:bg-gray-800 dark:border-gray-800 text-gray-800 dark:text-white; } \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 252afa1..3e19dca 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -39,7 +39,7 @@ export default function RootLayout({ }>) { return ( - +
      {children} diff --git a/src/app/page.tsx b/src/app/page.tsx index de30cc0..29adb69 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -4,7 +4,7 @@ import Experience from "./_components/experience"; export default function About() { return (
      -

      About Me

      +

      About Me

      Artem Novichkov -
      +

      Hi there! My name is Artem Novichkov. I am an iOS Developer.

      @@ -30,7 +30,7 @@ export default function About() { . I am currently working on developing pet projects and writing blog posts on SwiftUI.

      - Occasionally, I also enjoy sharing my knowledge through public speaking. You can find a playlist of my talks on   + Occasionally, I also enjoy sharing my knowledge through public speaking. You can find a playlist of my talks on  Youtube .