Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,8 @@ Example:
| preserve-order | bool | no | false |
| single-line-titles | boolean | no | false |
| collapse-after | integer | no | 5 |
| hide-channel-name | boolean | no | false |
| hide-link-host | boolean | no | false |

##### `limit`
The maximum number of articles to show.
Expand Down Expand Up @@ -794,6 +796,12 @@ Used to modify the height of cards when using the `horizontal-cards-2` style. Th
##### `feeds`
An array of RSS/atom feeds. The title can optionally be changed.

##### `hide-channel-name`
Used to hide the channel name from the feed. The default value is `false`.

##### `hide-link-host`
Used to hide the hostname of the link from the feed. The default value is `false`.

###### Properties for each feed
| Name | Type | Required | Default | Notes |
| ---- | ---- | -------- | ------- | ----- |
Expand Down
5 changes: 5 additions & 0 deletions internal/glance/templates/rss-detailed-list.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,14 @@
<a class="size-h3 color-primary-if-not-visited" href="{{ .Link }}" target="_blank" rel="noreferrer">{{ .Title }}</a>
<ul class="list-horizontal-text flex-nowrap">
<li {{ dynamicRelativeTimeAttrs .PublishedAt }}></li>
{{ if not .HideLinkHost }}
<li class="min-width-0">{{ .LinkHost }}</li>
{{ end }}
{{ if not .HideChannelName }}
<li class="min-width-0">
<a class="block text-truncate" href="{{ .ChannelURL }}" target="_blank" rel="noreferrer">{{ .ChannelName }}</a>
</li>
{{ end }}
</ul>
{{ if ne "" .Description }}
<p class="rss-detailed-description text-truncate-2-lines margin-top-10">{{ .Description }}</p>
Expand Down
5 changes: 5 additions & 0 deletions internal/glance/templates/rss-horizontal-cards-2.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@
<a href="{{ .Link }}" class="block text-truncate color-primary-if-not-visited" target="_blank" rel="noreferrer">{{ .Title }}</a>
<ul class="list-horizontal-text flex-nowrap margin-top-5">
<li class="shrink-0" {{ dynamicRelativeTimeAttrs .PublishedAt }}></li>
{{ if not .HideLinkHost }}
<li class="min-width-0 text-truncate">{{ .LinkHost }}</li>
{{ end }}
{{ if not .HideChannelName }}
<li class="min-width-0 text-truncate">{{ .ChannelName }}</li>
{{ end }}
</ul>
</div>
</div>
Expand Down
6 changes: 6 additions & 0 deletions internal/glance/templates/rss-horizontal-cards.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,13 @@
<a href="{{ .Link }}" class="text-truncate-3-lines color-primary-if-not-visited margin-top-10 margin-bottom-auto" target="_blank" rel="noreferrer">{{ .Title }}</a>
<ul class="list-horizontal-text flex-nowrap margin-top-7">
<li class="shrink-0" {{ dynamicRelativeTimeAttrs .PublishedAt }}></li>
{{ if not .HideLinkHost }}
<li class="min-width-0 text-truncate">{{ .LinkHost }}</li>
{{ end }}
{{ if not .HideChannelName }}
<li class="min-width-0 text-truncate">{{ .ChannelName }}</li>
{{ end }}

</ul>
</div>
</div>
Expand Down
5 changes: 5 additions & 0 deletions internal/glance/templates/rss-list.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,14 @@
<a class="title size-title-dynamic color-primary-if-not-visited" href="{{ .Link }}" target="_blank" rel="noreferrer">{{ .Title }}</a>
<ul class="list-horizontal-text flex-nowrap">
<li {{ dynamicRelativeTimeAttrs .PublishedAt }}></li>
{{ if not .HideLinkHost }}
<li class="min-width-0">{{ .LinkHost }}</li>
{{ end }}
{{ if not .HideChannelName }}
<li class="min-width-0">
<a class="block text-truncate" href="{{ .ChannelURL }}" target="_blank" rel="noreferrer">{{ .ChannelName }}</a>
</li>
{{ end }}
</ul>
</li>
{{ else }}
Expand Down
29 changes: 21 additions & 8 deletions internal/glance/widget-rss.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ type rssWidget struct {
CollapseAfter int `yaml:"collapse-after"`
SingleLineTitles bool `yaml:"single-line-titles"`
PreserveOrder bool `yaml:"preserve-order"`
HideChannelName bool `yaml:"hide-channel-name"`
HideLinkHost bool `yaml:"hide-link-host"`

Items rssFeedItemList `yaml:"-"`
NoItemsMessage string `yaml:"-"`
Expand Down Expand Up @@ -118,21 +120,25 @@ type cachedRSSFeed struct {
}

type rssFeedItem struct {
ChannelName string
ChannelURL string
Title string
Link string
ImageURL string
Categories []string
Description string
PublishedAt time.Time
ChannelName string
HideChannelName bool
HideLinkHost bool
ChannelURL string
Title string
Link string
LinkHost string
ImageURL string
Categories []string
Description string
PublishedAt time.Time
}

type rssFeedRequest struct {
URL string `yaml:"url"`
Title string `yaml:"title"`
HideCategories bool `yaml:"hide-categories"`
HideDescription bool `yaml:"hide-description"`
HideChannel bool `yaml:"hide-channel"`
Limit int `yaml:"limit"`
ItemLinkPrefix string `yaml:"item-link-prefix"`
Headers map[string]string `yaml:"headers"`
Expand Down Expand Up @@ -248,12 +254,19 @@ func (widget *rssWidget) fetchItemsFromFeedTask(request rssFeedRequest) ([]rssFe

rssItem := rssFeedItem{
ChannelURL: feed.Link,
HideChannelName: widget.HideChannelName,
HideLinkHost: widget.HideLinkHost,
}


if request.ItemLinkPrefix != "" {
rssItem.Link = request.ItemLinkPrefix + item.Link
} else if strings.HasPrefix(item.Link, "http://") || strings.HasPrefix(item.Link, "https://") {
rssItem.Link = item.Link
if parsedURL, err := url.Parse(item.Link); err == nil {
rssItem.LinkHost = strings.TrimPrefix(parsedURL.Host, "www.")
}

} else {
parsedUrl, err := url.Parse(feed.Link)
if err != nil {
Expand Down