TomokiMiyauci / utterances-component

Component library for utterances
https://utterances-component.vercel.app
MIT License
10 stars 0 forks source link

vue #2

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

Vite App

https://utterances-component-58axit393-tomoki-miyauci.vercel.app/vue

TomokiMiyauci commented 3 years ago

hero image

utterances-vue-component

Type safety vue component for utterances

[![test](https://github.com/TomokiMiyauci/utterances-vue-component/actions/workflows/test.yml/badge.svg)](https://github.com/TomokiMiyauci/utterances-vue-component/actions/workflows/test.yml) [![GitHub release](https://img.shields.io/github/release/TomokiMiyauci/utterances-vue-component.svg)](https://github.com/TomokiMiyauci/utterances-vue-component/releases) ![npm download](https://img.shields.io/npm/dw/utterances-vue-component?color=blue) ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/TomokiMiyauci/utterances-vue-component) [![dependencies Status](https://status.david-dm.org/gh/TomokiMiyauci/utterances-vue-component.svg)](https://david-dm.org/TomokiMiyauci/utterances-vue-component) [![codecov](https://codecov.io/gh/TomokiMiyauci/utterances-vue-component/branch/main/graph/badge.svg?token=SPAi5Pv2wd)](https://codecov.io/gh/TomokiMiyauci/utterances-vue-component) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/f43b1c317e11445399d85ce6efc06504)](https://www.codacy.com/gh/TomokiMiyauci/utterances-vue-component/dashboard?utm_source=github.com&utm_medium=referral&utm_content=TomokiMiyauci/utterances-vue-component&utm_campaign=Badge_Grade) ![npm type definitions](https://img.shields.io/npm/types/utterances-vue-component) ![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg) ![Gitmoji](https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat) ![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B26231%2Fgithub.com%2FTomokiMiyauci%2Futterances-component.svg?type=small)](https://app.fossa.com/projects/custom%2B26231%2Fgithub.com%2FTomokiMiyauci%2Futterances-component?ref=badge_small)

Vue component for utterances 🔮

Utterances is a lightweight comments widget built on GitHub issues, for blog comments, wiki pages and more.

:sparkles: Features

:zap: Quick view

Locally

Local import of components is recommended. This is a type-safe props.

<template>
  <Utterances
    repo="TomokiMiyauci/utterances-component"
    theme="github-dark"
    issueTerm="pathname"
  />
</template>

<script setup lang="ts">
  import { Utterances } from 'utterances-vue-component'
</script>

Globally

You can also register a component globally. There will be no more type inference for props. If there is no reason to do so, local import is recommended.

import { createApp } from 'vue'
import App from './App.vue'
import { plugin } from 'utterances-vue-component'

createApp(App).use(plugin).mount('#app')
<template>
  <Utterances
    repo="TomokiMiyauci/me"
    issue-term="pathname"
    theme="github-light"
  />
</template>

:dizzy: Install

:package: Node.js

npm i utterances-vue-component
or
yarn add utterances-vue-component

:globe_with_meridians: Browser

The module that bundles the dependencies is obtained from skypack.

import like this:

import { Utterances } from 'https://cdn.skypack.dev/utterances-vue-component'

peerDependency

package version
vue ^3.0.0

:memo: API

Props

It has a strict type definition. No default value is set to respect the original behavior.

Official document

Name Type Description
repo ${String}/${String} Repository for Utterances to connect to. Expected value: username/repo
theme Theme The Utterance theme.
label string? Choose the label that will be assigned to issues created by Utterances.
issueTerm Term | string[]1 The mapping between blog posts and GitHub issues. One of them2
issueNumber number You configure Utterances to load a specific issue by number. Issues are not automatically created.

declare type Theme =
  | 'github-light'
  | 'github-dark'
  | 'preferred-color-scheme'
  | 'github-dark-orange'
  | 'icy-dark'
  | 'dark-blue'
  | 'photon-dark'
  | 'boxy-light'
declare type Term = 'pathname' | 'url' | 'title' | 'og:title'
1

If you chose "Issue title contains specific term", specify the specific term as string array.

2

Unfortunately, props in vue cannot be exclusively defined. You can specify either an issueTerm or an issueNumber.

:handshake: Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues.

:seedling: Show your support

Give a ⭐️ if this project helped you!

:bulb: License

Copyright © 2021-present TomokiMiyauci.

Released under the MIT license

FOSSA Status

Billybobbonnet commented 2 years ago

Lookin good mate