feat: recent blog styling (#356)

This commit is contained in:
Kalidou Diagne
2025-04-25 21:27:04 +03:00
committed by GitHub
parent acaf8b90cb
commit ed0b0a38f8
4 changed files with 40 additions and 31 deletions

View File

@@ -2,5 +2,6 @@
"title": "Blog",
"subtitle": "Read our latest articles and stay updated on the latest news in the world of cryptography.",
"recentArticles": "Recent",
"seeMore": "See more"
"seeMore": "See more",
"readMore": "Read more"
}

View File

@@ -8,8 +8,6 @@ canonical: "https://mirror.xyz/privacy-scaling-explorations.eth/YnqHAxpjoWl4e_K2
tags: ["test"]
---
### **Introducing Anon Aadhaar v1.0.0**
[Anon Aadhaar](https://github.com/anon-aadhaar/anon-aadhaar) is a protocol that enables [Aadhaar](https://en.wikipedia.org/wiki/Aadhaar) holders to prove their identity anonymously. It works by verifying the Aadhaar card's issuer signature, which is issued by the Indian government in formats like *PDF*, _XML_, and _Secure QR_ code. These digital versions are signed using RSA, involving a pair of keys: a private key for signing data and a public key for verification.
Our protocol leverages the [UIDAI's](https://uidai.gov.in/en/about-uidai.html) (government authority) RSA signature, enabling us to verify the documents as anyone could. The novelty of our approach is the use of a SNARK proof in the verification process, which hides sensitive data from the verifier, maintaining the same level of verification while enhancing privacy.

View File

@@ -6,8 +6,6 @@ tldr: "Integrating postquantum cryptography into Ethereums P2P stack is cu
date: "2025-04-22"
---
# Towards a Quantum-Safe P2P for Ethereum
## Motivation
As quantum computing continues to evolve, there is increasing interest in understanding how Ethereums existing peer-to-peer (P2P) networking stack might adapt to emerging post-quantum (PQ) cryptographic standards. PSE members Adria and Guorong undertook a brief exploratory project to assess what adopting PQ algorithms in Ethereums P2P layer would entail. This exploration aimed primarily at gaining clarity around potential challenges and identifying realistic directions for future PQ-focused efforts. Ultimately, the project highlighted significant practical limitations, providing valuable insights that we hope will help inform further PQ initiatives.

View File

@@ -1,14 +1,13 @@
import { useTranslation } from "@/app/i18n"
import { AppContent } from "../ui/app-content"
import { getArticles } from "@/lib/blog"
import Image from "next/image"
import Link from "next/link"
import { cn } from "@/lib/utils"
import { Button } from "../ui/button"
import { Icons } from "../icons"
export async function BlogRecentArticles({ lang }: { lang: any }) {
const articles = getArticles({ limit: 6 })
const articles = getArticles({ limit: 4 })
const { t } = await useTranslation(lang, "blog-page")
const lastArticle = articles[0]
@@ -23,33 +22,46 @@ export async function BlogRecentArticles({ lang }: { lang: any }) {
<h3 className="text-base font-bold font-sans text-center uppercase tracking-[3.36px]">
{t("recentArticles")}
</h3>
<div className="grid grid-cols-1 lg:grid-cols-5 gap-10 lg:gap-x-14 lg:max-w-[1200px] mx-auto">
<div className="flex flex-col gap-5 lg:col-span-3">
<Image
src={imageUrl}
alt={lastArticle.title}
width={1000}
height={1000}
className="w-full"
/>
<Link
href={`/blog/${lastArticle.id}`}
className="group duration-200 flex flex-col gap-[10px] text-left"
<div className="grid grid-cols-1 lg:grid-cols-5 gap-10 lg:gap-x-14 lg:max-w-[1200px] mx-auto relative">
<div className="inset-0 relative lg:col-span-3">
<div
className="flex flex-col gap-5 w-full items-center aspect-video after:absolute after:inset-0 after:content-[''] after:bg-black after:opacity-20 group-hover:after:opacity-50 transition-opacity duration-200 after:z-[0]"
style={{
backgroundImage: `url(${imageUrl})`,
backgroundSize: "cover",
backgroundPosition: "center",
}}
>
<h4 className="text-3xl font-bold font-display group-hover:text-anakiwa-500 transition-colors">
{lastArticle.title}
</h4>
<span className="text-sm font-sans text-tuatara-400 uppercase">
{lastArticle.authors?.join(", ")}
</span>
{lastArticle.tldr && (
<span className="text-base font-sans text-tuatara-950 font-normal">
{lastArticle.tldr}
<div className="duration-200 flex flex-col gap-[10px] text-left px-5 lg:px-16 py-6 lg:py-16 relative z-[1]">
<Link
href={`/blog/${lastArticle.id}`}
className="text-4xl font-bold text-white font-display hover:text-anakiwa-400 transition-colors"
>
{lastArticle.title}
</Link>
<span className="text-sm font-sans text-white/80 uppercase">
{lastArticle.authors?.join(", ")}
</span>
)}
</Link>
{lastArticle.tldr && (
<span className="text-base font-sans text-white/80 font-normal line-clamp-2 lg:line-clamp-3">
{lastArticle.tldr}
</span>
)}
<Link href={`/blog/${lastArticle.id}`} className="ml-auto">
<Button
className="uppercase ml-auto mt-4"
variant="secondary"
>
<div className="flex items-center gap-2">
<span className="!text-center">{t("readMore")}</span>
<Icons.arrowRight className="w-4 h-4" />
</div>
</Button>
</Link>
</div>
</div>
</div>
<div className="flex flex-col gap-6 lg:col-span-2">
{otherArticles.map((article, index) => (
<Link