-
-
Save christianp/781fd39754ade9429e7a to your computer and use it in GitHub Desktop.
Everyone's a mathematician. Go to chrome://extensions and drag this file onto the page.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
javascript:(function(){function textNodesUnder(el){ var n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false); while(true) { n=walk.nextNode(); if(n) { a.push(n); } else { break; } } return a; } var nodes=textNodesUnder(document.body); var lowercase = "a-záàăắằẵẳa̧á̧à̧â̧ǎ̧âấầẫẩa̭ǎa̐a̓a̋åǻå̂ää́ä̀ä̂ä̌ǟãã́ã̀a̰ȧȧ́ǡąą́ą̀ą̂ą̌ą̄ą̄́ą̄̀ą̄̂ą̄̌ā̊ą̊ą̃ą̈ą̈̀ą̈̂ą̈̌āā́ā̀ā̂ā̌ā̆a̱á̱à̱â̱ä̱ā̱å̱ảȁȃạạ́ạ̀ặậạ̄ạ̈ạ̃ḁⱥa̍ɑ́ɑ̀ɑ̂ɑ̌b́b̓ḃḅḇƀb̃ɓƃb̤ćc̀ĉc̆čč̓c̓c̈ċc̣çḉç̆ç̌ç̇c̄c̃ȼꞓƈꜿd́ďḑd̂ḓd̓d̦ḋḍḓḏd̤đɖɗƌéèĕěêếềễểëë́ë̀ë̂ë̌e̋ȅẽẽ́ẽ̀ẽ̂ẽ̌ẽ̍ėė́ė̃ȩȩ́ḝȩ̀ȩ̌ȩ̂ęę́ę̀ę̂ę̌ę̄ę̄́ę̄̀ę̄̂ę̄̌ę̃ę̈ę̈̀ę̈̂ę̈̌ę̇́ę̋ę̇ę̣ēḗē̆ḕē̂ē̌ẻȅȇe̍ȩḝẹệẹ́ẹ̀ẹ̄ḙe̱é̱è̱ê̱ē̱ë̱ḛe̊ɇf́f̀ḟf̄f̧ƒf̣ꝼ́ꝼ̇ꝼ̣ǵg̀ğĝǧġg̣ģḡg̈g̤g̃ꞡǥɠɣ̓h́ĥȟḧh̤h̄ḣh̐h̓ḣḩḥḫẖħɦⱨꜧíìĭîî́ǐïḯĩĩ́ĩ̀ĩ̂ĩ̌ĩ̍iıįį́į̀į̂į̌į̃īī́ī̀ī̂ī̌ỉȉȋi̋ȉi̍i̐i̓i̧í̧ì̧î̧i̱í̱ì̱î̱ī̱ịị́ị̂ị̃ḭɨɨ́ɨ̀ɨ̂ɨ̌ɨ̃ɨ̄ɨ̧ɨ̧̀ɨ̧̂ɨ̧̌ɩ́ɩ̀ɩ̃j́ĵǰj̄j̃j̣ɉḱk̀ǩk̄k̇ķḳḵƙⱪꝁꝃꝅꞣĺl̂l̐l̃l̓ľļl̦ḷḹḷ́ḷ̓ḽḻłꝉƚⱡɫḿm̀ṁṃm̍m̄m̐m̃m̈m̓m̧m̨ṃṃ́ṃ̓m̦ɱńǹn̂ňññ̈ṅn̍n̄n̐n̈ꞥņṋn̦ṇṇ́ṇ̓ṉn̰n̲ɲƞꞑóòŏôốồỗổǒo̐öö́ö̀ȫőõṍṏȭȯȱøǿø̀ø̂ø̌ø̄ɵꝋǫǭǭ̀ǫ́ǫ̀ǫ̂ǫ̌ōṓṑō̂ō̌ỏőȍȏơớờỡởo̍ọọ́ọ̀ộọ̄ợộo̭o̧ó̧ò̧ô̧ǒ̧o̱ó̱ò̱ô̱ō̱ö̱o̲ꝍꝋɔ́ɔ̀ɔ̂ɔ̌ɔ̄ɔ̃ɔ̃́ɔ̃̀ɔ̃̂ɔ̃̌ɔ̃̍ɔ̈ɔ̍ɔ̧ɔ̧́ɔ̧̀ɔ̧̂ɔ̧̌ɔ̱ṕp̀ṗp̣p̄p̓p̈p̤p̄ᵽꝑƥꝓꝕq̓q̇ꝗꝙɋŕřr̂r̓r̦ṙŗr̄ꞧȑȓṛṝr̰ṟr̥r̥̄r̃ɍɽśṥŝšṧṡşꞩṣṩșᵴȿťẗṫţṭțṱṯŧⱦƭʈúùŭûǔůüǘǜǚǖűũṹųūṻủȕȗưứừữửựụṳṷṵʉṽṿꝟʋẃẁŵẘẅẇẉⱳẍẋýỳŷẙÿỹẏȳỷỵɏƴỿźẑžżẓẕƶȥɀⱬǯꝥꝧꜯ"; var uppercase = "A-ZÁÀĂẮẰẴẲA̧Á̧À̧Â̧Ǎ̧ÂẤẦẪẨA̭ǍA̐A̓A̋ÅǺÅ̂ÄÄ́Ä̀Ä̂Ä̌ǞÃÃ́Ã̀A̰ȦȦ́ǠĄĄ́Ą̀Ą̂Ą̌Ą̄Ą̄́Ą̄̀Ą̄̂Ą̄̌Ā̊Ą̊Ą̃Ą̈Ą̈̀Ą̈̂Ą̈̌ĀĀ́Ā̀Ā̂Ā̌Ā̆A̱Á̱À̱Â̱Ä̱Ā̱Å̱ẢȀȂẠẠ́Ạ̀ẶẬẠ̄Ạ̈Ạ̃ḀȺA̍Ɑ́Ɑ̀Ɑ̂Ɑ̌B́B̓ḂḄḆɃB̃ƁƂB̤ĆC̀ĈC̆ČČ̓C̓C̈ĊC̣ÇḈÇ̆Ç̌Ç̇C̄C̃ȻꞒƇꜾD́ĎḐD̂ḒD̓D̦ḊḌḒḎD̤ĐƉƊƋÉÈĔĚÊẾỀỄỂËË́Ë̀Ë̂Ë̌E̋ȄẼẼ́Ẽ̀Ẽ̂Ẽ̌Ẽ̍ĖĖ́Ė̃ȨȨ́ḜȨ̀Ȩ̌Ȩ̂ĘĘ́Ę̀Ę̂Ę̌Ę̄Ę̄́Ę̄̀Ę̄̂Ę̄̌Ę̃Ę̈Ę̈̀Ę̈̂Ę̈̌Ę̇́Ę̋Ę̇Ę̣ĒḖĒ̆ḔĒ̂Ē̌ẺȄȆE̍ȨḜẸỆẸ́Ẹ̀Ẹ̄ḘE̱É̱È̱Ê̱Ē̱Ë̱ḚE̊ɆF́F̀ḞF̄F̧ƑF̣Ꝼ́Ꝼ̇Ꝼ̣ǴG̀ĞĜǦĠG̣ĢḠG̈G̤G̃ꞠǤƓƔ̓H́ĤȞḦH̤H̄ḢH̐H̓ḢḨḤḪH̱ĦꞪⱧꜦÍÌĬÎÎ́ǏÏḮĨĨ́Ĩ̀Ĩ̂Ĩ̌Ĩ̍İIĮĮ́Į̀Į̂Į̌Į̃ĪĪ́Ī̀Ī̂Ī̌ỈȈȊI̋ȈI̍I̐I̓I̧Í̧Ì̧Î̧I̱Í̱Ì̱Î̱Ī̱ỊỊ́Ị̂Ị̃ḬƗƗ́Ɨ̀Ɨ̂Ɨ̌Ɨ̃Ɨ̄Ɨ̧Ɨ̧̀Ɨ̧̂Ɨ̧̌Ɩ́Ɩ̀Ɩ̃J́ĴJ̌J̄J̃J̣ɈḰK̀ǨK̄K̇ĶḲḴƘⱩꝀꝂꝄꞢĹL̂L̐L̃L̓ĽĻL̦ḶḸḶ́Ḷ̓ḼḺŁꝈȽⱠⱢḾM̀ṀṂM̍M̄M̐M̃M̈M̓M̧M̨ṂṂ́Ṃ̓M̦ⱮŃǸN̂ŇÑÑ̈ṄN̍N̄N̐N̈ꞤŅṊN̦ṆṆ́Ṇ̓ṈN̰N̲ƝȠꞐÓÒŎÔỐỒỖỔǑO̐ÖÖ́Ö̀ȪŐÕṌṎȬȮȰØǾØ̀Ø̂Ø̌Ø̄ƟꝊǪǬǬ̀Ǫ́Ǫ̀Ǫ̂Ǫ̌ŌṒṐŌ̂Ō̌ỎŐȌȎƠỚỜỠỞO̍ỌỌ́Ọ̀ỘỌ̄ỢỘO̭O̧Ó̧Ò̧Ô̧Ǒ̧O̱Ó̱Ò̱Ô̱Ō̱Ö̱O̲ꝌꝊƆ́Ɔ̀Ɔ̂Ɔ̌Ɔ̄Ɔ̃Ɔ̃́Ɔ̃̀Ɔ̃̂Ɔ̃̌Ɔ̃̍Ɔ̈Ɔ̍Ɔ̧Ɔ̧́Ɔ̧̀Ɔ̧̂Ɔ̧̌Ɔ̱ṔP̀ṖP̣P̄P̓P̈P̤P̄ⱣꝐƤꝒꝔQ̓Q̇ꝖꝘɊŔŘR̂R̓R̦ṘŖR̄ꞦȐȒṚṜR̰ṞR̥R̥̄R̃ɌⱤŚṤŜŠṦṠŞꞨṢṨȘẞⱾŤT̈ṪŢṬȚṰṮŦȾƬƮÚÙŬÛǓŮÜǗǛǙǕŰŨṸŲŪṺỦȔȖƯỨỪỮỬỰỤṲṶṴɄṼṾꝞƲẂẀŴW̊ẄẆẈⱲẌẊÝỲŶY̊ŸỸẎȲỶỴɎƳỾŹẐŽŻẒẔƵȤⱿⱫǮꝤꝦꜮ"; var one_name = '['+uppercase+']['+lowercase+']+\\.?'; var re_name = new RegExp('((?:(?:'+one_name+'(?:-'+one_name+')*|(?:['+uppercase+']\\.)+)(?: (?:(?:['+uppercase+']\\.)+|'+one_name+'(?:-'+one_name+')*))* (?:(?:of|de|du|von|van|ibn) |(?:ibn )?al-|el-|d\')?'+one_name+'(?:-'+one_name+')*)|Euclid|Archimedes|Pythagoras|Brahmagupta|Eudoxus|Fibonacci|Aryabhata|Apollonius|Diophantus|Bháscara|Hipparchus|Archytus|Panini|Aristotle|Pappus|Hippocrates|Thales)','g'); Array.prototype.map.call(nodes,function(n){ n.textContent = n.textContent.replace(re_name,'Mathematician $1');}); })() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Everyone is a mathematician | |
// @description Everyone's a mathematician, so give them their due | |
// @match http*://*/* | |
// @grant none | |
// ==/UserScript== | |
function textNodesUnder(el){ | |
var n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false); | |
while(true) { | |
n=walk.nextNode(); | |
if(n) { | |
a.push(n); | |
} else { | |
break; | |
} | |
} | |
return a; | |
} | |
var nodes=textNodesUnder(document.body); | |
var lowercase = "a-záàăắằẵẳa̧á̧à̧â̧ǎ̧âấầẫẩa̭ǎa̐a̓a̋åǻå̂ää́ä̀ä̂ä̌ǟãã́ã̀a̰ȧȧ́ǡąą́ą̀ą̂ą̌ą̄ą̄́ą̄̀ą̄̂ą̄̌ā̊ą̊ą̃ą̈ą̈̀ą̈̂ą̈̌āā́ā̀ā̂ā̌ā̆a̱á̱à̱â̱ä̱ā̱å̱ảȁȃạạ́ạ̀ặậạ̄ạ̈ạ̃ḁⱥa̍ɑ́ɑ̀ɑ̂ɑ̌b́b̓ḃḅḇƀb̃ɓƃb̤ćc̀ĉc̆čč̓c̓c̈ċc̣çḉç̆ç̌ç̇c̄c̃ȼꞓƈꜿd́ďḑd̂ḓd̓d̦ḋḍḓḏd̤đɖɗƌéèĕěêếềễểëë́ë̀ë̂ë̌e̋ȅẽẽ́ẽ̀ẽ̂ẽ̌ẽ̍ėė́ė̃ȩȩ́ḝȩ̀ȩ̌ȩ̂ęę́ę̀ę̂ę̌ę̄ę̄́ę̄̀ę̄̂ę̄̌ę̃ę̈ę̈̀ę̈̂ę̈̌ę̇́ę̋ę̇ę̣ēḗē̆ḕē̂ē̌ẻȅȇe̍ȩḝẹệẹ́ẹ̀ẹ̄ḙe̱é̱è̱ê̱ē̱ë̱ḛe̊ɇf́f̀ḟf̄f̧ƒf̣ꝼ́ꝼ̇ꝼ̣ǵg̀ğĝǧġg̣ģḡg̈g̤g̃ꞡǥɠɣ̓h́ĥȟḧh̤h̄ḣh̐h̓ḣḩḥḫẖħɦⱨꜧíìĭîî́ǐïḯĩĩ́ĩ̀ĩ̂ĩ̌ĩ̍iıįį́į̀į̂į̌į̃īī́ī̀ī̂ī̌ỉȉȋi̋ȉi̍i̐i̓i̧í̧ì̧î̧i̱í̱ì̱î̱ī̱ịị́ị̂ị̃ḭɨɨ́ɨ̀ɨ̂ɨ̌ɨ̃ɨ̄ɨ̧ɨ̧̀ɨ̧̂ɨ̧̌ɩ́ɩ̀ɩ̃j́ĵǰj̄j̃j̣ɉḱk̀ǩk̄k̇ķḳḵƙⱪꝁꝃꝅꞣĺl̂l̐l̃l̓ľļl̦ḷḹḷ́ḷ̓ḽḻłꝉƚⱡɫḿm̀ṁṃm̍m̄m̐m̃m̈m̓m̧m̨ṃṃ́ṃ̓m̦ɱńǹn̂ňññ̈ṅn̍n̄n̐n̈ꞥņṋn̦ṇṇ́ṇ̓ṉn̰n̲ɲƞꞑóòŏôốồỗổǒo̐öö́ö̀ȫőõṍṏȭȯȱøǿø̀ø̂ø̌ø̄ɵꝋǫǭǭ̀ǫ́ǫ̀ǫ̂ǫ̌ōṓṑō̂ō̌ỏőȍȏơớờỡởo̍ọọ́ọ̀ộọ̄ợộo̭o̧ó̧ò̧ô̧ǒ̧o̱ó̱ò̱ô̱ō̱ö̱o̲ꝍꝋɔ́ɔ̀ɔ̂ɔ̌ɔ̄ɔ̃ɔ̃́ɔ̃̀ɔ̃̂ɔ̃̌ɔ̃̍ɔ̈ɔ̍ɔ̧ɔ̧́ɔ̧̀ɔ̧̂ɔ̧̌ɔ̱ṕp̀ṗp̣p̄p̓p̈p̤p̄ᵽꝑƥꝓꝕq̓q̇ꝗꝙɋŕřr̂r̓r̦ṙŗr̄ꞧȑȓṛṝr̰ṟr̥r̥̄r̃ɍɽśṥŝšṧṡşꞩṣṩșᵴȿťẗṫţṭțṱṯŧⱦƭʈúùŭûǔůüǘǜǚǖűũṹųūṻủȕȗưứừữửựụṳṷṵʉṽṿꝟʋẃẁŵẘẅẇẉⱳẍẋýỳŷẙÿỹẏȳỷỵɏƴỿźẑžżẓẕƶȥɀⱬǯꝥꝧꜯ"; | |
var uppercase = "A-ZÁÀĂẮẰẴẲA̧Á̧À̧Â̧Ǎ̧ÂẤẦẪẨA̭ǍA̐A̓A̋ÅǺÅ̂ÄÄ́Ä̀Ä̂Ä̌ǞÃÃ́Ã̀A̰ȦȦ́ǠĄĄ́Ą̀Ą̂Ą̌Ą̄Ą̄́Ą̄̀Ą̄̂Ą̄̌Ā̊Ą̊Ą̃Ą̈Ą̈̀Ą̈̂Ą̈̌ĀĀ́Ā̀Ā̂Ā̌Ā̆A̱Á̱À̱Â̱Ä̱Ā̱Å̱ẢȀȂẠẠ́Ạ̀ẶẬẠ̄Ạ̈Ạ̃ḀȺA̍Ɑ́Ɑ̀Ɑ̂Ɑ̌B́B̓ḂḄḆɃB̃ƁƂB̤ĆC̀ĈC̆ČČ̓C̓C̈ĊC̣ÇḈÇ̆Ç̌Ç̇C̄C̃ȻꞒƇꜾD́ĎḐD̂ḒD̓D̦ḊḌḒḎD̤ĐƉƊƋÉÈĔĚÊẾỀỄỂËË́Ë̀Ë̂Ë̌E̋ȄẼẼ́Ẽ̀Ẽ̂Ẽ̌Ẽ̍ĖĖ́Ė̃ȨȨ́ḜȨ̀Ȩ̌Ȩ̂ĘĘ́Ę̀Ę̂Ę̌Ę̄Ę̄́Ę̄̀Ę̄̂Ę̄̌Ę̃Ę̈Ę̈̀Ę̈̂Ę̈̌Ę̇́Ę̋Ę̇Ę̣ĒḖĒ̆ḔĒ̂Ē̌ẺȄȆE̍ȨḜẸỆẸ́Ẹ̀Ẹ̄ḘE̱É̱È̱Ê̱Ē̱Ë̱ḚE̊ɆF́F̀ḞF̄F̧ƑF̣Ꝼ́Ꝼ̇Ꝼ̣ǴG̀ĞĜǦĠG̣ĢḠG̈G̤G̃ꞠǤƓƔ̓H́ĤȞḦH̤H̄ḢH̐H̓ḢḨḤḪH̱ĦꞪⱧꜦÍÌĬÎÎ́ǏÏḮĨĨ́Ĩ̀Ĩ̂Ĩ̌Ĩ̍İIĮĮ́Į̀Į̂Į̌Į̃ĪĪ́Ī̀Ī̂Ī̌ỈȈȊI̋ȈI̍I̐I̓I̧Í̧Ì̧Î̧I̱Í̱Ì̱Î̱Ī̱ỊỊ́Ị̂Ị̃ḬƗƗ́Ɨ̀Ɨ̂Ɨ̌Ɨ̃Ɨ̄Ɨ̧Ɨ̧̀Ɨ̧̂Ɨ̧̌Ɩ́Ɩ̀Ɩ̃J́ĴJ̌J̄J̃J̣ɈḰK̀ǨK̄K̇ĶḲḴƘⱩꝀꝂꝄꞢĹL̂L̐L̃L̓ĽĻL̦ḶḸḶ́Ḷ̓ḼḺŁꝈȽⱠⱢḾM̀ṀṂM̍M̄M̐M̃M̈M̓M̧M̨ṂṂ́Ṃ̓M̦ⱮŃǸN̂ŇÑÑ̈ṄN̍N̄N̐N̈ꞤŅṊN̦ṆṆ́Ṇ̓ṈN̰N̲ƝȠꞐÓÒŎÔỐỒỖỔǑO̐ÖÖ́Ö̀ȪŐÕṌṎȬȮȰØǾØ̀Ø̂Ø̌Ø̄ƟꝊǪǬǬ̀Ǫ́Ǫ̀Ǫ̂Ǫ̌ŌṒṐŌ̂Ō̌ỎŐȌȎƠỚỜỠỞO̍ỌỌ́Ọ̀ỘỌ̄ỢỘO̭O̧Ó̧Ò̧Ô̧Ǒ̧O̱Ó̱Ò̱Ô̱Ō̱Ö̱O̲ꝌꝊƆ́Ɔ̀Ɔ̂Ɔ̌Ɔ̄Ɔ̃Ɔ̃́Ɔ̃̀Ɔ̃̂Ɔ̃̌Ɔ̃̍Ɔ̈Ɔ̍Ɔ̧Ɔ̧́Ɔ̧̀Ɔ̧̂Ɔ̧̌Ɔ̱ṔP̀ṖP̣P̄P̓P̈P̤P̄ⱣꝐƤꝒꝔQ̓Q̇ꝖꝘɊŔŘR̂R̓R̦ṘŖR̄ꞦȐȒṚṜR̰ṞR̥R̥̄R̃ɌⱤŚṤŜŠṦṠŞꞨṢṨȘẞⱾŤT̈ṪŢṬȚṰṮŦȾƬƮÚÙŬÛǓŮÜǗǛǙǕŰŨṸŲŪṺỦȔȖƯỨỪỮỬỰỤṲṶṴɄṼṾꝞƲẂẀŴW̊ẄẆẈⱲẌẊÝỲŶY̊ŸỸẎȲỶỴɎƳỾŹẐŽŻẒẔƵȤⱿⱫǮꝤꝦꜮ"; | |
var one_name = '['+uppercase+']['+lowercase+']+\\.?'; | |
var re_name = new RegExp('((?:(?:'+one_name+'(?:-'+one_name+')*|(?:['+uppercase+']\\.)+)(?: (?:(?:['+uppercase+']\\.)+|'+one_name+'(?:-'+one_name+')*))* (?:(?:of|de|du|von|van|ibn) |(?:ibn )?al-|el-|d\')?'+one_name+'(?:-'+one_name+')*)|Euclid|Archimedes|Pythagoras|Brahmagupta|Eudoxus|Fibonacci|Aryabhata|Apollonius|Diophantus|Bháscara|Hipparchus|Archytus|Panini|Aristotle|Pappus|Hippocrates|Thales)','g'); | |
Array.prototype.map.call(nodes,function(n){ n.textContent = n.textContent.replace(re_name,'Mathematician $1');}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment