Skip to content

Conversation

@MrtinoRG
Copy link
Contributor

@MrtinoRG MrtinoRG commented Jul 4, 2025

Summary by Sourcery

Introduce blogging capability with new layouts, templates, and initial posts; enable blog navigation; enhance gallery, team profiles, and site configuration.

New Features:

  • Add post layouts (single post and list) and head partial to support blog styling, comments, and font preloading
  • Create initial blog content: a "welcome to our blog" post and a "best research environment award" post
  • Enable "blog" menu entry and posts index page for navigating blog entries

Enhancements:

  • Populate gallery with additional event photos and captions
  • Add Cactus chat comments integration and font preloading in head template
  • Introduce async Google Analytics template and disable default analytics in config
  • Add email (envelope) links to team member profiles for contact information

@MrtinoRG MrtinoRG requested a review from kjappelbaum July 4, 2025 15:43
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Jul 4, 2025

Reviewer's Guide

This PR introduces the initial blog functionality to the site by adding Hugo layouts and partials, sample posts, navigation and configuration updates, while also extending the photo gallery and enriching team member profiles with email contact links.

Class diagram for blog post content and navigation menu

classDiagram
  class SiteConfig {
    theme: string
    colortheme: string
    description: string
    enableEmoji: bool
    googleAnalytics: string
    params: Params
    menu: Menu
  }
  class Params {
    mathjax: bool
    dateFormat: string
    tocInline: bool
    showAllPostsArchive: bool
    css: list
    rss: bool
    Comments: CommentsConfig
  }
  class Menu {
    main: list[MenuItem]
  }
  class MenuItem {
    name: string
    url: string
    weight: int
  }
  class BlogPost {
    title: string
    date: datetime
    draft: bool
    description: string
    tags: list[string]
    content: string
  }
  SiteConfig o-- Params
  SiteConfig o-- Menu
  Menu o-- MenuItem
  SiteConfig o-- BlogPost : posts
Loading

Class diagram for team member social links update

classDiagram
  class TeamMember {
    name: string
    social: list[SocialLink]
  }
  class SocialLink {
    icon: string
    url: string
  }
  TeamMember o-- SocialLink
  %% Note: Now supports 'envelope' icon with 'mailto:' URLs for email contact
Loading

File-Level Changes

Change Details Files
Implement initial blog framework and configuration
  • Add single post template (layouts/posts/single.html)
  • Add posts list template (layouts/posts/list.html)
  • Introduce head partial with font preloads, comments and metadata handling
  • Add asynchronous Google Analytics partial
  • Enable blog menu in config.toml
  • Disable Google Analytics ID in config to avoid template errors
config.toml
layouts/posts/single.html
layouts/posts/list.html
layouts/partials/head.html
layouts/_internal/google_analytics_async.html
Add sample blog content
  • Create welcome post introducing the blog
  • Create award post detailing the best research environment prize
  • Add blog index page (_index.md) for listing posts
content/posts/welcome.md
content/posts/best_env_prize.md
content/posts/_index.md
Extend gallery with new event images
  • Add a series of new images with captions spanning various 2025 events
content/gallery.md
Enrich team profiles with email links
  • Insert mailto links for Anagha and Mara
  • Normalize Martino’s email URL format
content/team/anagha.md
content/team/mara.md
content/team/martino.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @MrtinoRG - I've reviewed your changes and they look great!

Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments

### Comment 1
<location> `layouts/posts/single.html:22` </location>
<code_context>
+      <span class="date" itemprop="datePublished">
+        {{ .Date.Format (.Site.Params.dateFormat | default "2006-01-02") }}
+      </span>
+      {{ if gt .Params.categories 0 }}
+      <div class="article-category">
+          <i class="fas fa-archive"></i>
</code_context>

<issue_to_address>
The check for categories assumes .Params.categories is a countable type.

If .Params.categories is not always an array or slice, this check may fail. Use 'len' to check its length or ensure it is always an array to prevent runtime errors.
</issue_to_address>

### Comment 2
<location> `layouts/posts/single.html:31` </location>
<code_context>
+          {{ end }}
+      </div>
+      {{ end }}
+      {{ if gt .Params.tags 0 }}
+      <div class="article-tag">
+          <i class="fas fa-tag"></i>
</code_context>

<issue_to_address>
The check for tags assumes .Params.tags is a countable type.

Consider using 'len' or ensuring .Params.tags is always an array to prevent potential runtime errors if the type varies.
</issue_to_address>

### Comment 3
<location> `layouts/posts/list.html:19` </location>
<code_context>
+    {{ $pageYear := (.Date.Format "2006") }}
+    {{ if (ne $pageYear ($.Scratch.Get "year")) }}
+    {{ $.Scratch.Set "year" $pageYear }}
+    <h2>{{ $pageYear }}</h2>
+    {{ end }}
+    <li class="post-item">
</code_context>

