Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
baseURL = "https://m2lines.github.io/"
relativeURLs = "True"
canonifyURLs = "True"
languageCode = "en-us"
locale = "en-us"
title = "M²LInES"
themesDir = "themes"
theme = "hugo-hero-theme"
Expand Down
Binary file modified content/news/.DS_Store
Binary file not shown.
4 changes: 2 additions & 2 deletions content/news/2312WillGfeature.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
date: 2023-12-01T09:29:16+10:00
title: "Will Gregory\'s latest article featured in Advance Science News"
title: "Will Gregory's latest article featured in Advance Science News"
heroHeading: ''
heroSubHeading: "Will Gregory\'s latest article featured in Advance Science News"
heroSubHeading: "Will Gregory's latest article featured in Advance Science News"
heroBackground: ''
thumbnail: '/images/news/tina-rolf-yuF2B5Zyz88-unsplash.jpg'
images: ['/images/news/tina-rolf-yuF2B5Zyz88-unsplash.jpg']
Expand Down
21 changes: 21 additions & 0 deletions content/news/2609ESI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
date: 2026-09-10T09:29:16+10:00
title: "Introducing NYU's Earth Systems Institute: A Climate Week NYC Gathering"
heroHeading: ''
heroSubHeading: "Introducing NYU's Earth Systems Institute: A Climate Week NYC Gathering"
heroBackground: ''
thumbnail: 'images/news/Climate-Week-2.jpg'
images: ['images/news/Climate-Week-2.jpg']
link: 'https://wp.nyu.edu/earthsys/'
---


This **Climate Week**, NYU's **Earth Systems Institute** is holding its [first public gathering](https://wp.nyu.edu/earthsys/events/), marking the launch of a new home for data-driven, AI-powered climate research at NYU. Led by Director Laure Zanna, the event brings together scientific talks spanning **ocean simulation, food security in the Sahel, energy infrastructure planning, and accessible climate information**, featuring speakers from **NYU, NVIDIA, and Schmidt Sciences**. The program closes with a reception to continue the conversation.



**If you’re interested in this event, please reach out at [earthsystems@nyu.edu](earthsystems@nyu.edu)**



