Files
juanatsap 9636b3659f refactor: Extract all hardcoded content to JSON files
- Move all bilingual text from templates to UI JSON (labels, buttons, modals)
- Move skills summary paragraph to CV JSON with HTML support
- Add new UI sections: navigation, viewControls, sections, footer, portfolio,
  pdfModal, shortcutsModal, infoModal, widgets
- Update Go structs to match expanded JSON structure
- Add template.HTML type for CV.SkillsSummary field
- Add JSON content validation test (70-json-content-validation.test.mjs)

Templates now contain only structural logic (CSS classes, HTML attributes)
while all user-visible text loads from JSON files for proper i18n support.
2025-11-30 10:13:37 +00:00

34 lines
1.6 KiB
HTML

{{define "section-references"}}
<!-- References Section -->
{{if .CV.References}}
<section id="references" class="cv-section component-wrapper">
<!-- Actual Content -->
<div class="actual-content">
<details open>
<summary>
<h3 class="section-title">
<iconify-icon icon="mdi:link-variant" width="24" height="24" class="section-icon"></iconify-icon>
{{.UI.Navigation.References}}
</h3>
</summary>
{{range .CV.References}}
<div class="reference-item">
{{if .TextBefore}}{{.TextBefore}} {{end}}{{if eq .Action "downloadPDF"}}<a href="/cv-jamr-{{$.CurrentYear}}-{{$.Lang}}.pdf" target="_blank" rel="noopener noreferrer"><strong>{{if .LinkText}}{{.LinkText}}{{else}}{{.Title}}{{end}}</strong></a>{{else}}<a href="{{.URL}}" {{if and (eq .Type "cv") (ne .URL "/?lang=en") (ne .URL "/?lang=es")}}download{{else}}target="_blank" rel="noopener noreferrer"{{end}}><strong>{{if .LinkText}}{{.LinkText}}{{else}}{{.Title}}{{end}}</strong></a>{{end}}{{if .TextAfter}} {{.TextAfter}}{{end}}
</div>
{{end}}
</details>
</div>
<!-- Skeleton Content -->
<div class="skeleton-content">
<div class="skeleton-section">
<div class="skeleton skeleton-section-title"></div>
<div class="skeleton skeleton-reference-item"></div>
<div class="skeleton skeleton-reference-item" style="width: 80%;"></div>
<div class="skeleton skeleton-reference-item" style="width: 90%;"></div>
</div>
</div>
</section>
{{end}}
{{end}}