Giter Club home page Giter Club logo

valaxy-addon-git-log's Introduction

valaxy-addon-git-log

Integrate Valaxy's Git Logs plugin to display contributor information

NPM version

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({
      // contributor: {
      //   mode: 'log',
      // },
      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

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 { useAddonGitLog } from 'valaxy-addon-git-log'

const { contributors } = useAddonGitLog()
</script>

<template>
  <ul>
    <li v-for="contributor in contributors" :key="contributor.email">
      <img :src="contributor.avatar" alt="Avatar" width="30" height="30">
      {{ contributor.name }}
    </li>
  </ul>
</template>

Regarding the full contributors parameter:

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

Besides the api method, the mode option also includes log and shortLog methods. These methods allow you to generate Git information during build time, with the git log command by default adding the --no-merges parameter.

Warning

If you use the log or shortLog method to deploy projects on static servers (such as Netlify, Vercel), there may be restrictions. To ensure proper deployment on these platforms, please use the api method.

export default defineValaxyConfig<ThemeConfig>({
  addons: [
    addonGitLog({
      debug: false,
      contributor: {
        mode: 'log',
        // logArgs: '--first-parent --follow',
      },
    }),
  ],
})

Configuration / Options

Name Type Default Description
repositoryUrl string undefined The URL of the repository.
contributor.mode 'api' | 'log' | 'shortLog' 'api' The method to generate Git information.
contributor.logArgs string '' Additional arguments for git log command.
debug boolean undefined Enable debug mode.

FAQ

Why does shortLog have no git information?

The 'git shortlog' command requires reading some content from standard input. This plugin uses '/dev/tty' by default to obtain the controlling terminal device of the current process, serving as the input or output device. However, on static servers such as Vercel, these '/dev/tty' or Node.js's 'options.stdio' are restricted, leading to issues.

valaxy-addon-git-log's People

Contributors

wrxinyue avatar hypnoscicero avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

hypnoscicero

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.