valaxy-addon-git-log
v0.2.1
Published
Integrates git logs into your page of Valaxy site.
Downloads
266
Readme
Installing this Plugin
pnpm add valaxy-addon-git-log
By default, the plugin retrieves Git information via API. Due to the limitations of static servers, it may not automatically obtain the repository address from the Git environment. Therefore, it is recommended to manually provide the repository address as shown below:
import { defineValaxyConfig } from 'valaxy'
import { addonGitLog } from 'valaxy-addon-git-log'
export default defineValaxyConfig({
addons: [
addonGitLog({
repositoryUrl: 'https://github.com/your-username/your-repository.git',
}),
],
})
Using this Plugin
Basic Usage
To add Git contributors to a page, use the GitLogContributor
component:
<template>
<GitLogContributor />
</template>
Customization examples
If you are a theme developer or want to customize pages with git information, you can refer to the following example:
<script setup lang="ts">
import { useGitLog } from 'valaxy-addon-git-log'
const gitLog = useGitLog()
</script>
<template>
<ul>
<li v-for="contributor in gitLog.contributors" :key="contributor.email">
<img :src="contributor.avatar" alt="Avatar" width="30" height="30">
{{ contributor.name }}
</li>
</ul>
</template>
Configuration / Options
In your project (wether theme or addon), you can write this in valaxy.config.ts
.
export default defineValaxyConfig<ThemeConfig>({
addons: [
addonGitLog({
contributor: {
mode: 'api',
// logArgs: '--first-parent --follow',
},
}),
],
})
| Name | Type | Default | Description |
| ------------------- | ------------------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| repositoryUrl | string
| undefined
| The URL of the GitHub repository. This is used to specify the repository from which to fetch information. |
| contributor.mode | 'api'
| 'git'
| 'api'
| Defines the method to retrieve Git contributor information. If set to 'api'
, the GitHub API is used. If set to 'log'
, the git log
command is used during build time, with the --no-merges
parameter added by default. |
| contributor.logArgs | string
| ''
| Additional arguments passed to the git log
command when contributor.mode
is set to 'git'
. These arguments can customize the git log
query (e.g., limiting the number of commits, filtering by date, etc.). |
[!WARNING] If you use the
git
method to deploy projects on static servers (such asNetlify
,Vercel
), there may be restrictions. To ensure proper deployment on these platforms, please use theapi
method.
Components
GitLogContributor
<template>
<GitLogContributor />
</template>
GitLogChangelog
<template>
<GitLogChangelog />
</template>
Composables
useGitLog
This composable provides a simple way to fetch Git log data based on the current page's context.
import { useGitLog } from 'valaxy-addon-git-log'
import { computed } from 'vue'
const gitLog = useGitLog()
const contributors = computed(() => gitLog.value.contributors)
const changeLog = computed(() => gitLog.value.changeLog)
Return Type:
export interface GitLog {
contributors: Contributor[]
changeLog: Changelog[]
path: string
}
| Name | Type | Description |
| ------------ | --------------- | -------------------------------- |
| contributors | Contributor[]
| see useContributor
return type |
| changeLog | Changelog[]
| see useChangelog
return type |
| path | string
| |
useContributor
import { useContributor } from 'valaxy-addon-git-log'
const contributor = useContributor()
Return Type:
export interface Contributor {
name: string
email: string
avatar: string
count: number
github: string | null
hash: string
}[]
| Name | Type | Description |
| ------ | ---------------- | ------------------------------------------------------------------ |
| name | string
| Contributor's name |
| email | string
| Contributor's email |
| avatar | string
| Contributor's avatar URL, obtained through gravatar based on email |
| count | number
| Number of contributions |
| github | string \| null
| Only supported api
mode |
| hash | string
| A unique hash generated based on the contributor's email |
useChangelog
import { useChangelog } from 'valaxy-addon-git-log'
const changelog = useChangelog()
Return Type:
export interface Changelog {
functions: string[]
version?: string
hash: string
date: string
message: string
refs?: string
body?: string
author_name: string
author_email: string
}[]
| Name | Type | Description |
| -------------- | ----------------------- | ----------------------------------------------------------------------- |
| functions
| string[]
| List of functions affected or related to the changelog entry. |
| version
| string
| undefined
| Optional version number for the release or update. |
| hash
| string
| Unique identifier or commit hash for the change. |
| date
| string
| The date when the change was made or the changelog entry was created. |
| message
| string
| A brief summary or description of the change. |
| refs
| string
| undefined
| Optional reference information, such as ticket IDs or PR links. |
| body
| string
| undefined
| Optional detailed body content or additional explanation of the change. |
| author_name
| string
| Name of the person who made the change. |
| author_email
| string
| Email address of the person who made the change. |
Other
Virtual modules
import changelog from 'virtual:git-log/changelog'
The changelog
variable contains all the commit logs.
import contributors from 'virtual:git-log/contributors'
The contributors
variable contains information about all contributors.