mirror of
https://github.com/anuraghazra/github-readme-stats.git
synced 2024-12-15 06:04:17 +08:00
feat(repocard): parse emojis in description (#67)
* feat: add remove_emojis option Removes emojis in repo card description * feat: parse emojis * feat: rename remove_emojis to show_emojis option for consistency * docs: update docs Co-authored-by: anuraghazra <hazru.anurag@gmail.com>
This commit is contained in:
parent
7973805cf7
commit
3a9ded0a09
@ -53,7 +53,7 @@ module.exports = async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
res.setHeader("Cache-Control", `public, max-age=${cacheSeconds}`);
|
res.setHeader("Cache-Control", `public, max-age=${cacheSeconds}`);
|
||||||
|
|
||||||
res.send(
|
res.send(
|
||||||
renderRepoCard(repoData, {
|
renderRepoCard(repoData, {
|
||||||
title_color,
|
title_color,
|
||||||
|
@ -19,7 +19,8 @@
|
|||||||
"jest": "^26.1.0"
|
"jest": "^26.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dotenv": "^8.2.0"
|
"dotenv": "^8.2.0",
|
||||||
|
"emoji-name-map": "^1.2.8"
|
||||||
},
|
},
|
||||||
"husky": {
|
"husky": {
|
||||||
"hooks": {
|
"hooks": {
|
||||||
|
@ -5,6 +5,7 @@ const {
|
|||||||
FlexLayout,
|
FlexLayout,
|
||||||
} = require("../src/utils");
|
} = require("../src/utils");
|
||||||
const icons = require("./icons");
|
const icons = require("./icons");
|
||||||
|
const toEmoji = require("emoji-name-map");
|
||||||
|
|
||||||
const renderRepoCard = (repo, options = {}) => {
|
const renderRepoCard = (repo, options = {}) => {
|
||||||
const {
|
const {
|
||||||
@ -34,8 +35,14 @@ const renderRepoCard = (repo, options = {}) => {
|
|||||||
const shiftText = langName.length > 15 ? 0 : 30;
|
const shiftText = langName.length > 15 ? 0 : 30;
|
||||||
|
|
||||||
let desc = description || "No description provided";
|
let desc = description || "No description provided";
|
||||||
|
|
||||||
|
// parse emojis to unicode
|
||||||
|
desc = desc.replace(/:\w+:/gm, (emoji) => {
|
||||||
|
return toEmoji.get(emoji) || "";
|
||||||
|
});
|
||||||
|
|
||||||
if (desc.length > 55) {
|
if (desc.length > 55) {
|
||||||
desc = `${description.slice(0, 55)}..`;
|
desc = `${desc.slice(0, 55)}..`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns theme based colors with proper overrides and defaults
|
// returns theme based colors with proper overrides and defaults
|
||||||
|
@ -73,6 +73,18 @@ describe("Test renderRepoCard", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should render emojis", () => {
|
||||||
|
document.body.innerHTML = renderRepoCard({
|
||||||
|
...data_repo.repository,
|
||||||
|
description: "This is a text with a :poop: poo emoji",
|
||||||
|
});
|
||||||
|
|
||||||
|
// poop emoji may not show in all editors but it's there between "a" and "poo"
|
||||||
|
expect(document.getElementsByClassName("description")[0]).toHaveTextContent(
|
||||||
|
"This is a text with a 💩 poo emoji"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("should shift the text position depending on language length", () => {
|
it("should shift the text position depending on language length", () => {
|
||||||
document.body.innerHTML = renderRepoCard({
|
document.body.innerHTML = renderRepoCard({
|
||||||
...data_repo.repository,
|
...data_repo.repository,
|
||||||
|
Loading…
Reference in New Issue
Block a user