Skip to content

✨ Hacker News, but refined — Interface tweaks and features to make the HN experience better

License

Notifications You must be signed in to change notification settings

plibither8/refined-hacker-news

Repository files navigation

Refined Hacker News

Licence Chrome Web Store Mozilla Add-on Made with love in India

✨ Browser extension that adds useful features and tweaks a few stuff on Hacker News to make the experience better... without changing the look and feel.

The minimalist design of Hacker News is best at offering news the way we like it. Yet there are a few small interface tweaks and additional features that can drastically improve our experience while browsing through items and comments which this extension implements.

Hopefully, in due course, a few of these tweaks can be implemented by Hacker News themselves. You can help too by emailing [email protected]!

Inspired by Sindre Sorhus's extension Refined GitHub.

Contents

Install

Highlights

Reply to comments without leaving page Navigate through items and comments using your keyboard
Easily favorite items and comments Hide and sort stories, and auto-refresh the page from the options bar
Show user or item information when hovering over the links Highlight new, unread comments on subsequent visits

Added features

UI tweaks

  • change-dead-comments-color If "showdead" is enabled in user settings, color of dead comments changes to light-red (#d89899) instead of the barely visible light-grey (#dddddd).
  • comments-ui-tweaks Tweaks include:
    • Add border to indentation to make to show indent separation between comments.
    • Custom indent-width (default is 40px), which can be set using the extension popup.
    • Highlight item's original poster, displayed as [op] next to username.
    • Make <pre></pre> tags more visible.
  • highlight-unread-comments Highlight new and unread comments after your second and subsequent visits to the comments page of an item. Data resets after three days.
  • backticks-to-monospace Convert backticks-wrapped (`like this`) inline text to monospace (like this).
  • linkify-user-about Linkify all links and emails IDs that are on the "about" of the user's profile.

More actions

More info at a glance

Miscellaneous

  • input-field-tweaks Tweaks include:
    • Show how many characters are left in the 'title' field when submitting an item.
    • Increase width of 'title' field dynamically.
    • Increase height of any textareas (even those that are dynamically created), dynamically.
  • on-link-focus-comment Navigate to that specific comment when clicking the 'on: ' link.

Keyboard bindings

On items and comments

On items/stories:

Key-binding Action
J Next item (down)
K Previous item (up)
Enter
Ctrl/Cmd+Enter
Open link and focus tab
Open link in the background
Esc Un-highlight item
U Upvote item
F Favorite item
C
Ctrl/Cmd+C
Open item's comments on same tab
Open item's comments on new tab
Shift+X Flag/unflag item
Shift+H Hide item

On comments:

Key-binding Action
J
Shift+J
Next comment (down)
Next direct sibling comment
K
Shift+K
Previous comment (down)
Previous direct sibling comment
Enter Toggle comment
Esc Un-highlight comment
U Upvote/unvote comment
D Downvote/undown comment
R Reply to comment
F Favorite comment
Shift+X Flag/unflag comment
0 to 9 Open numbered/index reference link in the comment
Eg: [1] https://mihir.ch ...

On input fields

Key-binding Action
Ctrl/Cmd+Enter Submit form
Ctrl/Cmd+I Italicise selected portion (wrap selected text in asterisks)

Site-wide navigation

Key-binding Action
Alt+H Home
Alt+S Submit
Alt+N New
Alt+O Show HN
Alt+A Ask HN
Alt+P Profile
Alt+T Threads

Abandoned features

  • blur-story-scores
  • custom-font-face
  • hide-bad-words
  • load-more-stories
  • scale-font-size
  • show-karma-left

Customization and Options

Extension options can be found in the extension's popup. There, you can

  • specify which features you want to disable by entering features' IDs (listed above), preferably listed on new lines
  • specify custom CSS, which is useful to override CSS implemented by this extension, or any other UI tweaks you prefer.

Contribute

Issues and feature requests can be created on the issues page.

For development contribution, please refer to the contribution guide.

Donate

Refined Hacker News was made by me during my study-breaks and free time. If you like and have enjoyed it, please consider donating a small amount (any amount will be really appreciated!) to support and sustain its development. Thank you!

Patreon

Donate

Buy Me A Coffee

Extension Permissions

No data is ever uploaded to a remote server, or is sent anywhere else. All data that is used by this extension is stored locally.

storage Required to save extension options in sync storage area so that your options are synced across devices. Also used to save other data such as list of read comments (highlight-unread-comments) locally.

history Required for hide-read-stories feature. The feature needs to check whether the story has been visited by you in the past, that is, whether that story is in your history.

tabs Required to open a link in a new tab, but in the background. Also required to send and receive data between the extension popup, background scripts and the active Hacker News tabs.

*://news.ycombinator.com/* Required to fetch subpages, submit forms, inline replies, etc.

*://hacker-news.firebaseio.com/v0/* Hacker News API - required to fetch item and user details.

*://title.mihir.ch/* Required by the fetch-submission-title-from-url feature to fetch the title. Source: plibither8/url-title-api.

*://wayback.now.sh/ Required by archive-submission to view archived version of webpage or save the webpage to the Wayback Machine. Source: plibither8/wayback.

*://hn.algolia.com/* Required by show-simillar-submission and list-hn-polls-separately features to get filtered search results.

License

MIT