Skip to content

Commit 3173219

Browse files
authored
Feat/support vue page (vuejs#313)
* add menu dropdown * create entry point with frontmatter * add view and insert into layout * create coins subview * add coins and main style sheet * fix frontmatter variable * add paypal image * wrap up content into a section tag * add coins section style * create supportimagelink component * normalize hash links * add sponsor loops and styles * add dcloud and inkoop imgs * fix ssr for clients * relocate components and prep for MD * remove supportvue page refs * migrate to MD * fix coins css * add missing scoped tag
1 parent fcdcf73 commit 3173219

File tree

11 files changed

+298
-9
lines changed

11 files changed

+298
-9
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<template>
2+
<div>
3+
<div id="one-time-donations">
4+
<div class="links">
5+
<a href="https://www.paypal.me/evanyou" target="_blank" rel="noopener">
6+
<img src="/images/paypal.png" style="width:100px">
7+
</a>
8+
<a href="#btc">
9+
<svg width="38" height="38" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><circle fill="#FFAD02" cx="19" cy="19" r="19"></circle><path d="M24.7 19.68a3.63 3.63 0 0 0 1.47-2.06c.74-2.77-.46-4.87-3.2-5.6l.89-3.33a.23.23 0 0 0-.16-.28l-1.32-.35a.23.23 0 0 0-.28.15l-.89 3.33-1.75-.47.88-3.32a.23.23 0 0 0-.16-.28l-1.31-.35a.23.23 0 0 0-.28.15l-.9 3.33-3.73-1a.23.23 0 0 0-.27.16l-.36 1.33c-.03.12.04.25.16.28l.22.06a1.83 1.83 0 0 1 1.28 2.24l-1.9 7.09a1.83 1.83 0 0 1-2.07 1.33.23.23 0 0 0-.24.12l-.69 1.24a.23.23 0 0 0 0 .2c.02.07.07.12.14.13l3.67.99-.89 3.33c-.03.12.04.24.16.27l1.32.35c.12.03.24-.04.28-.16l.89-3.32 1.76.47-.9 3.33c-.02.12.05.24.16.27l1.32.35c.12.03.25-.04.28-.16l.9-3.32.87.23c2.74.74 4.83-.48 5.57-3.25.35-1.3-.05-2.6-.92-3.48zm-5.96-5.95l2.64.7a1.83 1.83 0 0 1 1.28 2.24 1.83 1.83 0 0 1-2.23 1.3l-2.64-.7.95-3.54zm1.14 9.8l-3.51-.95.95-3.54 3.51.94a1.83 1.83 0 0 1 1.28 2.24 1.83 1.83 0 0 1-2.23 1.3z" fill="#FFF"></path></g></svg>
10+
BTC
11+
</a>
12+
<a href="#bch">
13+
<svg width="38" height="38" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><circle fill="#8DC451" cx="19" cy="19" r="19"></circle><path d="M24.5 16.72c.37-.76.48-1.64.25-2.52-.75-2.76-2.84-3.98-5.58-3.25l-.89-3.32a.23.23 0 0 0-.28-.16l-1.32.35a.23.23 0 0 0-.16.27l.9 3.33-1.76.47-.9-3.32a.23.23 0 0 0-.27-.16l-1.32.35a.23.23 0 0 0-.16.28l.9 3.32-3.74 1a.23.23 0 0 0-.16.29l.35 1.32c.04.12.16.2.28.17l.22-.06c.97-.26 1.97.32 2.23 1.3l1.9 7.08c.25.93-.25 1.87-1.13 2.2a.23.23 0 0 0-.14.21l.02 1.43c0 .07.04.13.1.18.05.04.12.05.19.04l3.67-.99.9 3.33c.03.12.15.19.27.15l1.31-.35c.12-.03.2-.16.16-.28l-.88-3.32 1.75-.47.9 3.33c.03.12.15.19.27.15l1.32-.35c.12-.03.19-.16.16-.28l-.9-3.32.88-.24c2.75-.73 3.95-2.83 3.2-5.6a3.63 3.63 0 0 0-2.54-2.56zm-8.13-2.17l2.63-.7c.97-.26 1.97.32 2.23 1.3.27.97-.3 1.98-1.28 2.24l-2.63.7-.95-3.54zm5.88 7.91l-3.5.94-.96-3.54 3.51-.94c.97-.26 1.97.32 2.24 1.3.26.98-.32 1.98-1.29 2.24z" fill="#FFF"></path></g></svg>
14+
BCH
15+
</a>
16+
<a href="#eth">
17+
<svg xmlns="http://www.w3.org/2000/svg" width="38" height="38" viewBox="0 0 32 32"><g fill="none" fill-rule="evenodd"><ellipse cx="16" cy="16" fill="#6F7CBA" rx="16" ry="16"></ellipse><path fill="#FFF" d="M10.13 17.76c-.1-.15-.06-.2.09-.12l5.49 3.09c.15.08.4.08.56 0l5.58-3.08c.16-.08.2-.03.1.11L16.2 25.9c-.1.15-.28.15-.38 0l-5.7-8.13zm.04-2.03a.3.3 0 0 1-.13-.42l5.74-9.2c.1-.15.25-.15.34 0l5.77 9.19c.1.14.05.33-.12.41l-5.5 2.78a.73.73 0 0 1-.6 0l-5.5-2.76z"></path></g></svg>
18+
ETH
19+
</a>
20+
<a href="#ltc">
21+
<svg xmlns="http://www.w3.org/2000/svg" width="38" height="38" viewBox="0 0 38 38"><g fill="none" fill-rule="evenodd"><circle cx="19" cy="19" r="19" fill="#B5B5B5" fill-rule="nonzero"></circle><path fill="#FFF" d="M12.29 28.04l1.29-5.52-1.58.67.63-2.85 1.64-.68L16.52 10h5.23l-1.52 7.14 2.09-.74-.58 2.7-2.05.8-.9 4.34h8.1l-.99 3.8z"></path></g></svg>
22+
LTC
23+
</a>
24+
</div>
25+
</div>
26+
27+
<div id="coin-details" v-if="type && coins[type]">
28+
<p>{{ coins[type].name }} Address:<br>{{ coins[type].address }}</p>
29+
<img :src="'/images/coin-' + type + '.png'">
30+
</div>
31+
</div>
32+
</template>
33+
34+
<script>
35+
export default {
36+
data: () => ({
37+
type: null,
38+
coins: {
39+
btc: {
40+
name: 'Bitcoin',
41+
address: '14MEpy5a9MwDZa9CUzrfDhTU8dy2KKJ5mU'
42+
},
43+
bch: {
44+
name: 'Bitcoin Cash',
45+
address: '15gftB3fwumFRWGWFhVzTgc4nhM5w1F2Tu'
46+
},
47+
eth: {
48+
name: 'Ethereum',
49+
address: '0x3411356C1f0Bf5D859464eD2AC54DD2C222519B7'
50+
},
51+
ltc: {
52+
name: 'Litecoin',
53+
address: 'LUcHis3B8SFtEeZtuCaZoqsyN9XFAKmbCP'
54+
}
55+
}
56+
}),
57+
created () {
58+
if (typeof window === 'undefined') return
59+
60+
this.type = window.___location.hash.slice(1)
61+
window.addEventListener('hashchange', function () {
62+
this.type = window.___location.hash.slice(1)
63+
})
64+
}
65+
}
66+
</script>
67+
68+
<style lang="stylus" scoped>
69+
.links {
70+
a, svg {
71+
display: inline-block;
72+
vertical-align: middle;
73+
}
74+
75+
a {
76+
margin: 20px;
77+
color: $medium;
78+
}
79+
80+
svg {
81+
margin-right: 5px;
82+
}
83+
}
84+
85+
#coin-details {
86+
text-align: center;
87+
border-radius: 4px;
88+
padding: 30px;
89+
font-weight: bold;
90+
91+
img {
92+
width: 200px;
93+
}
94+
95+
p {
96+
padding: 0;
97+
margin: 0 0 20px;
98+
}
99+
}
100+
</style>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<template>
2+
<div class="sponsor-group open-collective-sponsors sponsor-section">
3+
<a
4+
v-for="i in 10"
5+
:key="i"
6+
:href="`${url}/${i}/website`"
7+
target="_blank"
8+
rel="noopener"
9+
>
10+
<img
11+
:src="`${url}/${i}/avatar.svg`"
12+
>
13+
</a>
14+
</div>
15+
</template>
16+
17+
<script>
18+
export default {
19+
props: { group: { type: String, requird: true } },
20+
computed: {
21+
url () {
22+
return `https://opencollective.com/vuejs/tiers/${this.group}-sponsors`
23+
}
24+
}
25+
}
26+
</script>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<template>
2+
<div class="sponsor-group">
3+
<SponsorImageLink
4+
v-for="(sponsor, index) of sponsors"
5+
:key="index"
6+
:sponsor="sponsor"
7+
/>
8+
</div>
9+
</template>
10+
11+
<script>
12+
import sponsors from '@theme/data/patreon-sponsors.js'
13+
import SponsorImageLink from './SponsorImageLink'
14+
15+
export default {
16+
props: { group: { type: String, required: true } },
17+
components: { SponsorImageLink },
18+
computed: {
19+
sponsors () {
20+
return sponsors[this.group]
21+
}
22+
}
23+
}
24+
</script>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<template>
2+
<a
3+
:href="sponsor.url"
4+
target="_blank"
5+
rel="noopener"
6+
>
7+
<img
8+
:src="`/images/sponsors/${sponsor.img}`"
9+
:style="imageStyles"
10+
/>
11+
</a>
12+
</template>
13+
14+
<script>
15+
export default {
16+
props: {
17+
sponsor: {
18+
type: Object,
19+
required: true
20+
}
21+
},
22+
computed: {
23+
imageStyles () {
24+
const styles = []
25+
if (this.sponsor.big_width) styles.push(`width:${sponsor.big_width};`)
26+
if (this.sponsor.big_height) styles.push(`height:${sponsor.big_height};`)
27+
return styles
28+
}
29+
}
30+
}
31+
</script>

