**Story 1: Admin can prevent a user or IP from editing one specific page**
- On Special:Block, add a checkbox for "Block this user from the whole site". It should be checked by default. When a block is saved with this checked, the block should behave exactly as it does today.
- If the "whole site" checkbox is unchecked, the admin should be able to type up to N pages the user should be blocked from editing.
-- Page blocks can only be set for existing pages.
--- Validation should occur in the input field or via error message when the "block this user" button is pushed — whichever is simpler
-- Pages can be from any namespace, the user must type in the namespace and colon (e.g. Template:Foobar)
-- If a page is moved, the user should still be blocked from editing (e.g. block by page ID, not page name)
- Help tooltips should display for the new fields
- Only one block per user (like it is today) — to update the block, admins will need to modify the block.
- If a granular block is set, the checkbox for "Prevent this user from editing his own talk page while blocked" should be marked as disabled (or disappear, whichever is simpler)
**Story 2: The block is logged and visible on wiki**
- Block logs
- - Should display everywhere the current block displays: user page, Special:Contributions, Special:Block, and Special:Log
- - Log should include `TIMESTAMP Admin-who-blocked (t|c|b) blocked BadApples (t|c) from editing the page(s) Foobar with an expiration time of N (reason) (unblock | change block)`
**Story 3: When the user attempts to edit the page, they should be notified.**
- When a user attempts to edit an applicable page, they should see a new type of block warning message which include information on their block
-- blocking admin
-- Modeled off of MediaWiki:Blockedtext, information that they are only blocked from that page, but can edit the rest of the wiki. (copy tbd)
- Should appear:
-- For all supported editors on desktop web
-- For all supported editors on mobile web
-- API edits should also return an appropriate error message