Greasy Fork

Greasy Fork is available in English.

Miniflux add more previous and next links

Adds another Next button to Miniflux UI that doesn't jump all over the place

当前为 2023-06-09 提交的版本,查看 最新版本

// ==UserScript==
// @name         Miniflux add more previous and next links
// @namespace    https://reader.miniflux.app/
// @version      5
// @description  Adds another Next button to Miniflux UI that doesn't jump all over the place
// @author       Tehhund
// @match        *://*.miniflux.app/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=miniflux.app
// @run-at       document-start
// ==/UserScript==

const addLinks = () => {
  // Add Previous and Next above header
  /*const pagination = document.getElementsByClassName('pagination')[0];
  document.getElementsByClassName('entry')[0].innerHTML = pagination.outerHTML + document.getElementsByClassName('entry')[0].innerHTML;*/

  // Add Previous and Next fixed to bottom sides of page
  /*let bottomPagination = document.createElement('div');
  bottomPagination.innerHTML = pagination.outerHTML;
  bottomPagination.innerHTML = bottomPagination.firstChild.innerHTML;
  bottomPagination.className += 'pagination';
  bottomPagination.style.position = 'fixed';
  bottomPagination.style.bottom = '0%';
  bottomPagination.style.left = '.5%';
  bottomPagination.style.width = '99%';
  document.body.appendChild(bottomPagination);*/

  // Check if Previous and Next are at the top of the main entry, and if not add them there. Unsure why Miniflux sometimes hides them.
  /*const entryHeader = document.getElementsByClassName('entry-header')[0];
  if (entryHeader.nextElementSibling.className !== 'pagination-entry-top') {
    entryHeader.after(pagination);
  }*/

  // Add Links fixed to page sides.
  const nextLink = document.querySelector('[rel="next"]');
  if (nextLink) {
    const newNextLinkTop = nextLink.cloneNode(true);
    const newNextLinkBottom = nextLink.cloneNode(true);
    newNextLinkTop.style = 'position: fixed;top: 5rem;right: 0;border: 1px solid #000000;font-size: 1rem;';
    newNextLinkBottom.style = 'position: fixed;bottom: 5rem;right: 0;border: 1px solid #000000;font-size: 1rem;';
    document.body.appendChild(newNextLinkTop);
    document.body.appendChild(newNextLinkBottom);
  }

  const prevLink = document.querySelector('[rel="prev"]');
  if (prevLink) {
    const newPrevLinkTop = prevLink.cloneNode(true);
    const newPrevLinkBottom = prevLink.cloneNode(true);
    newPrevLinkTop.style = 'position: fixed;top: 5rem;left: 0;border: 1px solid #000000;font-size: 1rem;';
    newPrevLinkBottom.style = 'position: fixed;bottom: 5rem;left: 0;border: 1px solid #000000;font-size: 1rem;';
    document.body.appendChild(newPrevLinkTop);
    document.body.appendChild(newPrevLinkBottom);
  }
};
window.addEventListener("DOMContentLoaded", (event) => {
  addLinks();
});