add bengali langauge

pull/2/head
dev sp 2024-01-12 08:01:06 +00:00
parent 634f248962
commit 23338f28b4
26 changed files with 752 additions and 35 deletions

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@ -1,13 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 36 36">
<path fill="#000" d="M22.25 4h-8.5a1 1 0 0 0-.96.73l-5.54 19.4a.5.5 0 0 0 .62.62l5.05-1.44a2 2 0 0 0 1.38-1.4l3.22-11.66a.5.5 0 0 1 .96 0l3.22 11.67a2 2 0 0 0 1.38 1.39l5.05 1.44a.5.5 0 0 0 .62-.62l-5.54-19.4a1 1 0 0 0-.96-.73Z"/>
<path fill="url(#gradient)" d="M18 28a7.63 7.63 0 0 1-5-2c-1.4 2.1-.35 4.35.6 5.55.14.17.41.07.47-.15.44-1.8 2.93-1.22 2.93.6 0 2.28.87 3.4 1.72 3.81.34.16.59-.2.49-.56-.31-1.05-.29-2.46 1.29-3.25 3-1.5 3.17-4.83 2.5-6-.67.67-2.6 2-5 2Z"/>
<defs>
<linearGradient id="gradient" x1="16" x2="16" y1="32" y2="24" gradientUnits="userSpaceOnUse">
<stop stop-color="#000"/>
<stop offset="1" stop-color="#000" stop-opacity="0"/>
</linearGradient>
</defs>
<style>
@media (prefers-color-scheme:dark){:root{filter:invert(100%)}}
</style>
</svg>

Before

Width:  |  Height:  |  Size: 873 B

View File

@ -11,11 +11,12 @@
<div class="line3"></div> <div class="line3"></div>
</div> </div>
<ul class="nav-links"> <ul class="nav-links">
<li><a class="text-yellow-500" href="/bn">বাংলা</a></li>
<li><a href="/">Home</a></li> <li><a href="/">Home</a></li>
<li><a href="/national">National</a></li> <li><a href="/national">National</a></li>
<li><a href="/politics">Politics</a></li> <li><a href="/politics">Politics</a></li>
<li><a href="/local">Local</a></li> <li><a href="/local">Local</a></li>
<li><a href="/article">Article</a></li> <li><a href="/technology">Technology</a></li>
<!-- <li><a href="/about-us">About</a></li> --> <!-- <li><a href="/about-us">About</a></li> -->
<li><a href="/contact">Contact</a></li> <li><a href="/contact">Contact</a></li>

View File

