mirror of
https://github.com/boostorg/url.git
synced 2026-01-22 05:42:46 +00:00
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
#
|
|
# Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com)
|
|
#
|
|
# Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
#
|
|
# Official repository: https://github.com/boostorg/url
|
|
#
|
|
|
|
import re
|
|
|
|
|
|
def replace_snippets(input_file, output_file):
|
|
with open(input_file, 'r') as input_f:
|
|
code = input_f.read()
|
|
|
|
# Define a regular expression pattern to match snippet headers
|
|
snippet_pattern = r'\/\/\[\s*(\w+)\s*'
|
|
current_snippet = None
|
|
snippet_close_pattern = r'\/\/\]'
|
|
output_lines = []
|
|
for line in code.splitlines():
|
|
match = re.search(snippet_pattern, line)
|
|
if match:
|
|
output_lines.append(re.sub(snippet_pattern, r'// tag::\1[]', line))
|
|
current_snippet = match.group(1)
|
|
continue
|
|
# Check if the line matches the closing snippet pattern
|
|
match = re.search(snippet_close_pattern, line)
|
|
if match:
|
|
output_lines.append(re.sub(snippet_close_pattern, f'// end::{current_snippet}[]', line))
|
|
continue
|
|
output_lines.append(line)
|
|
|
|
with open(output_file, 'w') as output_f:
|
|
output_f.write('\n'.join(output_lines))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
input_file = 'snippets.cpp'
|
|
output_file = 'snippets_out.cpp'
|
|
replace_snippets(input_file, output_file)
|