Documentation
¶
Index ¶
- Constants
- Variables
- func About() templ.Component
- func AccountSettings(user *models.User) templ.Component
- func AddCategory(path, inputName string, category models.Category) templ.Component
- func AddFeedSubscription(request *models.AddFeedSubscriptionRequest) templ.Component
- func AddGroupSubscription(request *models.GroupSubscriptionRequest) templ.Component
- func AddSearchSubscription(request *models.SearchSubscriptionRequest) templ.Component
- func AddSearchSubscriptionFilter(filter *models.AddSubscriptionSearchFilterRequest) templ.Component
- func CategoryManagement(path, inputName string, suggested []models.Category, ...) templ.Component
- func CreatePage(template templ.Component, options ...PageOption) templ.Component
- func DeactivateAccountModal() templ.Component
- func DisplaySettings(user *models.User) templ.Component
- func Dock(attributes templ.Attributes) templ.Component
- func Document(data []byte) templ.Component
- func EditEmailSubscription(request *models.EditEmailSubscriptionRequest) templ.Component
- func EditGroupSubscription(request *models.GroupSubscriptionRequest) templ.Component
- func EditSearchSubscription(request *models.SearchSubscriptionRequest) templ.Component
- func EditSubscription(request *models.EditFeedSubscriptionRequest) templ.Component
- func ExportSubscriptions() templ.Component
- func ExternalError(user *models.User, msg *models.UserMessage) templ.Component
- func FilterControls(path string, filters *models.ListFilters) templ.Component
- func GroupSubscriptionAddSubscription(id, name string) templ.Component
- func GroupSubscriptionSuggestions(subscriptions models.Subscriptions) templ.Component
- func HelpPopover(id, anchor string) templ.Component
- func ImportResults(results []*models.AddFeedSubscriptionResult) templ.Component
- func ImportSubscriptions() templ.Component
- func InternalError(user *models.User, msg *models.UserMessage) templ.Component
- func Landing() templ.Component
- func ListArticles(response *models.ListArticlesResponse) templ.Component
- func ListCategoryFilters(filters *models.CategoryFilters) templ.Component
- func ListFavorites(response *models.ListFavoritesResponse) templ.Component
- func ListSubscriptions(response *models.ListSubscriptionsResponse) templ.Component
- func NewProxiedImage(img *types.ImageInfo, props string, options ...ElementOption) templ.Component
- func NewUserHome() templ.Component
- func NotFound() templ.Component
- func Notification(msg *models.UserMessage, timeout time.Duration) templ.Component
- func Post(post *models.MarkdownFile) templ.Component
- func PostsIndex(posts []*models.MarkdownFile) templ.Component
- func RemoveSubscriptionModal(request *models.RemoveSubscriptionRequest) templ.Component
- func ReportObjectIssues(objectType, id string, details *models.ReportObjectIssueRequest) templ.Component
- func ReportPageIssue(details *models.ReportIssueRequest) templ.Component
- func SearchFilters(request *models.SearchRequest, attributes templ.Attributes) templ.Component
- func SearchResults(results *models.SearchResults) templ.Component
- func SearchSubscriptionAddSubscription(id, name string) templ.Component
- func SearchSubscriptionFilterSuggestions(subscriptions models.Subscriptions) templ.Component
- func SearchSubscriptionSuggestions(subscriptions models.Subscriptions) templ.Component
- func SearchSuggestions(suggestions *models.SearchResults) templ.Component
- func ShareArticleModal(request *models.ShareArticleRequest) templ.Component
- func ShowSubscriptionEmail(email string) templ.Component
- func SideBar(attributes templ.Attributes) templ.Component
- func SimilarArticles(articles models.Articles) templ.Component
- func UpdateTitle(title string) templ.Component
- func UpdatesToast() templ.Component
- func UserAccountIssue() templ.Component
- func UserAvatar(user *models.User, attributes templ.Attributes) templ.Component
- func UserChooseSubscriptionPlan(user *models.User, planID string) templ.Component
- func UserHome(data *models.HomeResponse) templ.Component
- func UserSettings() templ.Component
- func Viewer(feed *models.Feed, errMsg *models.UserMessage) templ.Component
- func ViewerError(msg *models.UserMessage) templ.Component
- func ViewerResults(feed *models.Feed) templ.Component
- type Article
- type CategoryBadge
- type Element
- func (e *Element) AddClasses(classes ...string)
- func (e *Element) GetAttributes() templ.Attributes
- func (e *Element) GetClasses() string
- func (e *Element) GetID() string
- func (e *Element) GetTarget() string
- func (e *Element) HasAttribute(key string) bool
- func (e *Element) MergeAttributes(attributes templ.Attributes)
- func (e *Element) SetAttribute(key string, value any)
- func (e *Element) SetID(id string)
- type ElementOption
- type Image
- type Page
- type PageOption
- type ProxiedImage
- type SideBarComponent
- type Subscription
- func (s *Subscription) Card() templ.Component
- func (s *Subscription) EditAttributes() templ.Attributes
- func (s *Subscription) MarkAttributes() templ.Attributes
- func (s *Subscription) ReportIssueAttributes() templ.Attributes
- func (s *Subscription) ViewArticlesAttributes() templ.Attributes
- func (s *Subscription) ViewOriginAttributes() templ.Attributes
Constants ¶
const ( ImgProxyKey contextKey = "imgproxy_key" ImgProxySalt contextKey = "imgproxy_salt" )
const ( // BodyFragment is a fragment key pointing to tbe body section of a page. BodyFragment templFragmentKey = "body" // ContentFragment is a fragment key pointing to the main content of a page. ContentFragment templFragmentKey = "content" // PaginateFragment is a fragment key pointing to the content to render when paginating. PaginateFragment templFragmentKey = "paginate" )
const DefaultNotificationTimeout = 5 * time.Second
const ErrorFragment templFragmentKey = "error"
const PaginateSearchFragment templFragmentKey = "paginateSearch"
Variables ¶
var ( // ContentID points to the element containing the main content of the page. ContentID = models.ElementID("content") // NotificationsID points to an element that can be used for displaying notifications to the user. NotificationsID = models.ElementID("notifications") )
Functions ¶
func AddCategory ¶
AddCategory renders a new category item to the list of categories of a subscription.
func AddFeedSubscription ¶
func AddFeedSubscription(request *models.AddFeedSubscriptionRequest) templ.Component
AddFeedSubscription is a page for adding a new subscription to a feed.
func AddGroupSubscription ¶
func AddGroupSubscription(request *models.GroupSubscriptionRequest) templ.Component
AddGroupSubscription is a page for adding a new group subscription.
func AddSearchSubscription ¶
func AddSearchSubscription(request *models.SearchSubscriptionRequest) templ.Component
AddSearchSubscription is a page for adding a new search subscription.
func AddSearchSubscriptionFilter ¶
func AddSearchSubscriptionFilter(filter *models.AddSubscriptionSearchFilterRequest) templ.Component
func CategoryManagement ¶
func CreatePage ¶ added in v0.36.0
func CreatePage(template templ.Component, options ...PageOption) templ.Component
CreatePage creates a new page with the given body template and additional options.
func DeactivateAccountModal ¶
func Document ¶
Document renders the given raw HTML data as full-page prose content. Used primarily for hosted markdown documents (i.e., privacy policy, terms of service, etc.)
func EditEmailSubscription ¶ added in v0.26.0
func EditEmailSubscription(request *models.EditEmailSubscriptionRequest) templ.Component
func EditGroupSubscription ¶
func EditGroupSubscription(request *models.GroupSubscriptionRequest) templ.Component
EditGroupSubscription is a page for editing a group subscription.
func EditSearchSubscription ¶
func EditSearchSubscription(request *models.SearchSubscriptionRequest) templ.Component
EditSearchSubscription is a page for editing a search subscription.
func EditSubscription ¶
func EditSubscription(request *models.EditFeedSubscriptionRequest) templ.Component
func ExportSubscriptions ¶
ExportSubscriptions renders a form for exporting all subscriptions as an OPML file.
func ExternalError ¶
func FilterControls ¶
func FilterControls(path string, filters *models.ListFilters) templ.Component
func GroupSubscriptionAddSubscription ¶ added in v0.54.0
func GroupSubscriptionSuggestions ¶ added in v0.54.0
func GroupSubscriptionSuggestions(subscriptions models.Subscriptions) templ.Component
func HelpPopover ¶
HelpPopover can be used to render a help icon, that when clicked, will open a popover displaying informational or help text.
func ImportResults ¶
func ImportResults(results []*models.AddFeedSubscriptionResult) templ.Component
ImportResults is a partial template that displays the results of an import.
func ImportSubscriptions ¶
ImportPage is a page for importing subscriptions from an external source (e.g., an OPML file).
func InternalError ¶ added in v0.36.0
func ListArticles ¶
func ListArticles(response *models.ListArticlesResponse) templ.Component
ListArticles renders the list of articles in a grid layout with filtering controls and an actions menu.
func ListCategoryFilters ¶ added in v0.27.0
func ListCategoryFilters(filters *models.CategoryFilters) templ.Component
func ListFavorites ¶ added in v0.39.0
func ListFavorites(response *models.ListFavoritesResponse) templ.Component
ListFavorites renders subscription and article favorites in a grid layout.
func ListSubscriptions ¶
func ListSubscriptions(response *models.ListSubscriptionsResponse) templ.Component
ListSubscriptions renders the list of subscriptions in a grid layout with filtering controls and an actions menu.
func NewProxiedImage ¶
func NewUserHome ¶
NewUserHome is a home page displayed for new users, with some instructions and actions to help them set up the app.
func Notification ¶
Notification renders a notification with the given user message.
func Post ¶ added in v0.49.0
func Post(post *models.MarkdownFile) templ.Component
Post renders a post.
See also: https://developers.google.com/search/docs/appearance/structured-data/article#microdata
func PostsIndex ¶ added in v0.36.0
func PostsIndex(posts []*models.MarkdownFile) templ.Component
func RemoveSubscriptionModal ¶
func RemoveSubscriptionModal(request *models.RemoveSubscriptionRequest) templ.Component
RemoveObjectModal renders a modal that will action an unsubscribe request when the user has confirmed.
func ReportObjectIssues ¶
func ReportObjectIssues(objectType, id string, details *models.ReportObjectIssueRequest) templ.Component
func ReportPageIssue ¶
func ReportPageIssue(details *models.ReportIssueRequest) templ.Component
ReportPageIssue renders a form for reporting issues with the app.
func SearchFilters ¶
func SearchFilters(request *models.SearchRequest, attributes templ.Attributes) templ.Component
func SearchResults ¶
func SearchResults(results *models.SearchResults) templ.Component
SearchResults renders the given articles returned from the given search in a grid layout with an actions menu.
func SearchSubscriptionAddSubscription ¶ added in v0.54.0
func SearchSubscriptionFilterSuggestions ¶
func SearchSubscriptionFilterSuggestions(subscriptions models.Subscriptions) templ.Component
func SearchSubscriptionSuggestions ¶ added in v0.54.0
func SearchSubscriptionSuggestions(subscriptions models.Subscriptions) templ.Component
func SearchSuggestions ¶
func SearchSuggestions(suggestions *models.SearchResults) templ.Component
SearchSuggestions will render suggestions for a given search.
func ShareArticleModal ¶ added in v0.34.1
func ShareArticleModal(request *models.ShareArticleRequest) templ.Component
func ShowSubscriptionEmail ¶ added in v0.26.0
func SimilarArticles ¶
SimilarArticles renders a page of articles that are the result of a search for similar articles to a given input set.
func UpdateTitle ¶ added in v0.36.0
func UpdatesToast ¶
UpdatesToast renders a toast notification to inform the user that updated content is available.
func UserAccountIssue ¶
UserAccountIssuePage renders a full page with a message to the user indicating that their account has an issue that needs support to resolve. Usually, this will be displayed when a subscription plan payment has failed and requires manual intervention.
func UserAvatar ¶
func UserChooseSubscriptionPlan ¶
UserChooseSubscriptionPlanPage renders a full page for the user to choose their subscription plan, with any previously selected option highlighted. This is displayed after a user account has been created (in Auth0) and redirects the user to Stripe for payment.
func UserHome ¶ added in v0.37.0
func UserHome(data *models.HomeResponse) templ.Component
UserHome is the default user home page.
func UserSettings ¶ added in v0.39.0
func ViewerError ¶ added in v0.36.0
func ViewerError(msg *models.UserMessage) templ.Component
Types ¶
type Article ¶ added in v0.27.0
func NewArticleView ¶ added in v0.27.0
NewArticleView wraps an Article object with additional methods for templates involving the article.
func (*Article) Card ¶ added in v0.27.0
Card renders an article as a card, for displaying in a list.
func (*Article) Content ¶ added in v0.27.0
ArticleContent renders the complete content of an article.
func (*Article) ReportIssueAttributes ¶ added in v0.27.0
func (a *Article) ReportIssueAttributes() templ.Attributes
func (*Article) SimilarArticlesAttributes ¶ added in v0.27.0
func (a *Article) SimilarArticlesAttributes() templ.Attributes
type CategoryBadge ¶ added in v0.19.0
CategoryBadge represents a Category as a badge in the UI.
func NewCategoryBadge ¶ added in v0.19.0
func NewCategoryBadge(category models.Category) CategoryBadge
NewCategoryBadge creates a new CategoryBadge from the given Category.
type Element ¶ added in v0.41.0
type Element struct {
ID models.ElementID
Attributes templ.Attributes
Classes []string
// contains filtered or unexported fields
}
Element represents any HTML element that can have attributes and classes.
func NewElement ¶ added in v0.41.0
func NewElement() *Element
func (*Element) AddClasses ¶ added in v0.41.0
func (*Element) GetAttributes ¶ added in v0.41.0
func (e *Element) GetAttributes() templ.Attributes
func (*Element) GetClasses ¶ added in v0.41.0
func (*Element) HasAttribute ¶ added in v0.41.0
func (*Element) MergeAttributes ¶ added in v0.41.0
func (e *Element) MergeAttributes(attributes templ.Attributes)
func (*Element) SetAttribute ¶ added in v0.41.0
type ElementOption ¶ added in v0.41.0
type ElementOption func(*Element)
ElementOption is a functional option applied to an Element.
func WithAttribute ¶
func WithAttribute(key string, value any) ElementOption
WithAttribute option applies the given attribute to the Element.
func WithAttributes ¶
func WithAttributes(attributes templ.Attributes) ElementOption
WithAttributes option applies the set of attributes to the Element. It will merge the set with any existing elements (duplicate existing attributes will be overridden).
func WithClasses ¶
func WithClasses(classes ...string) ElementOption
WithClasses option applies the given classes to the Element.
func WithID ¶
func WithID(id string) ElementOption
type Page ¶
type Page struct {
// Component is the main body content of the page.
Component templ.Component
// Title is a string for the (browser) titlebar.
Title string
// Description adds a meta tag with the given text.
Description string
// OGMetadata contains the Opengraph metadata for the page.
OGMetadata *opengraph.Metadata
}
Page contains data for rendering a full HTML page.
type PageOption ¶ added in v0.21.0
type PageOption func(*Page)
PageOption is a functional option applied to a page.
func WithOGMetadata ¶ added in v0.21.0
func WithOGMetadata(metadata *opengraph.Metadata) PageOption
WithOGMetadata option sets the given metadata as appropriate Opengraph tags in the page header.
func WithPageDescription ¶ added in v0.21.0
func WithPageDescription(desc string) PageOption
WithPageDescription option sets a description meta tag in the page header.
func WithPageTitle ¶ added in v0.21.0
func WithPageTitle(title string) PageOption
WithPageTitle option sets the page title (displayed in the browser titlebar).
type ProxiedImage ¶
type ProxiedImage struct {
*Element
}
type SideBarComponent ¶
type SideBarComponent struct {
// contains filtered or unexported fields
}
type Subscription ¶ added in v0.27.0
type Subscription struct {
*models.Subscription
}
func NewSubscriptionView ¶ added in v0.27.0
func NewSubscriptionView(s *models.Subscription) *Subscription
NewSubscriptionView wraps a Subscription object with additional methods for templates involving the subscription.
func (*Subscription) Card ¶ added in v0.27.0
func (s *Subscription) Card() templ.Component
Card renders a subscription in a card format, suitable for showing together with other subscriptions in a list/grid.
func (*Subscription) EditAttributes ¶ added in v0.27.0
func (s *Subscription) EditAttributes() templ.Attributes
EditAttributes generates a templ.Attributes object containing htmx directives for editing a subscription.
func (*Subscription) MarkAttributes ¶ added in v0.27.0
func (s *Subscription) MarkAttributes() templ.Attributes
MarkAttributes generates a templ.Attributes object containing htmx directives for marking a subscription.
func (*Subscription) ReportIssueAttributes ¶ added in v0.27.0
func (s *Subscription) ReportIssueAttributes() templ.Attributes
ReportIssueAttributes generates a templ.Attributes object containing directives for reporting an issue with the subscription.
func (*Subscription) ViewArticlesAttributes ¶ added in v0.27.0
func (s *Subscription) ViewArticlesAttributes() templ.Attributes
ViewAttributes generates a templ.Attributes object containing htmx directives for viewing a subscription.
func (*Subscription) ViewOriginAttributes ¶ added in v0.27.0
func (s *Subscription) ViewOriginAttributes() templ.Attributes
ViewOriginAttributes generates a templ.Attributes object containing htmx directives for viewing the subscription's origin URL.
Source Files
¶
- about_templ.go
- article_templ.go
- categories_templ.go
- containers_templ.go
- controls_templ.go
- dock_templ.go
- elements_templ.go
- error_templ.go
- favorites_templ.go
- footer_templ.go
- header_templ.go
- home_templ.go
- issues_templ.go
- landing_templ.go
- notifications_templ.go
- partials_templ.go
- posts_templ.go
- pricing_templ.go
- search_templ.go
- settings_templ.go
- sidebar_templ.go
- subscription_templ.go
- templates_templ.go
- user_templ.go
- viewer_templ.go