NextPage options

# NextPage Chrome Extension

## Custom paging rules

You need to know:

- JavaScript regular expressions (RegExp) syntax
- XPath syntax

You must use xPath to write element finding rules for `pageElement` and `nextLink`. Here is a good cheatsheet I use: https://devhints.io/xpath

You must use RegExp to write URL matching rules. https://devhints.io/regexp

You can write custom rules in the box below. Remember to press the save button.

### Example rule

    url ^https:\/\/www\.linuxquestions\.org\/questions\/
    pageElement //div[@id="posts"]//div[@class="page"]
    nextLink //a[@rel="next"]
    === *** ===

## Blacklist

In case you want to disable pagination on some pages place their corresponding RegExp in the box below.

### Blacklist example

    ^https?:\/\/www\.google\.com\/

## Tutorial for www.linuxquestions.org forum

Let's say that we want to pagerize threads under this URL Linux Mint 18.3 fails to install on HP laptop

There are 3 steps

#### Step 1 - find out `url` JavaScript regular expresion (RegExp)

URL we are after is `https://www.linuxquestions.org/questions/linux-softwa...`.

All the forum threads happen to be nested under `https://www.linuxquestions.org/questions/...`.

So the best RegExp for the URL above is `^https:\/\/www\.linuxquestions\.org\/questions\/`.

Meaning: match all URL which start with `https://www.linuxquestions.org/questions/`.

#### Step 2 - find out `nextPage` XPath

Use Chrome DevTools to inspect a webpage button that leads to next page.

Now, using your intelligence, try to guess the most precise selector you can write to find the next page button.

My guess would be to use `a rel="next"`. It seems to be a good target. It is not unique on the webpage but we don't have to worry since all it's copies move user to the next page.

XPath for it is: `//a[@rel="next"]`. Meaning: find all `a` tags, no matter where they are in the DOM, with attribute `rel` equal to `next`.

LPT: You can press `⌘+F` to test your XPath live

#### Step 3 - find out `pageElement` XPath

It is important to note that `pageElement` is a single post. NextPage will fetch next page and look for all such single posts on the next page. After that NextPage will append the found posts to the end of current series of posts.

You should use the same logic for finding XPath for a single post as in Step 2

I found a good XPath to be `//div[@id="posts"]//div[@class="page"]`

#### Finished

Append all the 3 things it in the box and add an empty line or a separator of your choice.

    url ^https:\/\/www\.linuxquestions\.org\/questions\/
    pageElement //div[@id="posts"]//div[@class="page"]
    nextLink //a[@rel="next"]
    === *** ===