@ -0,0 +1,238 @@
<main>
<div>
<nav>
<div class="logo">
<!-- <img class="w-[50px] rounded-full drop-shadow-2xl p-0.5 animate-[spin_3s_ease]" src="/img/logo.svg" alt="" /> animate-[bounce_3s_ease] -->
<a href="/bn"><img class=" border-2 rounded-md border-white shadow-md shadow-white drop-shadow-2xl " src="/img/barta_logo.png" alt="Barta Logo" /></a>
</div>
<div class="hamburger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
<ul class="nav-links">
<li><a class="text-yellow-500" href="/">English</a></li>
<li><a href="/bn">হোম</a></li>
<li><a href="/bn/national">জাতীয়</a></li>
<li><a href="/bn/politics">রাজনীতি</a></li>
<li><a href="/bn/local">স্থানীয়</a></li>
<li><a href="/bn/technology">প্রযুক্তি</a></li>
<!-- <li><a href="/about-us">About</a></li> -->
<li><a href="/contact">যোগাযোগ</a></li>
<!-- <li><a href="/login">Login</a></li> -->
<!-- <li><a href="/sign-up">Signup</a></li> -->
<!-- <li><button class="login-button">Login</button></li>
<li><button class="join-button">Join</button></li> -->
</ul>
</nav>
</div>
</main>
<script is:inline>
const hamburger = document.querySelector(".hamburger");
const navLinks = document.querySelector(".nav-links");
const links = document.querySelectorAll(".nav-links li");
hamburger.addEventListener('click', ()=>{
//Animate Links
navLinks.classList.toggle("open");
links.forEach(link => {
link.classList.toggle("fade");
});
//Hamburger Animation
hamburger.classList.toggle("toggle");
});
</script>
<style>
*{
/* margin: 0;
padding: 0; */
color: #FFFFFF;
z-index: 0;
/* font-family: sans-serif;
letter-spacing: 1px;
font-weight: 300; */
}
body{
overflow-x: hidden;
}
nav{
height: 6rem;
width: 100vw;
top: 0px;
/* margin-bottom: 800px; */
background-color: #780a0a;
box-shadow: 0 3px 20px rgba(0, 0, 0, 0.2);
display: flex;
position: fixed;
z-index: 20;
}
/*Styling logo*/
.logo{
padding:1vh 1vw;
text-align: center;
}
.logo img {
height: 5rem;
width: 8rem;
}
/*Styling Links*/
.nav-links{
display: flex;
list-style: none;
width: 88vw;
padding: 0 0.7vw;
justify-content: right;
/* justify-content: space-evenly; */
align-items: center;
text-transform: uppercase;
}
.nav-links li a{
text-decoration: none;
margin: 0 0.7vw;
}
.nav-links li a:hover {
color: #FFFFFF;
}
.nav-links li {
position: relative;
}
.nav-links li a::before {
content: "";
display: block;
height: 3px;
width: 0%;
background-color: #FFFFFF;
position: absolute;
transition: all ease-in-out 250ms;
margin: 0 0 0 10%;
}
.nav-links li a:hover::before{
width: 80%;
}
/*Styling Buttons*/
.login-button{
background-color: transparent;
border: 1.5px solid #f2f5f7;
border-radius: 2em;
padding: 0.6rem 0.8rem;
margin-left: 2vw;
font-size: 1rem;
cursor: pointer;
}
.login-button:hover {
color: #131418;
background-color: #f2f5f7;
border:1.5px solid #f2f5f7;
transition: all ease-in-out 350ms;
}
.join-button{
color: #131418;
background-color: #61DAFB;
border: 1.5px solid #61DAFB;
border-radius: 2em;
padding: 0.6rem 0.8rem;
font-size: 1rem;
cursor: pointer;
}
.join-button:hover {
color: #f2f5f7;
background-color: transparent;
border:1.5px solid #f2f5f7;
transition: all ease-in-out 350ms;
}
/*Styling Hamburger Icon*/
.hamburger div{
width: 30px;
height:3px;
background: #7c4c23;
margin: 5px;
transition: all 0.3s ease;
}
.hamburger{
display: none;
}
/*Stying for small screens*/
@media screen and (max-width: 800px){
nav{
position: fixed;
z-index: 3;
}
.hamburger{
display:block;
position: absolute;
cursor: pointer;
right: 5%;
top: 50%;
transform: translate(-5%, -50%);
z-index: 2;
transition: all 0.7s ease;
}
.nav-links{
position: fixed;
background: #131418;
height: 100%;
width: 100%;
/* margin-left: 50%; */
flex-direction: column;
clip-path: circle(50px at 90% -20%);
-webkit-clip-path: circle(50px at 90% -10%);
transition: all 1s ease-out;
pointer-events: none;
justify-content: space-evenly;
}
.nav-links.open{
clip-path: circle(1000px at 90% -10%);
-webkit-clip-path: circle(1000px at 90% -10%);
pointer-events: all;
}
.nav-links li{
opacity: 0;
}
.nav-links li:nth-child(1){
transition: all 0.5s ease 0.2s;
}
.nav-links li:nth-child(2){
transition: all 0.5s ease 0.4s;
}
.nav-links li:nth-child(3){
transition: all 0.5s ease 0.6s;
}
.nav-links li:nth-child(4){
transition: all 0.5s ease 0.7s;
}
.nav-links li:nth-child(5){
transition: all 0.5s ease 0.8s;
}
.nav-links li:nth-child(6){
transition: all 0.5s ease 0.9s;
margin: 0;
}
.nav-links li:nth-child(7){
transition: all 0.5s ease 1s;
margin: 0;
}
li.fade{
opacity: 1;
}
}
/*Animating Hamburger Icon on Click*/
.toggle .line1{
transform: rotate(-45deg) translate(-5px,6px);
}
.toggle .line2{
transition: all 0.7s ease;
width:0;
}
.toggle .line3{
transform: rotate(45deg) translate(-5px,-6px);
}
</style>

