component Quote(quote *arn.Quote, user *arn.User)
	.quote.mountable
		QuoteContent(quote, user)
		QuoteFooter(quote)

component QuotePreview(quote *arn.Quote, user *arn.User)
	.quote.mountable
		QuoteContentPreview(quote, user)
		QuoteFooter(quote)

component QuoteContent(quote *arn.Quote, user *arn.User)
	.quote-content
		a.quotation(href=quote.Link())
			QuoteText(quote)
		
		QuoteCharacter(quote, user)

component QuoteContentPreview(quote *arn.Quote, user *arn.User)
	.quote-content
		a.quotation(href=quote.Link())
			QuoteTextPreview(quote)
		
		QuoteCharacter(quote, user)

component QuoteText(quote *arn.Quote)
	blockquote!= utils.RenderQuoteText(quote.Text.English)

component QuoteCharacter(quote *arn.Quote, user *arn.User)
	if quote.CharacterID != "" && quote.Character() != nil
		footer.quote-character
			CharacterSmall(quote.Character(), user)

component QuoteTextPreview(quote *arn.Quote)
	blockquote!= utils.RenderQuoteText(utils.CutLongDescription(quote.Text.English))

component QuoteFooter(quote *arn.Quote)
	.quote-footer
		span  posted 
		span.utc-date.no-tip(data-date=quote.Created)
		span  by 
		a(href=quote.Creator().Link())= quote.Creator().Nick