File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,11 +4,22 @@ const headingRegex = /^###?#? (.*?)$/gm
44// for any translated page, first get corresponding English markdown
55// then get the headings on both the translated and English pageMap
66// finally, create a map of translation:English for all headings on the page
7- module . exports = function getEnglishHeadings ( page , pageMap ) {
7+ module . exports = function getEnglishHeadings ( page , context ) {
8+ // Special handling for glossaries, because their headings are
9+ // generated programatically.
10+ if ( page . relativePath . endsWith ( '/github-glossary.md' ) ) {
11+ // Return an object of `{ localized-term: english-slug }`
12+ const languageGlossary = context . site . data . glossaries . external
13+ return languageGlossary . reduce ( ( prev , curr ) => {
14+ prev [ curr . term ] = curr . slug
15+ return prev
16+ } , { } )
17+ }
18+
819 const translatedHeadings = page . markdown . match ( headingRegex )
920 if ( ! translatedHeadings ) return
1021
11- const englishPage = pageMap [ `/en/${ page . relativePath . replace ( / .m d $ / , '' ) } ` ]
22+ const englishPage = context . pages [ `/en/${ page . relativePath . replace ( / .m d $ / , '' ) } ` ]
1223 if ( ! englishPage ) return
1324
1425 // FIX there may be bugs if English headings are updated before Crowdin syncs up :/
Original file line number Diff line number Diff line change @@ -138,7 +138,7 @@ class Page {
138138 async _render ( context ) {
139139 // use English IDs/anchors for translated headings, so links don't break (see #8572)
140140 if ( this . languageCode !== 'en' ) {
141- const englishHeadings = getEnglishHeadings ( this , context . pages )
141+ const englishHeadings = getEnglishHeadings ( this , context )
142142 context . englishHeadings = englishHeadings
143143 }
144144
Original file line number Diff line number Diff line change @@ -36,13 +36,18 @@ module.exports = function loadSiteData () {
3636 }
3737 }
3838
39- // Sort glossary by language-specific function
4039 for ( const language of Object . values ( languages ) ) {
41- if ( language . code === 'en' ) continue
42- siteData [ language . code ] . site . data . glossaries . external
43- . sort (
40+ // Add the English `slug` to each item, to link a consistent anchor
41+ siteData [ language . code ] . site . data . glossaries . external . forEach ( ( item , i ) => {
42+ item . slug = siteData . en . site . data . glossaries . external [ i ] . term
43+ } )
44+
45+ // Sort glossary by language-specific function
46+ if ( language . code !== 'en' ) {
47+ siteData [ language . code ] . site . data . glossaries . external . sort (
4448 ( a , b ) => a . term . localeCompare ( b . term , language . code )
4549 )
50+ }
4651 }
4752
4853 return siteData
Original file line number Diff line number Diff line change 161161 "website-scraper" : " ^4.2.0"
162162 },
163163 "scripts" : {
164- "start" : " cross-env NODE_ENV=development ENABLED_LANGUAGES='en,cn ' nodemon server.js" ,
164+ "start" : " cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja ' nodemon server.js" ,
165165 "dev" : " npm start" ,
166166 "debug" : " cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon --inspect server.js" ,
167167 "rest-dev" : " script/rest/update-files.js && npm run dev" ,
You can’t perform that action at this time.
0 commit comments