1
+ import { AnchorLink } from "gatsby-plugin-anchor-links"
1
2
import React from "react"
2
3
import Layout from "../components/Layout"
3
4
import Marked from "../components/Marked"
@@ -6,14 +7,16 @@ import { toSlug } from "../utils/slug"
6
7
export function buildLanguagesMenu ( pageContext : any ) {
7
8
let lastRow : string [ ]
8
9
const rows : string [ ] [ ] = [ ]
9
- pageContext . languageList . forEach ( ( { name : languageName } : any , index : number ) => {
10
- if ( index % 6 === 0 ) {
11
- lastRow = [ languageName ]
12
- rows . push ( lastRow )
13
- } else {
14
- lastRow . push ( languageName )
10
+ pageContext . languageList . forEach (
11
+ ( { name : languageName } : any , index : number ) => {
12
+ if ( index % 6 === 0 ) {
13
+ lastRow = [ languageName ]
14
+ rows . push ( lastRow )
15
+ } else {
16
+ lastRow . push ( languageName )
17
+ }
15
18
}
16
- } )
19
+ )
17
20
return (
18
21
< div >
19
22
{ rows . map ( row => (
@@ -22,11 +25,13 @@ export function buildLanguagesMenu(pageContext: any) {
22
25
{ row . map ( languageName => {
23
26
const slug = toSlug ( languageName )
24
27
return (
25
- < div className = "article language-box" >
26
- < a href = { `#${ slug } ` } className = "article_title" >
27
- { languageName }
28
- </ a >
29
- </ div >
28
+ < AnchorLink
29
+ to = { `#${ slug } ` }
30
+ className = "article language-box"
31
+ title = { languageName }
32
+ >
33
+ < span className = "article_title" > { languageName } </ span >
34
+ </ AnchorLink >
30
35
)
31
36
} ) }
32
37
</ div >
@@ -143,32 +148,35 @@ const categorySlugMap = [
143
148
export function buildLanguagesContent ( pageContext : any ) {
144
149
const elements = [ ]
145
150
for ( const languageObj of pageContext . languageList ) {
146
- const languageName = languageObj . name ;
147
- const libraryCategories = languageObj . categoryMap ;
151
+ const languageName = languageObj . name
152
+ const libraryCategories = languageObj . categoryMap
148
153
const filteredCategorySlugMap = categorySlugMap . filter (
149
154
( [ libraryCategoryName ] ) =>
150
155
libraryCategories [ libraryCategoryName as any ] ?. length
151
- ) ;
152
- const languageSlug = toSlug ( languageName ) ;
156
+ )
157
+ const languageSlug = toSlug ( languageName )
153
158
elements . push (
154
159
< div className = "language-content" id = { languageSlug } >
155
160
< div className = "language-header" >
156
161
< h2 className = "language-title" > { languageName } </ h2 >
157
- { filteredCategorySlugMap . length > 1 && < p className = "language-categories-permalinks" >
158
- { filteredCategorySlugMap . map (
159
- ( [ libraryCategoryName , categorySlug ] , i ) => (
160
- < >
161
- < a
162
- className = "language-category-permalink"
163
- href = { `#${ languageSlug } -${ categorySlug } ` }
164
- >
165
- { libraryCategoryName }
166
- </ a >
167
- { i < filteredCategorySlugMap . length - 1 && " / " }
168
- </ >
169
- )
170
- ) }
171
- </ p > }
162
+ { filteredCategorySlugMap . length > 1 && (
163
+ < p className = "language-categories-permalinks" >
164
+ { filteredCategorySlugMap . map (
165
+ ( [ libraryCategoryName , categorySlug ] , i ) => (
166
+ < >
167
+ < AnchorLink
168
+ title = { `${ languageSlug } ${ categorySlug } ` }
169
+ className = "language-category-permalink"
170
+ to = { `#${ languageSlug } -${ categorySlug } ` }
171
+ >
172
+ { libraryCategoryName }
173
+ </ AnchorLink >
174
+ { i < filteredCategorySlugMap . length - 1 && " / " }
175
+ </ >
176
+ )
177
+ ) }
178
+ </ p >
179
+ ) }
172
180
</ div >
173
181
< div className = "library-categories" >
174
182
{ filteredCategorySlugMap . map ( ( [ categoryName , categorySlug ] ) =>
@@ -207,47 +215,49 @@ export default ({ pageContext }: any) => {
207
215
< div className = "goto-section" >
208
216
< p > Go to</ p >
209
217
< div className = "sections" >
210
- < a href = "#language-support" >
218
+ < AnchorLink to = "#language-support" title = "Language Support ">
211
219
< h3 > Language Support</ h3 >
212
- </ a >
213
- < a href = "#generic-tools" >
220
+ </ AnchorLink >
221
+ < AnchorLink to = "#generic-tools" title = "Tools ">
214
222
< h3 > Tools</ h3 >
215
- </ a >
216
- < a href = "#services" >
223
+ </ AnchorLink >
224
+ < AnchorLink to = "#services" title = "Services ">
217
225
< h3 > Services</ h3 >
218
- </ a >
219
- < a href = "#more-stuff" >
226
+ </ AnchorLink >
227
+ < AnchorLink to = "#more-stuff" title = "More Stuff ">
220
228
< h3 > More Stuff</ h3 >
221
- </ a >
229
+ </ AnchorLink >
222
230
</ div >
223
231
</ div >
224
232
</ div >
225
233
226
- < p className = "languages-title" > Language Support</ p >
234
+ < p id = "language-support" className = "languages-title" >
235
+ Language Support
236
+ </ p >
227
237
{ buildLanguagesMenu ( pageContext ) }
228
238
{ buildLanguagesContent ( pageContext ) }
229
239
< h2 >
230
240
< a className = "anchor" id = "generic-tools" > </ a >
231
241
Tools
232
- < a className = "hash-link" href = "#generic-tools" >
242
+ < AnchorLink className = "hash-link" to = "#generic-tools" >
233
243
#
234
- </ a >
244
+ </ AnchorLink >
235
245
</ h2 >
236
246
{ buildLibraryList ( pageContext . otherLibraries . Tools , pageContext ) }
237
247
< h2 >
238
248
< a className = "anchor" id = "services" > </ a >
239
249
Services
240
- < a className = "hash-link" href = "#services" >
250
+ < AnchorLink className = "hash-link" to = "#services" >
241
251
#
242
- </ a >
252
+ </ AnchorLink >
243
253
</ h2 >
244
254
{ buildLibraryList ( pageContext . otherLibraries . Services , pageContext ) }
245
255
< h2 >
246
256
< a className = "anchor" id = "more-stuff" > </ a >
247
257
More Stuff
248
- < a className = "hash-link" href = "#more-stuff" >
258
+ < AnchorLink className = "hash-link" to = "#more-stuff" >
249
259
#
250
- </ a >
260
+ </ AnchorLink >
251
261
</ h2 >
252
262
{ buildLibraryList (
253
263
pageContext . otherLibraries [ "More Stuff" ] ,
0 commit comments