improvements
This commit is contained in:
2
Makefile
2
Makefile
@@ -1,6 +1,6 @@
|
|||||||
templ:
|
templ:
|
||||||
@templ generate
|
@templ generate
|
||||||
run:
|
run:
|
||||||
@npx tailwindcss -i ./resources/global.css -o ./styles/output.css
|
@npx tailwindcss -i ./resources/global.css -o ./resources/output.css
|
||||||
@templ generate
|
@templ generate
|
||||||
@go run ./cmd/main.go
|
@go run ./cmd/main.go
|
||||||
@@ -6,9 +6,6 @@ templ Header() {
|
|||||||
<a href="/" class="header-item">
|
<a href="/" class="header-item">
|
||||||
ABOUT
|
ABOUT
|
||||||
</a>
|
</a>
|
||||||
<a href="/skills" class="header-item">
|
|
||||||
SKILLS
|
|
||||||
</a>
|
|
||||||
<a href="/resume" class="header-item">
|
<a href="/resume" class="header-item">
|
||||||
RESUME
|
RESUME
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ func Header() templ.Component {
|
|||||||
templ_7745c5c3_Var1 = templ.NopComponent
|
templ_7745c5c3_Var1 = templ.NopComponent
|
||||||
}
|
}
|
||||||
ctx = templ.ClearChildren(ctx)
|
ctx = templ.ClearChildren(ctx)
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<header class=\"header site-container pt-1 pb-1\"><nav class=\"header-nav\"><a href=\"/\" class=\"header-item\">ABOUT</a> <a href=\"/skills\" class=\"header-item\">SKILLS</a> <a href=\"/resume\" class=\"header-item\">RESUME</a> <a class=\"header-item\" href=\"https://medium.com/@berkay.akyazi\" target=\"_blank\">BLOG</a></nav><hr></header>")
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<header class=\"header site-container pt-1 pb-1\"><nav class=\"header-nav\"><a href=\"/\" class=\"header-item\">ABOUT</a> <a href=\"/resume\" class=\"header-item\">RESUME</a> <a class=\"header-item\" href=\"https://medium.com/@berkay.akyazi\" target=\"_blank\">BLOG</a></nav><hr></header>")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ templ Home() {
|
|||||||
<div class="text-lg">
|
<div class="text-lg">
|
||||||
<p class="py-6">
|
<p class="py-6">
|
||||||
<i>
|
<i>
|
||||||
You can access the source code of this resume website by clicking <a href="https://github.com/bakyazi/nextjs-resume" target="_blank" class="text-cyan-700 text-xl">here</a>.
|
You can access the source code of this resume website by clicking <a href="https://github.com/bakyazi/gotemplresume" target="_blank" class="text-cyan-700 text-xl">here</a>.
|
||||||
</i>
|
</i>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ func Home() templ.Component {
|
|||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div><div class=\"text-justify text-lg\"><h2 class=\"text-2xl pb-4\">Hi, I am <b class=\"text-cyan-700\">Berkay Akyazı</b></h2><p class=\"pb-2\">I live in <b class=\"text-cyan-700 text-xl\">Ankara, Turkey</b>. I'm a full stack developer. I am always looking for new challenges and opportunities. I am passionate about learning new technologies and are constantly trying to improve.</p><br><p class=\"pb-2\">I've been learning programming since I was a kid. When I was in elementary school, I started using <b class=\"text-cyan-700 text-xl\">HTML, CSS,</b> and <b class=\"text-cyan-700 text-xl\">JavaScript</b> a little. After I started studying, I learned about the programming languages <b class=\"text-cyan-700 text-xl\">Python</b> and <b class=\"text-cyan-700 text-xl\">C / C++</b>, and my passion for programming began. After that, I met <b class=\"text-cyan-700 text-xl\">Java</b> in a summer internship. Since then, I've been writing Java in my professional career.</p><br><p class=\"pb-2\">In recent times, I prefer Golang for software development. I am fan of its ability to facilitate rapid development, in addition to being both simple and powerful.</p><br><p class=\"pb-2\">Besides Golang and Java, I use <b class=\"text-cyan-700 text-xl\">Python, React</b> and <b class=\"text-cyan-700 text-xl\">Vue.js</b> in my professional career and everyday life. I love Python for small hands-on projects and web crawls. React is usually my first choice for front-end work. I am currently looking for go + templ + htmx tech stack and I am very passionate about it.</p></div><div class=\"mt-20\"><img src=\"resources/me.jpg\" alt=\"sorry i can't find nice pic for here\"></div><div class=\"text-lg\"><p class=\"py-6\"><i>You can access the source code of this resume website by clicking <a href=\"https://github.com/bakyazi/nextjs-resume\" target=\"_blank\" class=\"text-cyan-700 text-xl\">here</a>.</i></p></div></div></div>")
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div><div class=\"text-justify text-lg\"><h2 class=\"text-2xl pb-4\">Hi, I am <b class=\"text-cyan-700\">Berkay Akyazı</b></h2><p class=\"pb-2\">I live in <b class=\"text-cyan-700 text-xl\">Ankara, Turkey</b>. I'm a full stack developer. I am always looking for new challenges and opportunities. I am passionate about learning new technologies and are constantly trying to improve.</p><br><p class=\"pb-2\">I've been learning programming since I was a kid. When I was in elementary school, I started using <b class=\"text-cyan-700 text-xl\">HTML, CSS,</b> and <b class=\"text-cyan-700 text-xl\">JavaScript</b> a little. After I started studying, I learned about the programming languages <b class=\"text-cyan-700 text-xl\">Python</b> and <b class=\"text-cyan-700 text-xl\">C / C++</b>, and my passion for programming began. After that, I met <b class=\"text-cyan-700 text-xl\">Java</b> in a summer internship. Since then, I've been writing Java in my professional career.</p><br><p class=\"pb-2\">In recent times, I prefer Golang for software development. I am fan of its ability to facilitate rapid development, in addition to being both simple and powerful.</p><br><p class=\"pb-2\">Besides Golang and Java, I use <b class=\"text-cyan-700 text-xl\">Python, React</b> and <b class=\"text-cyan-700 text-xl\">Vue.js</b> in my professional career and everyday life. I love Python for small hands-on projects and web crawls. React is usually my first choice for front-end work. I am currently looking for go + templ + htmx tech stack and I am very passionate about it.</p></div><div class=\"mt-20\"><img src=\"resources/me.jpg\" alt=\"sorry i can't find nice pic for here\"></div><div class=\"text-lg\"><p class=\"py-6\"><i>You can access the source code of this resume website by clicking <a href=\"https://github.com/bakyazi/gotemplresume\" target=\"_blank\" class=\"text-cyan-700 text-xl\">here</a>.</i></p></div></div></div>")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ templ Resume(r dto.Resume) {
|
|||||||
<a href="/resources/cv.pdf" target="_blank">
|
<a href="/resources/cv.pdf" target="_blank">
|
||||||
<div class="flex justify-end items-center text-cyan-700 hover:bg-cyan-700 hover:bg-opacity-60 p-1.5 rounded-md hover:text-white"
|
<div class="flex justify-end items-center text-cyan-700 hover:bg-cyan-700 hover:bg-opacity-60 p-1.5 rounded-md hover:text-white"
|
||||||
>
|
>
|
||||||
<label class="cursor-pointer">Download CV</label>
|
<label class="cursor-pointer">
|
||||||
|
<i class="fa-solid fa-download"></i>
|
||||||
|
Download CV</label>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func Resume(r dto.Resume) templ.Component {
|
|||||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||||
}
|
}
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"site-container\"><div class=\"flex justify-end items-center space-x-4\"><a href=\"/resources/cv.pdf\" target=\"_blank\"><div class=\"flex justify-end items-center text-cyan-700 hover:bg-cyan-700 hover:bg-opacity-60 p-1.5 rounded-md hover:text-white\"><label class=\"cursor-pointer\">Download CV</label></div></a></div><div>")
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"site-container\"><div class=\"flex justify-end items-center space-x-4\"><a href=\"/resources/cv.pdf\" target=\"_blank\"><div class=\"flex justify-end items-center text-cyan-700 hover:bg-cyan-700 hover:bg-opacity-60 p-1.5 rounded-md hover:text-white\"><label class=\"cursor-pointer\"><i class=\"fa-solid fa-download\"></i> Download CV</label></div></a></div><div>")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,68 +0,0 @@
|
|||||||
package pages
|
|
||||||
|
|
||||||
import "github.com/bakyazi/gotemplresume/dto"
|
|
||||||
import "github.com/bakyazi/gotemplresume/pages/components"
|
|
||||||
|
|
||||||
templ Skills(r dto.Resume) {
|
|
||||||
@Base(){
|
|
||||||
<div class="site-container">
|
|
||||||
<div class="skills-sections">
|
|
||||||
<div class="skills-section">
|
|
||||||
<label class="text-left text-cyan-700">Programming Languages</label>
|
|
||||||
<div class="skills-container">
|
|
||||||
for _, pl := range r.Skills.ProgrammingLanguages {
|
|
||||||
<div class="rate-card">
|
|
||||||
{pl.Name}
|
|
||||||
@components.Rating(int(pl.Rank))
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="skills-section">
|
|
||||||
<label class="text-left text-cyan-700">Frameworks</label>
|
|
||||||
<div class="skills-container">
|
|
||||||
for _, pl := range r.Skills.Frameworks {
|
|
||||||
<div class="rate-card">
|
|
||||||
{pl.Name}
|
|
||||||
@components.Rating(int(pl.Rank))
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="skills-section">
|
|
||||||
<label class="text-left text-cyan-700">Operating Systems</label>
|
|
||||||
<div class="skills-container">
|
|
||||||
for _, pl := range r.Skills.OperatingSystems {
|
|
||||||
<div class="rate-card">
|
|
||||||
{pl.Name}
|
|
||||||
@components.Rating(int(pl.Rank))
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="skills-section">
|
|
||||||
<label class="text-left text-cyan-700">CI/CD</label>
|
|
||||||
<div class="skills-container">
|
|
||||||
for _, pl := range r.Skills.CiCd {
|
|
||||||
<div class="rate-card">
|
|
||||||
{pl.Name}
|
|
||||||
@components.Rating(int(pl.Rank))
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="skills-section">
|
|
||||||
<label class="text-left text-cyan-700">Tools</label>
|
|
||||||
<div class="skills-container">
|
|
||||||
for _, pl := range r.Skills.Tools {
|
|
||||||
<div class="rate-card">
|
|
||||||
{pl.Name}
|
|
||||||
@components.Rating(int(pl.Rank))
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
// Code generated by templ - DO NOT EDIT.
|
|
||||||
|
|
||||||
// templ: version: v0.2.543
|
|
||||||
package pages
|
|
||||||
|
|
||||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
|
||||||
|
|
||||||
import "github.com/a-h/templ"
|
|
||||||
import "context"
|
|
||||||
import "io"
|
|
||||||
import "bytes"
|
|
||||||
|
|
||||||
import "github.com/bakyazi/gotemplresume/dto"
|
|
||||||
import "github.com/bakyazi/gotemplresume/pages/components"
|
|
||||||
|
|
||||||
func Skills(r dto.Resume) templ.Component {
|
|
||||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
|
||||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
|
||||||
if !templ_7745c5c3_IsBuffer {
|
|
||||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
|
||||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
|
||||||
}
|
|
||||||
ctx = templ.InitializeContext(ctx)
|
|
||||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
|
||||||
if templ_7745c5c3_Var1 == nil {
|
|
||||||
templ_7745c5c3_Var1 = templ.NopComponent
|
|
||||||
}
|
|
||||||
ctx = templ.ClearChildren(ctx)
|
|
||||||
templ_7745c5c3_Var2 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
|
||||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
|
||||||
if !templ_7745c5c3_IsBuffer {
|
|
||||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
|
||||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"site-container\"><div class=\"skills-sections\"><div class=\"skills-section\"><label class=\"text-left text-cyan-700\">Programming Languages</label><div class=\"skills-container\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
for _, pl := range r.Skills.ProgrammingLanguages {
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"rate-card\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
var templ_7745c5c3_Var3 string
|
|
||||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(pl.Name)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/skills.templ`, Line: 14, Col: 36}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
templ_7745c5c3_Err = components.Rating(int(pl.Rank)).Render(ctx, templ_7745c5c3_Buffer)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"skills-section\"><label class=\"text-left text-cyan-700\">Frameworks</label><div class=\"skills-container\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
for _, pl := range r.Skills.Frameworks {
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"rate-card\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
var templ_7745c5c3_Var4 string
|
|
||||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(pl.Name)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/skills.templ`, Line: 25, Col: 36}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
templ_7745c5c3_Err = components.Rating(int(pl.Rank)).Render(ctx, templ_7745c5c3_Buffer)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"skills-section\"><label class=\"text-left text-cyan-700\">Operating Systems</label><div class=\"skills-container\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
for _, pl := range r.Skills.OperatingSystems {
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"rate-card\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
var templ_7745c5c3_Var5 string
|
|
||||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(pl.Name)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/skills.templ`, Line: 36, Col: 36}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
templ_7745c5c3_Err = components.Rating(int(pl.Rank)).Render(ctx, templ_7745c5c3_Buffer)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"skills-section\"><label class=\"text-left text-cyan-700\">CI/CD</label><div class=\"skills-container\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
for _, pl := range r.Skills.CiCd {
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"rate-card\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
var templ_7745c5c3_Var6 string
|
|
||||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(pl.Name)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/skills.templ`, Line: 47, Col: 36}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
templ_7745c5c3_Err = components.Rating(int(pl.Rank)).Render(ctx, templ_7745c5c3_Buffer)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"skills-section\"><label class=\"text-left text-cyan-700\">Tools</label><div class=\"skills-container\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
for _, pl := range r.Skills.Tools {
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"rate-card\">")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
var templ_7745c5c3_Var7 string
|
|
||||||
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(pl.Name)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/skills.templ`, Line: 58, Col: 36}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
templ_7745c5c3_Err = components.Rating(int(pl.Rank)).Render(ctx, templ_7745c5c3_Buffer)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div></div>")
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
if !templ_7745c5c3_IsBuffer {
|
|
||||||
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
|
|
||||||
}
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
})
|
|
||||||
templ_7745c5c3_Err = Base().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
|
|
||||||
if templ_7745c5c3_Err != nil {
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
}
|
|
||||||
if !templ_7745c5c3_IsBuffer {
|
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
|
||||||
}
|
|
||||||
return templ_7745c5c3_Err
|
|
||||||
})
|
|
||||||
}
|
|
||||||
BIN
resources/cv.pdf
BIN
resources/cv.pdf
Binary file not shown.
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
@layer components {
|
@layer components {
|
||||||
.site-container {
|
.site-container {
|
||||||
@apply max-w-2xl mx-auto px-6 font-mono py-24
|
@apply max-w-4xl mx-auto px-6 font-mono py-24
|
||||||
}
|
}
|
||||||
|
|
||||||
.site-3xl-container {
|
.site-3xl-container {
|
||||||
@@ -69,19 +69,6 @@
|
|||||||
@apply mr-2
|
@apply mr-2
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skills */
|
|
||||||
.skills-container {
|
|
||||||
@apply grid grid-cols-3 gap-4 place-content-end pt-4
|
|
||||||
}
|
|
||||||
|
|
||||||
.rate-card {
|
|
||||||
@apply basis-1/3 flex flex-col justify-center
|
|
||||||
}
|
|
||||||
|
|
||||||
.skills-section {
|
|
||||||
@apply pb-5
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Timeline */
|
/* Timeline */
|
||||||
.timeline {
|
.timeline {
|
||||||
|
|||||||
@@ -547,7 +547,7 @@ video {
|
|||||||
.site-container {
|
.site-container {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
max-width: 42rem;
|
max-width: 56rem;
|
||||||
padding-left: 1.5rem;
|
padding-left: 1.5rem;
|
||||||
padding-right: 1.5rem;
|
padding-right: 1.5rem;
|
||||||
padding-top: 6rem;
|
padding-top: 6rem;
|
||||||
@@ -735,27 +735,6 @@ video {
|
|||||||
margin-right: 0.5rem;
|
margin-right: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skills */
|
|
||||||
|
|
||||||
.skills-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
||||||
place-content: end;
|
|
||||||
gap: 1rem;
|
|
||||||
padding-top: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rate-card {
|
|
||||||
display: flex;
|
|
||||||
flex-basis: 33.333333%;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skills-section {
|
|
||||||
padding-bottom: 1.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Timeline */
|
/* Timeline */
|
||||||
|
|
||||||
.timeline {
|
.timeline {
|
||||||
@@ -938,10 +917,6 @@ video {
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid {
|
|
||||||
display: grid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.h-11 {
|
.h-11 {
|
||||||
height: 2.75rem;
|
height: 2.75rem;
|
||||||
}
|
}
|
||||||
@@ -958,14 +933,14 @@ video {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.max-w-2xl {
|
|
||||||
max-width: 42rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.max-w-3xl {
|
.max-w-3xl {
|
||||||
max-width: 48rem;
|
max-width: 48rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.max-w-4xl {
|
||||||
|
max-width: 56rem;
|
||||||
|
}
|
||||||
|
|
||||||
.flex-auto {
|
.flex-auto {
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
@@ -978,18 +953,10 @@ video {
|
|||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.basis-1\/3 {
|
|
||||||
flex-basis: 33.333333%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cursor-pointer {
|
.cursor-pointer {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-cols-3 {
|
|
||||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-row {
|
.flex-row {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
@@ -998,10 +965,6 @@ video {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.place-content-end {
|
|
||||||
place-content: end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.items-center {
|
.items-center {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
@@ -1014,10 +977,6 @@ video {
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gap-4 {
|
|
||||||
gap: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rounded-full {
|
.rounded-full {
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,92 +65,5 @@
|
|||||||
"location": "Ümitköy Anatolian High School",
|
"location": "Ümitköy Anatolian High School",
|
||||||
"description": "There is nothing to say so much. It was an ordinary school but I have good memories there."
|
"description": "There is nothing to say so much. It was an ordinary school but I have good memories there."
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"skills": {
|
|
||||||
"programmingLanguages": [
|
|
||||||
{
|
|
||||||
"name": "Golang",
|
|
||||||
"rank": 4.5,
|
|
||||||
"key": "golang"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Java",
|
|
||||||
"rank": 4.5,
|
|
||||||
"key": "java"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Python",
|
|
||||||
"rank": 4.0,
|
|
||||||
"key": "python"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "JavaScript",
|
|
||||||
"rank": 3.5,
|
|
||||||
"key": "javascript"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"frameworks": [
|
|
||||||
{
|
|
||||||
"name": "Spring",
|
|
||||||
"rank": 3.5,
|
|
||||||
"key": "spring"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "React",
|
|
||||||
"rank": 3,
|
|
||||||
"key": "react"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Vue",
|
|
||||||
"rank": 2,
|
|
||||||
"key": "vue"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"operatingSystems": [
|
|
||||||
{
|
|
||||||
"name": "Ubuntu",
|
|
||||||
"rank": 4.5,
|
|
||||||
"key": "ubuntu"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "CentOS",
|
|
||||||
"rank": 4,
|
|
||||||
"key": "centos"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "MacOS",
|
|
||||||
"rank": 3.5,
|
|
||||||
"key": "macos"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ciCd": [
|
|
||||||
{
|
|
||||||
"name": "Jenkins",
|
|
||||||
"rank": 3.5,
|
|
||||||
"key": "jenkins"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "TravisCI",
|
|
||||||
"rank": 2,
|
|
||||||
"key": "travisci"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tools": [
|
|
||||||
{
|
|
||||||
"name": "JIRA",
|
|
||||||
"rank": 5,
|
|
||||||
"key": "jira"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Bitbucket",
|
|
||||||
"rank": 5,
|
|
||||||
"key": "bitbucket"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "GitHub",
|
|
||||||
"rank": 5,
|
|
||||||
"key": "github"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,6 @@ func Init(e *echo.Echo) {
|
|||||||
router := &Router{}
|
router := &Router{}
|
||||||
e.Static("/resources", "resources")
|
e.Static("/resources", "resources")
|
||||||
e.GET("/", router.Home)
|
e.GET("/", router.Home)
|
||||||
e.GET("/skills", router.Skills)
|
|
||||||
e.GET("/resume", router.Resume)
|
e.GET("/resume", router.Resume)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,25 +22,6 @@ func (r *Router) Home(c echo.Context) error {
|
|||||||
return pages.Home().Render(c.Request().Context(), c.Response().Writer)
|
return pages.Home().Render(c.Request().Context(), c.Response().Writer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Router) Skills(c echo.Context) error {
|
|
||||||
|
|
||||||
resumeFile, err := os.Open("resources/resume.json")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer resumeFile.Close()
|
|
||||||
|
|
||||||
resumeDecoder := json.NewDecoder(resumeFile)
|
|
||||||
|
|
||||||
var resume dto.Resume
|
|
||||||
|
|
||||||
err = resumeDecoder.Decode(&resume)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return pages.Skills(resume).Render(c.Request().Context(), c.Response().Writer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Router) Resume(c echo.Context) error {
|
func (r *Router) Resume(c echo.Context) error {
|
||||||
|
|
||||||
resumeFile, err := os.Open("resources/resume.json")
|
resumeFile, err := os.Open("resources/resume.json")
|
||||||
|
|||||||
1364
styles/output.css
1364
styles/output.css
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user