View File

@ -14,7 +14,7 @@ const { title } = Astro.props;
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <link rel="icon" type="image/ico+xml" href="/favicon.ico" />
<meta name="generator" content={Astro.generator} /> <meta name="generator" content={Astro.generator} />
<title>{title}</title> <title>{title}</title>
</head> </head>
@ -29,6 +29,7 @@ const { title } = Astro.props;
<Footer /> <Footer />
</body> </body>
</html> </html>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9252259454702469" crossorigin="anonymous"></script>
<style is:global> <style is:global>
/* :root { /* :root {
--accent: 124, 58, 237; --accent: 124, 58, 237;

View File

@ -0,0 +1,46 @@
---
import MainHeaderBN from '../components/MainHeaderBN.astro';
import TopHeader from '../components/TopHeader.astro';
import Footer from '../components/Footer.astro';
export interface Props {
title: string;
}
const { title } = Astro.props;
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/ico+xml" href="/favicon.ico" />
<meta name="generator" content={Astro.generator} />
<title>{title}</title>
</head>
<body>
<div>
<MainHeaderBN />
</div>
<div class="mt-[150px]">
<slot />
</div>
<Footer />
</body>
</html>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9252259454702469" crossorigin="anonymous"></script>
<style is:global>
/* :root {
--accent: 124, 58, 237;
--accent-gradient: linear-gradient(45deg, rgb(var(--accent)), #da62c4 30%, white 60%);
}
html {
font-family: system-ui, sans-serif;
background-color: #F6F6F6;
}
code {
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
Bitstream Vera Sans Mono, Courier New, monospace;
} */
</style>

View File

@ -1,14 +1,14 @@
--- ---
import Layout from '../layouts/Layout.astro'; import Layout from '../layouts/Layout.astro';
export async function getStaticPaths() { export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{ const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}} return {params: {id:n.slug}}
}) })
return finalData; return finalData;
} }
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const { id } = Astro.params; const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id); const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);

34
src/pages/bn/[id].astro Normal file
View File

@ -0,0 +1,34 @@
---
import LayoutBN from '../../layouts/LayoutBN.astro';
export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[lang][_eq]=bengali');
const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}}
})
return finalData;
}
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[lang][_eq]=bengali');
const data = await response.json();
const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);
const items = data.data[idx];
// console.log(data.data[idx])
---
<LayoutBN title={items.title}>
<main>
<section class="container mx-auto px-4 mt-16">
<div class="flex flex-col">
<h1 class="text-3xl font-bold border-b-4 border-[#780A0A]">{items.heading}</h1>
<h2 class="text-xl py-2">{items.title}</h2>
<img class="lg:w-[60%]" src={`https://api7.siliconpin.com/assets/${items.img}`} alt={items.title} />
<p class="text-justify text-red-700 mt-4" set:html={items.content}></p>
</div>
</section>
</main>
</LayoutBN>
<style>
section > div > p > p {
text-align: justify;
}
</style>

54
src/pages/bn/index.astro Normal file
View File

