Skip to content

Commit 9fbea63

Browse files
committed
feat: improve SEO for callforpapers page
1 parent 28a61cc commit 9fbea63

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

angular-hub/src/app/pages/callforpapers/index.page.ts

+52-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
import { Component } from '@angular/core';
22
import { load } from './index.server';
33
import { toSignal } from '@angular/core/rxjs-interop';
4-
import { injectLoad } from '@analogjs/router';
4+
import { injectLoad, RouteMeta } from '@analogjs/router';
55
import { DividerModule } from 'primeng/divider';
6+
import { Title } from '@angular/platform-browser';
7+
import { JsonLdService } from '../../services/json-ld.service';
8+
9+
export const routeMeta: RouteMeta = {
10+
meta: [
11+
{
12+
name: 'description',
13+
content: 'Curated list of Angular Call for papers',
14+
},
15+
],
16+
};
617

718
@Component({
819
selector: 'app-callforpapers',
@@ -116,4 +127,44 @@ import { DividerModule } from 'primeng/divider';
116127
})
117128
export default class CallForPapersComponent {
118129
callForPapers = toSignal(injectLoad<typeof load>(), { requireSync: true });
130+
131+
constructor(
132+
private title: Title,
133+
private jsonldService: JsonLdService,
134+
) {
135+
this.title.setTitle('Angular HUB - Call for papers');
136+
this.jsonldService.updateJsonLd(this.setJsonLd());
137+
}
138+
139+
setJsonLd() {
140+
return {
141+
'@context': 'https://schema.org',
142+
'@type': 'ItemList',
143+
itemListElement: [
144+
...this.callForPapers().events.map((event, index) => ({
145+
'@type': 'ListItem',
146+
position: index + 1,
147+
item: {
148+
'@type': 'Event',
149+
name: event.name,
150+
description: event.name,
151+
startDate: event.date,
152+
location: event.location,
153+
url: event.callForPapersUrl,
154+
},
155+
})),
156+
...this.callForPapers().communities.map((community, index) => ({
157+
'@type': 'ListItem',
158+
position: index + 1,
159+
item: {
160+
'@type': 'Organization',
161+
name: community.name,
162+
description: community.name,
163+
location: community.location,
164+
url: community.callForPapersUrl,
165+
},
166+
})),
167+
],
168+
};
169+
}
119170
}

0 commit comments

Comments
 (0)