selfdefined/_util/create-empty-definitions.js
Oscar bd88c18fd0
📄 Add Detail Pages for Definitions (#75)
* 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

* 💅

* 💅
2020-03-09 15:47:06 -07:00

37 lines
799 B
JavaScript

import slugify from 'slugify'
import path from 'path'
import fs from 'fs'
import { promisify } from 'util'
const writeFile = promisify(fs.writeFile)
import { words } from './undefined-words'
const defintionPath = path.resolve(process.cwd(), '11ty/definitions/')
const template = `
---
title: {{title}}
slug: {{slug}}
defined: false
---
`
export function createDefinitions() {
return words.forEach(async (word) => {
const title = word
const slug = slugify(word.toLowerCase().replace(/ \([a-z]+\)| ([a-z-]+) slur/i, ''))
const content = template.replace('{{title}}', title).replace('{{slug}}', slug).trim()
try {
await writeFile(`${defintionPath}/${slug}.md`, content, 'utf8')
} catch (e) {
console.error(e)
process.exit(1)
}
return true
})
}