Skip to content

Commit 2694c3c

Browse files
Merge pull request #2 from AndreAnimator/portfolio
Portfolio
2 parents 4b9ea6b + 7f1e342 commit 2694c3c

25 files changed

Lines changed: 518 additions & 13 deletions

public/images/bluesky.png

375 KB
Loading
594 KB
Loading
1.4 MB
Loading

public/images/stoicats_banner.png

472 KB
Loading

public/images/stoicats_icon.png

953 KB
Loading

src/components/Header.astro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const t = useTranslations(lang);
2525
<li><a href={`/${lang}/`} class="text-teal-900 font-bold">{t('nav.home')}</a></li>
2626
<li><a href={`/${lang}/about`} class="text-teal-900 font-bold">{t('nav.about')}</a></li>
2727
<li><a href={`/${lang}/blog`} class="text-teal-900 font-bold">Blog</a></li>
28+
<li><a href={`/${lang}/portfolio`} class="text-teal-900 font-bold">{t('nav.portfolio')}</a></li>
2829
<li><ThemeDropdown name="theme"></ThemeDropdown></li>
2930
<LanguagePicker></LanguagePicker>
3031
</ul>

src/components/LanguagePicker.astro

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,44 @@ import { getLangFromUrl } from '../i18n/utils';
44
import blog from "../data/blog.json";
55
66
function getIndex(aux: string, lang: string){
7+
var index = 0;
78
var filteredObj = blog.find(function(item, i){
89
if(lang == 'en'){
910
if(item.en === aux){
11+
index = i
1012
return i;
1113
}
1214
}
1315
else{
1416
if(item.ptbr === aux){
17+
index = i
1518
return i;
1619
}
1720
}
1821
});
19-
return 0;
22+
if(!filteredObj){
23+
return index;
24+
}else{
25+
return index;
26+
}
2027
}
2128
2229
function getPath(lang_org: string){
2330
let lang = getLangFromUrl(Astro.url);
2431
var url = Astro.url.pathname.split( '/' );
2532
var title = '';
26-
console.log(url)
27-
console.log(blog[0].en)
2833
if(url.length > 3 && (url[2] == 'blog' || url[2] == 'portfolio')){
2934
var aux = url[3];
3035
if(lang_org == 'en'){
3136
var i = getIndex(aux, lang);
32-
title = blog[i].en
37+
title = blog[i].en;
3338
}else{
3439
var i = getIndex(aux, lang);
35-
title = blog[i].ptbr
40+
title = blog[i].ptbr;
3641
}
37-
console.log("oiii");
3842
var string = Astro.url.pathname;
39-
console.log(string);
4043
string = string.replace(`/${lang}/`, '');
41-
console.log(string);
4244
string = string.replace(`/${url[3]}`, `/${title}`);
43-
console.log(string);
4445
return string;
4546
}
4647
return Astro.url.pathname.replace(`/${lang}/`, '');

src/components/Post.astro

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ type Props = {
88
};
99
1010
const { post } = Astro.props;
11-
console.log(post.data.image)
12-
console.log(post.id)
1311
const [lang, ...slug] = post.id.split('/');
1412
---
1513

src/components/Project.astro

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
import { type CollectionEntry } from "astro:content";
3+
import { Image } from "astro:assets";
4+
import { getLangFromUrl } from "../i18n/utils";
5+
6+
type Props = {
7+
project: CollectionEntry<'projects'>;
8+
};
9+
10+
const { project } = Astro.props;
11+
const [lang, ...slug] = project.id.split('/');
12+
---
13+
14+
<article>
15+
<a href={`/${lang}/portfolio/${slug}`}>
16+
<Image
17+
src={project.data.image}
18+
width={600}
19+
height={600 / 1.5}
20+
alt={project.data.title}
21+
class="rounded-2xl shadow-xl mb-4 aspect-thumbnail object-cover"
22+
/>
23+
</a>
24+
<a
25+
href={`/${lang}/portfolio/${slug}`}
26+
class="text-4xl text-zinc-900 font-semibold inline-block"
27+
>
28+
<h2>{project.data.title}</h2>
29+
</a>
30+
<div class="tags grid grid-cols-6">
31+
{project.data.categories.map((tag: string) => (
32+
<p class="tag"><a href={`/${lang}/project-tags/${tag}`}>{tag}</a></p>
33+
))}
34+
</div>
35+
<div class="urls grid grid-cols-3">
36+
<a class="text-4xl text-zinc-900 font-semibold inline-block" href={`${project.data.docs}`}> DOCS </a>
37+
<a class="text-4xl text-zinc-900 font-semibold inline-block" href={`${project.data.url}`}> URL </a>
38+
<a class="text-4xl text-zinc-900 font-semibold inline-block" href={`${project.data.github}`}> GITHUB </a>
39+
</div>
40+
<p class="text-zinc-500 text-2xl line-clamp-2">
41+
{project.body}
42+
</p>
43+
</article>

src/components/ProjectList.astro

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
import type { CollectionEntry } from "astro:content";
3+
import Project from './Project.astro';
4+
type Props = {
5+
projects: CollectionEntry<'projects'>[];
6+
};
7+
8+
const { projects } = Astro.props;
9+
---
10+
11+
<div
12+
class="grid grid-cols-2 gap-x-16 gap-y-14 max-md:grid-cols-1 mb-24"
13+
>
14+
{projects.map((project) => <Project project={project} />)}
15+
</div>

0 commit comments

Comments
 (0)