Merge https://github.com/anuraghazra/github-readme-stats into gradient-background-1
This commit is contained in:
commit
66836db71b
31 changed files with 676 additions and 135 deletions
14
api/index.js
14
api/index.js
|
@ -5,9 +5,9 @@ const {
|
||||||
parseArray,
|
parseArray,
|
||||||
clampValue,
|
clampValue,
|
||||||
CONSTANTS,
|
CONSTANTS,
|
||||||
} = require("../src/utils");
|
} = require("../src/common/utils");
|
||||||
const fetchStats = require("../src/fetchStats");
|
const fetchStats = require("../src/fetchers/stats-fetcher");
|
||||||
const renderStatsCard = require("../src/renderStatsCard");
|
const renderStatsCard = require("../src/cards/stats-card");
|
||||||
|
|
||||||
module.exports = async (req, res) => {
|
module.exports = async (req, res) => {
|
||||||
const {
|
const {
|
||||||
|
@ -18,6 +18,7 @@ module.exports = async (req, res) => {
|
||||||
hide_rank,
|
hide_rank,
|
||||||
show_icons,
|
show_icons,
|
||||||
count_private,
|
count_private,
|
||||||
|
include_all_commits,
|
||||||
line_height,
|
line_height,
|
||||||
title_color,
|
title_color,
|
||||||
icon_color,
|
icon_color,
|
||||||
|
@ -31,7 +32,11 @@ module.exports = async (req, res) => {
|
||||||
res.setHeader("Content-Type", "image/svg+xml");
|
res.setHeader("Content-Type", "image/svg+xml");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
stats = await fetchStats(username, parseBoolean(count_private));
|
stats = await fetchStats(
|
||||||
|
username,
|
||||||
|
parseBoolean(count_private),
|
||||||
|
parseBoolean(include_all_commits)
|
||||||
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return res.send(
|
return res.send(
|
||||||
renderError(
|
renderError(
|
||||||
|
@ -56,6 +61,7 @@ module.exports = async (req, res) => {
|
||||||
hide_title: parseBoolean(hide_title),
|
hide_title: parseBoolean(hide_title),
|
||||||
hide_border: parseBoolean(hide_border),
|
hide_border: parseBoolean(hide_border),
|
||||||
hide_rank: parseBoolean(hide_rank),
|
hide_rank: parseBoolean(hide_rank),
|
||||||
|
include_all_commits: parseBoolean(include_all_commits),
|
||||||
line_height,
|
line_height,
|
||||||
title_color,
|
title_color,
|
||||||
icon_color,
|
icon_color,
|
||||||
|
|
|
@ -5,9 +5,9 @@ const {
|
||||||
clampValue,
|
clampValue,
|
||||||
CONSTANTS,
|
CONSTANTS,
|
||||||
logger,
|
logger,
|
||||||
} = require("../src/utils");
|
} = require("../src/common/utils");
|
||||||
const fetchRepo = require("../src/fetchRepo");
|
const fetchRepo = require("../src/fetchers/repo-fetcher");
|
||||||
const renderRepoCard = require("../src/renderRepoCard");
|
const renderRepoCard = require("../src/cards/repo-card");
|
||||||
|
|
||||||
module.exports = async (req, res) => {
|
module.exports = async (req, res) => {
|
||||||
const {
|
const {
|
||||||
|
|
|
@ -5,9 +5,9 @@ const {
|
||||||
parseBoolean,
|
parseBoolean,
|
||||||
parseArray,
|
parseArray,
|
||||||
CONSTANTS,
|
CONSTANTS,
|
||||||
} = require("../src/utils");
|
} = require("../src/common/utils");
|
||||||
const fetchTopLanguages = require("../src/fetchTopLanguages");
|
const fetchTopLanguages = require("../src/fetchers/top-languages-fetcher");
|
||||||
const renderTopLanguages = require("../src/renderTopLanguages");
|
const renderTopLanguages = require("../src/cards/top-languages-card");
|
||||||
|
|
||||||
module.exports = async (req, res) => {
|
module.exports = async (req, res) => {
|
||||||
const {
|
const {
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"emoji-name-map": "^1.2.8",
|
"emoji-name-map": "^1.2.8",
|
||||||
|
"github-username-regex": "^1.0.0",
|
||||||
"word-wrap": "^1.2.3"
|
"word-wrap": "^1.2.3"
|
||||||
},
|
},
|
||||||
"husky": {
|
"husky": {
|
||||||
|
|
11
readme.md
11
readme.md
|
@ -41,6 +41,8 @@
|
||||||
<a href="readme_de.md">Deutsch</a>
|
<a href="readme_de.md">Deutsch</a>
|
||||||
·
|
·
|
||||||
<a href="readme_ja.md">日本語</a>
|
<a href="readme_ja.md">日本語</a>
|
||||||
|
·
|
||||||
|
<a href="readme_pt-BR.md">Português Brasileiro</a>
|
||||||
</p>
|
</p>
|
||||||
</p>
|
</p>
|
||||||
<p align="center">Loved the project? Please consider <a href="https://www.paypal.me/anuraghazra">donating</a> to help it improve!
|
<p align="center">Loved the project? Please consider <a href="https://www.paypal.me/anuraghazra">donating</a> to help it improve!
|
||||||
|
@ -135,8 +137,9 @@ You can customize the appearance of your `Stats Card` or `Repo Card` however you
|
||||||
- `hide_title` - _(boolean)_
|
- `hide_title` - _(boolean)_
|
||||||
- `hide_rank` - _(boolean)_
|
- `hide_rank` - _(boolean)_
|
||||||
- `show_icons` - _(boolean)_
|
- `show_icons` - _(boolean)_
|
||||||
|
- `include_all_commits` - Count total commits instead of just the current year commits _(boolean)_
|
||||||
- `count_private` - Count private commits _(boolean)_
|
- `count_private` - Count private commits _(boolean)_
|
||||||
- `line_height` - Sets the line-height betweent text _(number)_
|
- `line_height` - Sets the line-height between text _(number)_
|
||||||
|
|
||||||
#### Repo Card Exclusive Options:
|
#### Repo Card Exclusive Options:
|
||||||
|
|
||||||
|
@ -235,6 +238,10 @@ You can use the `&layout=compact` option to change the card design.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
- Include All Commits
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
- Themes
|
- Themes
|
||||||
|
|
||||||
Choose from any of the [default themes](#themes)
|
Choose from any of the [default themes](#themes)
|
||||||
|
@ -277,7 +284,7 @@ NOTE: Since [#58](https://github.com/anuraghazra/github-readme-stats/pull/58) we
|
||||||
[](https://vercel.com/import/project?template=https://github.com/anuraghazra/github-readme-stats)
|
[](https://vercel.com/import/project?template=https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Guide on setting up Vercel</summary>
|
<summary><b> Guide on setting up Vercel 🔨 </b></summary>
|
||||||
|
|
||||||
1. Go to [vercel.com](https://vercel.com/)
|
1. Go to [vercel.com](https://vercel.com/)
|
||||||
1. Click on `Log in`
|
1. Click on `Log in`
|
||||||
|
|
176
readme_es.md
176
readme_es.md
|
@ -44,7 +44,7 @@
|
||||||
# Características
|
# Características
|
||||||
|
|
||||||
- [Tarjeta de estadísticas de GitHub](#tarjeta-de-estadísticas-de-github)
|
- [Tarjeta de estadísticas de GitHub](#tarjeta-de-estadísticas-de-github)
|
||||||
- [Pins extra de GitHub](#pins-extra-de-github)
|
- [Pins adicionales de GitHub](#pines-adicionales-de-github)
|
||||||
- [Temas](#temas)
|
- [Temas](#temas)
|
||||||
- [Personalización](#personalización)
|
- [Personalización](#personalización)
|
||||||
- [Despliega por tu cuenta](#despliega-tu-propia-instancia-de-vercel)
|
- [Despliega por tu cuenta](#despliega-tu-propia-instancia-de-vercel)
|
||||||
|
@ -107,69 +107,59 @@ dark, radical, merko, gruvbox, tokyonight, onedark, cobalt, synthwave, highcontr
|
||||||
|
|
||||||
<img src="https://res.cloudinary.com/anuraghazra/image/upload/v1595174536/grs-themes_l4ynja.png" alt="GitHub Readme Stat Themes" width="600px"/>
|
<img src="https://res.cloudinary.com/anuraghazra/image/upload/v1595174536/grs-themes_l4ynja.png" alt="GitHub Readme Stat Themes" width="600px"/>
|
||||||
|
|
||||||
Puedes ver una vista previa de [todos los temas disponibles](./themes/README.md) o ver el [archivo de configuración](./themes/index.js) del tema y también **puedes contribuir con nuevos temas** si lo deseas: D
|
Puedes ver una vista previa de [todos los temas disponibles](./themes/README.md) o ver el [archivo de configuración](./themes/index.js) del tema y también **puedes contribuir con nuevos temas** si lo deseas :D
|
||||||
|
|
||||||
### Personalización
|
### Personalización
|
||||||
|
|
||||||
Puedes personalizar el aspecto de tu `Stats Card` o `Repo Card` de la manera que desees con los parámetros URL.
|
Puedes personalizar el aspecto de tu `Stats Card` o `Repo Card` de la manera que desees con los parámetros URL.
|
||||||
|
|
||||||
Opciones de personalización:
|
#### Opciones Comunes:
|
||||||
|
|
||||||
| Option | type | description | Stats Card (default) | Repo Card (default) |
|
- `title_color` - Color del título _(hex color)_
|
||||||
| ----------- | --------- | ----------------------------- | -------------------- | ------------------- |
|
- `text_color` - Color del contenido _(hex color)_
|
||||||
| title_color | hex color | color del título | 2f80ed | 2f80ed |
|
- `icon_color` - Color de icono si esta disponible _(hex color)_
|
||||||
| text_color | hex color | color del contenido | 333 | 333 |
|
- `bg_color` - Color de fondo _(hex color)_
|
||||||
| icon_color | hex color | color del ícono | 4c71f2 | 586069 |
|
- `theme` - Nombre del tema, elige uno de [todos los temas disponible ](./themes/README.md)
|
||||||
| bg_color | hex color | color de fondo | FFFEFE | FFFEFE |
|
- `cache_seconds` - Cache _(min: 1800, max: 86400)_
|
||||||
| line_height | number | controla el line_height | 30 | N/A |
|
|
||||||
| hide_rank | boolean | oculta la clasificación | false | N/A |
|
> Nota sobre la caché: las tarjetas de Repo tienen un caché predeterminado de 30 minutos (1800 segundos) si el recuento forks y el recuento de estrellas es inferior a 1k; de lo contrario, son 2 horas (7200). También tenga en cuenta que el caché está sujeto a un mínimo de 30 minutos y un máximo de 24 horas
|
||||||
| hide_title | boolean | oculta el título | false | N/A |
|
|
||||||
| hide_border | boolean | oculta el borde | false | N/A |
|
#### Opciones exclusivas de la tarjeta de estadísticas:
|
||||||
| show_owner | boolean | muestra el propietario | N/A | false |
|
|
||||||
| show_icons | boolean | muestra los íconos | false | N/A |
|
- `hide` - Ocultar los elementos especificados de las estadísticas _ (valores separados por comas) _
|
||||||
| theme | string | establece un tema incorporado | 'default' | 'default_repocard' |
|
- `hide_title` - _(boolean)_
|
||||||
|
- `hide_rank` - _(boolean)_
|
||||||
|
- `show_icons` - _(boolean)_
|
||||||
|
- `include_all_commits` - Cuente los commits totales en lugar de solo los commits del año actual _(boolean)_
|
||||||
|
- `count_private` - Cuenta los commits privadas _(boolean)_
|
||||||
|
- `line_height` - Establece el alto de línea entre texto _(number)_
|
||||||
|
|
||||||
|
#### Opciones exclusivas de la tarjeta Repo:
|
||||||
|
|
||||||
|
- `show_owner` - Mostrar el nombre del propietario del repositorio _(boolean)_
|
||||||
|
|
||||||
|
#### Opciones exclusivas de la tarjeta de lenguajes:
|
||||||
|
|
||||||
|
- `hide` - Ocultar los lenguajes especificados de la tarjeta _(valores separados por comas)_
|
||||||
|
- `hide_title` - _(boolean)_
|
||||||
|
- `layout` - Cambiar entre dos diseños disponibles `default` & `compact`
|
||||||
|
- `card_width` - Establecer el ancho de la tarjeta manualmente _(number)_
|
||||||
|
|
||||||
|
> :warning: **Importante:**
|
||||||
|
> Los nombres de los idiomas deben tener escape de uri, como se especifica en [Código porciento](https://es.wikipedia.org/wiki/C%C3%B3digo_porciento)
|
||||||
|
> (es decir: `c++` debería convertirse en `c%2B%2B`,`jupyter notebook` debería convertirse en `jupyter%20notebook`, etc.)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Ejemplo
|
# Pines adicionales de GitHub
|
||||||
|
|
||||||
- Predeterminado
|
Los pines adicionales de GitHub le permiten fijar más de 6 repositorios en su perfil utilizando un readme de perfil de GitHub.
|
||||||
|
|
||||||

|
Yey! Ya no está limitado a 6 repositorios anclados.
|
||||||
|
|
||||||
- Ocultando estadísticas específicas
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Mostrando íconos
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Temas
|
|
||||||
|
|
||||||
Elige uno de los [temas predeterminados](#temas)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Personalizando la tarjeta de estadísticas
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Personalizando la tarjeta de repositorio
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Pins extra de GitHub
|
|
||||||
|
|
||||||
Los pins extra de GitHub te permiten anclar más de 6 repositorios en tu perfil utilizando el archivo README.md.
|
|
||||||
|
|
||||||
¡Bien! Ya no estás limitado a 6 repositorios anclados.
|
|
||||||
|
|
||||||
### Utilización
|
### Utilización
|
||||||
|
|
||||||
Copia y pega este código en tu README.md y cambia los links.
|
Copie y pegue este código en su archivo Léame y cambie los enlaces.
|
||||||
|
|
||||||
Endpoint: `api/pin?username=anuraghazra&repo=github-readme-stats`
|
Endpoint: `api/pin?username=anuraghazra&repo=github-readme-stats`
|
||||||
|
|
||||||
|
@ -185,9 +175,89 @@ Utiliza la variable [show_owner](#customización) para incluir el nombre de usua
|
||||||
|
|
||||||
[](https://github.com/anuraghazra/github-readme-stats)
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
### Pequeño consejo (alinear las tarjetas de repositorios)
|
# Tarjeta de lenguajes principales
|
||||||
|
|
||||||
Usualmente no serías capaz de alinear las imágenes una al lado de otra. Para lograrlo, puedes realizar esto:
|
La tarjeta de lenguajes principales muestra los lenguajes principales del usuario de github que se han utilizado principalmente.
|
||||||
|
|
||||||
|
_NOTA: los lenguajes principales no indican mi nivel de habilidad o algo así, es una métrica de github de los lenguajes que tengo más código en github, es una nueva característica de github-readme-stats_
|
||||||
|
|
||||||
|
### Utilización
|
||||||
|
|
||||||
|
Copie y pegue este código en su readme y cambie los enlaces.
|
||||||
|
|
||||||
|
Endpoint: `api/top-langs?username=anuraghazra`
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ocultar lenguajes individuales
|
||||||
|
|
||||||
|
Puede usar el parámetro `? Hide = language1, language2` para ocultar lenguajes individuales.
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Diseño de tarjeta de lenguaje compacta
|
||||||
|
|
||||||
|
Puede usar la opción `& layout = compact` para cambiar el diseño de la tarjeta.
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejemplo
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
- Diseño compacto
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Todos los ejemplos
|
||||||
|
|
||||||
|
- Por Defecto
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Ocultar estadísticas específicas
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Mostrando iconos
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Incluir todos los Commits
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Temas
|
||||||
|
|
||||||
|
Elija entre cualquiera de los [temas predeterminados](#themes)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Personalizando tarjeta de estadísticas
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Personalizar la tarjeta de repositorio
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Lenguajes Principales
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Consejo rápido (alinee las tarjetas de repositorio)
|
||||||
|
|
||||||
|
Por lo general, no podrá diseñar las imágenes una al lado de la otra. Para hacerlo, puede usar este enfoque:
|
||||||
|
|
||||||
```md
|
```md
|
||||||
<a href="https://github.com/anuraghazra/github-readme-stats">
|
<a href="https://github.com/anuraghazra/github-readme-stats">
|
||||||
|
@ -222,7 +292,7 @@ Nota: debido a esto [#58](https://github.com/anuraghazra/github-readme-stats/pul
|
||||||
1. Selecciona `Import Git Repository`
|
1. Selecciona `Import Git Repository`
|
||||||

|

|
||||||
1. Selecciona "root" y matén todo como está, simplemente añade tu variable de entorno llamada PAT_1 (como se muestra), la cual contendrá un token de acceso personal (PAT), el cual puedes crear fácilmente [aquí](https://github.com/settings/tokens/new) (mantén todo como está, simplemente asígnale un nombre, puede ser cualquiera que desees)
|
1. Selecciona "root" y matén todo como está, simplemente añade tu variable de entorno llamada PAT_1 (como se muestra), la cual contendrá un token de acceso personal (PAT), el cual puedes crear fácilmente [aquí](https://github.com/settings/tokens/new) (mantén todo como está, simplemente asígnale un nombre, puede ser cualquiera que desees)
|
||||||

|

|
||||||
1. Clickea "Deploy" y ya está listo. ¡Ve tus dominios para usar la API!
|
1. Clickea "Deploy" y ya está listo. ¡Ve tus dominios para usar la API!
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
325
readme_pt-BR.md
Normal file
325
readme_pt-BR.md
Normal file
|
@ -0,0 +1,325 @@
|
||||||
|
<p align="center">
|
||||||
|
<img width="100px" src="https://res.cloudinary.com/anuraghazra/image/upload/v1594908242/logo_ccswme.svg" align="center" alt="GitHub Readme Stats" />
|
||||||
|
<h2 align="center">GitHub Readme Stats</h2>
|
||||||
|
<p align="center">Adicione suas estatísticas no GitHub geradas dinamicamente em seus readmes!</p>
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/anuraghazra/github-readme-stats/actions">
|
||||||
|
<img alt="Testes aprovados" src="https://github.com/anuraghazra/github-readme-stats/workflows/Test/badge.svg" />
|
||||||
|
</a>
|
||||||
|
<a href="https://codecov.io/gh/anuraghazra/github-readme-stats">
|
||||||
|
<img src="https://codecov.io/gh/anuraghazra/github-readme-stats/branch/master/graph/badge.svg" />
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/anuraghazra/github-readme-stats/issues">
|
||||||
|
<img alt="Issues" src="https://img.shields.io/github/issues/anuraghazra/github-readme-stats?color=0088ff" />
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/anuraghazra/github-readme-stats/pulls">
|
||||||
|
<img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/anuraghazra/github-readme-stats?color=0088ff" />
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<a href="https://a.paddle.com/v2/click/16413/119403?link=1227">
|
||||||
|
<img src="https://img.shields.io/badge/Apoiado%20por-VSCode%20Power%20User%20%E2%86%92-gray.svg?colorA=655BE1&colorB=4F44D6&style=for-the-badge"/>
|
||||||
|
</a>
|
||||||
|
<a href="https://a.paddle.com/v2/click/16413/119403?link=2345">
|
||||||
|
<img src="https://img.shields.io/badge/Apoiado%20por-Node%20Cli.com%20%E2%86%92-gray.svg?colorA=61c265&colorB=4CAF50&style=for-the-badge"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="#demo">Ver demonstração</a>
|
||||||
|
·
|
||||||
|
<a href="https://github.com/anuraghazra/github-readme-stats/issues/new/choose">Reportar erros</a>
|
||||||
|
·
|
||||||
|
<a href="https://github.com/anuraghazra/github-readme-stats/issues/new/choose">Solicitar recursos</a>
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<a href="readme_cn.md">简体中文</a>
|
||||||
|
·
|
||||||
|
<a href="readme_es.md">Español</a>
|
||||||
|
·
|
||||||
|
<a href="readme_de.md">Deutsch</a>
|
||||||
|
·
|
||||||
|
<a href="readme_ja.md">日本語</a>
|
||||||
|
·
|
||||||
|
<a href="readme_pt-BR.md">Português Brasileiro</a>
|
||||||
|
</p>
|
||||||
|
</p>
|
||||||
|
<p align="center">Gostou do projeto? Por favor considere <a href="https://www.paypal.me/anuraghazra">fazer uma doação</a> para ajudar a melhorá-lo!
|
||||||
|
|
||||||
|
# Características
|
||||||
|
|
||||||
|
- [Cartão de estatísticas do GitHub](#cartão-de-estatísticas-do-github)
|
||||||
|
- [Pins extras do GitHub](#pins-extras-do-github)
|
||||||
|
- [Cartão de principais linguagens de programação](#cartão-de-principais-linguagens-de-programação)
|
||||||
|
- [Temas](#temas)
|
||||||
|
- [Personalização](#personalização)
|
||||||
|
- [Faça suas próprias implantações](#faça-suas-próprias-implantações)
|
||||||
|
|
||||||
|
# Cartão de estatísticas do GitHub
|
||||||
|
|
||||||
|
Copie e cole isso no seu conteúdo de remarcação e é isso. Simples!
|
||||||
|
|
||||||
|
Mude o valor de `?username=` para o seu nome de usuário no GitHub.
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
_Nota: As classificações são baseadas nas estatísticas do usuário, veja [src/calculateRank.js](./src/calculateRank.js)_
|
||||||
|
|
||||||
|
### Ocultando estatísticas específicas
|
||||||
|
|
||||||
|
Para ocultar estatísticas individualmente, você pode passar um parâmetro de consulta `?hide=` com valores separados por vírgula.
|
||||||
|
|
||||||
|
> Opções: `&hide=stars,commits,prs,issues,contribs`
|
||||||
|
|
||||||
|
```md
|
||||||
|

|
||||||
|
```
|
||||||
|
|
||||||
|
### Adicionando contagem de contribuições privadas à contagem total de commits
|
||||||
|
|
||||||
|
Adicione a contagem de todas as suas contribuições privadas à contagem total de confirmações usando o parâmetro de consulta `?count_private=true`.
|
||||||
|
|
||||||
|
_Nota: Se você estiver implantando este projeto, as contribuições privadas serão contadas por padrão; caso contrário, você precisará compartilhar suas contagens de contribuições privadas._
|
||||||
|
|
||||||
|
> Opções: `&count_private=true`
|
||||||
|
|
||||||
|
```md
|
||||||
|

|
||||||
|
```
|
||||||
|
|
||||||
|
### Exibindo ícones
|
||||||
|
|
||||||
|
Para habilitar ícones, basta utilizar o parâmetro `show_icons=true` na sua requisição, da seguinte forma:
|
||||||
|
|
||||||
|
```md
|
||||||
|

|
||||||
|
```
|
||||||
|
|
||||||
|
### Temas
|
||||||
|
|
||||||
|
Com temas predefinidos, pode personalizar a aparência dos cartões sem precisar fazer nenhuma [configuração manual](#personalização).
|
||||||
|
|
||||||
|
Utilize o parâmetro `?theme=THEME_NAME`, da seguinte forma:
|
||||||
|
|
||||||
|
```md
|
||||||
|

|
||||||
|
```
|
||||||
|
|
||||||
|
#### Todos os temas predefinidos :
|
||||||
|
|
||||||
|
dark, radical, merko, gruvbox, tokyonight, onedark, cobalt, synthwave, highcontrast, dracula
|
||||||
|
|
||||||
|
<img src="https://res.cloudinary.com/anuraghazra/image/upload/v1595174536/grs-themes_l4ynja.png" alt="GitHub Readme Stat Themes" width="600px"/>
|
||||||
|
|
||||||
|
Visualize [todos o temas disponíveis](./themes/README.md) ou o [arquivo de configuração de tema](./themes/index.js), além de **também poder contribuir com novos temas**, se desejar :D
|
||||||
|
|
||||||
|
### Personalização
|
||||||
|
|
||||||
|
Personalize a aparência do seu `Stats Card` ou `Repo Card` da maneira que desejar com os parâmetros de URL.
|
||||||
|
|
||||||
|
#### Opções comuns
|
||||||
|
|
||||||
|
- `title_color` - Cor do título do cartão _(hex color)_
|
||||||
|
- `text_color` - Cor de texto do conteúdo _(hex color)_
|
||||||
|
- `icon_color` - Cor dos ícones (se disponível) _(hex color)_
|
||||||
|
- `bg_color` - Cor de fundo do cartão _(hex color)_
|
||||||
|
- `theme` - Nome do tema, escolha em [todos os temas disponíveis](./themes/README.md)
|
||||||
|
- `cache_seconds` - Defina o cabeçalho do cache manualmente _(min: 1800, max: 86400)_
|
||||||
|
|
||||||
|
> Nota sobre o cache: Cartões de repositório tem um cache padrão de 30 minutos (1800 segundos), se o número a contagem de forks e contagem de estrelas é menor que 1 mil o padrão é 2 horas (7200). Note também que o cache é limitado a um mínimo de 30 minutos e um máximo de 24 horas.
|
||||||
|
|
||||||
|
#### Opções exclusivas do cartão de estatísticas:
|
||||||
|
|
||||||
|
- `hide` - Oculta itens específicos das estatísticas _(Valores separados por vírgulas)_
|
||||||
|
- `hide_title` - Ocutar o título _(boolean)_
|
||||||
|
- `hide_rank` - Ocultar a classificação _(boolean)_
|
||||||
|
- `show_icons` - Mostrar ícones _(boolean)_
|
||||||
|
- `include_all_commits` - Contabiliza todos os commits ao invés de apenas os atual ano _(boolean)_
|
||||||
|
- `count_private` - Contabiliza commits privados _(boolean)_
|
||||||
|
- `line_height` - Define a altura do espaçamento entre o texto _(number)_
|
||||||
|
|
||||||
|
#### Opções exclusivas do cartão de repositórios:
|
||||||
|
|
||||||
|
- `show_owner` - Exibir o nome da pessoa a quem o repositório pertence _(boolean)_
|
||||||
|
|
||||||
|
#### Opções exclusivas do cartão de linguagens:
|
||||||
|
|
||||||
|
- `hide` - Oculta linguagens específicas _(Valores separados por vírgulas)_
|
||||||
|
- `hide_title` - Oculta o título _(boolean)_
|
||||||
|
- `layout` - Alterna entre os dois layouts disponíveis `default` & `compact`
|
||||||
|
- `card_width` - Define a largura do cartão manualmente _(number)_
|
||||||
|
|
||||||
|
> :warning: **Importante:**
|
||||||
|
> Nomes de linguagens devem ser uma sequência escapada de URI, como específicado em [Codificação por cento](https://pt.wikipedia.org/wiki/Codificação_por_cento)
|
||||||
|
> (Isso é: `c++` deve se tornar `c%2B%2B`, `jupyter notebook` deve se tornar `jupyter%20notebook`, etc.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Pins extras do GitHub
|
||||||
|
|
||||||
|
Os Pins extras do GitHub permitem fixar mais de 6 repositórios no seu perfil usando um perfil README.me do GitHub.
|
||||||
|
|
||||||
|
Uhu! Você não está mais limitado a 6 repositórios fixados.
|
||||||
|
|
||||||
|
### Utilização
|
||||||
|
|
||||||
|
Copie e cole esse código no seu README.md e altere os atributos.
|
||||||
|
|
||||||
|
Endpoint: `api/pin?username=anuraghazra&repo=github-readme-stats`
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Demonstração
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
Utilize a variável [show_owner](#personalização) para incluir o nome de usuário do proprietária do repositório
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
# Cartão de principais linguagens de programação
|
||||||
|
|
||||||
|
Exibe uma métrica de linguagens de programação mais usadas pelo usuário do GitHub.
|
||||||
|
|
||||||
|
_Nota: As principais linguagens de programação não fazem declarações sobre habilidades pessoais ou similares, é apenas uma figura-chave com base nas estatísticas do GitHub do usuário indicando a frequência com que cada uma foi utilizada._
|
||||||
|
|
||||||
|
### Utilização
|
||||||
|
|
||||||
|
Copie e cole esse código no seu README.md e altere os atributos.
|
||||||
|
|
||||||
|
Endpoint: `api/top-langs?username=anuraghazra`
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ocultar linguagens individualmente
|
||||||
|
|
||||||
|
Utilize o parâmetro `?hide=language1,language2` para ocultar linguagens específicas.
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Layout de cartão de linguagens compacto
|
||||||
|
|
||||||
|
Utilize a opção `&layout=compact` para mudar o layout do cartão.
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Demonstração
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
- Layout compacto
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Todas as demonstrações
|
||||||
|
|
||||||
|
- Padronizado
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Ocultando estatísticas específicas
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Mostrando ícones
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Incluir todos os commits
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Temas
|
||||||
|
|
||||||
|
Escolha entre um dos [temas predefinidos](#temas)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Personalizando o cartão de estatísticas
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Customizando o cartão de repositório
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Principais linguagens
|
||||||
|
|
||||||
|
[](https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Dica (Alinhandos os cartões de repositório)
|
||||||
|
|
||||||
|
Por padrão, você não poderá organizar as imagens lado a lado. Para fazer isso, você pode usar a seguinte abordagem:
|
||||||
|
|
||||||
|
```md
|
||||||
|
<a href="https://github.com/anuraghazra/github-readme-stats">
|
||||||
|
<img align="left" src="https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats" />
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/anuraghazra/convoychat">
|
||||||
|
<img align="left" src="https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=convoychat" />
|
||||||
|
</a>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Implante em sua própria instância do Vercel
|
||||||
|
|
||||||
|
Como a API do GitHub permite apenas 5 mil solicitações por hora, é possível que minha `https://github-readme-stats.vercel.app/api` atinja a cota limite. Se hospedar em seu próprio servidor Vercel, não precisará se preocupar com nada. Clique no botão de implantação para começar!
|
||||||
|
|
||||||
|
Nota: Desde [#58](https://github.com/anuraghazra/github-readme-stats/pull/58) há possibilidade de lidar com mais de 5 mil chamadas por hora, sem interrupções :D
|
||||||
|
|
||||||
|
[](https://vercel.com/import/project?template=https://github.com/anuraghazra/github-readme-stats)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Guia de configuração do Vercel</summary>
|
||||||
|
|
||||||
|
1. Acesse [vercel.com](https://vercel.com/)
|
||||||
|
1. Clique em `Login`
|
||||||
|

|
||||||
|
1. Acesse com o GitHub clicando em `Continue with GitHub`
|
||||||
|

|
||||||
|
1. Entre no GitHub e permita acesso a todos os repositórios, se solicitado
|
||||||
|
1. Faça Fork neste repositório
|
||||||
|
1. Volte ao seu [painel principal do Vercel](https://vercel.com/dashboard)
|
||||||
|
1. Selecione `Import Project`
|
||||||
|

|
||||||
|
1. Selecione `Import Git Repository`
|
||||||
|

|
||||||
|
1. Selecione a raiz e mantenha tudo como está, basta adicionar sua variável de ambiente chamada PAT_1 (que será exibida), que conterá um token de acesso pessoal (PAT), que você pode criar facilmente [aqui](https://github.com/settings/tokens/new) (deixe tudo como está, apenas dê um nome, que pode ser o que você quiser)
|
||||||
|

|
||||||
|
1. Clique em `deploy` e já estará tudo pronto. Veja seus domínios para usar a API!
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## :sparkling_heart: Apoie o projeto
|
||||||
|
|
||||||
|
|
||||||
|
Disponibilizo como código aberto quase tudo o que posso e tento responder a todos que precisam de ajuda para utilizar esses projetos. Claro,
|
||||||
|
isso demanda tempo. Utilize este serviço gratuitamente.
|
||||||
|
|
||||||
|
No entanto, se você utilizar este projeto e estiver satisfeito com ele, ou apenas quiser me encorajar a continuar criando coisas, existem algumas formas fazê-lo:
|
||||||
|
|
||||||
|
- Dando os devidos créditos ao usar github-readme-stats no seu README.me, adicionando uma referência ao projeto :D
|
||||||
|
- Dando uma estrela (Starring) e compartilhando o projeto 🚀
|
||||||
|
- [](https://www.paypal.me/anuraghazra) - Você pode fazer doações únicas via PayPal. Provavelmente vou comprar um ~~café~~ chá. :tea:
|
||||||
|
|
||||||
|
Obrigado! :heart:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Contribuições são bem-vindas! <3
|
||||||
|
|
||||||
|
Feito com :heart: e JavaScript.
|
|
@ -4,10 +4,10 @@ const {
|
||||||
getCardColors,
|
getCardColors,
|
||||||
FlexLayout,
|
FlexLayout,
|
||||||
wrapTextMultiline,
|
wrapTextMultiline,
|
||||||
} = require("../src/utils");
|
} = require("../common/utils");
|
||||||
const icons = require("./icons");
|
const icons = require("../common/icons");
|
||||||
|
const Card = require("../common/Card");
|
||||||
const toEmoji = require("emoji-name-map");
|
const toEmoji = require("emoji-name-map");
|
||||||
const Card = require("./Card");
|
|
||||||
|
|
||||||
const renderRepoCard = (repo, options = {}) => {
|
const renderRepoCard = (repo, options = {}) => {
|
||||||
const {
|
const {
|
|
@ -3,12 +3,20 @@ const {
|
||||||
getCardColors,
|
getCardColors,
|
||||||
FlexLayout,
|
FlexLayout,
|
||||||
encodeHTML,
|
encodeHTML,
|
||||||
} = require("../src/utils");
|
} = require("../common/utils");
|
||||||
const { getStyles } = require("./getStyles");
|
const { getStyles } = require("../getStyles");
|
||||||
const icons = require("./icons");
|
const icons = require("../common/icons");
|
||||||
const Card = require("./Card");
|
const Card = require("../common/Card");
|
||||||
|
|
||||||
const createTextNode = ({ icon, label, value, id, index, showIcons }) => {
|
const createTextNode = ({
|
||||||
|
icon,
|
||||||
|
label,
|
||||||
|
value,
|
||||||
|
id,
|
||||||
|
index,
|
||||||
|
showIcons,
|
||||||
|
shiftValuePos,
|
||||||
|
}) => {
|
||||||
const kValue = kFormatter(value);
|
const kValue = kFormatter(value);
|
||||||
const staggerDelay = (index + 3) * 150;
|
const staggerDelay = (index + 3) * 150;
|
||||||
|
|
||||||
|
@ -24,7 +32,12 @@ const createTextNode = ({ icon, label, value, id, index, showIcons }) => {
|
||||||
<g class="stagger" style="animation-delay: ${staggerDelay}ms" transform="translate(25, 0)">
|
<g class="stagger" style="animation-delay: ${staggerDelay}ms" transform="translate(25, 0)">
|
||||||
${iconSvg}
|
${iconSvg}
|
||||||
<text class="stat bold" ${labelOffset} y="12.5">${label}:</text>
|
<text class="stat bold" ${labelOffset} y="12.5">${label}:</text>
|
||||||
<text class="stat" x="135" y="12.5" data-testid="${id}">${kValue}</text>
|
<text
|
||||||
|
class="stat"
|
||||||
|
x="${shiftValuePos ? (showIcons ? 200 : 170) : 150}"
|
||||||
|
y="12.5"
|
||||||
|
data-testid="${id}"
|
||||||
|
>${kValue}</text>
|
||||||
</g>
|
</g>
|
||||||
`;
|
`;
|
||||||
};
|
};
|
||||||
|
@ -45,6 +58,7 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||||
hide_title = false,
|
hide_title = false,
|
||||||
hide_border = false,
|
hide_border = false,
|
||||||
hide_rank = false,
|
hide_rank = false,
|
||||||
|
include_all_commits = false,
|
||||||
line_height = 25,
|
line_height = 25,
|
||||||
title_color,
|
title_color,
|
||||||
icon_color,
|
icon_color,
|
||||||
|
@ -74,7 +88,9 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||||
},
|
},
|
||||||
commits: {
|
commits: {
|
||||||
icon: icons.commits,
|
icon: icons.commits,
|
||||||
label: "Total Commits",
|
label: `Total Commits${
|
||||||
|
include_all_commits ? "" : ` (${new Date().getFullYear()})`
|
||||||
|
}`,
|
||||||
value: totalCommits,
|
value: totalCommits,
|
||||||
id: "commits",
|
id: "commits",
|
||||||
},
|
},
|
||||||
|
@ -107,6 +123,7 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||||
...STATS[key],
|
...STATS[key],
|
||||||
index,
|
index,
|
||||||
showIcons: show_icons,
|
showIcons: show_icons,
|
||||||
|
shiftValuePos: !include_all_commits,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
const { getCardColors, FlexLayout, clampValue } = require("../src/utils");
|
const { getCardColors, FlexLayout, clampValue } = require("../common/utils");
|
||||||
const Card = require("./Card");
|
const Card = require("../common/Card");
|
||||||
|
|
||||||
const createProgressNode = ({ width, color, name, progress }) => {
|
const createProgressNode = ({ width, color, name, progress }) => {
|
||||||
const paddingRight = 95;
|
const paddingRight = 95;
|
|
@ -1,5 +1,5 @@
|
||||||
const { FlexLayout } = require("./utils");
|
const { FlexLayout } = require("../common/utils");
|
||||||
const { getAnimations } = require("./getStyles");
|
const { getAnimations } = require("../getStyles");
|
||||||
|
|
||||||
class Card {
|
class Card {
|
||||||
constructor({
|
constructor({
|
|
@ -1,4 +1,4 @@
|
||||||
const { logger } = require("./utils");
|
const { logger } = require("../common/utils");
|
||||||
|
|
||||||
const retryer = async (fetcher, variables, retries = 0) => {
|
const retryer = async (fetcher, variables, retries = 0) => {
|
||||||
if (retries > 7) {
|
if (retries > 7) {
|
|
@ -1,6 +1,6 @@
|
||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const wrap = require("word-wrap");
|
const wrap = require("word-wrap");
|
||||||
const themes = require("../themes");
|
const themes = require("../../themes");
|
||||||
|
|
||||||
const renderError = (message, secondaryMessage = "") => {
|
const renderError = (message, secondaryMessage = "") => {
|
||||||
return `
|
return `
|
|
@ -1,5 +1,5 @@
|
||||||
const { request } = require("./utils");
|
const { request } = require("../common/utils");
|
||||||
const retryer = require("./retryer");
|
const retryer = require("../common/retryer");
|
||||||
|
|
||||||
const fetcher = (variables, token) => {
|
const fetcher = (variables, token) => {
|
||||||
return request(
|
return request(
|
|
@ -1,6 +1,9 @@
|
||||||
const { request, logger } = require("./utils");
|
const { request, logger } = require("../common/utils");
|
||||||
const retryer = require("./retryer");
|
const axios = require("axios");
|
||||||
const calculateRank = require("./calculateRank");
|
const retryer = require("../common/retryer");
|
||||||
|
const calculateRank = require("../calculateRank");
|
||||||
|
const githubUsernameRegex = require("github-username-regex");
|
||||||
|
|
||||||
require("dotenv").config();
|
require("dotenv").config();
|
||||||
|
|
||||||
const fetcher = (variables, token) => {
|
const fetcher = (variables, token) => {
|
||||||
|
@ -46,7 +49,45 @@ const fetcher = (variables, token) => {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
async function fetchStats(username, count_private = false) {
|
// https://github.com/anuraghazra/github-readme-stats/issues/92#issuecomment-661026467
|
||||||
|
// https://github.com/anuraghazra/github-readme-stats/pull/211/
|
||||||
|
const totalCommitsFetcher = async (username) => {
|
||||||
|
if (!githubUsernameRegex.test(username)) {
|
||||||
|
logger.log("Invalid username");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://developer.github.com/v3/search/#search-commits
|
||||||
|
const fetchTotalCommits = (variables, token) => {
|
||||||
|
return axios({
|
||||||
|
method: "get",
|
||||||
|
url: `https://api.github.com/search/commits?q=author:${variables.login}`,
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
Accept: "application/vnd.github.cloak-preview",
|
||||||
|
Authorization: `bearer ${token}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
let res = await retryer(fetchTotalCommits, { login: username });
|
||||||
|
if (res.data.total_count) {
|
||||||
|
return res.data.total_count;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
logger.log(err);
|
||||||
|
// just return 0 if there is something wrong so that
|
||||||
|
// we don't break the whole app
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
async function fetchStats(
|
||||||
|
username,
|
||||||
|
count_private = false,
|
||||||
|
include_all_commits = false
|
||||||
|
) {
|
||||||
if (!username) throw Error("Invalid username");
|
if (!username) throw Error("Invalid username");
|
||||||
|
|
||||||
const stats = {
|
const stats = {
|
||||||
|
@ -61,6 +102,11 @@ async function fetchStats(username, count_private = false) {
|
||||||
|
|
||||||
let res = await retryer(fetcher, { login: username });
|
let res = await retryer(fetcher, { login: username });
|
||||||
|
|
||||||
|
let experimental_totalCommits = 0;
|
||||||
|
if (include_all_commits) {
|
||||||
|
experimental_totalCommits = await totalCommitsFetcher(username);
|
||||||
|
}
|
||||||
|
|
||||||
if (res.data.errors) {
|
if (res.data.errors) {
|
||||||
logger.error(res.data.errors);
|
logger.error(res.data.errors);
|
||||||
throw Error(res.data.errors[0].message || "Could not fetch user");
|
throw Error(res.data.errors[0].message || "Could not fetch user");
|
||||||
|
@ -72,11 +118,11 @@ async function fetchStats(username, count_private = false) {
|
||||||
stats.name = user.name || user.login;
|
stats.name = user.name || user.login;
|
||||||
stats.totalIssues = user.issues.totalCount;
|
stats.totalIssues = user.issues.totalCount;
|
||||||
|
|
||||||
stats.totalCommits = contributionCount.totalCommitContributions;
|
stats.totalCommits =
|
||||||
|
contributionCount.totalCommitContributions + experimental_totalCommits;
|
||||||
|
|
||||||
if (count_private) {
|
if (count_private) {
|
||||||
stats.totalCommits =
|
stats.totalCommits += contributionCount.restrictedContributionsCount;
|
||||||
contributionCount.totalCommitContributions +
|
|
||||||
contributionCount.restrictedContributionsCount;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stats.totalPRs = user.pullRequests.totalCount;
|
stats.totalPRs = user.pullRequests.totalCount;
|
|
@ -1,5 +1,5 @@
|
||||||
const { request, logger } = require("./utils");
|
const { request, logger } = require("../common/utils");
|
||||||
const retryer = require("./retryer");
|
const retryer = require("../common/retryer");
|
||||||
require("dotenv").config();
|
require("dotenv").config();
|
||||||
|
|
||||||
const fetcher = (variables, token) => {
|
const fetcher = (variables, token) => {
|
||||||
|
@ -49,14 +49,14 @@ async function fetchTopLanguages(username) {
|
||||||
.filter((node) => {
|
.filter((node) => {
|
||||||
return node.languages.edges.length > 0;
|
return node.languages.edges.length > 0;
|
||||||
})
|
})
|
||||||
// flatten the list of language nodes
|
// flatten the list of language nodes
|
||||||
.reduce((acc, curr) => curr.languages.edges.concat(acc), [])
|
.reduce((acc, curr) => curr.languages.edges.concat(acc), [])
|
||||||
.sort((a, b) => b.size - a.size)
|
.sort((a, b) => b.size - a.size)
|
||||||
.reduce((acc, prev) => {
|
.reduce((acc, prev) => {
|
||||||
// get the size of the language (bytes)
|
// get the size of the language (bytes)
|
||||||
let langSize = prev.size;
|
let langSize = prev.size;
|
||||||
|
|
||||||
// if we already have the language in the accumulator
|
// if we already have the language in the accumulator
|
||||||
// & the current language name is same as previous name
|
// & the current language name is same as previous name
|
||||||
// add the size to the language size.
|
// add the size to the language size.
|
||||||
if (acc[prev.node.name] && prev.node.name === acc[prev.node.name].name) {
|
if (acc[prev.node.name] && prev.node.name === acc[prev.node.name].name) {
|
|
@ -2,8 +2,8 @@ require("@testing-library/jest-dom");
|
||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const MockAdapter = require("axios-mock-adapter");
|
const MockAdapter = require("axios-mock-adapter");
|
||||||
const api = require("../api/index");
|
const api = require("../api/index");
|
||||||
const renderStatsCard = require("../src/renderStatsCard");
|
const renderStatsCard = require("../src/cards/stats-card");
|
||||||
const { renderError, CONSTANTS } = require("../src/utils");
|
const { renderError, CONSTANTS } = require("../src/common/utils");
|
||||||
const calculateRank = require("../src/calculateRank");
|
const calculateRank = require("../src/calculateRank");
|
||||||
|
|
||||||
const stats = {
|
const stats = {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const cssToObject = require("css-to-object");
|
const cssToObject = require("css-to-object");
|
||||||
const Card = require("../src/Card");
|
const Card = require("../src/common/Card");
|
||||||
const icons = require("../src/icons");
|
const icons = require("../src/common/icons");
|
||||||
const { getCardColors } = require("../src/utils");
|
const { getCardColors } = require("../src/common/utils");
|
||||||
const { queryByTestId } = require("@testing-library/dom");
|
const { queryByTestId } = require("@testing-library/dom");
|
||||||
|
|
||||||
describe("Card", () => {
|
describe("Card", () => {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const MockAdapter = require("axios-mock-adapter");
|
const MockAdapter = require("axios-mock-adapter");
|
||||||
const fetchRepo = require("../src/fetchRepo");
|
const fetchRepo = require("../src/fetchers/repo-fetcher");
|
||||||
|
|
||||||
const data_repo = {
|
const data_repo = {
|
||||||
repository: {
|
repository: {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const MockAdapter = require("axios-mock-adapter");
|
const MockAdapter = require("axios-mock-adapter");
|
||||||
const fetchStats = require("../src/fetchStats");
|
const fetchStats = require("../src/fetchers/stats-fetcher");
|
||||||
const calculateRank = require("../src/calculateRank");
|
const calculateRank = require("../src/calculateRank");
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
|
@ -9,7 +9,10 @@ const data = {
|
||||||
user: {
|
user: {
|
||||||
name: "Anurag Hazra",
|
name: "Anurag Hazra",
|
||||||
repositoriesContributedTo: { totalCount: 61 },
|
repositoriesContributedTo: { totalCount: 61 },
|
||||||
contributionsCollection: { totalCommitContributions: 100, restrictedContributionsCount: 50 },
|
contributionsCollection: {
|
||||||
|
totalCommitContributions: 100,
|
||||||
|
restrictedContributionsCount: 50,
|
||||||
|
},
|
||||||
pullRequests: { totalCount: 300 },
|
pullRequests: { totalCount: 300 },
|
||||||
issues: { totalCount: 200 },
|
issues: { totalCount: 200 },
|
||||||
followers: { totalCount: 100 },
|
followers: { totalCount: 100 },
|
||||||
|
@ -102,4 +105,32 @@ describe("Test fetchStats", () => {
|
||||||
rank,
|
rank,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
it("should fetch total commits", async () => {
|
||||||
|
mock.onPost("https://api.github.com/graphql").reply(200, data);
|
||||||
|
mock
|
||||||
|
.onGet("https://api.github.com/search/commits?q=author:anuraghazra")
|
||||||
|
.reply(200, { total_count: 1000 });
|
||||||
|
|
||||||
|
let stats = await fetchStats("anuraghazra", true, true);
|
||||||
|
const rank = calculateRank({
|
||||||
|
totalCommits: 1000 + 150,
|
||||||
|
totalRepos: 5,
|
||||||
|
followers: 100,
|
||||||
|
contributions: 61,
|
||||||
|
stargazers: 400,
|
||||||
|
prs: 300,
|
||||||
|
issues: 200,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(stats).toStrictEqual({
|
||||||
|
contributedTo: 61,
|
||||||
|
name: "Anurag Hazra",
|
||||||
|
totalCommits: 1000 + 150,
|
||||||
|
totalIssues: 200,
|
||||||
|
totalPRs: 300,
|
||||||
|
totalStars: 400,
|
||||||
|
rank,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const MockAdapter = require("axios-mock-adapter");
|
const MockAdapter = require("axios-mock-adapter");
|
||||||
const fetchTopLanguages = require("../src/fetchTopLanguages");
|
const fetchTopLanguages = require("../src/fetchers/top-languages-fetcher");
|
||||||
|
|
||||||
const mock = new MockAdapter(axios);
|
const mock = new MockAdapter(axios);
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@ require("@testing-library/jest-dom");
|
||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const MockAdapter = require("axios-mock-adapter");
|
const MockAdapter = require("axios-mock-adapter");
|
||||||
const pin = require("../api/pin");
|
const pin = require("../api/pin");
|
||||||
const renderRepoCard = require("../src/renderRepoCard");
|
const renderRepoCard = require("../src/cards/repo-card");
|
||||||
const { renderError } = require("../src/utils");
|
const { renderError } = require("../src/common/utils");
|
||||||
|
|
||||||
const data_repo = {
|
const data_repo = {
|
||||||
repository: {
|
repository: {
|
||||||
|
@ -17,7 +17,7 @@ const data_repo = {
|
||||||
name: "TypeScript",
|
name: "TypeScript",
|
||||||
},
|
},
|
||||||
forkCount: 100,
|
forkCount: 100,
|
||||||
isTemplate: false
|
isTemplate: false,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const cssToObject = require("css-to-object");
|
const cssToObject = require("css-to-object");
|
||||||
const renderRepoCard = require("../src/renderRepoCard");
|
const renderRepoCard = require("../src/cards/repo-card");
|
||||||
|
|
||||||
const { queryByTestId } = require("@testing-library/dom");
|
const { queryByTestId } = require("@testing-library/dom");
|
||||||
const themes = require("../themes");
|
const themes = require("../themes");
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const cssToObject = require("css-to-object");
|
const cssToObject = require("css-to-object");
|
||||||
const renderStatsCard = require("../src/renderStatsCard");
|
const renderStatsCard = require("../src/cards/stats-card");
|
||||||
|
|
||||||
const {
|
const {
|
||||||
getByTestId,
|
getByTestId,
|
||||||
|
@ -188,7 +188,6 @@ describe("Test renderStatsCard", () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
it("should render icons correctly", () => {
|
it("should render icons correctly", () => {
|
||||||
document.body.innerHTML = renderStatsCard(stats, {
|
document.body.innerHTML = renderStatsCard(stats, {
|
||||||
show_icons: true,
|
show_icons: true,
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const cssToObject = require("css-to-object");
|
const cssToObject = require("css-to-object");
|
||||||
const renderTopLanguages = require("../src/renderTopLanguages");
|
const renderTopLanguages = require("../src/cards/top-languages-card");
|
||||||
|
|
||||||
const {
|
const { queryByTestId, queryAllByTestId } = require("@testing-library/dom");
|
||||||
getByTestId,
|
|
||||||
queryByTestId,
|
|
||||||
queryAllByTestId,
|
|
||||||
} = require("@testing-library/dom");
|
|
||||||
const themes = require("../themes");
|
const themes = require("../themes");
|
||||||
|
|
||||||
describe("Test renderTopLanguages", () => {
|
describe("Test renderTopLanguages", () => {
|
||||||
|
@ -72,7 +68,7 @@ describe("Test renderTopLanguages", () => {
|
||||||
|
|
||||||
// multiple languages passed
|
// multiple languages passed
|
||||||
document.body.innerHTML = renderTopLanguages(langs, {
|
document.body.innerHTML = renderTopLanguages(langs, {
|
||||||
hide: ["HTML","css"],
|
hide: ["HTML", "css"],
|
||||||
});
|
});
|
||||||
expect(queryAllByTestId(document.body, "lang-name")[0]).toBeInTheDocument(
|
expect(queryAllByTestId(document.body, "lang-name")[0]).toBeInTheDocument(
|
||||||
"javascript"
|
"javascript"
|
||||||
|
@ -189,18 +185,35 @@ describe("Test renderTopLanguages", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render with layout compact', () => {
|
it("should render with layout compact", () => {
|
||||||
document.body.innerHTML = renderTopLanguages(langs, {layout: 'compact'});
|
document.body.innerHTML = renderTopLanguages(langs, { layout: "compact" });
|
||||||
|
|
||||||
expect(queryByTestId(document.body, "header")).toHaveTextContent("Most Used Languages");
|
expect(queryByTestId(document.body, "header")).toHaveTextContent(
|
||||||
|
"Most Used Languages"
|
||||||
|
);
|
||||||
|
|
||||||
expect(queryAllByTestId(document.body, "lang-name")[0]).toHaveTextContent("HTML 40.00%");
|
expect(queryAllByTestId(document.body, "lang-name")[0]).toHaveTextContent(
|
||||||
expect(queryAllByTestId(document.body, "lang-progress")[0]).toHaveAttribute("width","120.00");
|
"HTML 40.00%"
|
||||||
|
);
|
||||||
|
expect(queryAllByTestId(document.body, "lang-progress")[0]).toHaveAttribute(
|
||||||
|
"width",
|
||||||
|
"120.00"
|
||||||
|
);
|
||||||
|
|
||||||
expect(queryAllByTestId(document.body, "lang-name")[1]).toHaveTextContent("javascript 40.00%");
|
expect(queryAllByTestId(document.body, "lang-name")[1]).toHaveTextContent(
|
||||||
expect(queryAllByTestId(document.body, "lang-progress")[1]).toHaveAttribute("width","120.00");
|
"javascript 40.00%"
|
||||||
|
);
|
||||||
|
expect(queryAllByTestId(document.body, "lang-progress")[1]).toHaveAttribute(
|
||||||
|
"width",
|
||||||
|
"120.00"
|
||||||
|
);
|
||||||
|
|
||||||
expect(queryAllByTestId(document.body, "lang-name")[2]).toHaveTextContent("css 20.00%");
|
expect(queryAllByTestId(document.body, "lang-name")[2]).toHaveTextContent(
|
||||||
expect(queryAllByTestId(document.body, "lang-progress")[2]).toHaveAttribute("width","60.00");
|
"css 20.00%"
|
||||||
})
|
);
|
||||||
|
expect(queryAllByTestId(document.body, "lang-progress")[2]).toHaveAttribute(
|
||||||
|
"width",
|
||||||
|
"60.00"
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require("@testing-library/jest-dom");
|
require("@testing-library/jest-dom");
|
||||||
const retryer = require("../src/retryer");
|
const retryer = require("../src/common/retryer");
|
||||||
const { logger } = require("../src/utils");
|
const { logger } = require("../src/common/utils");
|
||||||
|
|
||||||
const fetcher = jest.fn((variables, token) => {
|
const fetcher = jest.fn((variables, token) => {
|
||||||
logger.log(variables, token);
|
logger.log(variables, token);
|
||||||
|
|
|
@ -2,8 +2,8 @@ require("@testing-library/jest-dom");
|
||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const MockAdapter = require("axios-mock-adapter");
|
const MockAdapter = require("axios-mock-adapter");
|
||||||
const topLangs = require("../api/top-langs");
|
const topLangs = require("../api/top-langs");
|
||||||
const renderTopLanguages = require("../src/renderTopLanguages");
|
const renderTopLanguages = require("../src/cards/top-languages-card");
|
||||||
const { renderError } = require("../src/utils");
|
const { renderError } = require("../src/common/utils");
|
||||||
|
|
||||||
const data_langs = {
|
const data_langs = {
|
||||||
data: {
|
data: {
|
||||||
|
|
|
@ -6,7 +6,7 @@ const {
|
||||||
FlexLayout,
|
FlexLayout,
|
||||||
getCardColors,
|
getCardColors,
|
||||||
wrapTextMultiline,
|
wrapTextMultiline,
|
||||||
} = require("../src/utils");
|
} = require("../src/common/utils");
|
||||||
|
|
||||||
const { queryByTestId } = require("@testing-library/dom");
|
const { queryByTestId } = require("@testing-library/dom");
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,8 @@ Use `?theme=THEME_NAME` parameter like so :-
|
||||||
| `highcontrast` ![highcontrast][highcontrast] | `dracula` ![dracula][dracula] | `prussian` ![prussian][prussian] |
|
| `highcontrast` ![highcontrast][highcontrast] | `dracula` ![dracula][dracula] | `prussian` ![prussian][prussian] |
|
||||||
| `monokai` ![monokai][monokai] | `vue` ![vue][vue] | `shades-of-purple` ![shades-of-purple][shades-of-purple] |
|
| `monokai` ![monokai][monokai] | `vue` ![vue][vue] | `shades-of-purple` ![shades-of-purple][shades-of-purple] |
|
||||||
| `nightowl` ![nightowl][nightowl] | `buefy` ![buefy][buefy] | `blue-green` ![blue-green][blue-green] |
|
| `nightowl` ![nightowl][nightowl] | `buefy` ![buefy][buefy] | `blue-green` ![blue-green][blue-green] |
|
||||||
| `algolia` ![algolia][algolia] | `great-gatsby` ![great-gatsby][great-gatsby] | [Add your theme][add-theme] |
|
| `algolia` ![algolia][algolia] | `great-gatsby` ![great-gatsby][great-gatsby] | `bear` ![bear][bear] |
|
||||||
|
| `solarized-dark` ![solarized-dark][solarized-dark] | `solarized-light` ![solarized-light][solarized-light] | [Add your theme][add-theme] |
|
||||||
|
|
||||||
## Repo Card
|
## Repo Card
|
||||||
|
|
||||||
|
@ -36,7 +37,8 @@ Use `?theme=THEME_NAME` parameter like so :-
|
||||||
| `highcontrast` ![highcontrast][highcontrast_repo] | `dracula` ![dracula][dracula_repo] | `prussian` ![prussian][prussian_repo] |
|
| `highcontrast` ![highcontrast][highcontrast_repo] | `dracula` ![dracula][dracula_repo] | `prussian` ![prussian][prussian_repo] |
|
||||||
| `monokai` ![monokai][monokai_repo] | `vue` ![vue][vue_repo] | `shades-of-purple` ![shades-of-purple][shades-of-purple_repo] |
|
| `monokai` ![monokai][monokai_repo] | `vue` ![vue][vue_repo] | `shades-of-purple` ![shades-of-purple][shades-of-purple_repo] |
|
||||||
| `nightowl` ![nightowl][nightowl_repo] | `buefy` ![buefy][buefy_repo] | `blue-green` ![blue-green][blue-green_repo] |
|
| `nightowl` ![nightowl][nightowl_repo] | `buefy` ![buefy][buefy_repo] | `blue-green` ![blue-green][blue-green_repo] |
|
||||||
| `algolia` ![algolia][algolia_repo] | `great-gatsby` ![great-gatsby][great-gatsby_repo] | [Add your theme][add-theme] |
|
| `algolia` ![algolia][algolia_repo] | `great-gatsby` ![great-gatsby][great-gatsby_repo] | `bear` ![bear][bear_repo] |
|
||||||
|
| `solarized-dark` ![solarized-dark][solarized-dark_repo] | `solarized-light` ![solarized-light][solarized-light_repo] | [Add your theme][add-theme] |
|
||||||
|
|
||||||
|
|
||||||
[default]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=default
|
[default]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=default
|
||||||
|
@ -60,6 +62,9 @@ Use `?theme=THEME_NAME` parameter like so :-
|
||||||
[blue-green]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=blue-green
|
[blue-green]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=blue-green
|
||||||
[algolia]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=algolia
|
[algolia]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=algolia
|
||||||
[great-gatsby]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=great-gatsby
|
[great-gatsby]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=great-gatsby
|
||||||
|
[bear]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=bear
|
||||||
|
[solarized-dark]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=solarized-dark
|
||||||
|
[solarized-light]: https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&hide=contribs,prs&cache_seconds=86400&theme=solarized-light
|
||||||
|
|
||||||
|
|
||||||
[default_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=default
|
[default_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=default
|
||||||
|
@ -83,6 +88,9 @@ Use `?theme=THEME_NAME` parameter like so :-
|
||||||
[blue-green_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=blue-green
|
[blue-green_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=blue-green
|
||||||
[algolia_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=algolia
|
[algolia_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=algolia
|
||||||
[great-gatsby_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=great-gatsby
|
[great-gatsby_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=great-gatsby
|
||||||
|
[bear_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=bear
|
||||||
|
[solarized-dark_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=solarized-dark
|
||||||
|
[solarized-light_repo]: https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&cache_seconds=86400&theme=solarized-light
|
||||||
|
|
||||||
|
|
||||||
[add-theme]: https://github.com/anuraghazra/github-readme-stats/edit/master/themes/index.js
|
[add-theme]: https://github.com/anuraghazra/github-readme-stats/edit/master/themes/index.js
|
||||||
|
|
|
@ -125,6 +125,24 @@ const themes = {
|
||||||
text_color: "ffd95b",
|
text_color: "ffd95b",
|
||||||
bg_color: "000000",
|
bg_color: "000000",
|
||||||
},
|
},
|
||||||
|
"bear": {
|
||||||
|
title_color: "e03c8a",
|
||||||
|
icon_color: "00AEFF",
|
||||||
|
text_color: "bcb28d",
|
||||||
|
bg_color: "1f2023",
|
||||||
|
},
|
||||||
|
"solarized-dark": {
|
||||||
|
title_color: "268bd2",
|
||||||
|
icon_color: "b58900",
|
||||||
|
text_color: "859900",
|
||||||
|
bg_color: "002b36",
|
||||||
|
},
|
||||||
|
"solarized-light": {
|
||||||
|
title_color: "268bd2",
|
||||||
|
icon_color: "b58900",
|
||||||
|
text_color: "859900",
|
||||||
|
bg_color: "fdf6e3",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = themes;
|
module.exports = themes;
|
||||||
|
|
Loading…
Add table
Reference in a new issue