diff options
| author | Yuval Adam <_@yuv.al> | 2022-10-28 10:29:25 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2022-10-28 10:29:25 +0300 |
| commit | 3dd1b618de8e52565670e5ffe79ad1d82b1d9caf (patch) | |
| tree | b7fff27e1936556e92e459af1992ff07ccaff17a | |
| parent | ea6813d54a5381b07eb23220ccfbe6822646aead (diff) | |
Implement render link filter
| -rw-r--r-- | build.py | 22 | ||||
| -rw-r--r-- | templates/index.html | 6 |
2 files changed, 20 insertions, 8 deletions
@@ -29,14 +29,26 @@ for name in listdir(NAMES_DIR): missing_fields = REQUIRED_FIELDS - set(fields.keys()) if missing_fields: raise Exception(f"Missing required fields {missing_fields} in {name}") - + names.append(fields) + +def render_link(value, classes): + name = value["name"].lower().split(" ") + domain = value["domain"].replace(".", "") + res = [] + for part in name: + if part == domain: + url = value.get("url") or "https://" + value.get("domain") + res.append(f'<a href="{url}" class="{classes}">{value["domain"]}</a>') + else: + res.append(part) + return " ".join(res) + + # render templates -env = Environment( - loader=PackageLoader("build"), - autoescape=select_autoescape() -) +env = Environment(loader=PackageLoader("build"), autoescape=select_autoescape()) +env.filters["render_link"] = render_link for template in TEMPLATES: t = env.get_template(template) index = t.render(names=names) diff --git a/templates/index.html b/templates/index.html index b079769..0bacce0 100644 --- a/templates/index.html +++ b/templates/index.html @@ -29,9 +29,9 @@ <ul> {% for name in names %} - <li><a href="{{ name.url or 'https://' + name.domain }}" class="link blue b f3">{{ name.name }}</a>{% if - name.title %}<span class="light-silver ml2">{{ - name.title }}</span>{% endif %}</li> + <li>{{ name|render_link("link blue")|safe }}{% if name.title %}<span class="light-silver ml2">{{ name.title + }}</span>{% endif %} + </li> {% endfor %} </ul> <hr> |
