@brillout/docpress 0.8.15 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Layout.tsx +2 -2
- package/MenuModal.tsx +15 -1
- package/components/Note.tsx +6 -2
- package/components/index.ts +0 -5
- package/dist/Layout.js +2 -2
- package/dist/MenuModal.d.ts +2 -0
- package/dist/MenuModal.js +14 -1
- package/dist/components/Note.js +4 -3
- package/dist/components/index.d.ts +0 -5
- package/dist/components/index.js +0 -5
- package/index.ts +11 -2
- package/package.json +2 -3
- package/components/Consulting.tsx +0 -47
- package/components/Contributors.tsx +0 -119
- package/components/ReadingRecommendation.tsx +0 -57
- package/components/Sponsors/label.draft.svg +0 -108
- package/components/Sponsors/label.svg +0 -5
- package/components/Sponsors/medalBronze.svg +0 -65
- package/components/Sponsors/medalGold.svg +0 -65
- package/components/Sponsors/medalSilver.svg +0 -65
- package/components/Sponsors.tsx +0 -218
- package/components/Supporters.tsx +0 -136
- package/data/maintainersList.tsx +0 -92
- package/data/sponsorsList/companyLogos/alignable.svg +0 -19
- package/data/sponsorsList/companyLogos/bluefin.svg +0 -53
- package/data/sponsorsList/companyLogos/burdaforward.png +0 -0
- package/data/sponsorsList/companyLogos/contra.svg +0 -1
- package/data/sponsorsList/companyLogos/ecosia.svg +0 -1
- package/data/sponsorsList/companyLogos/inlang.png +0 -0
- package/data/sponsorsList/companyLogos/optimizers.svg +0 -17
- package/data/sponsorsList/companyLogos/sourcegraph.svg +0 -1
- package/data/sponsorsList.ts +0 -147
- package/dist/components/Consulting.d.ts +0 -4
- package/dist/components/Consulting.js +0 -39
- package/dist/components/Contributors.d.ts +0 -7
- package/dist/components/Contributors.js +0 -78
- package/dist/components/ReadingRecommendation.d.ts +0 -6
- package/dist/components/ReadingRecommendation.js +0 -40
- package/dist/components/Sponsors.d.ts +0 -22
- package/dist/components/Sponsors.js +0 -161
- package/dist/components/Supporters.d.ts +0 -32
- package/dist/components/Supporters.js +0 -80
- package/dist/data/maintainersList.d.ts +0 -9
- package/dist/data/maintainersList.js +0 -83
- package/dist/data/sponsorsList.d.ts +0 -3
- package/dist/data/sponsorsList.js +0 -151
- package/icons/heart.svg +0 -1
- package/icons/people.svg +0 -9
package/Layout.tsx
CHANGED
|
@@ -11,7 +11,7 @@ import { EditPageNote } from './components/EditPageNote'
|
|
|
11
11
|
import { parseTitle } from './parseTitle'
|
|
12
12
|
import { usePageContext, usePageContext2 } from './renderer/usePageContext'
|
|
13
13
|
import { NavSecondaryContent } from './NavSecondaryContent'
|
|
14
|
-
import {
|
|
14
|
+
import { closeMenuModalWithDelay, openMenuModal, toggleMenuModal } from './MenuModal'
|
|
15
15
|
import { MenuModal } from './MenuModal'
|
|
16
16
|
import { autoScrollNav_SSR } from './autoScrollNav'
|
|
17
17
|
import { SearchLink } from './docsearch/SearchLink'
|
|
@@ -479,7 +479,7 @@ function MenuLink(props: PropsDiv) {
|
|
|
479
479
|
}}
|
|
480
480
|
onMouseLeave={() => {
|
|
481
481
|
if (onMouseIgnore) return
|
|
482
|
-
|
|
482
|
+
closeMenuModalWithDelay(100)
|
|
483
483
|
}}
|
|
484
484
|
onTouchStart={() => {
|
|
485
485
|
onMouseIgnore = setTimeout(() => {
|
package/MenuModal.tsx
CHANGED
|
@@ -2,6 +2,7 @@ export { MenuModal }
|
|
|
2
2
|
export { toggleMenuModal }
|
|
3
3
|
export { openMenuModal }
|
|
4
4
|
export { closeMenuModal }
|
|
5
|
+
export { closeMenuModalWithDelay }
|
|
5
6
|
|
|
6
7
|
import React from 'react'
|
|
7
8
|
import { usePageContext } from './renderer/usePageContext'
|
|
@@ -12,6 +13,8 @@ import { NavSecondaryContent } from './NavSecondaryContent'
|
|
|
12
13
|
import { getViewportWidth } from './utils/getViewportWidth'
|
|
13
14
|
import { Style } from './utils/Style'
|
|
14
15
|
|
|
16
|
+
let closeMenuModalPending: NodeJS.Timeout
|
|
17
|
+
|
|
15
18
|
function MenuModal({ isTopNav }: { isTopNav: boolean }) {
|
|
16
19
|
return (
|
|
17
20
|
<>
|
|
@@ -22,7 +25,14 @@ function MenuModal({ isTopNav }: { isTopNav: boolean }) {
|
|
|
22
25
|
style={{
|
|
23
26
|
position: isTopNav ? 'absolute' : 'fixed',
|
|
24
27
|
width: '100%',
|
|
28
|
+
/* Firefox doesn't support `dvh` yet: https://caniuse.com/?search=dvh
|
|
29
|
+
* - Always use `dvh` instead of `vh` once Firefox supports it.
|
|
30
|
+
* - We use dvh because of mobile: https://stackoverflow.com/questions/37112218/css3-100vh-not-constant-in-mobile-browser/72245072#72245072
|
|
31
|
+
height: 'calc(100dvh - var(--nav-head-height))',
|
|
32
|
+
/*/
|
|
25
33
|
height: 'calc(100vh - var(--nav-head-height))',
|
|
34
|
+
maxHeight: 'calc(100dvh - var(--nav-head-height))',
|
|
35
|
+
//*/
|
|
26
36
|
top: 'var(--nav-head-height)',
|
|
27
37
|
left: 0,
|
|
28
38
|
zIndex: 9999,
|
|
@@ -38,7 +48,7 @@ function MenuModal({ isTopNav }: { isTopNav: boolean }) {
|
|
|
38
48
|
// Place <LinksBottom /> to the bottom
|
|
39
49
|
display: 'flex',
|
|
40
50
|
flexDirection: 'column',
|
|
41
|
-
minHeight: 'calc(
|
|
51
|
+
minHeight: 'calc(100dvh - var(--nav-head-height))',
|
|
42
52
|
justifyContent: 'space-between',
|
|
43
53
|
// We don't set `container` to parent beacuse of a Chrome bug (showing a blank <MenuModal>)
|
|
44
54
|
container: 'container-viewport / inline-size',
|
|
@@ -165,8 +175,12 @@ function findCollapsibleEl(navLink: HTMLElement | undefined) {
|
|
|
165
175
|
return null
|
|
166
176
|
}
|
|
167
177
|
function openMenuModal() {
|
|
178
|
+
clearTimeout(closeMenuModalPending)
|
|
168
179
|
document.documentElement.classList.add('menu-modal-show')
|
|
169
180
|
}
|
|
170
181
|
function closeMenuModal() {
|
|
171
182
|
document.documentElement.classList.remove('menu-modal-show')
|
|
172
183
|
}
|
|
184
|
+
function closeMenuModalWithDelay(delay: number) {
|
|
185
|
+
closeMenuModalPending = setTimeout(closeMenuModal, delay)
|
|
186
|
+
}
|
package/components/Note.tsx
CHANGED
|
@@ -93,8 +93,12 @@ function NoteGeneric({
|
|
|
93
93
|
return (
|
|
94
94
|
<blockquote className={className} style={style}>
|
|
95
95
|
<div style={{ marginBottom: 20 }} />
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
{icon && (
|
|
97
|
+
<>
|
|
98
|
+
<span style={{ fontFamily: 'emoji' }}>{icon}</span>
|
|
99
|
+
<span style={{ width: iconMargin ?? undefined, display: 'inline-block' }}></span>{' '}
|
|
100
|
+
</>
|
|
101
|
+
)}
|
|
98
102
|
<div className="blockquote-content">{children}</div>
|
|
99
103
|
<div style={{ marginTop: 20 }} />
|
|
100
104
|
</blockquote>
|
package/components/index.ts
CHANGED
|
@@ -2,14 +2,9 @@ export * from '../utils/Emoji'
|
|
|
2
2
|
export * from './Link'
|
|
3
3
|
export * from './RepoLink'
|
|
4
4
|
export * from './P'
|
|
5
|
-
export * from './ReadingRecommendation'
|
|
6
5
|
export * from './Note'
|
|
7
6
|
export * from './ImportMeta'
|
|
8
7
|
export * from './HorizontalLine'
|
|
9
|
-
export * from './Supporters'
|
|
10
|
-
export * from './Sponsors'
|
|
11
|
-
export * from './Contributors'
|
|
12
|
-
export * from './Consulting'
|
|
13
8
|
export * from './CodeBlockTransformer'
|
|
14
9
|
export * from './Comment'
|
|
15
10
|
export * from './FileRemoved'
|
package/dist/Layout.js
CHANGED
|
@@ -25,7 +25,7 @@ import { EditPageNote } from './components/EditPageNote';
|
|
|
25
25
|
import { parseTitle } from './parseTitle';
|
|
26
26
|
import { usePageContext, usePageContext2 } from './renderer/usePageContext';
|
|
27
27
|
import { NavSecondaryContent } from './NavSecondaryContent';
|
|
28
|
-
import {
|
|
28
|
+
import { closeMenuModalWithDelay, openMenuModal, toggleMenuModal } from './MenuModal';
|
|
29
29
|
import { MenuModal } from './MenuModal';
|
|
30
30
|
import { autoScrollNav_SSR } from './autoScrollNav';
|
|
31
31
|
import { SearchLink } from './docsearch/SearchLink';
|
|
@@ -290,7 +290,7 @@ function MenuLink(props) {
|
|
|
290
290
|
}, onMouseLeave: function () {
|
|
291
291
|
if (onMouseIgnore)
|
|
292
292
|
return;
|
|
293
|
-
|
|
293
|
+
closeMenuModalWithDelay(100);
|
|
294
294
|
}, onTouchStart: function () {
|
|
295
295
|
onMouseIgnore = setTimeout(function () {
|
|
296
296
|
onMouseIgnore = undefined;
|
package/dist/MenuModal.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { MenuModal };
|
|
|
2
2
|
export { toggleMenuModal };
|
|
3
3
|
export { openMenuModal };
|
|
4
4
|
export { closeMenuModal };
|
|
5
|
+
export { closeMenuModalWithDelay };
|
|
5
6
|
import React from 'react';
|
|
6
7
|
declare function MenuModal({ isTopNav }: {
|
|
7
8
|
isTopNav: boolean;
|
|
@@ -9,3 +10,4 @@ declare function MenuModal({ isTopNav }: {
|
|
|
9
10
|
declare function toggleMenuModal(): void;
|
|
10
11
|
declare function openMenuModal(): void;
|
|
11
12
|
declare function closeMenuModal(): void;
|
|
13
|
+
declare function closeMenuModalWithDelay(delay: number): void;
|
package/dist/MenuModal.js
CHANGED
|
@@ -6,6 +6,7 @@ export { MenuModal };
|
|
|
6
6
|
export { toggleMenuModal };
|
|
7
7
|
export { openMenuModal };
|
|
8
8
|
export { closeMenuModal };
|
|
9
|
+
export { closeMenuModalWithDelay };
|
|
9
10
|
import React from 'react';
|
|
10
11
|
import { usePageContext } from './renderer/usePageContext';
|
|
11
12
|
import { NavigationContent } from './navigation/Navigation';
|
|
@@ -14,6 +15,7 @@ import { containerQueryMobileLayout, containerQueryMobileMenu } from './Layout';
|
|
|
14
15
|
import { NavSecondaryContent } from './NavSecondaryContent';
|
|
15
16
|
import { getViewportWidth } from './utils/getViewportWidth';
|
|
16
17
|
import { Style } from './utils/Style';
|
|
18
|
+
var closeMenuModalPending;
|
|
17
19
|
function MenuModal(_a) {
|
|
18
20
|
var isTopNav = _a.isTopNav;
|
|
19
21
|
return (React.createElement(React.Fragment, null,
|
|
@@ -21,7 +23,14 @@ function MenuModal(_a) {
|
|
|
21
23
|
React.createElement("div", { id: "menu-modal", className: "link-hover-animation add-transition", style: {
|
|
22
24
|
position: isTopNav ? 'absolute' : 'fixed',
|
|
23
25
|
width: '100%',
|
|
26
|
+
/* Firefox doesn't support `dvh` yet: https://caniuse.com/?search=dvh
|
|
27
|
+
* - Always use `dvh` instead of `vh` once Firefox supports it.
|
|
28
|
+
* - We use dvh because of mobile: https://stackoverflow.com/questions/37112218/css3-100vh-not-constant-in-mobile-browser/72245072#72245072
|
|
29
|
+
height: 'calc(100dvh - var(--nav-head-height))',
|
|
30
|
+
/*/
|
|
24
31
|
height: 'calc(100vh - var(--nav-head-height))',
|
|
32
|
+
maxHeight: 'calc(100dvh - var(--nav-head-height))',
|
|
33
|
+
//*/
|
|
25
34
|
top: 'var(--nav-head-height)',
|
|
26
35
|
left: 0,
|
|
27
36
|
zIndex: 9999,
|
|
@@ -33,7 +42,7 @@ function MenuModal(_a) {
|
|
|
33
42
|
// Place <LinksBottom /> to the bottom
|
|
34
43
|
display: 'flex',
|
|
35
44
|
flexDirection: 'column',
|
|
36
|
-
minHeight: 'calc(
|
|
45
|
+
minHeight: 'calc(100dvh - var(--nav-head-height))',
|
|
37
46
|
justifyContent: 'space-between',
|
|
38
47
|
// We don't set `container` to parent beacuse of a Chrome bug (showing a blank <MenuModal>)
|
|
39
48
|
container: 'container-viewport / inline-size',
|
|
@@ -99,9 +108,13 @@ function findCollapsibleEl(navLink) {
|
|
|
99
108
|
return null;
|
|
100
109
|
}
|
|
101
110
|
function openMenuModal() {
|
|
111
|
+
clearTimeout(closeMenuModalPending);
|
|
102
112
|
document.documentElement.classList.add('menu-modal-show');
|
|
103
113
|
}
|
|
104
114
|
function closeMenuModal() {
|
|
105
115
|
document.documentElement.classList.remove('menu-modal-show');
|
|
106
116
|
}
|
|
117
|
+
function closeMenuModalWithDelay(delay) {
|
|
118
|
+
closeMenuModalPending = setTimeout(closeMenuModal, delay);
|
|
119
|
+
}
|
|
107
120
|
var templateObject_1;
|
package/dist/components/Note.js
CHANGED
|
@@ -86,9 +86,10 @@ function NoteGeneric(_a) {
|
|
|
86
86
|
}
|
|
87
87
|
return (React.createElement("blockquote", { className: className, style: style },
|
|
88
88
|
React.createElement("div", { style: { marginBottom: 20 } }),
|
|
89
|
-
React.createElement(
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
icon && (React.createElement(React.Fragment, null,
|
|
90
|
+
React.createElement("span", { style: { fontFamily: 'emoji' } }, icon),
|
|
91
|
+
React.createElement("span", { style: { width: iconMargin !== null && iconMargin !== void 0 ? iconMargin : undefined, display: 'inline-block' } }),
|
|
92
|
+
' ')),
|
|
92
93
|
React.createElement("div", { className: "blockquote-content" }, children),
|
|
93
94
|
React.createElement("div", { style: { marginTop: 20 } })));
|
|
94
95
|
}
|
|
@@ -2,14 +2,9 @@ export * from '../utils/Emoji';
|
|
|
2
2
|
export * from './Link';
|
|
3
3
|
export * from './RepoLink';
|
|
4
4
|
export * from './P';
|
|
5
|
-
export * from './ReadingRecommendation';
|
|
6
5
|
export * from './Note';
|
|
7
6
|
export * from './ImportMeta';
|
|
8
7
|
export * from './HorizontalLine';
|
|
9
|
-
export * from './Supporters';
|
|
10
|
-
export * from './Sponsors';
|
|
11
|
-
export * from './Contributors';
|
|
12
|
-
export * from './Consulting';
|
|
13
8
|
export * from './CodeBlockTransformer';
|
|
14
9
|
export * from './Comment';
|
|
15
10
|
export * from './FileRemoved';
|
package/dist/components/index.js
CHANGED
|
@@ -2,14 +2,9 @@ export * from '../utils/Emoji';
|
|
|
2
2
|
export * from './Link';
|
|
3
3
|
export * from './RepoLink';
|
|
4
4
|
export * from './P';
|
|
5
|
-
export * from './ReadingRecommendation';
|
|
6
5
|
export * from './Note';
|
|
7
6
|
export * from './ImportMeta';
|
|
8
7
|
export * from './HorizontalLine';
|
|
9
|
-
export * from './Supporters';
|
|
10
|
-
export * from './Sponsors';
|
|
11
|
-
export * from './Contributors';
|
|
12
|
-
export * from './Consulting';
|
|
13
8
|
export * from './CodeBlockTransformer';
|
|
14
9
|
export * from './Comment';
|
|
15
10
|
export * from './FileRemoved';
|
package/index.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
1
|
+
export {
|
|
2
|
+
CodeBlockTransformer,
|
|
3
|
+
Link,
|
|
4
|
+
RepoLink,
|
|
5
|
+
FileAdded,
|
|
6
|
+
FileRemoved,
|
|
7
|
+
ImportMeta,
|
|
8
|
+
Emoji,
|
|
9
|
+
} from './components'
|
|
10
|
+
export * from './components/Note'
|
|
11
|
+
export { assert } from './utils/assert'
|
|
3
12
|
export type { Config } from './types/Config'
|
|
4
13
|
export type { HeadingDefinition, HeadingDetachedDefinition } from './types/Heading'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brillout/docpress",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@brillout/picocolors": "^1.0.10",
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
"@vitejs/plugin-react-swc": "^3.3.2",
|
|
14
14
|
"rehype-pretty-code": "0.13.0",
|
|
15
15
|
"remark-gfm": "4.0.0",
|
|
16
|
-
"shiki": "1.2.0"
|
|
17
|
-
"vike-contributors": "^0.0.9"
|
|
16
|
+
"shiki": "1.2.0"
|
|
18
17
|
},
|
|
19
18
|
"peerDependencies": {
|
|
20
19
|
"@types/node": "*",
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export { Consulting, Consultants }
|
|
2
|
-
|
|
3
|
-
import React from 'react'
|
|
4
|
-
import iconPeople from '../icons/people.svg'
|
|
5
|
-
import { usePageContext } from '../renderer/usePageContext'
|
|
6
|
-
import { SupporterSection, SectionDescription, CallToAction } from './Supporters'
|
|
7
|
-
import { Maintainer } from './Contributors'
|
|
8
|
-
import { maintainers } from '../data/maintainersList'
|
|
9
|
-
import { Link } from './Link'
|
|
10
|
-
const consultingPageHref = '/consulting'
|
|
11
|
-
|
|
12
|
-
function Consulting() {
|
|
13
|
-
const pageContext = usePageContext()
|
|
14
|
-
const { projectInfo } = pageContext.config
|
|
15
|
-
const { projectName } = projectInfo
|
|
16
|
-
return (
|
|
17
|
-
<SupporterSection>
|
|
18
|
-
<CallToAction iconUrl={iconPeople} text="Consulting" href={consultingPageHref} />
|
|
19
|
-
<div></div>
|
|
20
|
-
<SectionDescription>
|
|
21
|
-
For questions and issues related to {projectName}, open a{' '}
|
|
22
|
-
<a href={projectInfo.githubDiscussions || projectInfo.githubIssues}>GitHub Discussion</a>. For advanced help or
|
|
23
|
-
help not directly related to {projectName}, the {projectName} team offers{' '}
|
|
24
|
-
<Link href={consultingPageHref} noBreadcrumb>
|
|
25
|
-
consulting
|
|
26
|
-
</Link>
|
|
27
|
-
.
|
|
28
|
-
</SectionDescription>
|
|
29
|
-
</SupporterSection>
|
|
30
|
-
)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function Consultants() {
|
|
34
|
-
return (
|
|
35
|
-
<SupporterSection>
|
|
36
|
-
<div style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'end' }}>
|
|
37
|
-
{maintainers
|
|
38
|
-
.filter((maintainer) => {
|
|
39
|
-
return !!maintainer.consultingUrl
|
|
40
|
-
})
|
|
41
|
-
.map((maintainer, i) => (
|
|
42
|
-
<Maintainer maintainer={maintainer} key={i} />
|
|
43
|
-
))}
|
|
44
|
-
</div>
|
|
45
|
-
</SupporterSection>
|
|
46
|
-
)
|
|
47
|
-
}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
export { Contributors, Maintainer }
|
|
2
|
-
|
|
3
|
-
import React from 'react'
|
|
4
|
-
import { usePageContext } from '../renderer/usePageContext'
|
|
5
|
-
import { Supporter, SupporterSection, Individuals, SupporterImg } from './Supporters'
|
|
6
|
-
import { maintainers } from '../data/maintainersList'
|
|
7
|
-
import { contributors } from 'vike-contributors' // sorted by number of contributions
|
|
8
|
-
|
|
9
|
-
function Contributors() {
|
|
10
|
-
const pageContext = usePageContext()
|
|
11
|
-
const { projectInfo } = pageContext.config
|
|
12
|
-
return (
|
|
13
|
-
<SupporterSection>
|
|
14
|
-
<p
|
|
15
|
-
style={{
|
|
16
|
-
maxWidth: 400,
|
|
17
|
-
display: 'inline-block',
|
|
18
|
-
fontSize: '1.2em',
|
|
19
|
-
}}
|
|
20
|
-
>
|
|
21
|
-
{projectInfo.projectName} is built and maintained by passionate contributors.
|
|
22
|
-
</p>
|
|
23
|
-
<div style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'space-evenly', alignItems: 'end' }}>
|
|
24
|
-
{maintainers.map((maintainer, i) => (
|
|
25
|
-
<Maintainer maintainer={maintainer} key={i} />
|
|
26
|
-
))}
|
|
27
|
-
</div>
|
|
28
|
-
<Individuals>
|
|
29
|
-
{contributors
|
|
30
|
-
.filter((contributor) => {
|
|
31
|
-
return (
|
|
32
|
-
!contributor.login.includes('[bot]') && !maintainers.map((m) => m.username).includes(contributor.login)
|
|
33
|
-
)
|
|
34
|
-
})
|
|
35
|
-
.map((contributor, i) => (
|
|
36
|
-
<Supporter username={contributor.login} avatarUrl={contributor.avatarUrl} key={i} />
|
|
37
|
-
))}
|
|
38
|
-
</Individuals>
|
|
39
|
-
</SupporterSection>
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function Maintainer({ maintainer }: { maintainer: (typeof maintainers)[0] }) {
|
|
44
|
-
const marginHeight = 20
|
|
45
|
-
const marginWidth = 10
|
|
46
|
-
const imgSize = 50
|
|
47
|
-
const githubUrl = `https://github.com/${maintainer.username}`
|
|
48
|
-
return (
|
|
49
|
-
<div
|
|
50
|
-
style={{
|
|
51
|
-
borderRadius: 7,
|
|
52
|
-
borderWidth: 1,
|
|
53
|
-
borderStyle: 'solid',
|
|
54
|
-
borderColor: '#e0e0e0',
|
|
55
|
-
overflow: 'hidden',
|
|
56
|
-
width: 430,
|
|
57
|
-
maxWidth: `calc(100vw - 2 * var(--main-view-padding) - 2 * ${marginWidth}px)`,
|
|
58
|
-
margin: `${marginHeight}px ${marginWidth}px`,
|
|
59
|
-
display: 'flex',
|
|
60
|
-
flexWrap: 'wrap',
|
|
61
|
-
padding: 20,
|
|
62
|
-
gap: 20,
|
|
63
|
-
textAlign: 'left',
|
|
64
|
-
}}
|
|
65
|
-
>
|
|
66
|
-
<a href={githubUrl}>
|
|
67
|
-
<div style={{ width: imgSize, height: imgSize, borderRadius: imgSize / 2, overflow: 'hidden' }}>
|
|
68
|
-
<SupporterImg
|
|
69
|
-
username={maintainer.username}
|
|
70
|
-
avatarUrl={getAvatarUrl(maintainer)}
|
|
71
|
-
imgAlt={maintainer.firstName}
|
|
72
|
-
width={imgSize}
|
|
73
|
-
height={imgSize}
|
|
74
|
-
/>
|
|
75
|
-
</div>
|
|
76
|
-
</a>
|
|
77
|
-
<div>
|
|
78
|
-
<b>{maintainer.firstName}</b> ·{' '}
|
|
79
|
-
<a href={githubUrl}>
|
|
80
|
-
<i style={{ fontSize: '.9em', color: '#505050' }}>{maintainer.username}</i>
|
|
81
|
-
</a>
|
|
82
|
-
{maintainer.consultingUrl ? (
|
|
83
|
-
<>
|
|
84
|
-
{' '}
|
|
85
|
-
·{' '}
|
|
86
|
-
<a href={maintainer.consultingUrl}>
|
|
87
|
-
<b
|
|
88
|
-
style={{
|
|
89
|
-
fontSize: '.7em',
|
|
90
|
-
color: 'white',
|
|
91
|
-
backgroundColor: '#305090',
|
|
92
|
-
padding: '1px 5px 2px 5px',
|
|
93
|
-
verticalAlign: 'text-top',
|
|
94
|
-
borderRadius: 3,
|
|
95
|
-
}}
|
|
96
|
-
>
|
|
97
|
-
consulting
|
|
98
|
-
</b>
|
|
99
|
-
</a>
|
|
100
|
-
</>
|
|
101
|
-
) : null}
|
|
102
|
-
<ul style={{ fontSize: '.8em', paddingLeft: 15, marginTop: 5, marginBottom: 0 }}>
|
|
103
|
-
{maintainer.roles.map((role, i) => (
|
|
104
|
-
<li key={i}>{role}</li>
|
|
105
|
-
))}
|
|
106
|
-
</ul>
|
|
107
|
-
</div>
|
|
108
|
-
</div>
|
|
109
|
-
)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
function getAvatarUrl(maintainer: (typeof maintainers)[0]) {
|
|
113
|
-
for (const contributor of contributors) {
|
|
114
|
-
if (maintainer.username === contributor.login) {
|
|
115
|
-
return contributor.avatarUrl
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
throw new Error(`Maintainer ${maintainer.username} not found in contributors' list.`)
|
|
119
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { Link } from './Link'
|
|
3
|
-
|
|
4
|
-
export { ReadingRecommendation }
|
|
5
|
-
|
|
6
|
-
// TODO/eventually: remove
|
|
7
|
-
function ReadingRecommendation({ tour, links }: { tour?: true; links?: string[] }) {
|
|
8
|
-
links ??= []
|
|
9
|
-
if (!links.length) tour = true
|
|
10
|
-
const multiple = links.length + (tour ? 1 : 0) > 1
|
|
11
|
-
const intro = <b>Reading Recommendation{multiple ? '.' : ': '}</b>
|
|
12
|
-
return (
|
|
13
|
-
<blockquote>
|
|
14
|
-
{(() => {
|
|
15
|
-
if (!multiple) {
|
|
16
|
-
const link = tour ? <TourLink /> : <Link href={links[0]} />
|
|
17
|
-
return (
|
|
18
|
-
<p>
|
|
19
|
-
{intro}
|
|
20
|
-
{link}
|
|
21
|
-
</p>
|
|
22
|
-
)
|
|
23
|
-
}
|
|
24
|
-
return (
|
|
25
|
-
<>
|
|
26
|
-
<p> {intro}</p>
|
|
27
|
-
<ul
|
|
28
|
-
style={{
|
|
29
|
-
marginLeft: 18,
|
|
30
|
-
marginTop: 11,
|
|
31
|
-
}}
|
|
32
|
-
>
|
|
33
|
-
{tour && (
|
|
34
|
-
<li>
|
|
35
|
-
<TourLink />
|
|
36
|
-
</li>
|
|
37
|
-
)}
|
|
38
|
-
{links.map((link, i) => (
|
|
39
|
-
<li key={i}>
|
|
40
|
-
<Link href={link} />
|
|
41
|
-
</li>
|
|
42
|
-
))}
|
|
43
|
-
</ul>
|
|
44
|
-
</>
|
|
45
|
-
)
|
|
46
|
-
})()}
|
|
47
|
-
</blockquote>
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function TourLink() {
|
|
52
|
-
return (
|
|
53
|
-
<>
|
|
54
|
-
<Link href={'/react-tour'} noBreadcrumb={true} /> or <Link href={'/vue-tour'} noBreadcrumb={true} />
|
|
55
|
-
</>
|
|
56
|
-
)
|
|
57
|
-
}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
-
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
-
|
|
4
|
-
<svg
|
|
5
|
-
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
6
|
-
xmlns:cc="http://creativecommons.org/ns#"
|
|
7
|
-
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
8
|
-
xmlns:svg="http://www.w3.org/2000/svg"
|
|
9
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
-
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
11
|
-
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
12
|
-
width="210mm"
|
|
13
|
-
height="297mm"
|
|
14
|
-
viewBox="0 0 210 297"
|
|
15
|
-
version="1.1"
|
|
16
|
-
id="svg8"
|
|
17
|
-
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
|
18
|
-
sodipodi:docname="label.draft.svg">
|
|
19
|
-
<defs
|
|
20
|
-
id="defs2" />
|
|
21
|
-
<sodipodi:namedview
|
|
22
|
-
id="base"
|
|
23
|
-
pagecolor="#ffffff"
|
|
24
|
-
bordercolor="#666666"
|
|
25
|
-
borderopacity="1.0"
|
|
26
|
-
inkscape:pageopacity="0.0"
|
|
27
|
-
inkscape:pageshadow="2"
|
|
28
|
-
inkscape:zoom="0.9899495"
|
|
29
|
-
inkscape:cx="461.6406"
|
|
30
|
-
inkscape:cy="96.846632"
|
|
31
|
-
inkscape:document-units="mm"
|
|
32
|
-
inkscape:current-layer="layer1"
|
|
33
|
-
showgrid="false"
|
|
34
|
-
inkscape:window-width="1366"
|
|
35
|
-
inkscape:window-height="736"
|
|
36
|
-
inkscape:window-x="0"
|
|
37
|
-
inkscape:window-y="16"
|
|
38
|
-
inkscape:window-maximized="1" />
|
|
39
|
-
<metadata
|
|
40
|
-
id="metadata5">
|
|
41
|
-
<rdf:RDF>
|
|
42
|
-
<cc:Work
|
|
43
|
-
rdf:about="">
|
|
44
|
-
<dc:format>image/svg+xml</dc:format>
|
|
45
|
-
<dc:type
|
|
46
|
-
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
47
|
-
<dc:title></dc:title>
|
|
48
|
-
</cc:Work>
|
|
49
|
-
</rdf:RDF>
|
|
50
|
-
</metadata>
|
|
51
|
-
<g
|
|
52
|
-
inkscape:label="Layer 1"
|
|
53
|
-
inkscape:groupmode="layer"
|
|
54
|
-
id="layer1">
|
|
55
|
-
<path
|
|
56
|
-
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
57
|
-
d="m 51.40476,117.83928 13.530744,-23.435929 0.01098,0.0063 v 0"
|
|
58
|
-
id="path815"
|
|
59
|
-
inkscape:connector-curvature="0" />
|
|
60
|
-
<path
|
|
61
|
-
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
62
|
-
d="M 78.309972,119.26576 90.337099,96.280583 h 32.339611"
|
|
63
|
-
id="path817"
|
|
64
|
-
inkscape:connector-curvature="0"
|
|
65
|
-
sodipodi:nodetypes="ccc" />
|
|
66
|
-
<path
|
|
67
|
-
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
68
|
-
d="M 71.815475,146.56548 H 85.96596 c 0.676332,-0.0209 3.30147,-0.005 3.934153,-0.83721 0.426501,-0.36462 1.272256,-1.92024 1.602106,-2.49156 l 4.177131,-7.23501 c 0,0 0.679705,-1.34341 1.817605,-2.11076 0.472523,-0.30451 3.063205,-0.4009 3.063205,-0.4009 h 13.21067"
|
|
69
|
-
id="path819"
|
|
70
|
-
inkscape:connector-curvature="0"
|
|
71
|
-
sodipodi:nodetypes="cccccccc" />
|
|
72
|
-
<path
|
|
73
|
-
sodipodi:nodetypes="cccccccc"
|
|
74
|
-
inkscape:connector-curvature="0"
|
|
75
|
-
id="path859"
|
|
76
|
-
d="m 145.52085,146.56548 h -14.15049 c -0.67633,-0.0209 -3.30147,-0.005 -3.93415,-0.83721 -0.4265,-0.36462 -1.27226,-1.92024 -1.60211,-2.49156 l -4.17713,-7.23501 c 0,0 -0.67971,-1.34341 -1.81761,-2.11076 -0.47252,-0.30451 -3.0632,-0.4009 -3.0632,-0.4009 h -13.21068"
|
|
77
|
-
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
|
78
|
-
<path
|
|
79
|
-
sodipodi:nodetypes="ccccccccc"
|
|
80
|
-
inkscape:connector-curvature="0"
|
|
81
|
-
id="path967"
|
|
82
|
-
d="m 118.49554,172.57638 -47.05804,0 h 10.748698 c 0.676332,-0.0209 3.30147,-0.005 3.934153,-0.83721 0.426501,-0.36462 1.272256,-1.92024 1.602106,-2.49156 l 4.177131,-7.23501 c 0,0 0.679705,-1.34341 1.817605,-2.11076 0.472523,-0.30451 3.063205,-0.4009 3.063205,-0.4009 l 22.282102,0"
|
|
83
|
-
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
|
84
|
-
<path
|
|
85
|
-
style="fill:#f0f0f0;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
|
|
86
|
-
d="M 365.78516 702.83789 C 365.78516 702.83789 355.99294 703.20261 354.20703 704.35352 C 349.90631 707.25374 347.33789 712.33203 347.33789 712.33203 L 331.54883 739.67578 C 330.30215 741.8351 327.10611 747.71566 325.49414 749.09375 C 323.1029 752.23911 313.18122 752.17882 310.625 752.25781 L 392.14258 752.25781 L 447.85742 752.25781 L 529.375 752.25781 C 526.81879 752.17882 516.89709 752.23911 514.50586 749.09375 C 512.89389 747.71566 509.69785 741.8351 508.45117 739.67578 L 492.66211 712.33203 C 492.66211 712.33203 490.09369 707.25374 485.79297 704.35352 C 484.00707 703.20261 474.2168 702.83789 474.2168 702.83789 L 450 702.83789 L 390 702.83789 L 365.78516 702.83789 z "
|
|
87
|
-
transform="scale(0.26458333)"
|
|
88
|
-
id="path977" />
|
|
89
|
-
<path
|
|
90
|
-
id="path982"
|
|
91
|
-
d="m 96.780656,212.41754 c 0,0 -2.590858,0.0965 -3.06338,0.40101 -1.137899,0.76735 -1.81746,2.11098 -1.81746,2.11098 l -4.177523,7.2347 c -0.32985,0.57132 -1.175469,2.12722 -1.60197,2.49184 -0.632682,0.83221 -3.257793,0.81625 -3.934126,0.83715 h 21.568193 30.61622 21.56819 c -0.67633,-0.0209 -3.30145,-0.005 -3.93413,-0.83715 -0.4265,-0.36462 -1.27212,-1.92052 -1.60197,-2.49184 l -4.17752,-7.2347 c 0,0 -0.67956,-1.34363 -1.81746,-2.11098 -0.47252,-0.30452 -3.06286,-0.40101 -3.06286,-0.40101 h -6.40736 -31.75 z"
|
|
92
|
-
style="fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
93
|
-
inkscape:connector-curvature="0"
|
|
94
|
-
sodipodi:nodetypes="ccccccccccccccccc" />
|
|
95
|
-
<path
|
|
96
|
-
sodipodi:nodetypes="ccccccccccccccccc"
|
|
97
|
-
inkscape:connector-curvature="0"
|
|
98
|
-
style="fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
99
|
-
d="m 96.780656,244.16756 c 0,0 -2.590858,0.0965 -3.06338,0.40101 -1.137899,0.76735 -1.81746,2.11098 -1.81746,2.11098 l -4.177523,7.2347 c -0.32985,0.57132 -1.175469,2.12722 -1.60197,2.49184 -0.632682,0.83221 -3.257793,0.81625 -3.934126,0.83715 h 21.568193 25.32455 21.56819 c -0.67633,-0.0209 -3.30145,-0.005 -3.93413,-0.83715 -0.4265,-0.36462 -1.27212,-1.92052 -1.60197,-2.49184 l -4.17752,-7.2347 c 0,0 -0.67956,-1.34363 -1.81746,-2.11098 -0.47252,-0.30452 -3.06286,-0.40101 -3.06286,-0.40101 h -6.40736 -26.45833 z"
|
|
100
|
-
id="path984" />
|
|
101
|
-
<path
|
|
102
|
-
id="path878"
|
|
103
|
-
d="m 103.72033,265.33423 c 0,0 -2.25707,0.0965 -2.66872,0.40101 -0.9913,0.76735 -1.583315,2.11098 -1.583315,2.11098 l -3.639329,7.2347 c -0.287355,0.57132 -1.024032,2.12722 -1.395586,2.49184 -0.551173,0.83221 -2.838088,0.81625 -3.427289,0.83715 h 18.789539 22.06196 18.78954 c -0.5892,-0.0209 -2.87612,-0.005 -3.42729,-0.83715 -0.37156,-0.36462 -1.10823,-1.92052 -1.39559,-2.49184 l -3.63932,-7.2347 c 0,0 -0.59202,-1.34363 -1.58332,-2.11098 -0.41164,-0.30452 -2.66827,-0.40101 -2.66827,-0.40101 h -5.58189 -23.04968 z"
|
|
104
|
-
style="fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:0.24695262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
105
|
-
inkscape:connector-curvature="0"
|
|
106
|
-
sodipodi:nodetypes="ccccccccccccccccc" />
|
|
107
|
-
</g>
|
|
108
|
-
</svg>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg width="59.641mm" height="13.076mm" version="1.1" viewBox="0 0 59.641 13.076" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<g transform="translate(-91.006 -265.33)">
|
|
3
|
-
<path d="m103.72 265.33s-2.2571 0.0965-2.6687 0.40101c-0.9913 0.76735-1.5833 2.111-1.5833 2.111l-3.6393 7.2347c-0.28736 0.57132-1.024 2.1272-1.3956 2.4918-0.55117 0.83221-2.8381 0.81625-3.4273 0.83715h59.641c-0.5892-0.0209-2.8761-5e-3 -3.4273-0.83715-0.37156-0.36462-1.1082-1.9205-1.3956-2.4918l-3.6393-7.2347s-0.59202-1.3436-1.5833-2.111c-0.41164-0.30452-2.6683-0.40101-2.6683-0.40101h-28.632z" fill="#ebebeb"/>
|
|
4
|
-
</g>
|
|
5
|
-
</svg>
|