diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js
index 4ce6604384d9ce4783c5b2f47a0c11c61a66cf92..b8e17115b4b137152e93d7f561a0218595b82010 100644
--- a/apps/files/js/tagsplugin.js
+++ b/apps/files/js/tagsplugin.js
@@ -17,13 +17,6 @@
 		PROPERTY_FAVORITE: '{' + OC.Files.Client.NS_OWNCLOUD + '}favorite'
 	});
 
-	var TEMPLATE_FAVORITE_MARK =
-		'<div ' +
-		'class="favorite-mark {{#isFavorite}}permanent{{/isFavorite}}">' +
-		'<span class="icon {{iconClass}}" />' +
-		'<span class="hidden-visually">{{altText}}</span>' +
-		'</div>';
-
 	/**
 	 * Returns the icon class for the matching state
 	 *
@@ -41,10 +34,7 @@
 	 * @return {Object} jQuery object
 	 */
 	function renderStar (state) {
-		if (!this._template) {
-			this._template = Handlebars.compile(TEMPLATE_FAVORITE_MARK);
-		}
-		return this._template({
+		return OCA.Files.Templates['favorite_mark']({
 			isFavorite: state,
 			altText: state ? t('files', 'Favorited') : t('files', 'Not favorited'),
 			iconClass: getStarIconClass(state)
diff --git a/apps/files/js/templates.js b/apps/files/js/templates.js
index 4b78ffc8c9830d890e7fe496d6117a383e70487a..4cbd326bac7b4a6531e535561bb9d3fd60e667ef 100644
--- a/apps/files/js/templates.js
+++ b/apps/files/js/templates.js
@@ -23,6 +23,20 @@ templates['detailsview'] = template({"1":function(container,depth0,helpers,parti
     + container.escapeExpression(((helper = (helper = helpers.closeLabel || (depth0 != null ? depth0.closeLabel : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(alias1,{"name":"closeLabel","hash":{},"data":data}) : helper)))
     + "</span></a>\n";
 },"useData":true});
+templates['favorite_mark'] = template({"1":function(container,depth0,helpers,partials,data) {
+    return "permanent";
+},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
+    var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression, buffer = 
+  "<div class=\"favorite-mark ";
+  stack1 = ((helper = (helper = helpers.isFavorite || (depth0 != null ? depth0.isFavorite : depth0)) != null ? helper : alias2),(options={"name":"isFavorite","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));
+  if (!helpers.isFavorite) { stack1 = helpers.blockHelperMissing.call(depth0,stack1,options)}
+  if (stack1 != null) { buffer += stack1; }
+  return buffer + "\">\n	<span class=\"icon "
+    + alias4(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"iconClass","hash":{},"data":data}) : helper)))
+    + "\" />\n	<span class=\"hidden-visually\">"
+    + alias4(((helper = (helper = helpers.altText || (depth0 != null ? depth0.altText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"altText","hash":{},"data":data}) : helper)))
+    + "</span>\n</div>\n";
+},"useData":true});
 templates['filemultiselectmenu'] = template({"1":function(container,depth0,helpers,partials,data) {
     var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
 
diff --git a/apps/files/js/templates/favorite_mark.handlebars b/apps/files/js/templates/favorite_mark.handlebars
new file mode 100644
index 0000000000000000000000000000000000000000..7e0cb4385a85de7dad218d791153872a4b73d44d
--- /dev/null
+++ b/apps/files/js/templates/favorite_mark.handlebars
@@ -0,0 +1,4 @@
+<div class="favorite-mark {{#isFavorite}}permanent{{/isFavorite}}">
+	<span class="icon {{iconClass}}" />
+	<span class="hidden-visually">{{altText}}</span>
+</div>