In my previous post, I documented a two-part system for automating quote post creation: a Node.js script and a Feedly-specific bookmarklet. Since then, I’ve extended the tooling to be more general-purpose and robust.
The Problem with Feedly-Only Extraction
The original bookmarklet relied on Feedly’s specific DOM structure, which meant it only worked when reading articles within Feedly’s interface. This was limiting—I wanted to capture quotes from:
- Articles linked in tweets
- Blog posts I encounter through search
- News sites I visit directly
- Any webpage with proper meta tags
The Solution: Universal Meta Tag Extraction
Instead of parsing Feedly’s DOM, I refactored the bookmarklet to extract metadata using standard HTML meta tags that most modern websites include:
1 | <meta property="og:author" content="Author Name"> |
What Gets Extracted Now
The bookmarklet automatically captures:
Author - With fallback chain:
article:authormeta tagog:author(Open Graph)- Site name from
og:site_nameorapplication-name - Falls back to “Unknown” if not found
Title - Tries multiple sources:
- Open Graph
og:title - Twitter Card
twitter:title - HTML
<title>tag as last resort
- Open Graph
Publication Date - Extracts and validates ISO format (YYYY-MM-DD):
article:published_timedatePublishedmeta tag- Custom
publish_datemeta tag
Tags - Extracts all
article:tagmeta tags:- Can capture multiple tags from a single page
- Pre-fills the Tags field in the form
- Fully editable before generating the command
Highlighted Text - Uses
window.getSelection()to capture:- Text you highlight/select BEFORE clicking the bookmark
- Preserves your selection exactly as you made it
Auto-Fetch Metadata from URL
Both the bookmarklet and create-quote-post.js now also intelligently fetch missing metadata:
1 | # If author is missing or "Unknown", the script fetches it from the URL |
The script will:
- Fetch the article’s HTML
- Extract author, title, date, and tags from meta tags
- Log what it found:
✓ Found author: Ben Thompson - Use the extracted values for post generation
The general bookmarklet works on any website with proper meta tags, pawing the path for future automations.
The updated resources are available at: