85 lines
No EOL
2.4 KiB
HTML
85 lines
No EOL
2.4 KiB
HTML
{{ $csvFile := readFile "content/liens/blogroll.csv" }}
|
|
{{ $lines := split $csvFile "\n" }}
|
|
{{ $headers := split (index $lines 0) ";" }}
|
|
|
|
<style>
|
|
.blogroll {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* Responsive grid */
|
|
gap: 10px; /* Space between grid items */
|
|
margin: 0 0;
|
|
}
|
|
.blogroll-item a {
|
|
text-decoration: none;
|
|
box-shadow: none;
|
|
}
|
|
.blogroll-item {
|
|
padding: 0;
|
|
border-radius: 8px;
|
|
background-color: var(--entry);
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
margin: 0;
|
|
padding: 10px;
|
|
transition: transform 0.2s, box-shadow 0.2s;
|
|
}
|
|
.blogroll-item:hover {
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
|
|
}
|
|
.blogroll-name {
|
|
font-weight: bold;
|
|
font-size: 1.1rem;
|
|
margin-bottom: 0.5rem;
|
|
text-decoration: none;
|
|
color: var(--primary);
|
|
}
|
|
.blogroll-name a:hover {
|
|
color: var(--tertiary);
|
|
}
|
|
.blogroll-desc {
|
|
flex-grow: 1; /* Allow description to take available space */
|
|
font-size: 0.9rem;
|
|
color: var(--secondary);
|
|
}
|
|
.blogroll-desc p {
|
|
margin: 0;
|
|
}
|
|
.blogroll-feed {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
</style>
|
|
|
|
<div class="blogroll">
|
|
{{ range $i, $line := $lines }}
|
|
{{ if and (ne $i 0) (ne $line "") }}
|
|
{{ $cells := split $line ";" }}
|
|
{{ $rowData := dict }}
|
|
|
|
{{ range $j, $header := $headers }}
|
|
{{ $cellValue := index $cells $j | default "" }}
|
|
{{ $rowData = merge $rowData (dict $header $cellValue) }}
|
|
{{ end }}
|
|
|
|
<div class="blogroll-item">
|
|
<div class="blogroll-title">
|
|
{{ $siteUrl := index $rowData "url-site" }}
|
|
{{ $domain := replaceRE `^https?://([^/]+)/?.*$` "$1" $siteUrl }}
|
|
{{ $domain = replaceRE `\.[^.]+$` "" $domain }}
|
|
<img src="/blogroll-favicons/{{ $domain }}.png" alt="Favicon for {{ $domain }}" >
|
|
<a href="{{ index $rowData "url-site" }}" target="_blank">{{ index $rowData "nom" }}</a>
|
|
<span> - </span>
|
|
{{ if isset $rowData "url-feed" }}
|
|
<a class="blogroll-feed" href="{{ index $rowData "url-feed" }}" target="_blank">Feed</a>
|
|
{{ end }}
|
|
</div>
|
|
<div class="blogroll-feed">
|
|
</div>
|
|
<div class="blogroll-desc">
|
|
<p>{{ index $rowData "description" }}</p>
|
|
</div>
|
|
|
|
</div>
|
|
{{ end }}
|
|
{{ end }}
|
|
</div> |