diff --git a/pybadges/__init__.py b/pybadges/__init__.py
index 84be744..34a9339 100644
--- a/pybadges/__init__.py
+++ b/pybadges/__init__.py
@@ -134,6 +134,7 @@ def badge(
embed_right_image: bool = False,
embed_center_image: bool = False,
id_suffix: str = '',
+ style: str = 'flat',
) -> str:
"""Creates a github-style badge as an SVG image.
@@ -184,6 +185,7 @@ def badge(
id_suffix: The suffix of the id attributes used in the SVG's elements.
Use to prevent duplicate ids if several badges are embedded on the
same page.
+ style: The style of the badge. Can be "flat" or "flat-square".
"""
if measurer is None:
measurer = (
@@ -239,6 +241,7 @@ def badge(
right_image=right_image,
center_image=center_image,
id_suffix=id_suffix,
+ style=style,
)
xml = minidom.parseString(svg)
_remove_blanks(xml)
diff --git a/pybadges/__main__.py b/pybadges/__main__.py
index f47bfd1..55b50e1 100644
--- a/pybadges/__main__.py
+++ b/pybadges/__main__.py
@@ -151,6 +151,10 @@ def main():
'the badge (this will prevent a URL fetch and may work around the '
'fact that some browsers do not fetch external image references); '
'only works if --logo is a HTTP/HTTPS URI or a file path')
+ parser.add_argument(
+ '--style',
+ default='flat',
+ help='the style of the badge (flat, flat-square)')
parser.add_argument(
'-v',
'--version',
@@ -194,7 +198,8 @@ def main():
center_image=args.center_image,
embed_logo=args.embed_logo,
embed_right_image=args.embed_right_image,
- embed_center_image=args.embed_center_image)
+ embed_center_image=args.embed_center_image,
+ style=args.style)
if args.browser:
_, badge_path = tempfile.mkstemp(suffix='.svg')
diff --git a/pybadges/badge-template-full.svg b/pybadges/badge-template-full.svg
index d449a99..8c4b6f7 100644
--- a/pybadges/badge-template-full.svg
+++ b/pybadges/badge-template-full.svg
@@ -11,7 +11,7 @@
{{ whole_title }}
{% endif %}
-
+
@@ -19,20 +19,25 @@
-
-
-
+
+
{% if left_title %}
{{ left_title }}
{% endif %}
-
+
{% if center_image %}
-
- {% if center_title %}
- {{ center_title }}
- {% endif %}
-
+
+ {% if center_title %}
+ {{ center_title }}
+ {% endif %}
+
{% endif %}
@@ -41,15 +46,22 @@
{% endif %}
-
+ {% if style == "flat" %}
+
+ {% endif %}
-
-
+
{% if logo %}
-
+
{% endif %}
- {{ left_text }}
- {{ left_text }}
+ {% if style == "flat" %}
+ {{ left_text }}
+ {% endif %}
+ {{ left_text }}
{% if center_image %}
{% endif %}
@@ -57,8 +69,10 @@
{% endif %}
{% if right_text %}
+ {% if style == "flat" %}
{{ right_text }}
- {{ right_text }}
+ {% endif %}
+ {{ right_text }}
{% endif %}
{% if left_link or whole_link %}
diff --git a/tests/golden-images/style-flat-square.svg b/tests/golden-images/style-flat-square.svg
new file mode 100644
index 0000000..21be336
--- /dev/null
+++ b/tests/golden-images/style-flat-square.svg
@@ -0,0 +1 @@
+style flat-square
diff --git a/tests/test-badges.json b/tests/test-badges.json
index 3911b39..52c74f6 100644
--- a/tests/test-badges.json
+++ b/tests/test-badges.json
@@ -129,6 +129,12 @@
"left_text": "commits",
"right_text": "250",
"center_image": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHdpZHRoPSIxMDciIGhlaWdodD0iMTMiIHZpZXdCb3g9IjAgLTEyIDEwNyAxMyI+CjxkZWZzPgo8L2RlZnM+CjxwYXRoIGQ9Ik03LjAsLTIuNzQzNTAyMzE1NTM3MTcyNyBMNy45NTg3NjI4ODY1OTc5MzgsLTIuMTIxMjEzMzA0Mzk3MDk2NCBMOC45MTc1MjU3NzMxOTU4NzcsLTIuNDA5ODg0OTkzNTgyNDQgTDkuODc2Mjg4NjU5NzkzODE1LC0yLjc1MTk5MjYyMzQ3NzI4IEwxMC44MzUwNTE1NDYzOTE3NTMsLTIuODY0MjQ4NjIwOTk5NDIzIEwxMS43OTM4MTQ0MzI5ODk2OTEsLTIuNzQ4OTY4NzAyMjc0MDMzNyBMMTIuNzUyNTc3MzE5NTg3NjMsLTIuNTE4NzE4OTQxMDA1NTIxMyBMMTMuNzExMzQwMjA2MTg1NTY4LC0yLjI5ODcyNTU1NTExMjA2OCBMMTQuNjcwMTAzMDkyNzgzNTA2LC0yLjE4MDUyNzQ2ODU1MDQ2OCBMMTUuNjI4ODY1OTc5MzgxNDQzLC0yLjIwNzUwMzg3NDExOTE5IEwxNi41ODc2Mjg4NjU5NzkzODMsLTIuMzc4NTE5NzY1OTYyMzQ1IEwxNy41NDYzOTE3NTI1NzczMiwtMi42NjAyNjY2NjQyMzYwMDU4IEwxOC41MDUxNTQ2MzkxNzUyNiwtMy4wMDIxNjI2NTYzODYzMTcgTDE5LjQ2MzkxNzUyNTc3MzE5OCwtMy4zNTAxMTI0NTk0MTM2NzQ0IEwyMC40MjI2ODA0MTIzNzExMzYsLTMuNjU3MTgyODAwNzQyNjE5NSBMMjEuMzgxNDQzMjk4OTY5MDc0LC0zLjg5MDQ2MzgyMjIwMjAzNTMgTDIyLjM0MDIwNjE4NTU2NzAxMywtNC4wMzQxODM1ODkxMTUzMzggTDIzLjI5ODk2OTA3MjE2NDk0NywtNC4wODk2MjAzNDU5MjQyMzk1IEwyNC4yNTc3MzE5NTg3NjI4ODYsLTQuMDcyNTk4NTc1MTA0NjI2IEwyNS4yMTY0OTQ4NDUzNjA4MjQsLTQuMDA5NDI3NTk5MDgzNTA2IEwyNi4xNzUyNTc3MzE5NTg3NjIsLTMuOTMyMDk5NTc1MjEyMDcxMyBMMjcuMTM0MDIwNjE4NTU2NywtMy44NzM0NTAwMjY4NjU0OTIgTDI4LjA5Mjc4MzUwNTE1NDY0LC0zLjg2MjgzMTU2Njg3NDYxNDcgTDI5LjA1MTU0NjM5MTc1MjU3NywtMy45MjI2ODUwMDk2NDA3MjMzIEwzMC4wMTAzMDkyNzgzNTA1MTUsLTQuMDY2MjI5NTYxMjIyOTQzNSBMMzAuOTY5MDcyMTY0OTQ4NDU0LC00LjI5NjM0NzQ1NzYwMTgwNSBMMzEuOTI3ODM1MDUxNTQ2MzkyLC00LjYwNTYxNTkzNTk2OTI4OCBMMzIuODg2NTk3OTM4MTQ0MzM0LC00Ljk3NzM0NDcwNzEyMTA5OSBMMzMuODQ1MzYwODI0NzQyMjcsLTUuMzg3NDExMjE3OTM4OTA5IEwzNC44MDQxMjM3MTEzNDAyMSwtNS44MDY2NDc5MDAzNjczNzcgTDM1Ljc2Mjg4NjU5NzkzODE1LC02LjIwMzUyMjY2MDQ3MzMzOCBMMzYuNzIxNjQ5NDg0NTM2MDksLTYuNTQ2ODYyMzk4NTU3OTY4IEwzNy42ODA0MTIzNzExMzQwMjUsLTYuODA4Mzk1MTQzOTU5NjY0IEwzOC42MzkxNzUyNTc3MzE5NjQsLTYuOTY0OTI0ODkwNjMxMDQzNSBMMzkuNTk3OTM4MTQ0MzI5ODk1LC03LjAgTDQwLjU1NjcwMTAzMDkyNzgzLC02LjkwNDk4Njg2MjgzMTA4MiBMNDEuNTE1NDYzOTE3NTI1NzcsLTYuNjc5NTExNjAzNDIxNzI5IEw0Mi40NzQyMjY4MDQxMjM3MSwtNi4zMzEyODA3MjI1ODkwNzQgTDQzLjQzMjk4OTY5MDcyMTY1LC01Ljg3NTMzNDExMTQxODg5MSBMNDQuMzkxNzUyNTc3MzE5NTg2LC01LjMzMjgxODgyMTU2MjgzMyBMNDUuMzUwNTE1NDYzOTE3NTI1LC00LjcyOTM5ODAyMDA3NzM5OCBMNDYuMzA5Mjc4MzUwNTE1NDYsLTQuMDkzNDI2MDc0NTI0MzI4IEw0Ny4yNjgwNDEyMzcxMTM0LC0zLjQ1NDAyNzUyMDgwNTEzMiBMNDguMjI2ODA0MTIzNzExMzQsLTIuODM5MjE1MjY5NjczMDE1MyBMNDkuMTg1NTY3MDEwMzA5MjgsLTIuMjc0MTcyNzQ5NDk2MTY0OCBMNTAuMTQ0MzI5ODk2OTA3MjE2LC0xLjc3OTgwNjU5NzM5MTYxMSBMNTEuMTAzMDkyNzgzNTA1MTU0LC0xLjM3MTY1MzI1MjU2OTM1MzQgTDUyLjA2MTg1NTY3MDEwMzA5LC0xLjA1OTE5NTcxNTI0MjQ4OTMgTDUzLjAyMDYxODU1NjcwMTAzLC0wLjg0NTYxNjY5MDIwNjQwOCBMNTMuOTc5MzgxNDQzMjk4OTcsLTAuNzI3OTg1NTk5ODY3MDQxIEw1NC45MzgxNDQzMjk4OTY5MSwtMC42OTc4NDgwMTgzMzAyODk4IEw1NS44OTY5MDcyMTY0OTQ4NDYsLTAuNzQyMTYxMTg5NDAzODMwNiBMNTYuODU1NjcwMTAzMDkyNzg0LC0wLjg0NDQ5ODgwNzM1ODk0MjggTDU3LjgxNDQzMjk4OTY5MDcyLC0wLjk4NjQzMjIzOTgyMjc4MyBMNTguNzczMTk1ODc2Mjg4NjYsLTEuMTQ4OTg2NjQwMTk5MDU0NyBMNTkuNzMxOTU4NzYyODg2NiwtMS4zMTQwNjc1MzU0NDcyNjk1IEw2MC42OTA3MjE2NDk0ODQ1NCwtMS40NjU3NTg4ODYxNzY1NDEgTDYxLjY0OTQ4NDUzNjA4MjQ3NSwtMS41OTE0MDA4NTk3OTI5OTAzIEw2Mi42MDgyNDc0MjI2ODA0MTQsLTEuNjgyMzc2MDYzNTg1NzMgTDYzLjU2NzAxMDMwOTI3ODM1LC0xLjczNDU1MTAyNzE4Nzc4MjYgTDY0LjUyNTc3MzE5NTg3NjMsLTEuNzQ4MzQ0MTgxNDgxNTQzNyBMNjUuNDg0NTM2MDgyNDc0MjIsLTEuNzI4NDIwNTE2ODAxNTQ2MyBMNjYuNDQzMjk4OTY5MDcyMTcsLTEuNjgzMDM4MjEwOTMxODg2MiBMNjcuNDAyMDYxODU1NjcwMSwtMS42MjMwOTg4MDY1NTIyODY3IEw2OC4zNjA4MjQ3NDIyNjgwNSwtMS41NjA5NzU1NDcwODk1OSBMNjkuMzE5NTg3NjI4ODY1OTcsLTEuNTA5MjEzODk4MDQyMzY3NSBMNzAuMjc4MzUwNTE1NDYzOTMsLTEuNDc5MjEwNDI4NzcwNDM2IEw3MS4yMzcxMTM0MDIwNjE4NSwtMS40Nzk5Nzg3NDQ1NDg1MDA5IEw3Mi4xOTU4NzYyODg2NTk3OSwtMS41MTcxMTY3MzA1Nzk4NDMgTDczLjE1NDYzOTE3NTI1NzczLC0xLjU5MjA2NTc0NzQ0NDE1MjQgTDc0LjExMzQwMjA2MTg1NTY3LC0xLjcwMTc0NzIyOTA2NjY1OSBMNzUuMDcyMTY0OTQ4NDUzNiwtMS44Mzg2MjYyNTQ0MjEzMjU3IEw3Ni4wMzA5Mjc4MzUwNTE1NCwtMS45OTEyMTY3NzkyMDMxMjgzIEw3Ni45ODk2OTA3MjE2NDk0OCwtMi4xNDUwMjAxNTI4NTMyNzA2IEw3Ny45NDg0NTM2MDgyNDc0MiwtMi4yODM4MTk2MTk3Mzk0NzY0IEw3OC45MDcyMTY0OTQ4NDUzNiwtMi4zOTEyNTc2OTkyMTQxNTYzIEw3OS44NjU5NzkzODE0NDMzLC0yLjQ1MjUzMzMzOTAzNTE0IEw4MC44MjQ3NDIyNjgwNDEyMywtMi40NTYwNzQ5NTI5NjkyMzQ3IEw4MS43ODM1MDUxNTQ2MzkxNywtMi4zOTUwMTE3ODM3MjcyOTE3IEw4Mi43NDIyNjgwNDEyMzcxMSwtMi4yNjgyNDU1NzUxNzA4MzkgTDgzLjcwMTAzMDkyNzgzNTA1LC0yLjA4MDk3ODY3NTc0MDM4OTQgTDg0LjY1OTc5MzgxNDQzMjk5LC0xLjg0NDU1OTAzODgyMTk0NDIgTDg1LjYxODU1NjcwMTAzMDkzLC0xLjU3NTU3ODYzNDY2ODQ1MyBMODYuNTc3MzE5NTg3NjI4ODYsLTEuMjk0MjM1NDM2MzQ1Njg3IEw4Ny41MzYwODI0NzQyMjY4LC0xLjAyMjA3MjgxNzk0Mjk3ODggTDg4LjQ5NDg0NTM2MDgyNDc0LC0wLjc3OTMxMjg1MzQyMzA1NTUgTDg5LjQ1MzYwODI0NzQyMjY4LC0wLjU4MjA5OTU5NjkzNTA0NzMgTDkwLjQxMjM3MTEzNDAyMDYyLC0wLjQ0MDExNzk2OTM2NjA1MDUgTDkxLjM3MTEzNDAyMDYxODU2LC0wLjM1NTAxMDE5NDAwMTg2MDUgTDkyLjMyOTg5NjkwNzIxNjUsLTAuMzIwMTMwMjc5MjczNjg1OCBMOTMuMjg4NjU5NzkzODE0NDMsLTAuMzIxOTcyNDkwOTA3MTA4OCBMOTQuMjQ3NDIyNjgwNDEyMzcsLTAuMzQzNDAzNTIzNjk3OTg4NCBMOTUuMjA2MTg1NTY3MDEwMzEsLTAuMzY4MzI3MzU4MDE0MDQ1MDQgTDk2LjE2NDk0ODQ1MzYwODI1LC0wLjM4NjY5Mjg5NDY2NjY1ODcgTDk3LjEyMzcxMTM0MDIwNjE5LC0wLjM5NzU5OTkwNjk5MTU4NDkzIEw5OC4wODI0NzQyMjY4MDQxMiwtMC40MDY2MzY5NTEwNTIwMjg3IEw5OS4wNDEyMzcxMTM0MDIwNiwtMC40MTE0MDA3NzYyMjkwODczMyBMMTAwLjAsLTAuMzY2MTM0NjcxODM4MTc0MiIgZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0iIzAwN2VjNiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgo8L3N2Zz4=",
- "center_color": "#252525"
+ "center_color": "#252525"
+ },
+ {
+ "file_name": "style-flat-square.svg",
+ "left_text": "style",
+ "right_text": "flat-square",
+ "style": "flat-square"
}
]