Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> renderer.getArticle  [in template "20099#20135#41048" at line 4, column 44]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign article = renderer.getArticle()  [in template "20099#20135#41048" at line 4, column 25]
----
1<#if entries?has_content> 
2    <#list entries as curEntry> 
3        <#assign renderer=curEntry.getAssetRenderer()> 
4			<#assign article = renderer.getArticle() > 
5				<!-- ${article.getArticleId()}--> 
6				    <@liferay_ui["asset-display"] assetEntry=curEntry assetRenderer=renderer showExtraInfo=false />  
7					 
8			<div class="d-flex justify-content-end mr-5">  
9				<button aria-hidden="true" id="backToTop" data-attribute="back-to-top" class="btn btn-top"> <i class="fas fa-angle-up"></i>  
10				</button>  
11			</div>  
12	</#list>  
13<#if entries?size gt 0> 
14 
15 <#if !themeDisplay.getURLCurrent()?contains("docs-and-tools") > <div class="about-button pt-5 pb-5"> <#assign url = themeDisplay.getURLCurrent() /> <#assign split = themeDisplay.getURLCurrent()?split("/") /> <#if split?last == "about-the-project"> <#assign index = themeDisplay.getURLCurrent()?last_index_of("/") /> <#assign url = themeDisplay.getURLCurrent()?substring(0, index) /> </#if> <a target="_self" href="/docs-and-tools" class="btn btn-page-section"> <div>SEE ALL DOCS & TOOLS</div> </a> </div> </#if> </#if> <#else> <p class="no-content-available pl-5">No Docs available</p> </#if> <style type="text/css"> .no-content-available{ color:#003399; } </style> <script> 
16    $(document).ready(function() { 
17 
18    window.onscroll = function() {scrollFunction()}; 
19     
20    function scrollFunction() { 
21        if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { 
22            if(document.getElementById("backToTop") != null){ 
23                document.getElementById("backToTop").style.display = "block"; 
24
25        }  
26        else  
27
28            if(document.getElementById("backToTop") != null){ 
29                document.getElementById("backToTop").style.display = "none"; 
30
31
32
33     
34    $("#backToTop").click(function() { 
35        topFunction(); 
36    }); 
37     
38    function topFunction() { 
39        //document.body.scrollTop = 0; 
40        //document.documentElement.scrollTop = 0; 
41        $( document.body ).animate({ 
42              scrollTop: 0 
43            }); 
44        $( document.documentElement ).animate({ 
45              scrollTop: 0 
46            }); 
47    }     
48}); 
49 
50</script>