article/app/views/fragments/articleBody.scala.html (71 lines of code) (raw):

@import model.ArticlePage @(model: ArticlePage)(implicit request: RequestHeader, context: _root_.model.ApplicationContext) @import views.html.fragments.langAttributes @import common.LinkTo @import views.BodyProcessor @import views.support.Commercial.{isPaidContent, articleAsideOptionalSizes, shouldShowAds} @import views.support.RenderClasses @import views.support.TrailCssClasses.toneClass @schemaType(page: ArticlePage) = @{page.article.metadata.schemaType} @bodyType(page: ArticlePage) = @{ if (page.article.tags.isReview) "reviewBody" else "articleBody" } @defining(model.article) { article => @defining(isPaidContent(model)) { isPaidContent => <div class="l-side-margins"> <article id="article" data-test-id="article-root" class="@RenderClasses(Map( "has-feature-showcase-element" -> (article.tags.isFeature && article.elements.hasShowcaseMainElement), "paid-content" -> isPaidContent ), "content", "content--article", "tonal", s"tonal--${toneClass(article)}", s"content--pillar-${article.metadata.pillar.nameOrDefault}", s"section-${article.trail.sectionName.trim.toLowerCase.replaceAll("""[\s-]+""", "-")}" )" itemscope itemtype="@schemaType(model)" role="main"> <meta itemprop="mainEntityOfPage" content="@LinkTo(article.metadata.url)"> <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"> <meta itemprop="name" content="The Guardian"> @fragments.logo() </div> @if(isPaidContent) { @fragments.guBand() } @fragments.mainMedia(article) @fragments.headTonal(article, model, isPaidContent) <div class="content__main tonal__main tonal__main--@toneClass(article)"> <div class="gs-container"> <div class="content__main-column content__main-column--article js-content-main-column @if(article.tags.isSudoku) {sudoku}"> <div class="js-score"></div> <div class="js-sport-tabs football-tabs content__mobile-full-width"></div> @fragments.contentMeta(article, model) @if(article.tags.isNews && !article.elements.hasMainEmbed && (article.elements.elements("main") && article.elements.elements("main").isEmpty)) { <hr class="content__hr hide-until-leftcol" /> } <div class="content__article-body from-content-api js-article__body" itemprop="@bodyType(model)" data-test-id="article-review-body" @langAttributes(article.content)> @BodyProcessor(article) </div> @fragments.submeta(article) <div class="after-article js-after-article"></div> </div> <div class="content__secondary-column js-secondary-column" aria-hidden="true"> @fragments.articleAsideSlot( shouldShowAds(model), articleAsideOptionalSizes(article.elements.hasShowcaseMainElement), isSticky = !article.elements.hasShowcaseMainElement ) @if(!isPaidContent){ <div class="js-components-container"></div> } </div> </div> </div> </article> @fragments.contentFooter(article, model.related, isPaidContent = isPaidContent) </div> } }