mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-18 06:44:46 -07:00
Include related links in App List
This commit is contained in:
parent
1f8ae38149
commit
ad2557e7c6
1 changed files with 43 additions and 1 deletions
|
|
@ -6,6 +6,45 @@ import slugify from 'slugify'
|
|||
|
||||
const md = new MarkdownIt()
|
||||
|
||||
const getTokenLinks = function ( childTokens ) {
|
||||
|
||||
const tokenList = []
|
||||
|
||||
let isLink = false
|
||||
|
||||
for (const token of childTokens) {
|
||||
|
||||
// On link_ switch link mode
|
||||
// link_open = true
|
||||
// link_close = false
|
||||
if (token.type.includes('link_')) isLink = !isLink
|
||||
|
||||
// For link_open create a new related link in our list
|
||||
// and store thee attributes into it
|
||||
if ( isLink && token.type === 'link_open' ) {
|
||||
tokenList.push({
|
||||
...Object.fromEntries(token.attrs)
|
||||
})
|
||||
}
|
||||
|
||||
// For the text inside the link
|
||||
// store that text as the label for the link we're inside
|
||||
if ( isLink && token.type === 'text' ) {
|
||||
// Get the last pushed link
|
||||
const currentLink = tokenList[tokenList.length-1]
|
||||
|
||||
// Add our text to it as a label
|
||||
tokenList[tokenList.length-1] = {
|
||||
...currentLink,
|
||||
label: token.content
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return tokenList
|
||||
}
|
||||
|
||||
export default async function () {
|
||||
|
||||
const readmeContent = await fs.readFile('./README.md', 'utf8')
|
||||
|
|
@ -49,6 +88,8 @@ export default async function () {
|
|||
if ( isParagraph && token.type === 'inline' && token.content.includes('-') ) {
|
||||
const [ link, text ] = token.content.split('-').map(string => string.trim())
|
||||
|
||||
const relatedLinks = getTokenLinks(token.children)
|
||||
|
||||
const [ name, url ] = link.substring(1, link.length-1).split('](')
|
||||
|
||||
const appSlug = slugify(name, {
|
||||
|
|
@ -61,7 +102,8 @@ export default async function () {
|
|||
text,
|
||||
slug: appSlug,
|
||||
sectionName,
|
||||
content: token.content
|
||||
content: token.content,
|
||||
relatedLinks
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue