Forking what is left of ZeroNet and hopefully adding an AT Proto Frontend/Proxy
at main 39 lines 1.2 kB view raw
1import re 2 3 4def prefix(content): 5 content = re.sub( 6 b"@keyframes (.*? {.*?}\s*})", b"@keyframes \\1\n@-webkit-keyframes \\1\n@-moz-keyframes \\1\n", 7 content, flags=re.DOTALL 8 ) 9 content = re.sub( 10 b'([^-\*])(border-radius|box-shadow|appearance|transition|animation|box-sizing|' + 11 b'backface-visibility|transform|filter|perspective|animation-[a-z-]+): (.*?)([;}])', 12 b'\\1-webkit-\\2: \\3; -moz-\\2: \\3; -o-\\2: \\3; -ms-\\2: \\3; \\2: \\3 \\4', content 13 ) 14 content = re.sub( 15 b'(?<=[^a-zA-Z0-9-])([a-zA-Z0-9-]+): {0,1}(linear-gradient)\((.*?)(\)[;\n])', 16 b'\\1: -webkit-\\2(\\3);' + 17 b'\\1: -moz-\\2(\\3);' + 18 b'\\1: -o-\\2(\\3);' + 19 b'\\1: -ms-\\2(\\3);' + 20 b'\\1: \\2(\\3);', content 21 ) 22 return content 23 24if __name__ == "__main__": 25 print(prefix(b""" 26 .test { 27 border-radius: 5px; 28 background: linear-gradient(red, blue); 29 } 30 31 32 @keyframes flip { 33 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); } 34 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) } 35 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } 36 } 37 38 39 """).decode("utf8"))