1
0
mirror of synced 2025-12-19 18:10:59 -05:00
Files
docs/lib/frontmatter.js
Meg Bird 754ceda517 [Universe] Discussions Public Beta (#16547)
* Update README

* create structure for discussions landing page

* is everything broken

* [Universe] Dark mode (#16545)

* Fix title

* Add Discussions product

* Correct title

* Correct title

* Move quickstart article

* Move quickstart back out into article

* Add and incorporate reusables

* Move information about search

* Draft conceptual information

* Draft best practices

* Draft further reading

* Draft product introduction

* Draft introduction

* Add author metadata

* Pluralize

* Fix typos

* Add introduction

* Bump Octicons

* Add some reusables

* Add images

* Revise article

* Draft article

* Change word

* 🔪 the gerund

* Add reusable

* Revise introduction

* Revise list

* Simplify

* Revise reusable

* Fix reusable; add context

* Rename reusable

* Deduplicate conceptual information

* 🔪 gerund

* Add link to further reading

* Move link and dispose of tip

* Delete space

* Add images

* Add conceptual section

* Add word

* Delete newline

* Revert package.json to state on main

* Tweak images

* Draft article

* Add product name

* Remove beta note

* Use product name for future-proofing

* Begin adding search information

* Fix copypasta

* little edits

* build out a bit more of the guides content

* Don't mention integrations for now

* Escape quote

* Remove authorship information for new defaults

* Finish drafting article

* Replace encoded character to match description

* Revise away inline link

* Accommodate 'for more information' in reusable

* Fix links

* Fix one last bit of copypasta

* Update indices

* Temporarily remove heading

* Update introduction

* Add new article 💀

* Remove commits from universe-2020-megabranch

* Add article 💀

* update with a very rough draft

* Add content about collaboration options to "About repositories"

* Add content about discussions to "About issues"

* Reorder content

* Add is:discussion query

* update with a few mmore fleshed out sections

* update with more structure

* Add reusable

* Add screenshots

* Clear way for actual procedural

* Discussions landing page "Communities" section (#16692)

* Make button Overview-able

* Make card filtering more extensible

* Guard for missing attributes

* Use arbitrary dataset attributes

* Add section with discussions-community-card

* Tweak show more button behavior

* Conditionally show "Show more"

* Add beta_product frontmatter/label

* Remove beta callout note

* Hide changelog with no items

* Finish importing community info

* Fix borked markup

* Omit search abr

* Two columns should actually be two columns

* Use org image, change card layout

* Add two more examples

* Fix title

* Escape quote

* Escape another quote

* Draft article

* Lower case

* Relocate conceptual information

* Update qualifier name

* Draft article

* Add conceptual information and links

* Remove duplicative section

* Fix copypasta

* Revise reusable

* Update link

* Add content on categories

* Lint the discussions YAML file

* Update introduction and permissions

* 

* Reusablize; fix link

* more planning content stuff

* Escape quotes

* Align prerequisites

* Soften

* Clean up prerequisites

* Fix titles; version; add screenshot

* Fix links

* Actually fix links

* Use better variable

* Mention pinning

* Update screenshots

* Add screenshot

* forgot to committ

* update with reusable

* add that screenshot

* beef up landing page a bit

* remove extra space

* messed that up

* fix hardcoded linkks weirdo

* fix tests

* update with permissions content

* update with placeholder

* filter out standalone category files from test

* update

* update @becca's  feedback

* update with more feedback

* so many updates

* fix links

* fix some more tests

* flesh some more things out

* update with further reading blah blah

* fix some things

* remove the gate-features label for beta ship only

* Add discussions video to product landing page (#16759)

* Add discussions video placeholder

* This might work maybe

* fix tests

* apply all of @becca's and @lecoursen's  feedback ❤️

* rename to fix test

* Revert "Add discussions video to product landing page (#16759)"

This reverts commit 2247e5d0881ca6b36cee421218e8341a7cc12ac7.

* update with test fix

Co-authored-by: Melanie Yarbrough <11952755+myarb@users.noreply.github.com>
Co-authored-by: Laura Coursen <lecoursen@github.com>
Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com>
Co-authored-by: Jason Etcovitch <jasonetco@github.com>
Co-authored-by: Sarah Schneider <sarahs@github.com>
2020-12-07 15:00:35 -07:00

130 lines
2.9 KiB
JavaScript

const parse = require('@github-docs/frontmatter')
const layoutNames = Object.keys(require('./layouts')).concat([false])
const semverRange = {
type: 'string',
conform: require('semver').validRange,
message: 'Must be a valid SemVer range'
}
const versionIds = Object.keys(require('./all-versions'))
const schema = {
properties: {
title: {
type: 'string',
required: true
},
shortTitle: {
type: 'string'
},
intro: {
type: 'string'
},
product: {
type: 'string'
},
permissions: {
type: 'string'
},
// true by default on articles, false on all other content
showMiniToc: {
type: 'boolean'
},
miniTocMaxHeadingLevel: {
type: 'number',
default: 3,
minimum: 2,
maximum: 4
},
mapTopic: {
type: 'boolean'
},
// allow hidden articles under `early-access`
hidden: {
type: 'boolean'
},
layout: {
type: ['string', 'boolean'],
enum: layoutNames,
message: 'must be the filename of an existing layout file, or `false` for no layout'
},
redirect_from: {
type: ['array', 'string']
},
allowTitleToDifferFromFilename: {
type: 'boolean'
},
introLinks: {
type: 'object',
properties: {
quickstart: { type: 'string' },
reference: { type: 'string' },
overview: { type: 'string' }
}
},
authors: {
type: 'array',
items: {
type: 'string'
}
},
featuredLinks: {
type: 'object',
additionalProperties: false,
patternProperties: {
'^[a-zA-Z-_]+$': {
type: 'array',
items: { type: 'string' }
}
}
},
// Shown in `product-landing.html` "What's new" section
changelog: {
type: 'array',
items: {
type: 'object',
properties: {
title: { type: 'string' },
date: { type: 'string', format: 'date' },
href: { type: 'string' }
}
}
},
// Used in `product-landing.html`
beta_product: {
type: 'boolean'
},
// Show in `product-landing.html`
product_video: {
type: 'string',
format: 'url'
},
interactive: {
type: 'boolean'
}
}
}
schema.properties.versions = {
type: ['object', 'string'], // allow a '*' string to indicate all versions
required: true,
properties: versionIds.reduce((acc, versionId) => {
acc[versionId] = semverRange
return acc
}, {})
}
function frontmatter (markdown, opts = {}) {
const defaults = {
schema,
validateKeyNames: true,
validateKeyOrder: false // TODO: enable this once we've sorted all the keys. See issue 9658
}
return parse(markdown, Object.assign({}, defaults, opts))
}
// attach the schema object so it can be `require`d elsewhere.
frontmatter.schema = schema
module.exports = frontmatter