@ -0,0 +1,54 @@
---
import LayoutBN from '../../layouts/LayoutBN.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?sort=-date_created&filter[lang][_eq]=bengali');
const dataJSON = await fetchData.json();
const data = dataJSON.data;
// const imageData = data.image;
// const data = fetchDataJSON.data;
// console.log()
---
<LayoutBN title="Barta News">
<main>
<section class="container mx-auto px-4">
<div class="my-16">
<span class="text-[#780a0a] font-bold" id="pageName"></span>
<h1 class="text-4xl font-bold border-b-4 border-[#780A0A]">Latest News</h1>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col">
<a href={`/bn/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden">
<p id="" set:html={items.content}></p>
</div>
</div>
<div class="flex justify-end">
<a href={`/bn/${items.slug}`} class="bg-[#780A0A] text-white rounded-md font-bold py-2 px-6">Read More</a>
</div>
</div>
)}
</div>
<!-- <div class="flex flex-col">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined;}) =>
<div class="flex flex-col border-2 gap-6 p-6">
<h1 class="border-b-4 border-[#780a0a] text-2xl font-bold">{items.heading}</h1>
<h2 class="text-lg">{items.title}</h2>
<img src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
</div>
)}
</div> -->
</section>
</main>
</LayoutBN>
<script is:inline>
const pageName = window.location.href.split('/')[3];
document.getElementById('pageName').innerHTML = '>&nbsp;' + pageName;
// console.log(pageName)
</script>
<style>
</style>

View File

@ -0,0 +1,34 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local&filter[lang][_eq]=bengali');
const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}}
})
return finalData;
}
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local&filter[lang][_eq]=bengali');
const data = await response.json();
const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);
const items = data.data[idx];
// console.log(data.data[idx])
---
<LayoutBN title={items.title}>
<main>
<section class="container mx-auto px-4 mt-16">
<div class="flex flex-col">
<h1 class="text-3xl font-bold border-b-4 border-[#780A0A]">{items.heading}</h1>
<h2 class="text-xl py-2">{items.title}</h2>
<img class="lg:w-[60%]" src={`https://api7.siliconpin.com/assets/${items.img}`} alt={items.title} />
<p class="text-justify text-red-700 mt-4" set:html={items.content}></p>
</div>
</section>
</main>
</LayoutBN>
<style>
section > div > p > p {
text-align: justify;
}
</style>

View File

@ -0,0 +1,55 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local&sort=-date_created&filter[lang][_eq]=bengali');
const dataJSON = await fetchData.json();
const data = dataJSON.data;
// const imageData = data.image;
// const data = fetchDataJSON.data;
// console.log()
---
<LayoutBN title="Barta News">
<main>
<section class="container mx-auto px-4">
<div class="my-16">
<span class="text-[#780a0a] font-bold" id="pageName"></span>
<h1 class="text-4xl font-bold border-b-4 border-[#780A0A]">Latest News</h1>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col">
<a href={`/bn/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden">
<p id="" set:html={items.content}></p>
</div>
</div>
<div class="flex justify-end">
<a href={`/bn/local/${items.slug}`} class="bg-[#780A0A] text-white rounded-md font-bold py-2 px-6">Read More</a>
</div>
</div>
)}
</div>
<!-- <div class="flex flex-col">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined;}) =>
<div class="flex flex-col border-2 gap-6 p-6">
<h1 class="border-b-4 border-[#780a0a] text-2xl font-bold">{items.heading}</h1>
<h2 class="text-lg">{items.title}</h2>
<img src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
</div>
)}
</div> -->
</section>
</main>
</LayoutBN>
<script is:inline>
const pageName = window.location.href.split('/')[3];
const pageName2 = window.location.href.split('/')[4];
document.getElementById('pageName').innerHTML = '>&nbsp;' + pageName + '&nbsp;>&nbsp;' + pageName2;
// console.log(pageName)
</script>
<style>
</style>

View File

@ -0,0 +1,34 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national&filter[lang][_eq]=bengali');
const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}}
})
return finalData;
}
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national&filter[lang][_eq]=bengali');
const data = await response.json();
const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);
const items = data.data[idx];
// console.log(data.data[idx])
---
<LayoutBN title={items.title}>
<main>
<section class="container mx-auto px-4 mt-16">
<div class="flex flex-col">
<h1 class="text-3xl font-bold border-b-4 border-[#780A0A]">{items.heading}</h1>
<h2 class="text-xl py-2">{items.title}</h2>
<img class="lg:w-[60%]" src={`https://api7.siliconpin.com/assets/${items.img}`} alt={items.title} />
<p class="text-justify text-red-700 mt-4" set:html={items.content}></p>
</div>
</section>
</main>
</LayoutBN>
<style>
section > div > p > p {
text-align: justify;
}
</style>

View File

@ -0,0 +1,55 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national&sort=-date_created&filter[lang][_eq]=bengali');
const dataJSON = await fetchData.json();
const data = dataJSON.data;
// const imageData = data.image;
// const data = fetchDataJSON.data;
// console.log()
---
<LayoutBN title="Barta News">
<main>
<section class="container mx-auto px-4">
<div class="my-16">
<span class="text-[#780a0a] font-bold" id="pageName"></span>
<h1 class="text-4xl font-bold border-b-4 border-[#780A0A]">Latest News</h1>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col">
<a href={`/bn/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden">
<p id="" set:html={items.content}></p>
</div>
</div>
<div class="flex justify-end">
<a href={`/bn/national/${items.slug}`} class="bg-[#780A0A] text-white rounded-md font-bold py-2 px-6">Read More</a>
</div>
</div>
)}
</div>
<!-- <div class="flex flex-col">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined;}) =>
<div class="flex flex-col border-2 gap-6 p-6">
<h1 class="border-b-4 border-[#780a0a] text-2xl font-bold">{items.heading}</h1>
<h2 class="text-lg">{items.title}</h2>
<img src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
</div>
)}
</div> -->
</section>
</main>
</LayoutBN>
<script is:inline>
const pageName = window.location.href.split('/')[3];
const pageName2 = window.location.href.split('/')[4];
document.getElementById('pageName').innerHTML = '>&nbsp;' + pageName + '&nbsp;>&nbsp;' + pageName2;
// console.log(pageName)
</script>
<style>
</style>

View File

@ -0,0 +1,34 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics&filter[lang][_eq]=bengali');
const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}}
})
return finalData;
}
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics&filter[lang][_eq]=bengali');
const data = await response.json();
const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);
const items = data.data[idx];
// console.log(data.data[idx])
---
<LayoutBN title={items.title}>
<main>
<section class="container mx-auto px-4 mt-16">
<div class="flex flex-col">
<h1 class="text-3xl font-bold border-b-4 border-[#780A0A]">{items.heading}</h1>
<h2 class="text-xl py-2">{items.title}</h2>
<img class="lg:w-[60%]" src={`https://api7.siliconpin.com/assets/${items.img}`} alt={items.title} />
<p class="text-justify text-red-700 mt-4" set:html={items.content}></p>
</div>
</section>
</main>
</LayoutBN>
<style>
/* section > div > p > p {
text-align: justify;
} */
</style>

View File

@ -0,0 +1,55 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics&sort=-date_created&filter[lang][_eq]=bengali');
const dataJSON = await fetchData.json();
const data = dataJSON.data;
// const imageData = data.image;
// const data = fetchDataJSON.data;
// console.log()
---
<LayoutBN title="Barta News">
<main>
<section class="container mx-auto px-4">
<div class="my-16">
<span class="text-[#780a0a] font-bold" id="pageName"></span>
<h1 class="text-4xl font-bold border-b-4 border-[#780A0A]">Latest News</h1>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col">
<a href={`/bn/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden">
<p id="" set:html={items.content}></p>
</div>
</div>
<div class="flex justify-end">
<a href={`/bn/politics/${items.slug}`} class="bg-[#780A0A] text-white rounded-md font-bold py-2 px-6">Read More</a>
</div>
</div>
)}
</div>
<!-- <div class="flex flex-col">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined;}) =>
<div class="flex flex-col border-2 gap-6 p-6">
<h1 class="border-b-4 border-[#780a0a] text-2xl font-bold">{items.heading}</h1>
<h2 class="text-lg">{items.title}</h2>
<img src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
</div>
)}
</div> -->
</section>
</main>
</LayoutBN>
<script is:inline>
const pageName = window.location.href.split('/')[3];
const pageName2 = window.location.href.split('/')[4];
document.getElementById('pageName').innerHTML = '>&nbsp;' + pageName + '&nbsp;>&nbsp;' + pageName2;
// console.log(pageName)
</script>
<style>
</style>

View File

@ -0,0 +1,34 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=technology&filter[lang][_eq]=bengali');
const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}}
})
return finalData;
}
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=technology&filter[lang][_eq]=bengali');
const data = await response.json();
const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);
const items = data.data[idx];
// console.log(data.data[idx])
---
<LayoutBN title={items.title}>
<main>
<section class="container mx-auto px-4 mt-16">
<div class="flex flex-col">
<h1 class="text-3xl font-bold border-b-4 border-[#780A0A]">{items.heading}</h1>
<h2 class="text-xl py-2">{items.title}</h2>
<img class="lg:w-[60%]" src={`https://api7.siliconpin.com/assets/${items.img}`} alt={items.title} />
<p class="text-justify text-red-700 mt-4" set:html={items.content}></p>
</div>
</section>
</main>
</LayoutBN>
<style>
section > div > p > p {
text-align: justify;
}
</style>

View File

@ -0,0 +1,55 @@
---
import LayoutBN from '../../../layouts/LayoutBN.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=technology&sort=-date_created&filter[lang][_eq]=bengali');
const dataJSON = await fetchData.json();
const data = dataJSON.data;
// const imageData = data.image;
// const data = fetchDataJSON.data;
// console.log()
---
<LayoutBN title="Barta News">
<main>
<section class="container mx-auto px-4">
<div class="my-16">
<span class="text-[#780a0a] font-bold" id="pageName"></span>
<h1 class="text-4xl font-bold border-b-4 border-[#780A0A]">Latest News</h1>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col">
<a href={`/bn/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden">
<p id="" set:html={items.content}></p>
</div>
</div>
<div class="flex justify-end">
<a href={`/bn/technology/${items.slug}`} class="bg-[#780A0A] text-white rounded-md font-bold py-2 px-6">Read More</a>
</div>
</div>
)}
</div>
<!-- <div class="flex flex-col">
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined;}) =>
<div class="flex flex-col border-2 gap-6 p-6">
<h1 class="border-b-4 border-[#780a0a] text-2xl font-bold">{items.heading}</h1>
<h2 class="text-lg">{items.title}</h2>
<img src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
</div>
)}
</div> -->
</section>
</main>
</LayoutBN>
<script is:inline>
const pageName = window.location.href.split('/')[3];
const pageName2 = window.location.href.split('/')[4];
document.getElementById('pageName').innerHTML = '>&nbsp;' + pageName + '&nbsp;>&nbsp;' + pageName2;
// console.log(pageName)
</script>
<style>
</style>

View File

@ -1,6 +1,6 @@
--- ---
import Layout from '../layouts/Layout.astro'; import Layout from '../layouts/Layout.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?sort=-date_created'); const fetchData = await fetch('https://api7.siliconpin.com/items/barta?sort=-date_created&filter[lang][_eq]=english');
const dataJSON = await fetchData.json(); const dataJSON = await fetchData.json();
const data = dataJSON.data; const data = dataJSON.data;
// const imageData = data.image; // const imageData = data.image;

View File

@ -1,14 +1,14 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
export async function getStaticPaths() { export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{ const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}} return {params: {id:n.slug}}
}) })
return finalData; return finalData;
} }
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const { id } = Astro.params; const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id); const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);

View File

@ -1,6 +1,6 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local&sort=-date_created'); const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=local&sort=-date_created&filter[lang][_eq]=english');
const dataJSON = await fetchData.json(); const dataJSON = await fetchData.json();
const data = dataJSON.data; const data = dataJSON.data;
// const imageData = data.image; // const imageData = data.image;
@ -19,7 +19,7 @@ const data = dataJSON.data;
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) => {data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg"> <div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col"> <div class="flex flex-col">
<a href={`/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a> <a href={`/local${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2> <h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/> <img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden"> <div class="h-[100px] overflow-y-hidden">

View File

@ -1,14 +1,14 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
export async function getStaticPaths() { export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{ const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}} return {params: {id:n.slug}}
}) })
return finalData; return finalData;
} }
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const { id } = Astro.params; const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id); const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);

View File

@ -1,6 +1,6 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national&sort=-date_created'); const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=national&sort=-date_created&filter[lang][_eq]=english');
const dataJSON = await fetchData.json(); const dataJSON = await fetchData.json();
const data = dataJSON.data; const data = dataJSON.data;
// const imageData = data.image; // const imageData = data.image;
@ -19,7 +19,7 @@ const data = dataJSON.data;
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) => {data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg"> <div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col"> <div class="flex flex-col">
<a href={`/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a> <a href={`/national${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2> <h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/> <img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden"> <div class="h-[100px] overflow-y-hidden">

View File

@ -1,14 +1,14 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
export async function getStaticPaths() { export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{ const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}} return {params: {id:n.slug}}
}) })
return finalData; return finalData;
} }
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const { id } = Astro.params; const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id); const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);

View File

@ -1,6 +1,6 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics&sort=-date_created'); const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=politics&sort=-date_created&filter[lang][_eq]=english');
const dataJSON = await fetchData.json(); const dataJSON = await fetchData.json();
const data = dataJSON.data; const data = dataJSON.data;
// const imageData = data.image; // const imageData = data.image;
@ -19,7 +19,7 @@ const data = dataJSON.data;
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) => {data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg"> <div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col"> <div class="flex flex-col">
<a href={`/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a> <a href={`/politics${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2> <h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/> <img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden"> <div class="h-[100px] overflow-y-hidden">

View File

@ -1,14 +1,14 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
export async function getStaticPaths() { export async function getStaticPaths() {
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=article'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=technology&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const finalData = data.data.map((n: { slug: string | undefined; })=>{ const finalData = data.data.map((n: { slug: string | undefined; })=>{
return {params: {id:n.slug}} return {params: {id:n.slug}}
}) })
return finalData; return finalData;
} }
const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=article'); const response = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=technology&filter[lang][_eq]=english');
const data = await response.json(); const data = await response.json();
const { id } = Astro.params; const { id } = Astro.params;
const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id); const idx = data.data.findIndex((n: { slug: string | undefined; }) => n.slug ===id);

View File

@ -1,6 +1,6 @@
--- ---
import Layout from '../../layouts/Layout.astro'; import Layout from '../../layouts/Layout.astro';
const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=article&sort=-date_created'); const fetchData = await fetch('https://api7.siliconpin.com/items/barta?filter[status][_eq]=published&filter[category][_eq]=technology&sort=-date_created&filter[lang][_eq]=english');
const dataJSON = await fetchData.json(); const dataJSON = await fetchData.json();
const data = dataJSON.data; const data = dataJSON.data;
// const imageData = data.image; // const imageData = data.image;
@ -19,7 +19,7 @@ const data = dataJSON.data;
{data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) => {data.map((items: {heading: string | undefined; img: string | undefined; title : string | undefined; content : string | undefined; slug : string | undefined;}) =>
<div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg"> <div class="flex flex-col border-2 border-[#780a0a] gap-6 p-6 place-content-between rounded-lg">
<div class="flex flex-col"> <div class="flex flex-col">
<a href={`/${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a> <a href={`/technology${items.slug}`} class="border-b-4 border-[#780a0a] text-2xl font-bold line-clamp-1">{items.heading}</a>
<h2 class="text-lg line-clamp-1">{items.title}</h2> <h2 class="text-lg line-clamp-1">{items.title}</h2>
<img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/> <img class="aspect-video " src={`https://api7.siliconpin.com/assets/${items.img}`} alt=""/>
<div class="h-[100px] overflow-y-hidden"> <div class="h-[100px] overflow-y-hidden">
@ -27,7 +27,7 @@ const data = dataJSON.data;
</div> </div>
</div> </div>
<div class="flex justify-end"> <div class="flex justify-end">
<a href={`/article/${items.slug}`} class="bg-[#780A0A] text-white rounded-md font-bold py-2 px-6">Read More</a> <a href={`/technology/${items.slug}`} class="bg-[#780A0A] text-white rounded-md font-bold py-2 px-6">Read More</a>
</div> </div>
</div> </div>
)} )}