feat: add company names with optional clickable links to experience section

- Add companyURL field to Experience model (optional)
- Update cv-content.html template to display company name with conditional link
- Add company-link CSS styling for clickable company names
- Add companyURL data for major companies (Olympic Broadcasting, AENA, SAP, Gigya, Everis, Indra)
- Companies without URLs display as plain text, maintaining flexibility

This addresses the issue where company names were missing from the experience section
and ensures links are included throughout the CV as per the original React version.
This commit is contained in:
juanatsap
2025-11-04 19:56:40 +00:00
parent b52d0b08b6
commit ed0760fe3f
5 changed files with 35 additions and 1 deletions
+6
View File
@@ -19,6 +19,7 @@
{ {
"position": "Senior SAP Technical Consultant", "position": "Senior SAP Technical Consultant",
"company": "Olympic Broadcasting Services", "company": "Olympic Broadcasting Services",
"companyURL": "https://www.obs.tv/",
"location": "Madrid, Spain", "location": "Madrid, Spain",
"startDate": "2021-01", "startDate": "2021-01",
"endDate": "present", "endDate": "present",
@@ -42,6 +43,7 @@
{ {
"position": "Senior Technical Consultant", "position": "Senior Technical Consultant",
"company": "AENA (via Accenture Spain)", "company": "AENA (via Accenture Spain)",
"companyURL": "https://www.aena.es/",
"location": "Madrid, Spain", "location": "Madrid, Spain",
"startDate": "2021-10", "startDate": "2021-10",
"endDate": "2023-07", "endDate": "2023-07",
@@ -73,6 +75,7 @@
{ {
"position": "Senior Technical Consultant", "position": "Senior Technical Consultant",
"company": "SAP", "company": "SAP",
"companyURL": "https://www.sap.com/",
"location": "Barcelona, Spain", "location": "Barcelona, Spain",
"startDate": "2019-10", "startDate": "2019-10",
"endDate": "2021-10", "endDate": "2021-10",
@@ -98,6 +101,7 @@
{ {
"position": "Junior Technical Consultant", "position": "Junior Technical Consultant",
"company": "Gigya", "company": "Gigya",
"companyURL": "https://www.gigya.com/",
"location": "Barcelona, Spain", "location": "Barcelona, Spain",
"startDate": "2017-10", "startDate": "2017-10",
"endDate": "2019-10", "endDate": "2019-10",
@@ -169,6 +173,7 @@
{ {
"position": "FullStack Developer", "position": "FullStack Developer",
"company": "Everis", "company": "Everis",
"companyURL": "https://www.everis.com/",
"location": "Barcelona, Spain", "location": "Barcelona, Spain",
"startDate": "2016-04", "startDate": "2016-04",
"endDate": "2016-11", "endDate": "2016-11",
@@ -189,6 +194,7 @@
{ {
"position": "Fullstack Developer", "position": "Fullstack Developer",
"company": "Indra", "company": "Indra",
"companyURL": "https://www.indracompany.com/",
"location": "Barcelona, Spain", "location": "Barcelona, Spain",
"startDate": "2015-09", "startDate": "2015-09",
"endDate": "2016-02", "endDate": "2016-02",
+6
View File
@@ -19,6 +19,7 @@
{ {
"position": "Consultor Técnico Senior SAP", "position": "Consultor Técnico Senior SAP",
"company": "Olympic Broadcasting Services", "company": "Olympic Broadcasting Services",
"companyURL": "https://www.obs.tv/",
"location": "Madrid, España", "location": "Madrid, España",
"startDate": "2021-01", "startDate": "2021-01",
"endDate": "presente", "endDate": "presente",
@@ -42,6 +43,7 @@
{ {
"position": "Consultor Técnico Senior", "position": "Consultor Técnico Senior",
"company": "AENA (vía Accenture Spain)", "company": "AENA (vía Accenture Spain)",
"companyURL": "https://www.aena.es/",
"location": "Madrid, España", "location": "Madrid, España",
"startDate": "2021-10", "startDate": "2021-10",
"endDate": "2023-07", "endDate": "2023-07",
@@ -73,6 +75,7 @@
{ {
"position": "Consultor Técnico Senior", "position": "Consultor Técnico Senior",
"company": "SAP", "company": "SAP",
"companyURL": "https://www.sap.com/",
"location": "Barcelona, España", "location": "Barcelona, España",
"startDate": "2019-10", "startDate": "2019-10",
"endDate": "2021-10", "endDate": "2021-10",
@@ -98,6 +101,7 @@
{ {
"position": "Consultor Técnico Junior", "position": "Consultor Técnico Junior",
"company": "Gigya", "company": "Gigya",
"companyURL": "https://www.gigya.com/",
"location": "Barcelona, España", "location": "Barcelona, España",
"startDate": "2017-10", "startDate": "2017-10",
"endDate": "2019-10", "endDate": "2019-10",
@@ -169,6 +173,7 @@
{ {
"position": "Desarrollador FullStack", "position": "Desarrollador FullStack",
"company": "Everis", "company": "Everis",
"companyURL": "https://www.everis.com/",
"location": "Barcelona, España", "location": "Barcelona, España",
"startDate": "2016-04", "startDate": "2016-04",
"endDate": "2016-11", "endDate": "2016-11",
@@ -189,6 +194,7 @@
{ {
"position": "Desarrollador Fullstack", "position": "Desarrollador Fullstack",
"company": "Indra", "company": "Indra",
"companyURL": "https://www.indracompany.com/",
"location": "Barcelona, España", "location": "Barcelona, España",
"startDate": "2015-09", "startDate": "2015-09",
"endDate": "2016-02", "endDate": "2016-02",
+1
View File
@@ -43,6 +43,7 @@ type Personal struct {
type Experience struct { type Experience struct {
Position string `json:"position"` Position string `json:"position"`
Company string `json:"company"` Company string `json:"company"`
CompanyURL string `json:"companyURL,omitempty"` // Optional URL for company website
CompanyLogo string `json:"companyLogo"` CompanyLogo string `json:"companyLogo"`
Location string `json:"location"` Location string `json:"location"`
StartDate string `json:"startDate"` StartDate string `json:"startDate"`
+12
View File
@@ -1026,3 +1026,15 @@ a:focus {
font-size: 1em; font-size: 1em;
} }
} }
/* Company link styling */
.company-link {
color: var(--accent-blue);
font-weight: 500;
text-decoration: none;
}
.company-link:hover {
text-decoration: underline;
color: #0052a3;
}
+10 -1
View File
@@ -73,7 +73,16 @@
<div class="experience-item"> <div class="experience-item">
<div class="experience-header"> <div class="experience-header">
<div class="experience-title-line"> <div class="experience-title-line">
<h4 class="position">{{.Position}} / {{if eq $.Lang "es"}}Analista Programador{{else}}Analyst Programmer{{end}}</h4> <h4 class="position">
{{.Position}} / {{if eq $.Lang "es"}}Analista Programador{{else}}Analyst Programmer{{end}}
{{if .Company}}
{{if .CompanyURL}}
- <a href="{{.CompanyURL}}" target="_blank" rel="noopener noreferrer" class="company-link">{{.Company}}</a>
{{else}}
- {{.Company}}
{{end}}
{{end}}
</h4>
<span class="experience-period">{{.StartDate}} / {{if .Current}}{{if eq $.Lang "es"}}presente{{else}}now{{end}}{{else}}{{.EndDate}}{{end}} - ({{.Location}})</span> <span class="experience-period">{{.StartDate}} / {{if .Current}}{{if eq $.Lang "es"}}presente{{else}}now{{end}}{{else}}{{.EndDate}}{{end}} - ({{.Location}})</span>
</div> </div>
</div> </div>