1
0
Fork 0

summary: add link/anchor element

pull/1014/head
Rob Herley 2022-03-02 12:10:01 -05:00
parent ab2b23c50d
commit 302a5b31d8
No known key found for this signature in database
GPG Key ID: D1602042C3543B06
2 changed files with 26 additions and 0 deletions

View File

@ -60,6 +60,10 @@ const fixtures = {
quote: { quote: {
text: 'Where the world builds software', text: 'Where the world builds software',
cite: 'https://github.com/about' cite: 'https://github.com/about'
},
link: {
text: 'GitHub',
href: 'https://github.com/'
} }
} }
@ -237,4 +241,12 @@ describe('@actions/core/src/markdown-summary', () => {
const expected = `<blockquote cite="https://github.com/about">Where the world builds software</blockquote>${os.EOL}` const expected = `<blockquote cite="https://github.com/about">Where the world builds software</blockquote>${os.EOL}`
await assertSummary(expected) await assertSummary(expected)
}) })
it('adds a link with href', async () => {
await markdownSummary
.addLink(fixtures.link.text, fixtures.link.href)
.write()
const expected = `<a href="https://github.com/">GitHub</a>${os.EOL}`
await assertSummary(expected)
})
}) })

View File

@ -5,6 +5,7 @@ const {access, appendFile, writeFile} = promises
export const SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY' export const SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'
export type SummaryTableRow = (SummaryTableCell | string)[] export type SummaryTableRow = (SummaryTableCell | string)[]
export interface SummaryTableCell { export interface SummaryTableCell {
/** /**
* Cell content * Cell content
@ -312,6 +313,19 @@ class MarkdownSummary {
const element = this.wrap('blockquote', text, attrs) const element = this.wrap('blockquote', text, attrs)
return this.add(element).addEOL() return this.add(element).addEOL()
} }
/**
* Adds an HTML anchor tag to the summary buffer
*
* @param {string} text link text/content
* @param {string} href hyperlink
*
* @returns {MarkdownSummary} markdown summary instance
*/
addLink(text: string, href: string): MarkdownSummary {
const element = this.wrap('a', text, {href})
return this.add(element).addEOL()
}
} }
// singleton export // singleton export