From 2932a6276ede0b010f619f0287746615fc1b90da Mon Sep 17 00:00:00 2001 From: Carter McBride <18412686+carterworks@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:01:36 -0600 Subject: [PATCH] Convert styling to Tailwind (#15) * Initialize tailwind * Convert styling to Tailwind * Add console output for CSS build * Allow reading the feeds from an environment variable * Change link styling and no-script time format * Fix ellipses --- .gitignore | 4 +- bun.lockb | Bin 69828 -> 98588 bytes config/feeds.json | 100 ---------------- config/template.html | 62 +++++----- package.json | 6 +- public/style.css | 80 ------------- public/styles.input.css | 3 + src/index.ts | 19 ++- src/renderer.ts | 5 + src/utilities.ts | 31 ++++- tailwind.config.js | 251 ++++++++++++++++++++++++++++++++++++++++ 11 files changed, 345 insertions(+), 216 deletions(-) delete mode 100644 config/feeds.json delete mode 100644 public/style.css create mode 100644 public/styles.input.css create mode 100644 tailwind.config.js diff --git a/.gitignore b/.gitignore index 7c07201..82c1586 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ node_modules/* public/index.html +public/styles.css dist/* -.DS_Store \ No newline at end of file +.DS_Store +configs/feeds.json diff --git a/bun.lockb b/bun.lockb index 0f32659c2cff4e7fa37473024de5289b79f222d0..52d7c18c453065afa80d0d37187552ae6ac19e57 100755 GIT binary patch delta 26955 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 RBF;(YKBdWYtj{d`e*mt=0onin delta 9519 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 Q>l66g+PW9`gZq~K7s|ectpET3 diff --git a/config/feeds.json b/config/feeds.json deleted file mode 100644 index 506bc29..0000000 --- a/config/feeds.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "Comics": [ - "http://www.catanacomics.com/rss", - "http://feeds.feedburner.com/InvisibleBread", - "https://hejibits.com/rss#_=_", - "http://www.hrwiki.org/wiki/Special:Updates", - "http://rockpapercynic.tumblr.com/rss" - ], - "Podcasts & Videos": [ - "https://lilyandsam.show/feed", - "https://www.youtube.com/feeds/videos.xml?channel_id=UC3g-w83Cb5pEAu5UmRrge-A", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCakAg8hC_RFJm4RI3DlD7SA", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCHZOwvEh9FAG95RO3PWhe5g", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCvVsD2hFZRgKNH7x5Q1wwug", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCDq5v10l4wkV5-ZBIJJFbzQ", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCMkbjxvwur30YrFWw8kpSaw", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCSuT9FSddzI6W5Bij9XwtmA", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCqqJQ_cXSat0KIAVfIfKkVA", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCuvSqzfO_LV_QzHdmEj84SQ", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCSdma21fnJzgmPodhC9SJ3g", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCj1VqrHhDte54oLgPG4xpuQ", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCy0tKL1T7wFoYcxCe0xjN6Q", - "https://www.youtube.com/feeds/videos.xml?channel_id=UCsvn_Po0SmunchJYOWpOxMg" - ], - "Friends and Family": [ - "https://www.goodreads.com/review/list_rss/132710826?shelf=read", - "https://joekhoury.blog/feed/", - "https://mastodon.social/users/samwarnick.rss" - ], - "Games": [ - "https://www.nomanssky.com/news/feed/", - "https://www.lexaloffle.com/bbs/feed.php?uid=1", - "https://www.factorio.com/blog/rss", - "https://kill-the-newsletter.com/feeds/pghhn8aaf264tukg.xml", - "http://www.suppermariobroth.com/rss", - "http://unknownworlds.com/subnautica/feed/", - "https://store.steampowered.com/feeds/news/app/1675200/?cc=US&l=english" - ], - "Finance": [ - "http://feeds.feedburner.com/MrMoneyMustache", - "http://feeds.feedburner.com/DoctorOfCredit", - "https://kill-the-newsletter.com/feeds/tgor1vrwcf3f0uyo.xml", - "https://kill-the-newsletter.com/feeds/5q4gs79dfh32yr3h.xml" - ], - "News": [ - "http://www.economist.com/rss/the_world_this_week_rss.xml", - "https://newsroom.churchofjesuschrist.org/rss", - "http://feeds.feedburner.com/LdsChurchGrowth", - "https://www.sltrib.com/arc/outboundfeeds/news/?outputType=xml", - "https://www.ksl.com/rss/news/news_utah", - "https://www.readtangle.com/posts/rss/" - ], - "Parenting": [ - "https://technosapiens.substack.com/feed", - "https://parentdata.org/feed/" - ], - "Fashion": [ - "http://www.heddels.com/feed/", - "http://putthison.com/rss", - "https://articlesofinterest.substack.com/feed", - "https://dappered.com/feed/", - "https://dieworkwear.com/feed/", - "http://fromsqualortoballer.com/rss", - "https://fabricateurialist.substack.com/feed", - "https://www.menswearmusings.com/feed/", - "https://www.permanentstyle.com/feed" - ], - "Products": [ - "https://jellyfin.org/index.xml", - "https://gitlab.com/CalcProgrammer1/OpenRGB/-/tags?format=atom", - "http://feeds.feedburner.com/psblog", - "https://matrix.org/blog/feed/", - "https://brave.com/feed/", - "https://bitwarden.com/blog/feed.xml" - ], - "Humor": [ - "https://kill-the-newsletter.com/feeds/d90ng280lhh3p2nq.xml", - "https://aiweirdness.com/rss", - "http://mcmansionhell.tumblr.com/rss" - ], - "Other": [ - "https://kill-the-newsletter.com/feeds/400aiwxy5ox6ao0d.xml", - "http://brandonsanderson.com/feed/", - "https://kill-the-newsletter.com/feeds/j3c4wngg2hpjmdt8.xml", - "https://astralcodexten.substack.com/feed/" - ], - "Tech News": [ - "https://samwarnick.com/feed.rss", - "http://feeds.feedburner.com/CssTricks", - "http://chriscoyier.net/feed/", - "https://jenniferdaniel.substack.com/feed/", - "http://www.gamingonlinux.com/article_rss.php", - "http://www.theverge.com/rss/full.xml", - "https://hnrss.org/frontpage?points=70" - ], - "Emulation": [ - "http://melonds.kuribo64.net/rss.php", - "https://dolphin-emu.org/blog/feeds/" - ] -} diff --git a/config/template.html b/config/template.html index 29d6f9e..82ca7f6 100644 --- a/config/template.html +++ b/config/template.html @@ -7,7 +7,7 @@ Carter's RSS Feeds - + - -
+ +

📰 Carter's RSS Feeds

-
+
{% for group, feeds in data %} -
-

{{ group }}

+
+

{{ group }}

{% for feed in feeds %} -
- - {{ feed.title }} - ({{ feed.feed }}) +
+ + {% if feed.hasRecent %} +
✳︎
+ {% endif %} +
+
{{ feed.title }}
+
({{ feed.feed }})
+
-
{% if errors | length > 0 %} -

Errors

+

Errors

There were errors trying to parse these feeds:

    {% for error in errors %} -
  • {{ error }}
  • +
  • {{ error }}
  • {% endfor %}
{% endif %}