<issue_to_address>
Year headings are inserted as <h2> inside a <ul>, which is invalid HTML.

Please move the <h2> elements outside the <ul> or use a different grouping method to maintain valid HTML structure.
</issue_to_address>

### Comment 4
<location> `content/posts/best_env_prize.md:9` </location>
<code_context>
+tags: ["award", "research_environment", "AI"]
+---
+
+last month, we were awarded as one of the ten best research environment by [Die Jungen Akademie](https://www.diejungeakademie.de/en/projekte/best-research-environment-award/shortlist-2024). our application was one of 25 selected from 270 applicants to attend a random selection event in Berlin. randomly, we were selected as a winner! here we share the english version of the essay component of our application (there is also a german version, translated by our native german speaking colleague).
+
+# application
</code_context>

<issue_to_address>
Use 'environments' instead of 'environment' and capitalize 'English'.

Change to 'one of the ten best research environments' and 'English version' for correct grammar and capitalization.
</issue_to_address>

<suggested_fix>
<<<<<<< SEARCH
last month, we were awarded as one of the ten best research environment by [Die Jungen Akademie](https://www.diejungeakademie.de/en/projekte/best-research-environment-award/shortlist-2024). our application was one of 25 selected from 270 applicants to attend a random selection event in Berlin. randomly, we were selected as a winner! here we share the english version of the essay component of our application (there is also a german version, translated by our native german speaking colleague).
=======
last month, we were awarded as one of the ten best research environments by [Die Jungen Akademie](https://www.diejungeakademie.de/en/projekte/best-research-environment-award/shortlist-2024). our application was one of 25 selected from 270 applicants to attend a random selection event in Berlin. randomly, we were selected as a winner! here we share the English version of the essay component of our application (there is also a german version, translated by our native german speaking colleague).
>>>>>>> REPLACE

</suggested_fix>

### Comment 5
<location> `content/posts/best_env_prize.md:24` </location>
<code_context>
+within our larger institution, collaboration with other research groups comes naturally through weekly lunches, shared journal clubs, and department-wide seminars. the opportunity to attend conferences, hackathons, and workshops is given to everyone in our group regardless of their academic position (bachelors’, masters, or phd). these events nurture global interconnectedness and have led to collaborations with companies like Intel and Stability AI and research groups in other countries.
</code_context>

<issue_to_address>
Capitalize and use correct forms for academic degrees.

Use 'bachelor’s, master’s, or PhD' for correct capitalization and apostrophe usage.
</issue_to_address>

<suggested_fix>
<<<<<<< SEARCH
within our larger institution, collaboration with other research groups comes naturally through weekly lunches, shared journal clubs, and department-wide seminars. the opportunity to attend conferences, hackathons, and workshops is given to everyone in our group regardless of their academic position (bachelors’, masters, or phd). these events nurture global interconnectedness and have led to collaborations with companies like Intel and Stability AI and research groups in other countries.
=======
within our larger institution, collaboration with other research groups comes naturally through weekly lunches, shared journal clubs, and department-wide seminars. the opportunity to attend conferences, hackathons, and workshops is given to everyone in our group regardless of their academic position (bachelor’s, master’s, or PhD). these events nurture global interconnectedness and have led to collaborations with companies like Intel and Stability AI and research groups in other countries.
>>>>>>> REPLACE

</suggested_fix>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

<span class="date" itemprop="datePublished">
{{ .Date.Format (.Site.Params.dateFormat | default "2006-01-02") }}
</span>
{{ if gt .Params.categories 0 }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): The check for categories assumes .Params.categories is a countable type.

If .Params.categories is not always an array or slice, this check may fail. Use 'len' to check its length or ensure it is always an array to prevent runtime errors.

{{ end }}
</div>
{{ end }}
{{ if gt .Params.tags 0 }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): The check for tags assumes .Params.tags is a countable type.

Consider using 'len' or ensuring .Params.tags is always an array to prevent potential runtime errors if the type varies.

{{ $pageYear := (.Date.Format "2006") }}
{{ if (ne $pageYear ($.Scratch.Get "year")) }}
{{ $.Scratch.Set "year" $pageYear }}
<h2>{{ $pageYear }}</h2>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: Year headings are inserted as

inside a
    , which is invalid HTML.

    Please move the

    elements outside the
      or use a different grouping method to maintain valid HTML structure.

tags: ["award", "research_environment", "AI"]
---

last month, we were awarded as one of the ten best research environment by [Die Jungen Akademie](https://www.diejungeakademie.de/en/projekte/best-research-environment-award/shortlist-2024). our application was one of 25 selected from 270 applicants to attend a random selection event in Berlin. randomly, we were selected as a winner! here we share the english version of the essay component of our application (there is also a german version, translated by our native german speaking colleague).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (typo): Use 'environments' instead of 'environment' and capitalize 'English'.

Change to 'one of the ten best research environments' and 'English version' for correct grammar and capitalization.

Suggested change
last month, we were awarded as one of the ten best research environment by [Die Jungen Akademie](https://www.diejungeakademie.de/en/projekte/best-research-environment-award/shortlist-2024). our application was one of 25 selected from 270 applicants to attend a random selection event in Berlin. randomly, we were selected as a winner! here we share the english version of the essay component of our application (there is also a german version, translated by our native german speaking colleague).
last month, we were awarded as one of the ten best research environments by [Die Jungen Akademie](https://www.diejungeakademie.de/en/projekte/best-research-environment-award/shortlist-2024). our application was one of 25 selected from 270 applicants to attend a random selection event in Berlin. randomly, we were selected as a winner! here we share the English version of the essay component of our application (there is also a german version, translated by our native german speaking colleague).

@@ -0,0 +1,78 @@
---
title: "the ethics of AI-assisted writing: a reflection on using copilot for blog posts"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:D

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: "the ethics of AI-assisted writing: a reflection on using copilot for blog posts"
title: "the ethics of ai-assisted writing: a reflection on using copilot for blog posts"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have not too strong feelings about capitalization, but we should be consistent

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

e.g. if we want to capitalize companies and product names this is ok, but we should then do so always

date: 2025-01-15T14:30:00+00:00
draft: false
author: "LamaLab"
description: "Exploring the moral implications and ethical considerations of using AI tools like GitHub Copilot for academic and research writing"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description: "Exploring the moral implications and ethical considerations of using AI tools like GitHub Copilot for academic and research writing"
description: "exploring the moral implications and ethical considerations of using ai tools like github copilot for academic and research writing"

author: "LamaLab"
description: "Exploring the moral implications and ethical considerations of using AI tools like GitHub Copilot for academic and research writing"
tags: ["AI", "research", "ethics", "writing", "copilot"]
intro: "as AI tools become increasingly sophisticated and accessible, we find ourselves grappling with fundamental questions about authorship, authenticity, and intellectual honesty. when we use GitHub Copilot to help write our blog posts, are we compromising our integrity as researchers and writers, or are we simply embracing the next evolution of scholarly communication?"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
intro: "as AI tools become increasingly sophisticated and accessible, we find ourselves grappling with fundamental questions about authorship, authenticity, and intellectual honesty. when we use GitHub Copilot to help write our blog posts, are we compromising our integrity as researchers and writers, or are we simply embracing the next evolution of scholarly communication?"
intro: "as AI tools become increasingly sophisticated and accessible, we find ourselves grappling with fundamental questions about authorship, authenticity, and intellectual honesty. when we use github copilot to help write our blog posts, are we compromising our integrity as researchers and writers, or are we simply embracing the next evolution of scholarly communication?"

title: "the ethics of AI-assisted writing: a reflection on using copilot for blog posts"
date: 2025-01-15T14:30:00+00:00
draft: false
author: "LamaLab"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wanna call out yourself?


## the authenticity question

perhaps the most pressing concern is authenticity. when i use Copilot's suggestions, are the resulting words truly "mine"? this question becomes particularly acute in academic writing, where originality and intellectual honesty are paramount values.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the last part really reads ai generated :D


the real question isn't whether we should use these tools, but how we can use them responsibly to advance rather than undermine the goals of scientific communication: clarity, accuracy, accessibility, and the advancement of human knowledge.

as i finish writing this post (with occasional assistance from tab completion), i'm reminded that the value lies not in the perfection of the prose, but in the thoughtfulness of the ideas and the honesty of their expression. and that, at least for now, remains a fundamentally human endeavor.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i like it somehow. being aided by copilot makes this almost a piece of art

Sorry, this was a test file
title: "best research environment award"
date: 2025-07-04T10:00:00+00:00
draft: false
author: "LamaLab"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think you can also name yourself here

@kjappelbaum
Copy link
Contributor

why is copilot morality gone now? :D

@MrtinoRG
Copy link
Contributor Author

MrtinoRG commented Jul 4, 2025

why is copilot morality gone now? :D

It was a test file, not an actual blog text

Sorry that you had to review that

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

@MrtinoRG MrtinoRG merged commit caf9550 into main Jul 5, 2025
@MrtinoRG MrtinoRG deleted the first_blog branch July 5, 2025 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants