vue3-core/packages/vue/examples/classic/commits.html

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

87 lines
1.8 KiB
HTML
Raw Normal View History

2019-12-02 12:54:32 +08:00
<script src="../../dist/vue.global.js"></script>
<div id="demo">
<h1>Latest Vue.js Commits</h1>
<template v-for="branch in branches">
<input
type="radio"
2019-12-02 12:54:32 +08:00
:id="branch"
:value="branch"
name="branch"
v-model="currentBranch"
/>
2019-12-02 12:54:32 +08:00
<label :for="branch">{{ branch }}</label>
</template>
2022-05-12 08:44:57 +08:00
<p>vuejs/core@{{ currentBranch }}</p>
2019-12-02 12:54:32 +08:00
<ul>
<li v-for="{ html_url, sha, author, commit } in commits">
<a :href="html_url" target="_blank" class="commit"
>{{ sha.slice(0, 7) }}</a
>
- <span class="message">{{ truncate(commit.message) }}</span><br />
by
<span class="author"
><a :href="author.html_url" target="_blank"
>{{ commit.author.name }}</a
></span
>
2019-12-02 12:54:32 +08:00
at <span class="date">{{ formatDate(commit.author.date) }}</span>
</li>
</ul>
</div>
<script>
const API_URL = `https://api.github.com/repos/vuejs/core/commits?per_page=3&sha=`
2019-12-02 12:54:32 +08:00
Vue.createApp({
data: () => ({
branches: ['main', 'v2-compat'],
currentBranch: 'main',
commits: null,
}),
2019-12-02 12:54:32 +08:00
created() {
this.fetchData()
},
2019-12-02 12:54:32 +08:00
watch: {
currentBranch: 'fetchData',
2019-12-02 12:54:32 +08:00
},
methods: {
fetchData() {
fetch(`${API_URL}${this.currentBranch}`)
.then(res => res.json())
.then(data => {
this.commits = data
})
},
truncate(v) {
const newline = v.indexOf('\n')
return newline > 0 ? v.slice(0, newline) : v
},
formatDate(v) {
return v.replace(/T|Z/g, ' ')
},
2019-12-02 12:54:32 +08:00
},
}).mount('#demo')
2019-12-02 12:54:32 +08:00
</script>
<style>
#demo {
font-family: 'Helvetica', Arial, sans-serif;
}
a {
text-decoration: none;
color: #f66;
}
li {
line-height: 1.5em;
margin-bottom: 20px;
}
.author,
.date {
2019-12-02 12:54:32 +08:00
font-weight: bold;
}
</style>