To learn more about the Institute and its work, visit their [website](https://wp.nyu.edu/earthsys/).
12 changes: 12 additions & 0 deletions content/news/2609Keutgen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
date: 2026-09-10T09:29:16+10:00
title: "SamudraBGC: Machine Learning Emulation of Regional Mesoscale Ocean Biogeochemistry"
heroHeading: ''
heroSubHeading: 'SamudraBGC'
heroBackground: ''
thumbnail: 'images/news/2609Keutgen.JPG'
images: ['images/news/2609Keutgen.JPG']
link: 'https://doi.org/10.22541/essoar.15006794/v1'
---

Maxime Keutgen De Greef, lead author of this [preprint](https://doi.org/10.22541/essoar.15006794/v1), is part of **InMOS**, another Schmidt Sciences project. This work presents **SamudraBGC, a new machine-learning emulator of ocean biogeochemistry** that captures key regional and seasonal patterns in a high-resolution North Atlantic configuration, including contrasts between the oligotrophic subtropical gyre, productive subpolar gyre, and energetic jet. The model also reproduces seasonal-to-interannual variability and the spread and growth rates of a 50-member dynamical ensemble, at a **tiny fraction of the computational cost: ~0.1 GPU-hours per model year compared with ~3,600 CPU-hours for the dynamical model**. These results pave the way toward ensemble-based data assimilation for ocean biogeochemistry.
16 changes: 16 additions & 0 deletions content/news/2609Samudra2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
date: 2026-09-10T09:29:16+10:00
title: " Explore the global ocean with Samudra 2!"
heroHeading: ''
heroSubHeading: 'Explore the global ocean with Samudra 2!'
heroBackground: ''
thumbnail: 'images/news/2607Samudra2.png'
images: ['']
link: 'https://huggingface.co/spaces/M2LInES/samudra2'
---

Our neural emulator offers an efficient way to simulate ocean dynamics and explore how the ocean evolves over time. In the interactive demo, you can choose an initial date, select an ocean variable (from temperature and salinity to currents and sea-surface height) and set the rollout length. Samudra 2 runs alongside GFDL-OM4, allowing you to compare the simulations using error and skill metrics.

**[Give it a try](https://huggingface.co/spaces/M2LInES/samudra2) and watch the ocean evolve!**

We are grateful to **HuggingFace** for their open-source contribution in building the inference dashboard using our uploaded model weights, with special thanks to Apolinário ‘Poli’ Passos and Emma Scharfmann for their work bringing the interactive demo to life.
12 changes: 12 additions & 0 deletions content/news/2609Subel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
date: 2026-09-10T09:29:16+10:00
title: "Paleoclimate Boundary Conditions as an Out-of-Sample Test for the Forced Response of Ocean Climate Emulators"
heroHeading: ''
heroSubHeading: 'Paleoclimate Boundary Conditions as an Out-of-Sample Test for the Forced Response of Ocean Climate Emulators'
heroBackground: ''
thumbnail: 'images/news/2609Subel.png'
images: ['images/news/2609Subel.png']
link: 'https://doi.org/10.48550/arXiv.2608.13494'
---

Adam Subel and Laure Zanna present [new work](https://doi.org/10.48550/arXiv.2608.13494) assessing whether AI ocean emulators can reliably **reproduce the ocean’s long-term response to shifts in climate forcings**. Using the midHolocene experiment as a controlled testbed, they show that autoregressive, full-depth ocean emulators can generalize to new orbital forcings and capture the large-scale spatial response in the upper ocean, seasonal changes, and shifts in ocean variability, although they tend to underestimate their amplitude. The results also reveal important limitations: emulators struggle to reproduce the slow, internally driven evolution of the deep ocean, and strong performance on standard training metrics does not necessarily translate into a skillful response to changing forcings. Together, this work establishes the midHolocene as a valuable, ground-truthed framework for diagnosing and improving climate emulator performance before applying these models to more unfamiliar climates.
20 changes: 20 additions & 0 deletions content/news/2609UNlunch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
date: 2026-09-24T09:29:16+10:00
title: "Laure Zanna Joins UN Science-Policy Luncheon Ahead of UNGA81"
heroHeading: ''
heroSubHeading: 'UN Science-Policy Luncheon'
heroBackground: ''
thumbnail: 'images/news/2609UNlunch.jpeg'
images: ['images/news/2609UNlunch.jpeg']
link: 'https://policylabs.frontiersin.org/fpp-policy-brief-2026'
---

Just before the UNGA81 High-Level Week, **Laure Zanna** joined Member State representatives, UN leaders, scientists and finance experts at the Science-Policy Luncheon: Planetary Solutions in Action, co-organized by UNU-CPR and Frontiers Policy Labs.

The discussion focused on a key question: how can scientific evidence inform multilateral negotiations at the right time? It built on the report From Science to Policy: Planetary Solutions in Action, which turns research from 25 Frontiers Planet Prize National Champions into policy pathways on decarbonization, water, biodiversity and institutional reform.

Laure spoke alongside leaders from the United Nations University, Yale, UC Irvine, UNEP and the Secretariat of the UN Scientific Advisory Board. Topics included making evidence useful to policymakers while protecting scientific independence, scaling solutions, and bringing science into negotiations early enough to shape options.

The UN Scientific Advisory Board shared a recap of the event on [LinkedIn](https://lnkd.in/p/ge8qXPR4).

[Read the report](https://policylabs.frontiersin.org/fpp-policy-brief-2026)
1 change: 1 addition & 0 deletions content/news/Newsletters/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ tags:
Links to our past newsletters are below.

### 2026
* 09/10/2026 - [An Ocean Emulator in your browser - September 2026](https://mailchi.mp/b280ef874950/m2lines-sep2026)

* 08/06/2026 - [AI and the Next Generation of Climate Models - August 2026](https://mailchi.mp/eafe7c4b8e1d/m2lines-aug2026)

Expand Down
14 changes: 7 additions & 7 deletions content/team/JinchangLi.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: "Jinchang 'Thomas' Li"
title: "Bianca Champenois"
draft: false
image: "/images/team/JinchangLi.png"
jobtitle: "Affiliate, undergraduate Student"
image: "/images/team/bianca.jpg"
jobtitle: "Affiliate, Postdoc"
promoted: true
weight: 28
Website: 'https://github.com/ThomasLi0314'
weight: 29
Website: 'https://biancach.github.io/'
Position:
tags: [Ocean, Atmosphere, Machine Learning]
tags: [Ocean, Machine Learning, Data Assimilation]
---


NYU
Princeton University
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
title: "Aakash Sane"
draft: false
image: "/images/team/Aakash.jpeg"
jobtitle: "Affiliate"
jobtitle: " Postdoc"
promoted: true
weight: 40
Website: https://aakashsane.gitlab.io/
tags: [Ocean, Machine Learning, Climate Model Development]
---

Princeton University
JHU
4 changes: 2 additions & 2 deletions content/team/former/AbigailBodner.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Abigail Bodner"
draft: false
image: "/images/team/AbigailBodner.jpg"
jobtitle: "Affiliate"
jobtitle: "Professor"
promoted: true
weight: 40
Website: https://abodner.github.io/
Expand All @@ -11,4 +11,4 @@ tags: [Ocean, Machine Learning, Climate Model Development]
---


NYU
MIT
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
title: "Alex Connolly"
draft: false
image: "/images/team/AlexConnolly.jpeg"
jobtitle: "Postdoc"
promoted: true
jobtitle: Modeling Engineer
weight: 16
Website: http://efmh.berkeley.edu/alexconnolly
position: Boundary Layer Turbulence
tags: [Atmosphere, Machine Learning ]
---

Columbia University
King County DNRP
17 changes: 0 additions & 17 deletions data/social.json

This file was deleted.

27 changes: 22 additions & 5 deletions data/social.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
vimeo: ""
twitter: "https://twitter.com/M2LInES"
instagram: ""
linkedin: "https://www.linkedin.com/company/m2lines/"
facebook: ""
[
{
"name": "Email",
"link": "mailto:m2lines@nyu.edu",
"image": "images/PICOL_icon_Mailw.png"
},
{
"name": "Twitter",
"link": "https://twitter.com/M2LInES",
"image": "images/twitter.svg"
},
{
"name": "Github",
"link": "https://github.com/m2lines",
"image": "images/GitHub-Mark-Light-64px.png"
},
{
"name": "LinkedIn",
"link": "https://www.linkedin.com/in/m2lines-project/",
"image": "images/linkedin.png"
}
]
Binary file added static/images/linkedin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/news/2609Keutgen.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/news/2609Subel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/news/2609UNlunch.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/news/Climate-Week-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/team/bianca.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions themes/hugo-hero-theme/layouts/_default/baseof.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
{{ block "meta_tags" . }}{{end}}
<link rel="icon" href="{{ .Site.BaseURL }}favicon.png">

{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
{{ $style := resources.Get "scss/style.scss" | toCSS (dict "targetPath" "css/style.css" "enableSourceMap" true) }}
<link rel="stylesheet" href="{{ ($style).RelPermalink }}">
{{ else }}
Expand Down Expand Up @@ -37,7 +37,7 @@
{{ block "footer_js" . }}
{{ end }}

{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $scripts.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($scripts | minify | fingerprint).RelPermalink }}"></script>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/blog/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/code/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <h2 class="mb-2 text-uppercase">Gallery</h2>
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
12 changes: 6 additions & 6 deletions themes/hugo-hero-theme/layouts/contact/contact.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@ <h1>{{ .Title }}</h1>
<div class="col-12 col-md-8">
{{ .Content }}
<ul>
<li><strong>Phone: </strong>{{ .Site.Data.contact.phone }}</li>
<li><strong>Email: </strong><a href="mailto:{{ .Site.Data.contact.email }}">
{{ .Site.Data.contact.email }}</a></li>
{{ if .Site.Data.contact.address }}
<li style="white-space: pre-wrap;"><strong>Address: </strong><br>{{ .Site.Data.contact.address }}</li>
<li><strong>Phone: </strong>{{ hugo.Data.contact.phone }}</li>
<li><strong>Email: </strong><a href="mailto:{{ hugo.Data.contact.email }}">
{{ hugo.Data.contact.email }}</a></li>
{{ if hugo.Data.contact.address }}
<li style="white-space: pre-wrap;"><strong>Address: </strong><br>{{ hugo.Data.contact.address }}</li>
{{ end }}
</ul>
<h4 class="mt-4">Business Hours</h4>
<table class="table table-sm opening-hours-table">
{{ range .Site.Data.contact.hours }}
{{ range hugo.Data.contact.hours }}
<tr>
<td class="day font-weight-bold">{{ .day }}</td>
<td class="opens">{{ .open }}</td>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/jobs/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <h2 class="mb-2 text-uppercase">Gallery</h2>
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{{- if .Site.IsServer -}}
{{- if hugo.IsServer -}}
<!-- Dont add Google analytics to localhost -->
{{ else }}
{{ $gid := (getenv "HUGO_GOOGLE_ANALYTICS_ID") }}
Expand Down
8 changes: 4 additions & 4 deletions themes/hugo-hero-theme/layouts/partials/social.html
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
<ul id="social" class="social">
<li>
<a class="social-vimeo" href="{{ .Site.Data.social.vimeo }}" target="blank">
<a class="social-vimeo" href="{{ hugo.Data.social.vimeo }}" target="blank">
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>Facebook icon</title>
<path d="M22.676 0H1.324C.593 0 0 .593 0 1.324v21.352C0 23.408.593 24 1.324 24h11.494v-9.294H9.689v-3.621h3.129V8.41c0-3.099 1.894-4.785 4.659-4.785 1.325 0 2.464.097 2.796.141v3.24h-1.921c-1.5 0-1.792.721-1.792 1.771v2.311h3.584l-.465 3.63H16.56V24h6.115c.733 0 1.325-.592 1.325-1.324V1.324C24 .593 23.408 0 22.676 0" />
</svg>
</a>
</li>
<li>
<a class="social-twitter" href="{{ .Site.Data.social.twitter }}" target="blank"></a>
<a class="social-twitter" href="{{ hugo.Data.social.twitter }}" target="blank"></a>
</li>
<li>
<a class="social-instagram" href="{{ .Site.Data.social.instagram }}" target="blank"></a>
<a class="social-instagram" href="{{ hugo.Data.social.instagram }}" target="blank"></a>
</li>
<li>
<a class="social-linkedin" href="{{ .Site.Data.social.linkedin }}" target="blank"></a>
<a class="social-linkedin" href="{{ hugo.Data.social.linkedin }}" target="blank"></a>
</li>
</ul>
4 changes: 2 additions & 2 deletions themes/hugo-hero-theme/layouts/partials/sub-footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<div class="row">
<div class="col-12">
<div class="sub-footer-inner">
{{ if .Site.Data.social }}
{{ if hugo.Data.social }}
<div class="social">
{{ range .Site.Data.social }}
{{ range hugo.Data.social }}
<a href="{{ .link }}" target="blank"><img src="{{ .image | relURL }}" title="{{ .name }}" alt="{{ .name }}" /></a>
{{ end }}
</div>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/publications/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <h2 class="mb-2 text-uppercase">Gallery</h2>
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/research/list.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<!-- reorder based on preference by Johanna -->
{{ $classes := slice "menu-item-4" "menu-item-9" "menu-item-7" "menu-item-8" "menu-item-2" "menu-item-6" "menu-item-3" "menu-item-1" "menu-item-5" }}
{{ $index := 0 }}
{{ range $key, $value := .Site.Data.tag_links }}
{{ range $key, $value := hugo.Data.tag_links }}
<a target="_blank" href="{{ $value }}" class="menu-item {{ index $classes $index }}">{{ $key }}</a>
{{ $index = add $index 1 }}
{{ end }}
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/research/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/resources/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <h2 class="mb-2 text-uppercase">Gallery</h2>
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/services/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/talks/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
{{ $library := resources.Get "js/libs/library.js" }}
{{ $services := resources.Get "js/pages/services.js" }}
{{ $servicesJS := slice $library $services |resources.Concat "js/services.js" }}
{{ if .Site.IsServer }}
{{ if hugo.IsServer }}
<script type="text/javascript" src="{{ $servicesJS.RelPermalink }}"></script>
{{ else }}
<script type="text/javascript" src="{{ ($servicesJS | minify | fingerprint).RelPermalink }}"></script>
Expand Down
2 changes: 1 addition & 1 deletion themes/hugo-hero-theme/layouts/team/summary-large.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ <h2 class="team-name">{{ .Title }}</h2>
{{ with .Params.tags }}
<div class="team-tags">
{{ range . }}
{{ $tagLink := index $.Site.Data.tag_links . }}
{{ $tagLink := index hugo.Data.tag_links . }}
{{ if $tagLink }}
<a href="{{ $tagLink }}" target="_blank" class="tag">{{ . }}</a>
{{ else }}
Expand Down
Loading
Loading