src/.vuepress/config.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,15 @@ module.exports = {
243243
]
244244
}
245245
]
246+
},
247+
{
248+
text: 'Support Vue',
249+
link: '/support-vuejs/',
250+
items: [
251+
{ text: 'One-time Donations', link: '/support-vuejs/#one-time-donations' },
252+
{ text: 'Recurring Pledges', link: '/support-vuejs/#recurring-pledges' },
253+
{ text: 'T-Shirt Shop', link: 'https://vue.threadless.com/' }
254+
]
246255
}
247256
],
248257
repo: 'vuejs/docs-next',
4.27 KB
Loading
21.1 KB
Loading
12.5 KB
Loading

src/.vuepress/theme/layouts/Layout.vue

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ export default {
4949
Navbar
5050
},
5151
52-
data() {
52+
data () {
5353
return {
5454
isSidebarOpen: false
5555
}
5656
},
5757
5858
computed: {
59-
shouldShowNavbar() {
59+
shouldShowNavbar () {
6060
const { themeConfig } = this.$site
6161
const { frontmatter } = this.$page
6262
if (frontmatter.navbar === false || themeConfig.navbar === false) {
@@ -71,7 +71,7 @@ export default {
7171
)
7272
},
7373
74-
shouldShowSidebar() {
74+
shouldShowSidebar () {
7575
const { frontmatter } = this.$page
7676
return (
7777
!frontmatter.home &&
@@ -80,7 +80,7 @@ export default {
8080
)
8181
},
8282
83-
sidebarItems() {
83+
sidebarItems () {
8484
return resolveSidebarItems(
8585
this.$page,
8686
this.$page.regularPath,
@@ -89,7 +89,7 @@ export default {
8989
)
9090
},
9191
92-
pageClasses() {
92+
pageClasses () {
9393
const userPageClass = this.$page.frontmatter.pageClass
9494
return [
9595
{
@@ -102,27 +102,27 @@ export default {
102102
}
103103
},
104104
105-
mounted() {
105+
mounted () {
106106
this.$router.afterEach(() => {
107107
this.isSidebarOpen = false
108108
})
109109
},
110110
111111
methods: {
112-
toggleSidebar(to) {
112+
toggleSidebar (to) {
113113
this.isSidebarOpen = typeof to === 'boolean' ? to : !this.isSidebarOpen
114114
this.$emit('toggle-sidebar', this.isSidebarOpen)
115115
},
116116
117117
// side swipe
118-
onTouchStart(e) {
118+
onTouchStart (e) {
119119
this.touchStart = {
120120
x: e.changedTouches[0].clientX,
121121
y: e.changedTouches[0].clientY
122122
}
123123
},
124124
125-
onTouchEnd(e) {
125+
onTouchEnd (e) {
126126
const dx = e.changedTouches[0].clientX - this.touchStart.x
127127
const dy = e.changedTouches[0].clientY - this.touchStart.y
128128
if (Math.abs(dx) > Math.abs(dy) && Math.abs(dx) > 40) {

src/.vuepress/theme/styles/index.styl

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,3 +213,42 @@ th, td
213213
padding-left 0
214214

215215
@require 'mobile.styl'
216+
217+
.sponsor-group
218+
padding: 0 40px;
219+
220+
&.platinum
221+
text-align: center;
222+
223+
a
224+
display: inline-block;
225+
margin: 20px;
226+
img
227+
width: 250px;
228+
vertical-align: middle;
229+
230+
&.sponsor-section
231+
margin-top: 0;
232+
margin-bottom: 60px;
233+
234+
&.patreon-sponsors,
235+
&.open-collective-sponsors
236+
display: flex;
237+
flex-wrap: wrap;
238+
align-items: center;
239+
justify-content: center;
240+
241+
242+
&.patreon-sponsors
243+
a
244+
display: inline-block;
245+
margin: 10px 20px;
246+
img
247+
width: 140px;
248+
249+
&.open-collective-sponsors
250+
img
251+
max-width: 140px;
252+
max-height: 60px;
253+
254+

0 commit comments

Comments
 (0)