Skip to content

Commit 93363ea

Browse files
authored
Merge pull request #2166 from cescoffier/working-group-additional-metadata
Working group: Extract and display additional metadata
2 parents 3ea6bae + 2c92c91 commit 93363ea

File tree

5 files changed

+114
-10
lines changed

5 files changed

+114
-10
lines changed

_data/wg.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ working-groups:
2929
last-activity: 2024-11-18
3030
last-update: |
3131
ROQ has been released! See https://www.youtube.com/live/hrF1a5sKqBI to see ROQ in action.
32+
deliverable: <a rel="nofollow" href="https://www.youtube.com/live/hrF1a5sKqBI">Quarkus Insight</a>
33+
point-of-contact: "@ia3andy"
34+
discussion: https://github.com/quarkusio/quarkus/discussions/41309
3235
- title: "WebSocket Next"
3336
board-url: "https://github.com/orgs/quarkusio/projects/26"
3437
short-description: WebSocket-Next related tasks
@@ -51,6 +54,8 @@ working-groups:
5154
The CDI request context is only activated if needed: https://github.com/quarkusio/quarkus/pull/43915.
5255
5356
I hope that WS Next will be feature-complete at the time of 3.17 release.
57+
point-of-contact: "@mkouba (@<strong>Martin Kouba</strong> on Zulip)"
58+
discussion: https://github.com/quarkusio/quarkus/discussions/38473
5459
- title: "Enhanced TLS support"
5560
board-url: "https://github.com/orgs/quarkusio/projects/24"
5661
short-description: Track the progress around the new TLS configuration centralization and new features (like Let's Encrypt, Cert-Manager, and local experience...)
@@ -70,6 +75,9 @@ working-groups:
7075
This working group is complete!
7176
That does not mean that no work will be done around TLS, but what was defined in the initial scope of the working group has been completed.
7277
Enhancements and bug fixes will follow.
78+
deliverable: <a rel="nofollow" href="https://www.youtube.com/watch?v=VP7c9ftFwrQ">Quarkus Insight</a>
79+
point-of-contact: "@cescoffier (@<strong>Clement Escoffier</strong> on Zulip)"
80+
discussion: https://github.com/quarkusio/quarkus/discussions/41024
7381
- title: "Quarkus 3.15 LTS"
7482
board-url: "https://github.com/orgs/quarkusio/projects/28"
7583
short-description: This WG focuses on defining the issues we would like to have in the next-to-be LTS (Quarkus 3.14/3.15)

_includes/working-group-band.html

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,14 @@
1818
<p class="card-text"><span class="key">Status:</span>&nbsp;<span class="status {{ item.status | | replace: ' ', '-'}}">{{ item.status }}</span></p>
1919
<p class="card-text"><span class="key">Description:</span>&nbsp;<span class="short-description">{{ item.short-description }}</span></p>
2020
<p class="card-text"><span class="key">Last Activity:</span>&nbsp;<span class="last-activity">{{ item.last-activity | date: '%B %d, %Y' }} </span></p>
21+
{% if item.point-of-contact %}
22+
<p class="card-text"><span class="key">Point of Contact:</span>&nbsp;<span class="point-of-contact">{{ item.point-of-contact }}</span></p>
23+
{% endif %}
24+
{% if item.discussion %}
25+
<p class="card-text"><span class="key">Discussion:</span>&nbsp;<a class="discussion" href="{{ item.discussion }}">Link</a></p>
26+
{% endif %}
2127
</div>
22-
<div class="card-footer">
28+
<div class="card-footer">
2329
<a href="{{ item.board-url }}" class="float-end"> View the {{ item.title }} Board <i class="fa-solid fa-chevron-right"></i></a>
2430
</div>
2531
</div>
@@ -31,16 +37,27 @@ <h2>Completed working groups</h2>
3137
<p class="mt-0">
3238
These working groups have completed their work and are no longer active:
3339
</p>
34-
<ul>
35-
{% for item in site.data.wg.working-groups %}
40+
<div class="grid-wrapper working-groups-cards">
41+
{% for item in site.data.wg.working-groups %}
3642
{% if item.completed %}
37-
<li>
38-
<a href="{{ item.board-url }}">{{ item.title }} ({{ item.last-activity | date: '%B %d, %Y' }})</a>
39-
</li>
43+
<div class="card card-completed">
44+
<div class="card-header">
45+
<p class="card-title">{{ item.title }}</p>
46+
</div>
47+
<div class="card-body">
48+
<p class="card-text"><span class="key">Description:</span>&nbsp;<span class="short-description">{{ item.short-description }}</span></p>
49+
<p class="card-text"><span class="key">Completed on:</span>&nbsp;<span class="last-activity">{{ item.last-activity | date: '%B %d, %Y' }} </span></p>
50+
{% if item.deliverable %}
51+
<p class="card-text"><span class="key">Deliverable:</span>&nbsp;<span class="deliverable">{{ item.deliverable }}</span></p>
52+
{% endif %}
53+
</div>
54+
<div class="card-footer">
55+
<a href="{{ item.board-url }}" class="float-end"> View the {{ item.title }} Board <i class="fa-solid fa-chevron-right"></i></a>
56+
</div>
57+
</div>
4058
{% endif %}
4159
{% endfor %}
42-
</ul>
43-
60+
</div>
4461

4562
</div>
4663

_sass/layouts/working-groups.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@
3232

3333
.card-body {
3434
padding: 1rem 0rem;
35-
height: 11rem;
35+
height: 15rem;
36+
}
37+
38+
.card-completed {
39+
background: WhiteSmoke;
3640
}
3741

3842
.card-footer {

working-groups/main.java

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//DEPS io.quarkus:quarkus-picocli
66
//DEPS io.quarkus:quarkus-smallrye-graphql-client
77
//DEPS io.quarkus:quarkus-qute
8-
//DEPS org.commonmark:commonmark:0.22.0
8+
//DEPS org.commonmark:commonmark:0.23.0
99
//DEPS io.quarkus:quarkus-config-yaml
1010
//FILES templates/=templates/*
1111
//FILES application.yaml
@@ -26,6 +26,7 @@
2626
import java.util.concurrent.ExecutionException;
2727

2828
import org.commonmark.node.Node;
29+
import org.commonmark.node.Paragraph;
2930
import org.commonmark.parser.Parser;
3031
import org.commonmark.renderer.html.HtmlRenderer;
3132
import org.eclipse.microprofile.config.inject.ConfigProperty;
@@ -198,6 +199,71 @@ public String getReadme() {
198199
return renderer.render(document);
199200
}
200201

202+
private static boolean isMetadata(String singular, String plural, String line) {
203+
var l = line.toLowerCase().trim();
204+
return l.startsWith("* " + singular.toLowerCase() + ":")
205+
|| l.startsWith("* " + plural.toLowerCase() + ":");
206+
}
207+
208+
public String getDeliverable() {
209+
String line = longDescription().lines()
210+
.filter(s -> isMetadata("Deliverable", "Deliverables", s))
211+
.findFirst()
212+
.orElse(null);
213+
214+
if (line != null) {
215+
var content = line.substring(line.indexOf(":") + 1).trim();
216+
Parser parser = Parser.builder().build();
217+
Node document = parser.parse(content);
218+
HtmlRenderer renderer = HtmlRenderer.builder()
219+
.omitSingleParagraphP(true)
220+
.escapeHtml(false)
221+
.sanitizeUrls(true)
222+
.build();
223+
return renderer.render(document);
224+
}
225+
226+
return null;
227+
}
228+
229+
public String getPointOfContact() {
230+
String line = longDescription().lines()
231+
.filter(s -> isMetadata("Point of contact", "Points of contact", s))
232+
.findFirst()
233+
.orElse(null);
234+
235+
if (line != null) {
236+
var content = line.substring(line.indexOf(":") + 1).trim();
237+
Parser parser = Parser.builder().build();
238+
Node document = parser.parse(content);
239+
HtmlRenderer renderer = HtmlRenderer.builder()
240+
.omitSingleParagraphP(true)
241+
.build();
242+
return renderer.render(document);
243+
}
244+
245+
return null;
246+
}
247+
248+
public String getDiscussionLink() {
249+
String line = longDescription().lines()
250+
.filter(s -> isMetadata("Discussion", "Discussions", s))
251+
.findFirst()
252+
.orElse(null);
253+
254+
if (line != null) {
255+
var content = line.substring(line.indexOf(":") + 1).trim();
256+
Parser parser = Parser.builder().build();
257+
Node document = parser.parse(content);
258+
HtmlRenderer renderer = HtmlRenderer.builder()
259+
.omitSingleParagraphP(true)
260+
.build();
261+
return renderer.render(document);
262+
}
263+
264+
return null;
265+
}
266+
201267
public String getIndentedReadme() {
202268
String readme = getReadme();
203269
return readme.replaceAll("\n", "\n ").trim();

working-groups/templates/wg.yaml.template

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,13 @@ working-groups:
1313
last-update: |
1414
{board.getIndentedLastUpdate().raw}
1515
{/if}
16+
{#if board.getDeliverable()}
17+
deliverable: {board.getDeliverable().raw}
18+
{/if}
19+
{#if board.getPointOfContact()}
20+
point-of-contact: "{board.getPointOfContact().raw}"
21+
{/if}
22+
{#if board.getDiscussionLink()}
23+
discussion: {board.getDiscussionLink().raw}
24+
{/if}
1625
{/for}

0 commit comments

Comments
 (0)