All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ossilphant_3.0.0.2.source-code.post-html-untemplate.scala Maven / Gradle / Ivy

// DO NOT HAND EDIT -- Autogenerated from 'post.html.untemplate' at 2023-09-25T05:41:50.537130Z
package com.mchange.fossilphant.theme.tower

import java.io.{Writer,StringWriter}
import scala.collection.*

import com.mchange.fossilphant.*



val Untemplate_post_html = new untemplate.Untemplate[Tuple2[LocatedPostWithContext,Option[Function1[String,String]]],Nothing]:
  val UntemplateFunction                    : untemplate.Untemplate[Tuple2[LocatedPostWithContext,Option[Function1[String,String]]],Nothing] = this
  val UntemplateName                        : String = "post_html"
  val UntemplatePackage                     : String = "com.mchange.fossilphant.theme.tower"
  val UntemplateInputName                   : String = "tup"
  val UntemplateInputTypeDeclared           : String = "Tuple2[LocatedPostWithContext,Option[Function1[String,String]]]"
  val UntemplateInputTypeCanonical          : Option[String] = untemplate.Macro.nonEmptyStringOption( untemplate.Macro.recursiveCanonicalName[Tuple2[LocatedPostWithContext,Option[Function1[String,String]]]] )
  val UntemplateInputDefaultArgument        : Option[Tuple2[LocatedPostWithContext,Option[Function1[String,String]]]] = (None : Option[Tuple2[LocatedPostWithContext,Option[Function1[String,String]]]])
  val UntemplateOutputMetadataTypeDeclared  : String = "Nothing"
  val UntemplateOutputMetadataTypeCanonical : Option[String] = untemplate.Macro.nonEmptyStringOption( untemplate.Macro.recursiveCanonicalName[Nothing] )
  val UntemplateHeaderNote                  : String = ""

  val UntemplateAttributes : immutable.Map[String,Any] = immutable.Map.empty


  def apply(tup : Tuple2[LocatedPostWithContext,Option[Function1[String,String]]]) : untemplate.Result[Nothing] =
    val writer             : StringWriter = new StringWriter(18710)
    val attrs              : immutable.Map[String,Any] = UntemplateAttributes
    var mbMetadata         : Option[Nothing] = None
    var outputTransformer  : Function1[untemplate.Result[Nothing],untemplate.Result[Nothing]] = identity

    val lpwc = tup(0)
    val outLinkGen = tup(1)

    val post = lpwc.post
    val context = lpwc.context

    val zdt = post.published.atZone(context.config.timestampTimezone)

    def makePostId(localId : String) = s"post-${localId}"

    val postId = makePostId(post.localId)

    val mbOutLink = outLinkGen.map( _(post.localId) )
    val selfLink = mbOutLink.getOrElse( "#" + postId )

    val newSelfUrl = context.config.newSelfUrl

    def mbSelfUrled( contents : String ) : String =
      newSelfUrl.fold( contents ){ url =>
        s"""${contents}"""
      }
    end mbSelfUrled


      val block0 = new Function0[String]:
        def apply() : String =
          "\n
\n \n
\n
\n
" + ( mbSelfUrled( context.userDisplayName ) ) + "
\n
" + ( mbSelfUrled( "@" + post.user ) ) + "
\n
\n
" + ( post.content ) + "
\n " + ( poll_html( post.pollItems ) ) + "\n" writer.write(block0()) val mbReplyLink = post.inReplyTo match case InReplyTo.NoOne => None case InReplyTo.Self( irtLocalId ) => Some( s"""self""" ) case InReplyTo.Other( url ) => url match case StatusUrlRegex(irtHost, irtUser, irtLocalId) => Some( s"""@${irtUser}""" ) case other => Some( s"""this""" ) mbReplyLink.foreach { link => val block1 = new Function0[String]: def apply() : String = "
in reply to " + ( link ) + "
\n" writer.write(block1()) } post.images.foreach { image => writer.write( image_html( lpwc.siteRootedLocation, image ).text ) } val block2 = new Function0[String]: def apply() : String = "
\n" writer.write(block2()) outputTransformer( untemplate.Result( mbMetadata, writer.toString ) ) end apply end Untemplate_post_html def post_html(tup : Tuple2[LocatedPostWithContext,Option[Function1[String,String]]]) : untemplate.Result[Nothing] = Untemplate_post_html( tup )




© 2015 - 2025 Weber Informatics LLC | Privacy Policy