File indexing completed on 2024-05-19 04:03:43
0001 #!/usr/bin/env python3 0002 # SPDX-FileCopyrightText: 2023 Jonathan Poelen <jonathan.poelen@gmail.com> 0003 # SPDX-License-Identifier: MIT 0004 0005 from pathlib import Path 0006 from urllib import request 0007 import re 0008 import sys 0009 0010 0011 if len(sys.argv) < 1: 0012 print(f'{sys.argv[0]} syntax/less.xml', file=sys.stderr) 0013 exit(1) 0014 0015 # 0016 # Extract functions 0017 # 0018 0019 data = request.urlopen('https://lesscss.org/functions/').read().decode() 0020 0021 functions = re.findall(r'</a>([-_\w\d]+)</h3>', data, flags=re.DOTALL) 0022 functions.append('%') 0023 0024 # 0025 # Update syntax 0026 # 0027 0028 sep = '\n ' 0029 new_list = f"""<list name="functions"> 0030 <include>functions##CSS</include> 0031 0032 <!-- Less functions, @see http://lesscss.org/functions/ --> 0033 <item>{f'</item>{sep}<item>'.join(sorted(functions))}</item> 0034 </list>""" 0035 0036 less_filename = Path(sys.argv[1]) 0037 less_content = less_filename.read_text() 0038 original_less_content = less_content 0039 less_content = re.sub(r'<list name="functions">.*?</list>', 0040 new_list, less_content, count=1, flags=re.DOTALL) 0041 0042 if original_less_content != less_content: 0043 less_content = re.sub(' version="(\d+)" ', lambda m: f' version="{int(m[1])+1}" ', 0044 less_content, count=1) 0045 less_filename.write_text(less_content)