Initial commit
This commit is contained in:
commit
93e0de7a04
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
public
|
0
.hugo_build.lock
Normal file
0
.hugo_build.lock
Normal file
5
archetypes/default.md
Normal file
5
archetypes/default.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
date = '{{ .Date }}'
|
||||
draft = true
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
+++
|
91
assets/css/main.css
Normal file
91
assets/css/main.css
Normal file
|
@ -0,0 +1,91 @@
|
|||
@font-face {
|
||||
font-family: 'atkinson';
|
||||
src: url('/fonts/AtkinsonHyperlegibleNext-Regular.otf') format('opentype');
|
||||
}
|
||||
|
||||
:root {
|
||||
--highlight-color: oklch(46.11% 0.198 298.4);
|
||||
}
|
||||
|
||||
body {
|
||||
color: #222;
|
||||
font-family: atkinson, sans-serif;
|
||||
line-height: 1.5;
|
||||
margin-inline: auto;
|
||||
padding-inline: 20px;
|
||||
max-width: 600px;
|
||||
width: auto;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: var(--highlight-color);
|
||||
}
|
||||
|
||||
header {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer {
|
||||
font-size: 0.9rem;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
div.filter {
|
||||
text-align: center;
|
||||
margin-block-end: 20px;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-inline: auto;
|
||||
border-collapse: collapse;
|
||||
table-layout: fixed;
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
table thead {
|
||||
color: var(--highlight-color);
|
||||
}
|
||||
|
||||
table thead th:nth-child(1) {
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
table tbody td {
|
||||
padding: 2px 8px;
|
||||
}
|
||||
|
||||
table tbody td:nth-child(1) {
|
||||
background-color: oklch(94.1% 0.046 305.24);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table thead th {
|
||||
border-bottom: 1px solid #222;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
table {
|
||||
border-bottom: 1px solid #222;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #00e;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
table tbody tr.exact td {
|
||||
background: oklch(95% 0.07 92.39);
|
||||
}
|
42
assets/js/main.js
Normal file
42
assets/js/main.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
let fitler = document.querySelector("#filter");
|
||||
let lastFilterValue = "";
|
||||
|
||||
|
||||
function applyFilter(fval) {
|
||||
if (fval == "") {
|
||||
document.querySelectorAll('tr[data-role="country"]').forEach((x) => {
|
||||
x.classList.remove("hidden", "exact");
|
||||
})
|
||||
}
|
||||
|
||||
const fvalLower = fval.toLowerCase();
|
||||
|
||||
document.querySelectorAll('tr[data-role="country"]').forEach((x) => {
|
||||
const matches = (x.dataset["code"].indexOf(fvalLower) != -1) ||
|
||||
(x.dataset["name"].indexOf(fvalLower) != -1);
|
||||
|
||||
if (!matches) {
|
||||
x.classList.add("hidden");
|
||||
x.classList.remove("exact");
|
||||
} else {
|
||||
x.classList.remove("hidden");
|
||||
|
||||
if ((x.dataset["code"] == fvalLower) || (x.dataset["name"] == fvalLower)) {
|
||||
x.classList.add("exact");
|
||||
} else {
|
||||
x.classList.remove("exact");
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
filter.addEventListener("keyup", (ev) => {
|
||||
ev.preventDefault();
|
||||
|
||||
if (filter.value == lastFilterValue) {
|
||||
return;
|
||||
}
|
||||
lastFilterValue = filter.value;
|
||||
|
||||
applyFilter(filter.value);
|
||||
})
|
0
content/_index.md
Normal file
0
content/_index.md
Normal file
1
data/cclist.json
Normal file
1
data/cclist.json
Normal file
File diff suppressed because one or more lines are too long
3
hugo.toml
Normal file
3
hugo.toml
Normal file
|
@ -0,0 +1,3 @@
|
|||
baseURL = 'https://example.org/'
|
||||
languageCode = 'en-us'
|
||||
title = '2LCC'
|
BIN
layouts/.DS_Store
vendored
Normal file
BIN
layouts/.DS_Store
vendored
Normal file
Binary file not shown.
17
layouts/_default/baseof.html
Normal file
17
layouts/_default/baseof.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ site.Language.LanguageCode }}" dir="{{ or site.Language.LanguageDirection `ltr` }}">
|
||||
<head>
|
||||
{{ partial "head.html" . }}
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
{{ partial "header.html" . }}
|
||||
</header>
|
||||
<main>
|
||||
{{ block "main" . }}{{ end }}
|
||||
</main>
|
||||
<footer>
|
||||
{{ partial "footer.html" . }}
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
29
layouts/_default/home.html
Normal file
29
layouts/_default/home.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
|
||||
<div class="filter">
|
||||
<input placeholder="filter" id="filter">
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Code</th>
|
||||
<th>Country</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range .Site.Data.cclist }}
|
||||
<tr data-role="country" data-code="{{lower .Code}}" data-name="{{lower .Name}}">
|
||||
<td>{{ .Code }}</td>
|
||||
<td>{{ .Name }}</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{ range site.RegularPages }}
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
||||
{{ .Summary }}
|
||||
{{ end }}
|
||||
{{ end }}
|
8
layouts/_default/list.html
Normal file
8
layouts/_default/list.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{{ define "main" }}
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{ .Content }}
|
||||
{{ range .Pages }}
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
||||
{{ .Summary }}
|
||||
{{ end }}
|
||||
{{ end }}
|
10
layouts/_default/single.html
Normal file
10
layouts/_default/single.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
{{ define "main" }}
|
||||
<h1>{{ .Title }}</h1>
|
||||
|
||||
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
|
||||
{{ $dateHuman := .Date | time.Format ":date_long" }}
|
||||
<time datetime="{{ $dateMachine }}">{{ $dateHuman }}</time>
|
||||
|
||||
{{ .Content }}
|
||||
{{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
|
||||
{{ end }}
|
1
layouts/partials/footer.html
Normal file
1
layouts/partials/footer.html
Normal file
|
@ -0,0 +1 @@
|
|||
<p>Last updated {{ now.Year }}. <a href="https://web.archive.org/web/20170825133505/http://data.okfn.org/data/core/country-list">Source</a></p>
|
5
layouts/partials/head.html
Normal file
5
layouts/partials/head.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
|
||||
{{ partialCached "head/css.html" . }}
|
||||
{{ partialCached "head/js.html" . }}
|
9
layouts/partials/head/css.html
Normal file
9
layouts/partials/head/css.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
{{- with resources.Get "css/main.css" }}
|
||||
{{- if eq hugo.Environment "development" }}
|
||||
<link rel="stylesheet" href="{{ .RelPermalink }}">
|
||||
{{- else }}
|
||||
{{- with . | minify | fingerprint }}
|
||||
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
12
layouts/partials/head/js.html
Normal file
12
layouts/partials/head/js.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
{{- with resources.Get "js/main.js" }}
|
||||
{{- if eq hugo.Environment "development" }}
|
||||
{{- with . | js.Build }}
|
||||
<script src="{{ .RelPermalink }}" type="module"></script>
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- $opts := dict "minify" true }}
|
||||
{{- with . | js.Build $opts | fingerprint }}
|
||||
<script src="{{ .RelPermalink }}" integrity="{{- .Data.Integrity }}" crossorigin="anonymous" type="module"></script>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
2
layouts/partials/header.html
Normal file
2
layouts/partials/header.html
Normal file
|
@ -0,0 +1,2 @@
|
|||
<h1>{{ site.Title }}</h1>
|
||||
{{ partial "menu.html" (dict "menuID" "main" "page" .) }}
|
51
layouts/partials/menu.html
Normal file
51
layouts/partials/menu.html
Normal file
|
@ -0,0 +1,51 @@
|
|||
{{- /*
|
||||
Renders a menu for the given menu ID.
|
||||
|
||||
@context {page} page The current page.
|
||||
@context {string} menuID The menu ID.
|
||||
|
||||
@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }}
|
||||
*/}}
|
||||
|
||||
{{- $page := .page }}
|
||||
{{- $menuID := .menuID }}
|
||||
|
||||
{{- with index site.Menus $menuID }}
|
||||
<nav>
|
||||
<ul>
|
||||
{{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
|
||||
</ul>
|
||||
</nav>
|
||||
{{- end }}
|
||||
|
||||
{{- define "partials/inline/menu/walk.html" }}
|
||||
{{- $page := .page }}
|
||||
{{- range .menuEntries }}
|
||||
{{- $attrs := dict "href" .URL }}
|
||||
{{- if $page.IsMenuCurrent .Menu . }}
|
||||
{{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }}
|
||||
{{- else if $page.HasMenuCurrent .Menu .}}
|
||||
{{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }}
|
||||
{{- end }}
|
||||
{{- $name := .Name }}
|
||||
{{- with .Identifier }}
|
||||
{{- with T . }}
|
||||
{{- $name = . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
<li>
|
||||
<a
|
||||
{{- range $k, $v := $attrs }}
|
||||
{{- with $v }}
|
||||
{{- printf " %s=%q" $k $v | safeHTMLAttr }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
>{{ $name }}</a>
|
||||
{{- with .Children }}
|
||||
<ul>
|
||||
{{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
|
||||
</ul>
|
||||
{{- end }}
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- end }}
|
23
layouts/partials/terms.html
Normal file
23
layouts/partials/terms.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
{{- /*
|
||||
For a given taxonomy, renders a list of terms assigned to the page.
|
||||
|
||||
@context {page} page The current page.
|
||||
@context {string} taxonomy The taxonomy.
|
||||
|
||||
@example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
|
||||
*/}}
|
||||
|
||||
{{- $page := .page }}
|
||||
{{- $taxonomy := .taxonomy }}
|
||||
|
||||
{{- with $page.GetTerms $taxonomy }}
|
||||
{{- $label := (index . 0).Parent.LinkTitle }}
|
||||
<div>
|
||||
<div>{{ $label }}:</div>
|
||||
<ul>
|
||||
{{- range . }}
|
||||
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{- end }}
|
BIN
static/fonts/AtkinsonHyperlegibleNext-Regular.otf
Normal file
BIN
static/fonts/AtkinsonHyperlegibleNext-Regular.otf
Normal file
Binary file not shown.
BIN
themes/.DS_Store
vendored
Normal file
BIN
themes/.DS_Store
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue