|
11 | 11 | import BreadcrumbContextProvider from './BreadcrumbContextProvider.svelte' |
12 | 12 | import BreadcrumbJsonLd from './BreadcrumbJsonLd.svelte' |
13 | 13 | import SeoContextProvider from './SeoContextProvider.svelte' |
| 14 | + import SeoH1 from './SeoH1.svelte' |
14 | 15 | import SeoHead from './SeoHead.svelte' |
15 | 16 |
|
16 | 17 | const { |
|
34 | 35 | const softwareAppJsonLd = $derived( |
35 | 36 | stars != null |
36 | 37 | ? '<script type="application/ld+json">' + |
37 | | - JSON.stringify({ |
38 | | - '@context': 'https://schema.org', |
39 | | - '@type': 'SoftwareApplication', |
40 | | - name: config.name, |
41 | | - description: config.description, |
42 | | - url: config.url, |
43 | | - downloadUrl: npmUrl, |
44 | | - applicationCategory: 'DeveloperApplication', |
45 | | - operatingSystem: 'Any', |
46 | | - softwareRequirements: config.softwareRequirements ?? 'Svelte 5', |
47 | | - license: 'https://opensource.org/licenses/MIT', |
48 | | - keywords: config.keywords, |
49 | | - releaseNotes: `${repoUrl}/releases`, |
50 | | - ...(config.programmingLanguages |
51 | | - ? { programmingLanguage: config.programmingLanguages } |
52 | | - : {}), |
53 | | - author: { |
54 | | - '@type': 'Organization', |
55 | | - name: 'Humanspeak, Inc.', |
56 | | - url: 'https://humanspeak.com', |
57 | | - sameAs: ['https://github.com/humanspeak', npmUrl, repoUrl] |
58 | | - }, |
59 | | - offers: { |
60 | | - '@type': 'Offer', |
61 | | - price: '0', |
62 | | - priceCurrency: 'USD' |
63 | | - }, |
64 | | - aggregateRating: { |
65 | | - '@type': 'AggregateRating', |
66 | | - ratingValue: '5', |
67 | | - ratingCount: String(stars), |
68 | | - bestRating: '5' |
69 | | - } |
70 | | - }) + |
71 | | - '<' + |
72 | | - '/script>' |
| 38 | + JSON.stringify({ |
| 39 | + '@context': 'https://schema.org', |
| 40 | + '@type': 'SoftwareApplication', |
| 41 | + name: config.name, |
| 42 | + description: config.description, |
| 43 | + url: config.url, |
| 44 | + downloadUrl: npmUrl, |
| 45 | + applicationCategory: 'DeveloperApplication', |
| 46 | + operatingSystem: 'Any', |
| 47 | + softwareRequirements: config.softwareRequirements ?? 'Svelte 5', |
| 48 | + license: 'https://opensource.org/licenses/MIT', |
| 49 | + keywords: config.keywords, |
| 50 | + releaseNotes: `${repoUrl}/releases`, |
| 51 | + ...(config.programmingLanguages |
| 52 | + ? { programmingLanguage: config.programmingLanguages } |
| 53 | + : {}), |
| 54 | + author: { |
| 55 | + '@type': 'Organization', |
| 56 | + name: 'Humanspeak, Inc.', |
| 57 | + url: 'https://humanspeak.com', |
| 58 | + sameAs: ['https://github.com/humanspeak', npmUrl, repoUrl] |
| 59 | + }, |
| 60 | + offers: { |
| 61 | + '@type': 'Offer', |
| 62 | + price: '0', |
| 63 | + priceCurrency: 'USD' |
| 64 | + }, |
| 65 | + aggregateRating: { |
| 66 | + '@type': 'AggregateRating', |
| 67 | + ratingValue: '5', |
| 68 | + ratingCount: String(stars), |
| 69 | + bestRating: '5' |
| 70 | + } |
| 71 | + }) + |
| 72 | + '<' + |
| 73 | + '/script>' |
73 | 74 | : null |
74 | 75 | ) |
75 | 76 | </script> |
|
90 | 91 | </MotionConfig> |
91 | 92 | <BreadcrumbJsonLd {config} /> |
92 | 93 | </BreadcrumbContextProvider> |
| 94 | + <SeoH1 {seo} /> |
93 | 95 | <SeoHead {seo} {config} {favicon} /> |
94 | 96 | </SeoContextProvider> |
0 commit comments