davideisinger.com

My personal website
Log | Files | Refs | README

commit f469f3dbdab3c7d19aad38f6c1f747f5fd3ca382
parent b2fba968be557cc4b1ce593a9b97527e63187a7d
Author: David Eisinger <[email protected]>
Date:   Thu,  6 Nov 2025 11:21:16 -0500

Refactor links script

Diffstat:
Mbin/links | 54++++++++++++++++++++++++------------------------------
1 file changed, 24 insertions(+), 30 deletions(-)

diff --git a/bin/links b/bin/links @@ -5,46 +5,40 @@ require "open-uri" FEED_URL = "https://bookmarks.davideisinger.com/u:dce.json" -index = (ARGV.pop || 1).to_i +# Mutable state +index = (ARGV.pop || 1).to_i content = [] -links = [] -refs = [] +links = [] +refs = [] -item_content = ->(item) do - title = "[#{item["title"]}][#{index}]" +# Helpers +archive_url = ->(url) { `bin/archive "#{url}"`.sub("references:\n", "") } + +link_def = ->(i, url) { "[#{i}]: #{url}" } + +item_content = ->(item, i) do + title = "[#{item["title"]}][#{i}]" + title += " ([via][#{i + 1}])" if item["referrer"] + + desc = (item["description"] || "").to_s.tr("\n", " ").squeeze(" ") - if item["referrer"] - title += " ([via][#{index + 1}])" - end - <<~OUT * #{title} - > #{item["description"].tr("\n", " ").squeeze(" ")} + > #{desc} OUT end -item_link = ->(item) do - "[#{index}]: #{item["url"]}" +add_url = ->(url) do + links << link_def[index, url] + refs << archive_url[url] + index += 1 end add_item = ->(item) do - ref = `bin/archive "#{item["url"]}"`.gsub("references:\n", "") - - content << item_content[item] - links << item_link[item] - refs << ref - - index += 1 - - if item["referrer"] - ref = `bin/archive "#{item["referrer"]}"`.gsub("references:\n", "") - - links << "[#{index}]: #{item["referrer"]}" - refs << ref - - index += 1 - end + content << item_content[item, index] + add_url[item["url"]] + add_url[item["referrer"]] if item["referrer"] end result = -> do @@ -61,8 +55,8 @@ end process_item = ->(item) do puts <<~OUT - #{item_content[item]} - #{item_link[item]} + #{item_content[item, index]} + #{link_def[index, item["url"]]} OUT