diff --git a/api/index.js b/api/index.js index a17387c..b1b0b3a 100644 --- a/api/index.js +++ b/api/index.js @@ -5,9 +5,9 @@ const { parseArray, clampValue, CONSTANTS, -} = require("../src/utils"); -const fetchStats = require("../src/fetchStats"); -const renderStatsCard = require("../src/renderStatsCard"); +} = require("../src/common/utils"); +const fetchStats = require("../src/fetchers/stats-fetcher"); +const renderStatsCard = require("../src/cards/stats-card"); module.exports = async (req, res) => { const { @@ -18,6 +18,7 @@ module.exports = async (req, res) => { hide_rank, show_icons, count_private, + include_all_commits, line_height, title_color, icon_color, @@ -31,7 +32,11 @@ module.exports = async (req, res) => { res.setHeader("Content-Type", "image/svg+xml"); try { - stats = await fetchStats(username, parseBoolean(count_private)); + stats = await fetchStats( + username, + parseBoolean(count_private), + parseBoolean(include_all_commits) + ); } catch (err) { return res.send( renderError( @@ -56,6 +61,7 @@ module.exports = async (req, res) => { hide_title: parseBoolean(hide_title), hide_border: parseBoolean(hide_border), hide_rank: parseBoolean(hide_rank), + include_all_commits: parseBoolean(include_all_commits), line_height, title_color, icon_color, diff --git a/api/pin.js b/api/pin.js index b017204..22eb851 100644 --- a/api/pin.js +++ b/api/pin.js @@ -5,9 +5,9 @@ const { clampValue, CONSTANTS, logger, -} = require("../src/utils"); -const fetchRepo = require("../src/fetchRepo"); -const renderRepoCard = require("../src/renderRepoCard"); +} = require("../src/common/utils"); +const fetchRepo = require("../src/fetchers/repo-fetcher"); +const renderRepoCard = require("../src/cards/repo-card"); module.exports = async (req, res) => { const { diff --git a/api/top-langs.js b/api/top-langs.js index a758e33..552dd1e 100644 --- a/api/top-langs.js +++ b/api/top-langs.js @@ -5,9 +5,9 @@ const { parseBoolean, parseArray, CONSTANTS, -} = require("../src/utils"); -const fetchTopLanguages = require("../src/fetchTopLanguages"); -const renderTopLanguages = require("../src/renderTopLanguages"); +} = require("../src/common/utils"); +const fetchTopLanguages = require("../src/fetchers/top-languages-fetcher"); +const renderTopLanguages = require("../src/cards/top-languages-card"); module.exports = async (req, res) => { const { diff --git a/package.json b/package.json index 0adc010..d167c1b 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "dependencies": { "dotenv": "^8.2.0", "emoji-name-map": "^1.2.8", + "github-username-regex": "^1.0.0", "word-wrap": "^1.2.3" }, "husky": { diff --git a/readme.md b/readme.md index 62377fe..ccea98b 100644 --- a/readme.md +++ b/readme.md @@ -41,6 +41,8 @@ Deutsch · 日本語 + · + Português Brasileiro

Loved the project? Please consider donating 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_rank` - _(boolean)_ - `show_icons` - _(boolean)_ +- `include_all_commits` - Count total commits instead of just the current year 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: @@ -235,6 +238,10 @@ You can use the `&layout=compact` option to change the card design. ![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=issues&show_icons=true) +- Include All Commits + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&include_all_commits=true) + - 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 [![Deploy to Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/anuraghazra/github-readme-stats)

- Guide on setting up Vercel + Guide on setting up Vercel 🔨 1. Go to [vercel.com](https://vercel.com/) 1. Click on `Log in` diff --git a/readme_es.md b/readme_es.md index 28a338b..738e0b6 100644 --- a/readme_es.md +++ b/readme_es.md @@ -44,7 +44,7 @@ # Características - [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) - [Personalización](#personalización) - [Despliega por tu cuenta](#despliega-tu-propia-instancia-de-vercel) @@ -107,69 +107,59 @@ dark, radical, merko, gruvbox, tokyonight, onedark, cobalt, synthwave, highcontr GitHub Readme Stat Themes -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 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 | hex color | color del título | 2f80ed | 2f80ed | -| text_color | hex color | color del contenido | 333 | 333 | -| icon_color | hex color | color del ícono | 4c71f2 | 586069 | -| bg_color | hex color | color de fondo | FFFEFE | FFFEFE | -| line_height | number | controla el line_height | 30 | N/A | -| hide_rank | boolean | oculta la clasificación | false | N/A | -| hide_title | boolean | oculta el título | false | N/A | -| hide_border | boolean | oculta el borde | false | N/A | -| show_owner | boolean | muestra el propietario | N/A | false | -| show_icons | boolean | muestra los íconos | false | N/A | -| theme | string | establece un tema incorporado | 'default' | 'default_repocard' | +- `title_color` - Color del título _(hex color)_ +- `text_color` - Color del contenido _(hex color)_ +- `icon_color` - Color de icono si esta disponible _(hex color)_ +- `bg_color` - Color de fondo _(hex color)_ +- `theme` - Nombre del tema, elige uno de [todos los temas disponible ](./themes/README.md) +- `cache_seconds` - Cache _(min: 1800, max: 86400)_ + +> 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 + +#### Opciones exclusivas de la tarjeta de estadísticas: + +- `hide` - Ocultar los elementos especificados de las estadísticas _ (valores separados por comas) _ +- `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. -![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra) - -- Ocultando estadísticas específicas - -![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=["contribs","issues"]) - -- Mostrando íconos - -![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=["issues"]&show_icons=true) - -- Temas - -Elige uno de los [temas predeterminados](#temas) - -![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&theme=radical) - -- Personalizando la tarjeta de estadísticas - -![Anurag's github stats](https://github-readme-stats.vercel.app/api/?username=anuraghazra&show_icons=true&title_color=fff&icon_color=79ff97&text_color=9f9f9f&bg_color=151515) - -- Personalizando la tarjeta de repositorio - -![Customized Card](https://github-readme-stats.vercel.app/api/pin?username=anuraghazra&repo=github-readme-stats&title_color=fff&icon_color=f9f9f9&text_color=9f9f9f&bg_color=151515) - ---- - -# 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. +Yey! Ya no está limitado a 6 repositorios anclados. ### 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` @@ -185,9 +175,89 @@ Utiliza la variable [show_owner](#customización) para incluir el nombre de usua [![ReadMe Card](https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&show_owner=true)](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 +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra)](https://github.com/anuraghazra/github-readme-stats) +``` + +### Ocultar lenguajes individuales + +Puede usar el parámetro `? Hide = language1, language2` para ocultar lenguajes individuales. + +```md +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra&hide=javascript,html)](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 +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra&layout=compact)](https://github.com/anuraghazra/github-readme-stats) +``` + +### Ejemplo + +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra)](https://github.com/anuraghazra/github-readme-stats) + +- Diseño compacto + +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra&layout=compact)](https://github.com/anuraghazra/github-readme-stats) + +--- + +### Todos los ejemplos + +- Por Defecto + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra) + +- Ocultar estadísticas específicas + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=contribs,issues) + +- Mostrando iconos + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=issues&show_icons=true) + +- Incluir todos los Commits + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&include_all_commits=true) + +- Temas + +Elija entre cualquiera de los [temas predeterminados](#themes) + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&theme=radical) + +- Personalizando tarjeta de estadísticas + +![Anurag's github stats](https://github-readme-stats.vercel.app/api/?username=anuraghazra&show_icons=true&title_color=fff&icon_color=79ff97&text_color=9f9f9f&bg_color=151515) + +- Personalizar la tarjeta de repositorio + +![Customized Card](https://github-readme-stats.vercel.app/api/pin?username=anuraghazra&repo=github-readme-stats&title_color=fff&icon_color=f9f9f9&text_color=9f9f9f&bg_color=151515) + +- Lenguajes Principales + +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra)](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 @@ -222,7 +292,7 @@ Nota: debido a esto [#58](https://github.com/anuraghazra/github-readme-stats/pul 1. Selecciona `Import Git Repository` ![](https://files.catbox.moe/pqub9q.png) 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) - ![](https://files.catbox.moe/caem5b.png) + ![](https://files.catbox.moe/0ez4g7.png) 1. Clickea "Deploy" y ya está listo. ¡Ve tus dominios para usar la API!
diff --git a/readme_pt-BR.md b/readme_pt-BR.md new file mode 100644 index 0000000..a41c64d --- /dev/null +++ b/readme_pt-BR.md @@ -0,0 +1,325 @@ +

+ GitHub Readme Stats +

GitHub Readme Stats

+

Adicione suas estatísticas no GitHub geradas dinamicamente em seus readmes!

+

+

+ + Testes aprovados + + + + + + Issues + + + GitHub pull requests + +
+
+ + + + + + +

+ +

+ Ver demonstração + · + Reportar erros + · + Solicitar recursos +

+

+ 简体中文 + · + Español + · + Deutsch + · + 日本語 + · + Português Brasileiro +

+

+

Gostou do projeto? Por favor considere fazer uma doação 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 +[![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra)](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 +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=contribs,prs) +``` + +### 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 +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&count_private=true) +``` + +### Exibindo ícones + +Para habilitar ícones, basta utilizar o parâmetro `show_icons=true` na sua requisição, da seguinte forma: + +```md +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true) +``` + +### 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 +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&theme=radical) +``` + +#### Todos os temas predefinidos : + +dark, radical, merko, gruvbox, tokyonight, onedark, cobalt, synthwave, highcontrast, dracula + +GitHub Readme Stat Themes + +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 +[![ReadMe Card](https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats)](https://github.com/anuraghazra/github-readme-stats) +``` + +### Demonstração + +[![ReadMe Card](https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats)](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 + +[![ReadMe Card](https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&show_owner=true)](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 +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra)](https://github.com/anuraghazra/github-readme-stats) +``` + +### Ocultar linguagens individualmente + +Utilize o parâmetro `?hide=language1,language2` para ocultar linguagens específicas. + +```md +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra&hide=javascript,html)](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 +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra&layout=compact)](https://github.com/anuraghazra/github-readme-stats) +``` + +### Demonstração + +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra)](https://github.com/anuraghazra/github-readme-stats) + +- Layout compacto + +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra&layout=compact)](https://github.com/anuraghazra/github-readme-stats) + +--- + +### Todas as demonstrações + +- Padronizado + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra) + +- Ocultando estatísticas específicas + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=contribs,issues) + +- Mostrando ícones + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&hide=issues&show_icons=true) + +- Incluir todos os commits + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&include_all_commits=true) + +- Temas + +Escolha entre um dos [temas predefinidos](#temas) + +![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=anuraghazra&show_icons=true&theme=radical) + +- Personalizando o cartão de estatísticas + +![Anurag's github stats](https://github-readme-stats.vercel.app/api/?username=anuraghazra&show_icons=true&title_color=fff&icon_color=79ff97&text_color=9f9f9f&bg_color=151515) + +- Customizando o cartão de repositório + +![Customized Card](https://github-readme-stats.vercel.app/api/pin?username=anuraghazra&repo=github-readme-stats&title_color=fff&icon_color=f9f9f9&text_color=9f9f9f&bg_color=151515) + +- Principais linguagens + +[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra)](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 + + + + + + +``` + +## 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 + +[![Deploy to Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/anuraghazra/github-readme-stats) + +

+ Guia de configuração do Vercel + +1. Acesse [vercel.com](https://vercel.com/) +1. Clique em `Login` + ![](https://files.catbox.moe/tct1wg.png) +1. Acesse com o GitHub clicando em `Continue with GitHub` + ![](https://files.catbox.moe/btd78j.jpeg) +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` + ![](https://files.catbox.moe/qckos0.png) +1. Selecione `Import Git Repository` + ![](https://files.catbox.moe/pqub9q.png) +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) + ![](https://files.catbox.moe/0ez4g7.png) +1. Clique em `deploy` e já estará tudo pronto. Veja seus domínios para usar a API! + +
+ +## :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 🚀 +- [![paypal.me/anuraghazra](https://ionicabizau.github.io/badges/paypal.svg)](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. diff --git a/src/renderRepoCard.js b/src/cards/repo-card.js similarity index 97% rename from src/renderRepoCard.js rename to src/cards/repo-card.js index 9721ebf..233812b 100644 --- a/src/renderRepoCard.js +++ b/src/cards/repo-card.js @@ -4,10 +4,10 @@ const { getCardColors, FlexLayout, wrapTextMultiline, -} = require("../src/utils"); -const icons = require("./icons"); +} = require("../common/utils"); +const icons = require("../common/icons"); +const Card = require("../common/Card"); const toEmoji = require("emoji-name-map"); -const Card = require("./Card"); const renderRepoCard = (repo, options = {}) => { const { diff --git a/src/renderStatsCard.js b/src/cards/stats-card.js similarity index 86% rename from src/renderStatsCard.js rename to src/cards/stats-card.js index ace6bcb..3c7aab7 100644 --- a/src/renderStatsCard.js +++ b/src/cards/stats-card.js @@ -3,12 +3,20 @@ const { getCardColors, FlexLayout, encodeHTML, -} = require("../src/utils"); -const { getStyles } = require("./getStyles"); -const icons = require("./icons"); -const Card = require("./Card"); +} = require("../common/utils"); +const { getStyles } = require("../getStyles"); +const icons = require("../common/icons"); +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 staggerDelay = (index + 3) * 150; @@ -24,7 +32,12 @@ const createTextNode = ({ icon, label, value, id, index, showIcons }) => { ${iconSvg} ${label}: - ${kValue} + ${kValue} `; }; @@ -45,6 +58,7 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => { hide_title = false, hide_border = false, hide_rank = false, + include_all_commits = false, line_height = 25, title_color, icon_color, @@ -74,7 +88,9 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => { }, commits: { icon: icons.commits, - label: "Total Commits", + label: `Total Commits${ + include_all_commits ? "" : ` (${new Date().getFullYear()})` + }`, value: totalCommits, id: "commits", }, @@ -107,6 +123,7 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => { ...STATS[key], index, showIcons: show_icons, + shiftValuePos: !include_all_commits, }) ); diff --git a/src/renderTopLanguages.js b/src/cards/top-languages-card.js similarity index 97% rename from src/renderTopLanguages.js rename to src/cards/top-languages-card.js index 5ccb2e0..5b43261 100644 --- a/src/renderTopLanguages.js +++ b/src/cards/top-languages-card.js @@ -1,5 +1,5 @@ -const { getCardColors, FlexLayout, clampValue } = require("../src/utils"); -const Card = require("./Card"); +const { getCardColors, FlexLayout, clampValue } = require("../common/utils"); +const Card = require("../common/Card"); const createProgressNode = ({ width, color, name, progress }) => { const paddingRight = 95; diff --git a/src/Card.js b/src/common/Card.js similarity index 96% rename from src/Card.js rename to src/common/Card.js index 50475e7..d1ec723 100644 --- a/src/Card.js +++ b/src/common/Card.js @@ -1,5 +1,5 @@ -const { FlexLayout } = require("./utils"); -const { getAnimations } = require("./getStyles"); +const { FlexLayout } = require("../common/utils"); +const { getAnimations } = require("../getStyles"); class Card { constructor({ diff --git a/src/icons.js b/src/common/icons.js similarity index 100% rename from src/icons.js rename to src/common/icons.js diff --git a/src/retryer.js b/src/common/retryer.js similarity index 96% rename from src/retryer.js rename to src/common/retryer.js index 97a607e..7771e22 100644 --- a/src/retryer.js +++ b/src/common/retryer.js @@ -1,4 +1,4 @@ -const { logger } = require("./utils"); +const { logger } = require("../common/utils"); const retryer = async (fetcher, variables, retries = 0) => { if (retries > 7) { diff --git a/src/utils.js b/src/common/utils.js similarity index 99% rename from src/utils.js rename to src/common/utils.js index e0b0218..0c8ccc6 100644 --- a/src/utils.js +++ b/src/common/utils.js @@ -1,6 +1,6 @@ const axios = require("axios"); const wrap = require("word-wrap"); -const themes = require("../themes"); +const themes = require("../../themes"); const renderError = (message, secondaryMessage = "") => { return ` diff --git a/src/fetchRepo.js b/src/fetchers/repo-fetcher.js similarity index 94% rename from src/fetchRepo.js rename to src/fetchers/repo-fetcher.js index 9c74b49..c04a4cc 100644 --- a/src/fetchRepo.js +++ b/src/fetchers/repo-fetcher.js @@ -1,5 +1,5 @@ -const { request } = require("./utils"); -const retryer = require("./retryer"); +const { request } = require("../common/utils"); +const retryer = require("../common/retryer"); const fetcher = (variables, token) => { return request( diff --git a/src/fetchStats.js b/src/fetchers/stats-fetcher.js similarity index 57% rename from src/fetchStats.js rename to src/fetchers/stats-fetcher.js index 66df9d0..b1ef221 100644 --- a/src/fetchStats.js +++ b/src/fetchers/stats-fetcher.js @@ -1,6 +1,9 @@ -const { request, logger } = require("./utils"); -const retryer = require("./retryer"); -const calculateRank = require("./calculateRank"); +const { request, logger } = require("../common/utils"); +const axios = require("axios"); +const retryer = require("../common/retryer"); +const calculateRank = require("../calculateRank"); +const githubUsernameRegex = require("github-username-regex"); + require("dotenv").config(); 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"); const stats = { @@ -61,6 +102,11 @@ async function fetchStats(username, count_private = false) { let res = await retryer(fetcher, { login: username }); + let experimental_totalCommits = 0; + if (include_all_commits) { + experimental_totalCommits = await totalCommitsFetcher(username); + } + if (res.data.errors) { logger.error(res.data.errors); 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.totalIssues = user.issues.totalCount; - stats.totalCommits = contributionCount.totalCommitContributions; + stats.totalCommits = + contributionCount.totalCommitContributions + experimental_totalCommits; + if (count_private) { - stats.totalCommits = - contributionCount.totalCommitContributions + - contributionCount.restrictedContributionsCount; + stats.totalCommits += contributionCount.restrictedContributionsCount; } stats.totalPRs = user.pullRequests.totalCount; diff --git a/src/fetchTopLanguages.js b/src/fetchers/top-languages-fetcher.js similarity index 90% rename from src/fetchTopLanguages.js rename to src/fetchers/top-languages-fetcher.js index 99356bc..f4cf788 100644 --- a/src/fetchTopLanguages.js +++ b/src/fetchers/top-languages-fetcher.js @@ -1,5 +1,5 @@ -const { request, logger } = require("./utils"); -const retryer = require("./retryer"); +const { request, logger } = require("../common/utils"); +const retryer = require("../common/retryer"); require("dotenv").config(); const fetcher = (variables, token) => { @@ -49,14 +49,14 @@ async function fetchTopLanguages(username) { .filter((node) => { 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), []) .sort((a, b) => b.size - a.size) .reduce((acc, prev) => { // get the size of the language (bytes) 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 // add the size to the language size. if (acc[prev.node.name] && prev.node.name === acc[prev.node.name].name) { diff --git a/tests/api.test.js b/tests/api.test.js index 4811128..2d1c532 100644 --- a/tests/api.test.js +++ b/tests/api.test.js @@ -2,8 +2,8 @@ require("@testing-library/jest-dom"); const axios = require("axios"); const MockAdapter = require("axios-mock-adapter"); const api = require("../api/index"); -const renderStatsCard = require("../src/renderStatsCard"); -const { renderError, CONSTANTS } = require("../src/utils"); +const renderStatsCard = require("../src/cards/stats-card"); +const { renderError, CONSTANTS } = require("../src/common/utils"); const calculateRank = require("../src/calculateRank"); const stats = { diff --git a/tests/card.test.js b/tests/card.test.js index 318cf56..15d1d7b 100644 --- a/tests/card.test.js +++ b/tests/card.test.js @@ -1,8 +1,8 @@ require("@testing-library/jest-dom"); const cssToObject = require("css-to-object"); -const Card = require("../src/Card"); -const icons = require("../src/icons"); -const { getCardColors } = require("../src/utils"); +const Card = require("../src/common/Card"); +const icons = require("../src/common/icons"); +const { getCardColors } = require("../src/common/utils"); const { queryByTestId } = require("@testing-library/dom"); describe("Card", () => { diff --git a/tests/fetchRepo.test.js b/tests/fetchRepo.test.js index 6bdfd72..dec4012 100644 --- a/tests/fetchRepo.test.js +++ b/tests/fetchRepo.test.js @@ -1,7 +1,7 @@ require("@testing-library/jest-dom"); const axios = require("axios"); const MockAdapter = require("axios-mock-adapter"); -const fetchRepo = require("../src/fetchRepo"); +const fetchRepo = require("../src/fetchers/repo-fetcher"); const data_repo = { repository: { diff --git a/tests/fetchStats.test.js b/tests/fetchStats.test.js index 34e7781..0714578 100644 --- a/tests/fetchStats.test.js +++ b/tests/fetchStats.test.js @@ -1,7 +1,7 @@ require("@testing-library/jest-dom"); const axios = require("axios"); const MockAdapter = require("axios-mock-adapter"); -const fetchStats = require("../src/fetchStats"); +const fetchStats = require("../src/fetchers/stats-fetcher"); const calculateRank = require("../src/calculateRank"); const data = { @@ -9,7 +9,10 @@ const data = { user: { name: "Anurag Hazra", repositoriesContributedTo: { totalCount: 61 }, - contributionsCollection: { totalCommitContributions: 100, restrictedContributionsCount: 50 }, + contributionsCollection: { + totalCommitContributions: 100, + restrictedContributionsCount: 50, + }, pullRequests: { totalCount: 300 }, issues: { totalCount: 200 }, followers: { totalCount: 100 }, @@ -102,4 +105,32 @@ describe("Test fetchStats", () => { rank, }); }); -}); \ No newline at end of file + + 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, + }); + }); +}); diff --git a/tests/fetchTopLanguages.test.js b/tests/fetchTopLanguages.test.js index 9f90e77..852a0b0 100644 --- a/tests/fetchTopLanguages.test.js +++ b/tests/fetchTopLanguages.test.js @@ -1,7 +1,7 @@ require("@testing-library/jest-dom"); const axios = require("axios"); const MockAdapter = require("axios-mock-adapter"); -const fetchTopLanguages = require("../src/fetchTopLanguages"); +const fetchTopLanguages = require("../src/fetchers/top-languages-fetcher"); const mock = new MockAdapter(axios); diff --git a/tests/pin.test.js b/tests/pin.test.js index 580fcba..a85baf3 100644 --- a/tests/pin.test.js +++ b/tests/pin.test.js @@ -2,8 +2,8 @@ require("@testing-library/jest-dom"); const axios = require("axios"); const MockAdapter = require("axios-mock-adapter"); const pin = require("../api/pin"); -const renderRepoCard = require("../src/renderRepoCard"); -const { renderError } = require("../src/utils"); +const renderRepoCard = require("../src/cards/repo-card"); +const { renderError } = require("../src/common/utils"); const data_repo = { repository: { @@ -17,7 +17,7 @@ const data_repo = { name: "TypeScript", }, forkCount: 100, - isTemplate: false + isTemplate: false, }, }; diff --git a/tests/renderRepoCard.test.js b/tests/renderRepoCard.test.js index 6b741aa..1d0d6cc 100644 --- a/tests/renderRepoCard.test.js +++ b/tests/renderRepoCard.test.js @@ -1,6 +1,6 @@ require("@testing-library/jest-dom"); 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 themes = require("../themes"); diff --git a/tests/renderStatsCard.test.js b/tests/renderStatsCard.test.js index 983a406..ed04dd1 100644 --- a/tests/renderStatsCard.test.js +++ b/tests/renderStatsCard.test.js @@ -1,6 +1,6 @@ require("@testing-library/jest-dom"); const cssToObject = require("css-to-object"); -const renderStatsCard = require("../src/renderStatsCard"); +const renderStatsCard = require("../src/cards/stats-card"); const { getByTestId, @@ -188,7 +188,6 @@ describe("Test renderStatsCard", () => { ); }); - it("should render icons correctly", () => { document.body.innerHTML = renderStatsCard(stats, { show_icons: true, diff --git a/tests/renderTopLanguages.test.js b/tests/renderTopLanguages.test.js index 9996038..b9d4095 100644 --- a/tests/renderTopLanguages.test.js +++ b/tests/renderTopLanguages.test.js @@ -1,12 +1,8 @@ require("@testing-library/jest-dom"); const cssToObject = require("css-to-object"); -const renderTopLanguages = require("../src/renderTopLanguages"); +const renderTopLanguages = require("../src/cards/top-languages-card"); -const { - getByTestId, - queryByTestId, - queryAllByTestId, -} = require("@testing-library/dom"); +const { queryByTestId, queryAllByTestId } = require("@testing-library/dom"); const themes = require("../themes"); describe("Test renderTopLanguages", () => { @@ -72,7 +68,7 @@ describe("Test renderTopLanguages", () => { // multiple languages passed document.body.innerHTML = renderTopLanguages(langs, { - hide: ["HTML","css"], + hide: ["HTML", "css"], }); expect(queryAllByTestId(document.body, "lang-name")[0]).toBeInTheDocument( "javascript" @@ -189,18 +185,35 @@ describe("Test renderTopLanguages", () => { }); }); - it('should render with layout compact', () => { - document.body.innerHTML = renderTopLanguages(langs, {layout: 'compact'}); + it("should render with 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-progress")[0]).toHaveAttribute("width","120.00"); + expect(queryAllByTestId(document.body, "lang-name")[0]).toHaveTextContent( + "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-progress")[1]).toHaveAttribute("width","120.00"); + expect(queryAllByTestId(document.body, "lang-name")[1]).toHaveTextContent( + "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-progress")[2]).toHaveAttribute("width","60.00"); - }) + expect(queryAllByTestId(document.body, "lang-name")[2]).toHaveTextContent( + "css 20.00%" + ); + expect(queryAllByTestId(document.body, "lang-progress")[2]).toHaveAttribute( + "width", + "60.00" + ); + }); }); diff --git a/tests/retryer.test.js b/tests/retryer.test.js index 90efb2e..627dcb2 100644 --- a/tests/retryer.test.js +++ b/tests/retryer.test.js @@ -1,6 +1,6 @@ require("@testing-library/jest-dom"); -const retryer = require("../src/retryer"); -const { logger } = require("../src/utils"); +const retryer = require("../src/common/retryer"); +const { logger } = require("../src/common/utils"); const fetcher = jest.fn((variables, token) => { logger.log(variables, token); diff --git a/tests/top-langs.test.js b/tests/top-langs.test.js index a214eb4..9d06b6f 100644 --- a/tests/top-langs.test.js +++ b/tests/top-langs.test.js @@ -2,8 +2,8 @@ require("@testing-library/jest-dom"); const axios = require("axios"); const MockAdapter = require("axios-mock-adapter"); const topLangs = require("../api/top-langs"); -const renderTopLanguages = require("../src/renderTopLanguages"); -const { renderError } = require("../src/utils"); +const renderTopLanguages = require("../src/cards/top-languages-card"); +const { renderError } = require("../src/common/utils"); const data_langs = { data: { diff --git a/tests/utils.test.js b/tests/utils.test.js index ccd1864..54e1ddd 100644 --- a/tests/utils.test.js +++ b/tests/utils.test.js @@ -6,7 +6,7 @@ const { FlexLayout, getCardColors, wrapTextMultiline, -} = require("../src/utils"); +} = require("../src/common/utils"); const { queryByTestId } = require("@testing-library/dom"); diff --git a/themes/README.md b/themes/README.md index b4b8848..53c8c13 100644 --- a/themes/README.md +++ b/themes/README.md @@ -22,7 +22,8 @@ Use `?theme=THEME_NAME` parameter like so :- | `highcontrast` ![highcontrast][highcontrast] | `dracula` ![dracula][dracula] | `prussian` ![prussian][prussian] | | `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] | -| `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 @@ -36,7 +37,8 @@ Use `?theme=THEME_NAME` parameter like so :- | `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] | | `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 @@ -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 [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 +[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 @@ -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 [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 +[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 diff --git a/themes/index.js b/themes/index.js index 6460dd3..1381d7a 100644 --- a/themes/index.js +++ b/themes/index.js @@ -125,6 +125,24 @@ const themes = { text_color: "ffd95b", 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;