Skip to content

Instantly share code, notes, and snippets.

@LNow
Last active November 16, 2017 14:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LNow/9227d5275996b10fe14b to your computer and use it in GitHub Desktop.
Save LNow/9227d5275996b10fe14b to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name ExcelForumSyntaxHighlighter
// @namespace excelforum
// @include http://www.excelforum.pl/*
// @include http://*.excelforum.pl/*
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/vbscript.min.js
// @resource syntaxHighlightCSS https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css
// @resource VisualStudioStyleCSS https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/vs.min.css
// @resource RailscastsStyleCSS https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/railscasts.min.css
// @noframes
// @grant GM_addStyle
// @grant GM_getResourceText
// @version 1.4.0
// ==/UserScript==
/* USTAWIENIA */
/**
* Szerokosc forum wyrażona w pikselach
* Example: 1000
* Default: 780
*/
var ForumWidth = 1000;
/**
* Kolorowe formuły
* 0 = Wyróżnione tylko ciągi w ""
* 1 = Wyróżnione adresy oraz ciągi znaków ujęte w ""
* 2 = Wyróżnione nazwy funkcji, PRAWDA/FAŁSZ, liczby, adresy, ciągi znaków ujęte w ""
*/
var FormulaSyntax = 2;
/**
* Styl wyświetlania
* 0 = VisualStudio
* 1 = RailsCasts
*/
var SytnaxStyle = 1;
/* KONIEC USTAWIEN */
console.log('Twoje ustawienia to:');
console.log('ForumWidth: ' + ForumWidth);
console.log('FormulaSyntax: ' + FormulaSyntax);
console.log('FormulaSyntax: ' + FormulaSyntax);
console.info('Zmieniam rozmiar forum.');
var mainTable = document.querySelectorAll('table[width=\'700\']') [0];
var contentTable = document.querySelectorAll('table[width=\'780px\']') [0];
console.info(mainTable);
mainTable.style.width = ForumWidth-80;
contentTable.style.width = ForumWidth;
var tarea = document.querySelectorAll('textarea') [0];
if (typeof tarea !== 'undefined') {
tarea.style.width = '100%';
tarea.parentElement.nextElementSibling.style.width = 'auto';
}
console.info('Ładuje podstawowe style CSS.');
GM_addStyle(GM_getResourceText('syntaxHighlightCSS'));
GM_addStyle('.resizable {resize: both;overflow: auto;}');
console.info('Ładuje wybrany styl.');
SytnaxStyle == 1 ? GM_addStyle(GM_getResourceText('RailscastsStyleCSS')) : GM_addStyle(GM_getResourceText('VisualStudioStyleCSS'));
console.info('Rejestruje bogatą składnie formuł.');
hljs.registerLanguage('color_formulas', function (a) {
return {
cI: true,
l: '[a-zA-ZżźćńółęąśŻŹĆĄŚĘŁÓŃ][a-zA-Z0-9_żźćńółęąśŻŹĆĄŚĘŁÓŃ.]*',
k: {
keyword: 'MODUŁ.LICZBY NAL.ODS NAL.ODS.WYKUP ACOS ACOSH AGREGUJ ADRES AMORT.NIELIN AMORT.LIN ORAZ OBSZARY ASC ASIN ASINH ATAN ATAN2 ATANH ODCH.ŚREDNIE ŚREDNIA ŚREDNIA.A ŚREDNIA.JEŻELI ŚREDNIA.WARUNKÓW BAT.TEKST BESSEL.I BESSEL.J BESSEL.K BESSEL.Y ROZKŁAD.BETA ROZKŁ.BETA ROZKŁAD.BETA.ODW ROZKŁ.BETA.ODWR DWÓJK.NA.DZIES DWÓJK.NA.SZESN DWÓJK.NA.ÓSM ROZKŁAD.DWUM ROZKŁ.DWUM ROZKŁ.DWUM.ODWR WYWOŁAJ ZAOKR.W.GÓRĘ ZAOKR.W.GÓRĘ.DOKŁ KOMÓRKA ZNAK ROZKŁAD.CHI ROZKŁAD.CHI.ODW TEST.CHI ROZKŁ.CHI ROZKŁ.CHI.PS ROZKŁ.CHI.ODWR ROZKŁ.CHI.ODWR.PS CHI.TEST WYBIERZ OCZYŚĆ KOD NR.KOLUMNY LICZBA.KOLUMN KOMBINACJE LICZBA.ZESP ZŁĄCZ.TEKSTY UFNOŚĆ UFNOŚĆ.NORM UFNOŚĆ.T KONWERTUJ WSP.KORELACJI COS COSH ILE.LICZB ILE.NIEPUSTYCH LICZ.PUSTE LICZ.JEŻELI LICZ.WARUNKI WYPŁ.DNI.OD.POCZ WYPŁ.DNI WYPŁ.DNI.NAST WYPŁ.DATA.NAST WYPŁ.LICZBA WYPŁ.DATA.POPRZ KOWARIANCJA KOWARIANCJA.POPUL KOWARIANCJA.PRÓBKI PRÓG.ROZKŁAD.DWUM ELEMENT.KPI.MODUŁU ELEMENT.MODUŁU WŁAŚCIWOŚĆ.ELEMENTU.MODUŁU USZEREGOWANY.ELEMENT.MODUŁU ZESTAW.MODUŁÓW LICZNIK.MODUŁÓW.ZESTAWU WARTOŚĆ.MODUŁU SPŁAC.ODS SPŁAC.KAPIT DATA DATA.WARTOŚĆ BD.ŚREDNIA DZIEŃ DNI.360 DB BD.ILE.REKORDÓW BD.ILE.REKORDÓW.A DDB DZIES.NA.DWÓJK DZIES.NA.SZESN DZIES.NA.ÓSM STOPNIE CZY.RÓWNE ODCH.KWADRATOWE BD.POLE STOPA.DYSK BD.MAX BD.MIN KWOTA CENA.DZIES CENA.UŁAM BD.ILOCZYN BD.ODCH.STANDARD BD.ODCH.STANDARD.POPUL BD.SUMA ROCZ.PRZYCH BD.WARIANCJA BD.WARIANCJA.POPUL NR.SER.DATY EFEKTYWNA NR.SER.OST.DN.MIES FUNKCJA.BŁ FUNKCJA.BŁ.DOKŁ KOMP.FUNKCJA.BŁ KOMP.FUNKCJA.BŁ.DOKŁ NR.BŁĘDU EUROCONVERT ZAOKR.DO.PARZ PORÓWNAJ EXP ROZKŁ.EXP ROZKŁAD.EXP SILNIA SILNIA.DWUKR FAŁSZ ROZKŁ.F ROZKŁAD.F ROZKŁ.F.PS ZNAJDŹ ROZKŁ.F.ODWR ROZKŁ.F.ODWR.PS ROZKŁAD.F.ODW ROZKŁAD.FISHER ROZKŁAD.FISHER.ODW ZAOKR.DO.TEKST ZAOKR.W.DÓŁ ZAOKR.W.DÓŁ.DOKŁ REGLINX CZĘSTOŚĆ F.TEST TEST.F FV WART.PRZYSZŁ.KAP ROZKŁ.GAMMA ROZKŁAD.GAMMA ROZKŁ.GAMMA.ODWR ROZKŁAD.GAMMA.ODW ROZKŁAD.LIN.GAMMA ROZKŁAD.LIN.GAMMA.DOKŁ NAJW.WSP.DZIEL ŚREDNIA.GEOMETRYCZNA SPRAWDŹ.PRÓG WEŹDANETABELI REGEXPW ŚREDNIA.HARMONICZNA SZESN.NA.DWÓJK SZESN.NA.DZIES SZESN.NA.ÓSM WYSZUKAJ.POZIOMO GODZINA HIPERŁĄCZE ROZKŁ.HIPERGEOM ROZKŁAD.HIPERGEOM JEŻELI JEŻELI.BŁĄD MODUŁ.LICZBY.ZESP CZ.UROJ.LICZBY.ZESP ARG.LICZBY.ZESP SPRZĘŻ.LICZBY.ZESP COS.LICZBY.ZESP ILORAZ.LICZB.ZESP EXP.LICZBY.ZESP LN.LICZBY.ZESP LOG10.LICZBY.ZESP LOG2.LICZBY.ZESP POTĘGA.LICZBY.ZESP ILOCZYN.LICZB.ZESP CZ.RZECZ.LICZBY.ZESP SIN.LICZBY.ZESP PIERWIASTEK.LICZBY.ZESP RÓŻN.LICZB.ZESP SUMA.LICZB.ZESP INDEKS ADR.POŚR INFO ZAOKR.DO.CAŁK ODCIĘTA STOPA.PROC IPMT IRR CZY.PUSTA CZY.BŁ CZY.BŁĄD CZY.PARZYSTE CZY.LOGICZNA CZY.BRAK CZY.NIE.TEKST CZY.LICZBA CZY.NIEPARZYSTE CZY.ADR CZY.TEKST ISO.ZAOKR.W.GÓRĘ ISPMT JIS KURTOZA MAX.K NAJMN.WSP.WIEL LEWY DŁ REGLINP LN LOG LOG10 REGEXPP ROZKŁAD.LOG.ODW ROZKŁ.LOG ROZKŁAD.LOG ROZKŁ.LOG.ODWR WYSZUKAJ LITERY.MAŁE PODAJ.POZYCJĘ MAX MAX.A WYZNACZNIK.MACIERZY ROCZ.PRZYCH.M MEDIANA FRAGMENT.TEKSTU MIN MIN.A MINUTA MACIERZ.ODW MIRR MACIERZ.ILOCZYN MOD WYST.NAJCZĘŚCIEJ WYST.NAJCZĘŚCIEJ.TABL WYST.NAJCZĘŚCIEJ.WART MIESIĄC ZAOKR.DO.WIELOKR WIELOMIAN L BRAK ROZKŁ.DWUM.PRZEC ROZKŁAD.DWUM.PRZEC DNI.ROBOCZE DNI.ROBOCZE.NIESTAND NOMINALNA ROZKŁ.NORMALNY ROZKŁAD.NORMALNY ROZKŁ.NORMALNY.ODWR ROZKŁAD.NORMALNY.ODW ROZKŁ.NORMALNY.S ROZKŁAD.NORMALNY.S ROZKŁ.NORMALNY.S.ODWR ROZKŁAD.NORMALNY.S.ODW NIE TERAZ NPER NPV ÓSM.NA.DWÓJK ÓSM.NA.DZIES ÓSM.NA.SZESN ZAOKR.DO.NPARZ CENA.PIERW.OKR RENT.PIERW.OKR CENA.OST.OKR RENT.OST.OKR PRZESUNIĘCIE LUB PEARSON PERCENTYL.PRZEDZ.OTW PERCENTYL.PRZEDZ.ZAMK PERCENTYL PROC.POZ.PRZEDZ.OTW PROC.POZ.PRZEDZ.ZAMK PROCENT.POZYCJA PERMUTACJE PHONETIC PI PMT ROZKŁ.POISSON ROZKŁAD.POISSON POTĘGA PPMT CENA CENA.DYSK CENA.WYKUP PRAWDPD ILOCZYN Z.WIELKIEJ.LITERY PV KWARTYL KWARTYL.PRZEDZ.OTW KWARTYL.PRZEDZ.ZAMK CZ.CAŁK.DZIELENIA RADIANY LOS LOS.ZAKR POZYCJA.ŚR POZYCJA.NAJW POZYCJA RATE KWOTA.WYKUP REJESTR.KOD ZASTĄP POWT PRAWY RZYMSKIE ZAOKR ZAOKR.DÓŁ ZAOKR.GÓRA WIERSZ ILE.WIERSZY R.KWADRAT DANE.CZASU.RZECZ SZUKAJ.TEKST SEKUNDA SUMA.SZER.POT ZNAK.LICZBY SIN SINH SKOŚNOŚĆ SLN NACHYLENIE MIN.K SQL.REQUEST PIERWIASTEK PIERW.PI NORMALIZUJ ODCH.STANDARDOWE ODCH.STAND.POPUL ODCH.STANDARD.PRÓBKI ODCH.STANDARDOWE.A ODCH.STANDARD.POPUL ODCH.STANDARD.POPUL.A REGBŁSTD PODSTAW SUMY.CZĘŚCIOWE SUMA SUMA.JEŻELI SUMA.WARUNKÓW SUMA.ILOCZYNÓW SUMA.KWADRATÓW SUMA.X2.M.Y2 SUMA.X2.P.Y2 SUMA.XMY.2 SYD T TAN TANH RENT.EKW.BS CENA.BS RENT.BS ROZKŁ.T ROZKŁ.T.DS ROZKŁ.T.PS ROZKŁAD.T TEKST CZAS CZAS.WARTOŚĆ ROZKŁ.T.ODWR ROZKŁ.T.ODWR.DS ROZKŁAD.T.ODW DZIŚ TRANSPONUJ REGLINW USUŃ.ZBĘDNE.ODSTĘPY ŚREDNIA.WEWN PRAWDA LICZBA.CAŁK T.TEST TEST.T TYP LITERY.WIELKIE WARTOŚĆ WARIANCJA WARIANCJA.POP WARIANCJA.PRÓBKI WARIANCJA.A WARIANCJA.POPUL WARIANCJA.POPUL.A VDB WYSZUKAJ.PIONOWO DZIEŃ.TYG NUM.TYG ROZKŁAD.WEIBULL ROZKŁ.WEIBULL DZIEŃ.ROBOCZY DZIEŃ.ROBOCZY.NIESTAND XIRR XNPV ROK CZĘŚĆ.ROKU RENTOWNOŚĆ RENT.DYSK RENT.WYKUP Z.TEST TEST.Z',
built_in: '',
literal: 'prawda fałsz'
},
i: '//',
c: [
a.inherit(a.QSM, {
c: [
{
b: '""'
}
]
}),
{
cN: 'attribute',
b: '\\$?[A-Z]+\\$?[0-9]+',
r: 0
},
a.CNM
]
};
});
console.info('Rejestruje ubogą składnie formuł.');
hljs.registerLanguage('clean_formulas', function (a) {
return {
cI: true,
c: [
a.inherit(a.QSM, {
c: [
{
b: '""'
}
]
}),
{
cN: 'built_in',
b: '([a-z]+!)?\\$?[A-Z]+\\$?[0-9]+'
}
],
};
});
console.info('Konfiguruje podświetlanie składni.');
hljs.configure({
useBR: true,
tabReplace: ' ',
languages: [
FormulaSyntax == 1 ? 'clean_formulas' : FormulaSyntax == 2 ? 'color_formulas' : null,
'vbscript',
'javascript'
]
});
console.info('Podświetlam składnie.');
var codeElem = document.querySelectorAll('td.code');
for (var i = 0; i < codeElem.length; i++) {
codeElem[i].className = 'resizable';
hljs.highlightBlock(codeElem[i]);
}
var quickReplyForm = document.querySelectorAll('form[action=\'../posting.htm\']') [0];
if (typeof quickReplyForm !== 'undefined') {
var input = document.createElement('input');
input.type = 'file';
input.name = 'fileupload';
input.className = 'post';
quickReplyForm.querySelectorAll('input[name=\'SmilesButt\']') [0].parentElement.appendChild(input);
quickReplyForm.setAttribute('enctype', 'multipart/form-data');
}
GM_addStyle('a:hover { background-color: yellow !important; }');
var q = document.getElementsByClassName('quartic');
for (var i=q.length; --i>=0;) {
q[i].parentNode.removeChild(q[i]);
}
var ifrm = document.getElementsByName('iframe');
for (var i=ifrm.length; --i>=0;) {
ifrm[i].parentNode.removeChild(ifrm[i]);
}
var adsense = document.getElementsByClassName('adsense');
for (var i=adsense.length; --i>=0;) {
adsense[i].parentNode.removeChild(adsense[i]);
}
var col_adsense = document.getElementsByClassName('col_adsense');
for (var i=col_adsense.length; --i>=0;) {
col_adsense[i].parentNode.removeChild(col_adsense[i]);
}
console.log('Jeżeli to widzisz to wszystko działa poprawnie!');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment