Skip to content

Draconid/plusone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlusOne Pager

Browser extension that increments the page number in the current tab's URL and navigates to the result — no manual URL editing needed.


What it does

Click the toolbar button (+1) on any paginated URL. The extension finds the most relevant number, adds 1, and navigates the current tab to the new URL. If no suitable number is found the click is a silent no-op.


Number selection priority

  1. Page-like query param — param name matches a pagination keyword (page, paged, pagenum, page_num, page_no, pageno, current_page, pg, p) and value is a pure integer → that param is incremented.

    • ?page=3&sort=asc?page=4
    • ?sort=asc&p=7?p=8
  2. Last numeric query param — last query param whose value is a pure integer → that param is incremented.

    • ?foo=2&bar=5?bar=6
  3. Page-preceded path segment — rightmost pure-numeric path segment whose immediate predecessor matches a page keyword (page, pg, p, pagina, seite) → that segment is incremented.

    • /page/4/detail/page/5/detail
  4. Last pure-numeric path segment — rightmost path segment that is entirely a number → incremented.

    • /articles/42/articles/43
  5. Last numeric substring in a path segment — rightmost segment containing any digits → last numeric run in that segment is incremented.

    • /products/item-007/products/item-008
  6. No match → silent no-op; current URL unchanged.


Installation (Developer / Unpacked)

Note: This is a developer installation (unpacked). The extension is loaded directly from the source folder. No store listing is available yet.

Chrome / Edge (99+)

  1. Open chrome://extensions
  2. Enable Developer mode (toggle, top-right)
  3. Click Load unpacked
  4. Select the plusone folder (the one containing manifest.json)

Firefox (109+)

  1. Open about:debugging
  2. Click This Firefox
  3. Click Load Temporary Add-on…
  4. Navigate to the plusone folder and select manifest.json

Note: Firefox temporary add-ons are a developer installation — they are removed on browser restart. For a persistent install, the extension must be signed and distributed via addons.mozilla.org.

Icon files (optional)

The toolbar button icon is drawn automatically at runtime — no PNG files are required for the extension to work.

If you want icons to appear on the extensions management page or in a store listing:

  1. Open icons/generate-icons.html in any browser.
  2. Click Generate & Download Icons — three PNG files (icon16.png, icon48.png, icon128.png) will download automatically.
  3. Move the downloaded files into the icons/ folder.
  4. Add the "icons" field to manifest.json as shown on the page.
  5. Reload the extension.

Browser compatibility

Browser Minimum version Notes
Chrome 99+ MV3 service worker background
Firefox 109+ MV3 with background.scripts
Edge 99+ Chromium-based; same as Chrome

Permissions

Permission Why it is needed
activeTab Read the URL of the current tab when the toolbar button is clicked
tabs Navigate the current tab to the incremented URL via chrome.tabs.update
storage Persist custom URL rules via chrome.storage.sync

No host permissions, no remote code, no data collection.


Configuration / Options page

Opening the options page

  • Right-click the +1 toolbar icon → Options
  • Or: browser extension management page → DetailsOptions

What it does

The options page lets you define custom URL rules that override the built-in number-detection logic.
Each rule maps a URL pattern to a key name. When the extension fires on a matching URL it uses that key — rather than running the A1→A2→B1→B2→B3 priority chain — to find and increment the number.

Rule table

Column Description
URL Pattern Glob-style pattern matched against the full URL. Use * as a wildcard for any sequence of characters.
Key Name GET query-param name or path segment that immediately precedes a numeric path segment.

Managing rules

  • Add Rule — appends a blank row; fill in both columns.
  • (delete button on each row) — removes that row.
  • Save — persists all rows to chrome.storage.sync; a brief "Saved!" confirmation appears.

Match order

Rules are checked top-to-bottom; the first match wins.
User rules are evaluated before the built-in priority chain, so any matching rule takes full precedence.


Rule examples

URL Pattern Key Name Effect
* abc /abc/4/haha/abc/5/haha; ?abc=3&haha=2?abc=4&haha=2
https://example.com/* page ?page=3?page=4
https://shop.com/items* p ?p=2?p=3

How pattern matching works

  • * matches any characters (zero or more), including /, ?, =, and &.
  • The pattern is tested against the full URL — protocol, domain, path, and query string.
  • A pattern of * matches every URL.
  • A pattern of https://example.com/* matches any URL that starts with https://example.com/.

File listing

plusone/
├── manifest.json              Extension manifest (MV3)
├── background.js              Service worker: icon rendering + URL logic + click handler
├── options.html               Settings/options page UI
├── options.js                 Settings page logic (load/save user rules)
├── icons/
│   └── generate-icons.html   Optional: generates PNG icons via canvas
└── README.md                  This file

About

PlusOne Pager extension

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors