User:V111P/js/WebRef

From Wikipedia, the free encyclopedia
< User:V111P‎ | js
Jump to navigation Jump to search
A text box with the Cite Web template is displayed on top of the page after activating the bookmarklet.

WebRef is a script automating the filling of the {{cite web}} template. You run the script on the page you want to cite. A form will be displayed on top of that page with a text box containing the prefilled cite template.

Not all the information can be autofilled on all sites, however it's easy to just drag or copy and paste the information from the page when the form with the cite template in on the same page.

For some sites for the script to be able to fill all the information (including the name of the author and the date of the article) you have to configure the script to let it know where to find that information - to do that, press the Site setup button and follow the instructions.

The script can be used as a bookmarklet with the following address:

javascript:(function(){var d=document,s=d.createElement('script');s.src='//en.wikipedia.org/w/index.php?title=User:V111P/js/webRef.js&action=raw&ctype=text/javascript&smaxage=43200&maxage=86400';d.body.appendChild(s);})();

To test the script, you can just execute its source code (or the code above, after removing the javascript: part) in your browser's JavaScript console. Make sure you are on a page with (only one) article on it, for example on a news site.


You can edit this page. If I don't like or understand something you wrote, I will correct it. ;)

How to create the bookmarklet[edit]

It depends on your browser.

  • In Firefox click on any bookmark in the bookmark menu. (It will be more convenient if you turn on the Bookmarks toolbar from View/Toolbars/Bookmarks toolbar and create the bookmarklet there.) Select New Bookmark, enter a name (for example WebRef) in the Name field, enter the script given above in the address field (Location).
  • In Internet Explorer you can create a bookmark of any page in the usual manner (Add to favorites), then right-click it in the favorites menu, choose Properties, enter the JavaScript given above in the URL field, change the name (in the General section) to WebRef.
  • In Google Chrome and Opera (Windows and Linux) - press Ctrl+D and then the button Edit (for Chrome) or Properties (for Opera), and change the name and address as for the other browsers.
  • In Google Chrome (Mac) – press Cmd-D then the button More, and change the name and address as for the other browsers.

Quotation[edit]

If you select text on the page prior to activating the WebRef bookmarklet, the selected text will be used for the quote parameter in the Cite Web template. In Firefox you can select multiple text ranges (by holding the Ctrl key); they will be joined by [...] by the script.

Saving the settings for sites[edit]

For the script to be able to fill all the information (including the name of the author and the date of the article) on most sites you need to press the Site setup button and follow the instructions in order to help the script determine where to find this information. (Please, let me know if you don't understand the instructions.)

After you configure the script for the site you are using it on, you have the option to save the settings in the local storage (this doesn't work with old browsers as they don't have local storage). Unfortunately that is not the best place to store the settings because they can be deleted from there by a script from the site or when you delete your browsing history/cookies/etc. from the browser's settings. Also, you won't be able to use them with another browser and from other computers.

A better way is to save them to a subpage of your Wikipedia user page (use a page name with .js at the end for security reasons), make that page call WebRef, and then use your page's URL in your bookmarklet code. Here is an example of how your page should look like: webRefSiteDataExample.js.

It would be best if all wikipedians were able to share their site settings, but that's not likely to be possible any time soon. A special wiki or other kind of site can be created for that purpose, but it has to be able to handle vandalism too.

Extra words or characters in the values[edit]

If extra words or characters appear in the values of the parameters when using the script on some site, you can remove them every time by hand. Or you can make the script remove them automatically by changing the code for the site by hand (the code given on the page Site Setup). Here is an example: On BBC articles the author is given on a line below the title and the name is preceded by the word By. To remove this By, modify the value for the author parameter in the code for the BBC site, which is normally span.byline-name by adding ^^By at the end: span.byline-name^^By (actually just y instead of By will work too - everything before the first occurrence of the word after the first ^^ is automatically removed). If there are characters you want to remove from the end too (here as an example - an exclamation point), add another ^^ and the characters: span.byline-name^^By^^!. If you want to remove characters only from the end, use ^^^^ (i.e. leave empty the slot for the characters to omit from the beginning). No need to include spaces at the start or end of the words after ^^.

The caveat is that these words, after ^^, can be regular expressions. What that means is to use the characters \ . ? * + | ^ $ ( ) [ ] { } you need to prepend them with \. Otherwise they have special meanings. A period for examples means "any one character". An example: we want to remove everything after the first period: span.byline-name^^^^\. - here we use \ to escape the special-character meaning of the period.

Not escaping spaces in URLs properly?[edit]

I've noticed that spaces in URL's often don't get escaped properly. For example:

<ref name="book_TheB">{{Cite web
| title = The Bronx, in Bits and Pieces
| author = 
| work = Google Books
| date = 
| accessdate = 2018-02-03
| url = https://books.google.com/books?id=WeVTP3GyFH0C&pg=PA175&lpg=PA175&dq=faile+mansion&source=bl&ots=Gi_ATxuIsJ&sig=nMvLUfi4Y0Ckl8G377s-9IspZqA&hl=en&sa=X&ved=2ahUKEwiC78nhzofZAhWKxFkKHW3nCBgQ6AEwDnoECAsQAQ#v=onepage&q=faile mansion&f=false
| language =  
| quote = 
}}</ref>

The url field has q=faile mansion. The embedded space should be escaped to a + (or maybe some %hex code).

Other than that, this is a truly awesome tool. Thanks for making it available! -- RoySmith (talk) 15:54, 3 February 2018 (UTC)

See also[edit]