#!/usr/bin/env python3 """ Move inline style injection to AFTER the qbpos.css link This ensures it has final say on font sizes """ import os import re from pathlib import Path def move_style_after_css_link(file_path): """Move the FORCE ALL FONTS style tag to after qbpos.css link.""" try: with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: content = f.read() original_content = content # Find the FORCE ALL FONTS style block style_pattern = r'\s*' style_match = re.search(style_pattern, content, re.DOTALL) if not style_match: return False style_block = style_match.group(0) # Remove the style block from its current position content = content.replace(style_block, '', 1) # Find the qbpos.css link and insert AFTER it css_link_pattern = r'(]*qbpos\.css[^>]*>)' if re.search(css_link_pattern, content): # Insert the style block right after the CSS link content = re.sub( css_link_pattern, r'\1\n' + style_block, content, count=1 ) else: # If no qbpos.css link found, put it after content = re.sub( r'()', style_block + r'\1', content, flags=re.IGNORECASE ) if content != original_content: with open(file_path, 'w', encoding='utf-8', errors='ignore') as f: f.write(content) return True return False except Exception as e: print(f"Error processing {file_path}: {e}") return False def main(): base_dir = Path('/home/pts/Documents/QBPOS_Help_Web/QB_Help_Web/POS_Help') if not base_dir.exists(): print(f"Error: Directory {base_dir} not found") return # Find all .htm files htm_files = list(base_dir.rglob('*.htm')) print(f"Found {len(htm_files)} HTML files") print("Moving inline styles to after CSS links...") modified_count = 0 for htm_file in htm_files: if move_style_after_css_link(htm_file): modified_count += 1 if modified_count % 100 == 0: print(f" Processed {modified_count} files...") print(f"\nComplete! Modified {modified_count} files") print("Inline styles now come AFTER external CSS links for proper priority.") if __name__ == "__main__": main()