1
0
mirror of https://github.com/squidfunk/mkdocs-material.git synced 2024-11-23 23:21:00 +01:00

Documentation

This commit is contained in:
squidfunk 2024-05-25 09:18:07 +02:00
parent 86d3729a62
commit 09f817d154
No known key found for this signature in database
GPG Key ID: 5ED40BC4F9C436DF
6 changed files with 63 additions and 50 deletions

View File

@ -86,6 +86,8 @@ future holds!
[sponsoring tiers]: sponsoring-tiers.md#commercial-use
<div data-mdx-component="sponsorship"></div>
## Funding <span class="mdx-sponsorship-total" data-mdx-component="sponsorship-total"></span>
### Goals

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -23,5 +23,5 @@
{% endblock %}
{% block scripts %}
{{ super() }}
<script src="{{ 'assets/javascripts/custom.b457887c.min.js' | url }}"></script>
<script src="{{ 'assets/javascripts/custom.058c863c.min.js' | url }}"></script>
{% endblock %}

View File

@ -20,13 +20,13 @@
* IN THE SOFTWARE.
*/
import { Observable, map } from "rxjs"
import { Observable, from, map, switchMap, tap } from "rxjs"
import { getElement, requestJSON } from "~/browser"
import { getOptionalElement, requestJSON } from "~/browser"
import { renderPrivateSponsor, renderPublicSponsor } from "_/templates"
import { Component, getComponentElement } from "../_"
import { Component, getComponentElements } from "../_"
/* ----------------------------------------------------------------------------
* Types
@ -113,35 +113,46 @@ export function mountSponsorship(
)
/* Retrieve adjacent components */
const count = getComponentElement("sponsorship-count")
const total = getComponentElement("sponsorship-total")
const count = getComponentElements("sponsorship-count")
const total = getComponentElements("sponsorship-total")
/* Render sponsorship */
sponsorship$.subscribe(sponsorship => {
el.removeAttribute("hidden")
/* Render public sponsors with avatar and links */
const list = getElement(":scope > :first-child", el)
for (const sponsor of sponsorship.sponsors)
if (sponsor.type === "public")
list.appendChild(renderPublicSponsor(sponsor.user))
/* Render combined private sponsors */
list.appendChild(renderPrivateSponsor(
sponsorship.sponsors.filter(({ type }) => (
type === "private"
)).length
/* Render sponsorship count */
sponsorship$.pipe(
switchMap(sponsorship => from(count).pipe(
tap(child => child.innerText = `${sponsorship.sponsors.length}`)
))
)
.subscribe(() => el.removeAttribute("hidden"))
/* Render sponsorship count and total */
count.innerText = `${sponsorship.sponsors.length}`
total.innerText = `$ ${sponsorship.total
.toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ",")
} a month`
})
/* Render sponsorship total */
sponsorship$.pipe(
switchMap(sponsorship => from(total).pipe(
tap(child => child.innerText = `$ ${sponsorship.total
.toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ",")
} a month`)
))
)
.subscribe()
// /* Create and return component */
// Render sponsorship list
const list = getOptionalElement(":scope > .mdx-sponsorship__list", el)
if (list && count.length) {
sponsorship$.subscribe(sponsorship => {
for (const sponsor of sponsorship.sponsors)
if (sponsor.type === "public")
list.appendChild(renderPublicSponsor(sponsor.user))
/* Render combined private sponsors */
list.appendChild(renderPrivateSponsor(
sponsorship.sponsors.filter(({ type }) => (
type === "private"
)).length
))
})
}
/* Create and return component */
return sponsorship$
.pipe(
map(state => ({ ref: el, ...state }))