mirror of
				https://github.com/fooflington/selfdefined.git
				synced 2025-10-30 21:58:32 +00:00 
			
		
		
		
	 bd88c18fd0
			
		
	
	bd88c18fd0
	
	
	
		
			
			* fix: untrack definitions in dist * feat(detail pages): update item link * feat(detail pages): add layout * feat(detail pages): render whole definition content * feat(detail pages): remove definitons from homepage * 🧹 def list component * feat(layout): render site footer in all pages * feat(detail pages): rename definition root class && move css into partials * chore: abstract further css into own files * feat(detail pages): update headling level of definition content * feat(styles): set box sizing * feat(styles): add margin bottom utility * feat(styles): selection * feat(components): sub page header own component * feat(detail pages): add sections * feat(style): mian headline * feat(page layout): rename page content grid * feat(page layout): add wide content class * feat(detail pages): set document title * feat(detail pages): set uniform document title for docs and definitions * feat(page title): add comment * feat(detail pages): add meta description * feat(detail pages): wrap def header in article tag * chore: set up ava * feat(filters): move permalink function into file, add test * chore: rename _temp to _util, remove creation script * feat(detail pages): helper function to find additional definitions * chore: move helpers to single directory * feat(detail pages): create shortcode for further definition navigation * feat(detail pages): fix find defs function * feat(detail pages): shortcode for browse nav markup * chore: fix collection mock data * feat(detail pages): render browse nav * feat(detail pages): style browse nav, style improvements * feat(detail pages): test redirect * feat(detail pages): client side redirect * feat(homepage): set title * 💅 * feat(detail pages): incorporate design changes * feat(detail pages): hide browse headlines * feat(detail pages): label lists * feat(footer): add aria label * feat(detail pages): redice heading level in md * feat(detail pages): spacing in browse nav * feat(detail pages): reduce line height * feat(detail pages): set max width w/o breaking homepage * feat(detail pages): replace in-definition definition links * 🧹 * feat(detail pages): recover spacing utility * 🧹 * chore(packages): update ava * config: specify nvm version * 💅 * 💅
		
			
				
	
	
		
			32 lines
		
	
	
		
			1002 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1002 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| module.exports = function findDefinitionContentNextItems({ slug }, collection) {
 | |
|   if (!slug) throw new Error('E_NO_SLUG');
 | |
| 
 | |
|   let previous = [];
 | |
|   let next = [];
 | |
| 
 | |
|   const flattenedCollection = collection.map((d) => d.data);
 | |
|   const index = flattenedCollection.findIndex((def) => def.slug === slug);
 | |
| 
 | |
|   // make this a no-op if we are at the beginning
 | |
|   if (index > 0) {
 | |
|     // a negative start index would start searching at the end of the array
 | |
|     // stop at zero to avoid this
 | |
|     const start = Math.max(0, index - 3);
 | |
|     // never get more than three items
 | |
|     const end = start + Math.min(index, 3);
 | |
| 
 | |
|     previous = flattenedCollection.slice(start, end);
 | |
|   }
 | |
| 
 | |
|   // make this a no-op if we are at the end
 | |
|   if (index < collection.length - 1) {
 | |
|     const start = index + 1;
 | |
|     // end overflow doesn't matter too much, cap it still because it feels right
 | |
|     const end = Math.min(start + 3, collection.length);
 | |
| 
 | |
|     next = flattenedCollection.slice(start, end);
 | |
|   }
 | |
| 
 | |
|   return { previous, next };
 | |
| };
 |