diff --git a/edge-apps/rss-reader/index.html b/edge-apps/rss-reader/index.html index 3d0f8c5e..f25556fc 100644 --- a/edge-apps/rss-reader/index.html +++ b/edge-apps/rss-reader/index.html @@ -10,17 +10,25 @@ +
+
+
+ +

RSS Feed

+
+
-
-

RSS Reader

+
diff --git a/edge-apps/rss-reader/static/images/playground-logo.svg b/edge-apps/rss-reader/static/images/playground-logo.svg new file mode 100644 index 00000000..33c2b888 --- /dev/null +++ b/edge-apps/rss-reader/static/images/playground-logo.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/edge-apps/rss-reader/static/js/main.js b/edge-apps/rss-reader/static/js/main.js index 06b9533b..b7930d23 100644 --- a/edge-apps/rss-reader/static/js/main.js +++ b/edge-apps/rss-reader/static/js/main.js @@ -1,11 +1,22 @@ +// @TODO: Process feed content to handle images and text accordingly. +// Add conditional statements to handle different types of content. +const processFeedContent = ({ content, contentSnippet }) => { + const parser = new DOMParser() + const doc = parser.parseFromString(content, 'text/html') + + return contentSnippet +} + const initApp = () => { - const feedsContainer = document.querySelector('#feeds-container') + const feedsContainer = document + .querySelector('#feeds-container') + .querySelector('.row') const { rss_url, rss_title, limit } = screenly.settings const parser = new RSSParser() const titleHeader = document.querySelector('#rss-title') - document.title = rss_title titleHeader.innerHTML = rss_title + document.title = rss_title parser.parseURL(rss_url, (err, feed) => { if (err) { @@ -18,17 +29,16 @@ const initApp = () => { const title = entry.title const date = moment(new Date(entry.pubDate)) .format('MMMM DD, YYYY, h:mm A') - // @TODO: Handle content dynamically. Some have images, some have just text, - // some have both. - const description = entry.content const feedTemplate = document.querySelector('#feed-template') const feedContainer = feedTemplate.content.cloneNode(true) feedContainer.querySelector('.feed-title').innerHTML = title feedContainer.querySelector('.feed-date').innerHTML = date - feedDescription = feedContainer.querySelector('.feed-description') - feedDescription.innerHTML = description + feedDescription = feedContainer + .querySelector('.feed-description') + .querySelector('p') + feedDescription.innerHTML = processFeedContent(entry) feedsContainer.appendChild(feedContainer) }) diff --git a/edge-apps/rss-reader/static/styles/main.css b/edge-apps/rss-reader/static/styles/main.css index 9c352d28..2c075991 100644 --- a/edge-apps/rss-reader/static/styles/main.css +++ b/edge-apps/rss-reader/static/styles/main.css @@ -13,36 +13,64 @@ a { color: #FFFFFF; } -p { - font-size: 1rem; +header { + border-bottom: 5px solid #FFFFFF; + flex: 0 1 auto; + padding: 1rem; } -#feeds-container { - height: 100vh; +@media (min-width: 1280px) { + h1 { + font-size: 2.5rem; + } + + h2 { + font-size: 2rem; + } + + p { + font-size: 1.10rem; + } } -/* Media query for laptops and smaller screens */ -@media (max-width: 1200px) { - h1, h2, h3, h4, h5, h6 { - font-size: 1.6rem; - } +@media (min-width: 1920px) { + h1 { + font-size: 3rem; + } + + h2 { + font-size: 2.5rem; + } + + p { + font-size: 1.25rem; + } +} + +@media (min-width: 3840px) { + h1 { + font-size: 4rem; + } + + h2 { + font-size: 3.5rem; + } - p { - font-size: 0.9rem; - } + p { + font-size: 2rem; + } } -/* Media query for 4K TVs and larger screens */ -@media (min-width: 2000px) { - h1, h2, h3, h4, h5, h6 { - font-size: 6rem; - } +@media (min-width: 4096px) { + h1 { + font-size: 4.5rem; + } - p { - font-size: 3rem; - } + h2 { + font-size: 4rem; + } - .feed-description { - margin-top: 5rem !important; - } + p { + font-size: 2.25rem; + } }