sharefeed-chrome/README.md

39 lines
No EOL
2.6 KiB
Markdown

# Sharefeed Entry Tool
A silly little Chrome extension I created to more easily create Sharefeed entries while I am on the web.
When you click the moffsoft icon, a popup will show up with all of the possible fields, with some or even most of them auto-populated with
data from the page. Clicking "generate" will generate the JSON code in a field you can easily copy and paste from.
This is just a tool I made for myself, but if you want to use it for your own implementation of the Sharefeed... I mean....... I guess?
## Supported Sites
You can technically use this extension on *any* site, as it will always automatically fill in the URL and date accessed fields for you.
However, I've built in additional autofill support for certain websites. When you visit one of these sites, a badge will appear on the
moffsoft icon to indicate that additional autofill is available.
- Forgejo instances (except codeberg for now ;3;): Title and author fields are autofilled from metadata. Currently, only `git.eleboog.com`
triggers the supported site badge, but other Forgejo instances should work too.
- GitHub: Title and author fields are autofilled from scraping the page.
- Medium: Title, author, and date published fields are autofilled from the handy [`NewsArticle` JSON-LD schema](https://schema.org/NewsArticle)
included on every page.
- Substack: Title, author, and date published fields are autofilled form the handy [`NewsArticle` JSON-LD schema](https://schema.org/NewsArticle)
included on every page. The supported site badge may not show for custom domains (i.e. not a `*.substack.com` url), but autofill
should still work.
- Youtube: Title, author, and date published fields are autofilled from either the `watch7-content` metadata or the [`VideoObject` JSON-LD schema](https://schema.org/VideoObject).
## Wait, what is this even for?
I have a page on my site called the [sharefeed](https://eleboog.com/sharefeed) where I share links to things I think are interesting.
To make the implementation of this slightly easier on myself, I've stored all the links in a JSON file where each entry is a single object
in the following format:
```typescript
url: string // The URL of the linked page.
title: string // The title of the entry. Usually analogous to the title of the linked page or article.
author: string? // The author of the linked page.
publishedDate: Date? // The date in which the linked page was **originally published**.
accessedDate: Date // The date in which the linked page was **accessed by me** (i.e. the date of this entry itself).
note: string // A message to be attached to this link, usually detailing why I decided to share it.
```