diff --git a/material/partials/source.html b/material/partials/source.html
index c0cf1b8e7..ff4a54888 100644
--- a/material/partials/source.html
+++ b/material/partials/source.html
@@ -1,13 +1,14 @@
-{% if "github." in repo_url %}
- {% set platform = "md-source--github" %}
-{% elif "gitlab." in repo_url %}
- {% set platform = "md-source--gitlab" %}
-{% elif "bitbucket." in repo_url %}
- {% set platform = "md-source--bitbucket" %}
+{% set platform = config.extra.repo_icon or repo_url %}
+{% if "github" in platform %}
+ {% set repo_icon = "md-source--github" %}
+{% elif "gitlab" in platform %}
+ {% set repo_icon = "md-source--gitlab" %}
+{% elif "bitbucket" in platform %}
+ {% set repo_icon = "md-source--bitbucket" %}
{% else %}
- {% set platform = "" %}
+ {% set repo_icon = "" %}
{% endif %}
-
+
{{ repo_name }}
diff --git a/src/partials/source.html b/src/partials/source.html
index df66663a9..b787245cb 100644
--- a/src/partials/source.html
+++ b/src/partials/source.html
@@ -24,19 +24,20 @@
Check whether the repository is hosted on one of the supported code hosting
platforms (Github, Gitlab or Bitbucket) to show icon.
-->
-{% if "github." in repo_url %}
- {% set platform = "md-source--github" %}
-{% elif "gitlab." in repo_url %}
- {% set platform = "md-source--gitlab" %}
-{% elif "bitbucket." in repo_url %}
- {% set platform = "md-source--bitbucket" %}
+{% set platform = config.extra.repo_icon or repo_url %}
+{% if "github" in platform %}
+ {% set repo_icon = "md-source--github" %}
+{% elif "gitlab" in platform %}
+ {% set repo_icon = "md-source--gitlab" %}
+{% elif "bitbucket" in platform %}
+ {% set repo_icon = "md-source--bitbucket" %}
{% else %}
- {% set platform = "" %}
+ {% set repo_icon = "" %}
{% endif %}
+ class="md-source {{ repo_icon }}">