43 lines
1.3 KiB
Bash
Executable file
43 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
SRCDIR=$(realpath $(dirname $0)/..)
|
|
OUTDIR=$(mktemp --directory --tmpdir=$SRCDIR)
|
|
trap "rm -rf $OUTDIR" EXIT
|
|
|
|
# Turn ```javascript``` code snippets in the
|
|
# style guide into .js files in $OUTDIR
|
|
cat <<'EOF' | python3 - docs/js-coding-style.md $OUTDIR
|
|
import sys
|
|
import re
|
|
|
|
def extract_js_snippets(input_file, output_dir):
|
|
with open(input_file, 'r') as file:
|
|
content = file.read()
|
|
|
|
# Find all JavaScript code blocks using regex
|
|
js_blocks = re.findall(r'```javascript\n(.*?)\n?```', content, flags=re.DOTALL)
|
|
|
|
for i, (match) in enumerate(js_blocks):
|
|
js_code = match
|
|
|
|
# Remove one level of indent
|
|
js_code = re.sub(r'^ {4}', '', js_code, flags=re.MULTILINE)
|
|
|
|
# The following are class snippets, turn them
|
|
# into functions to not confuse eslint
|
|
js_code = re.sub(r'^moveActor', 'function moveActor', js_code)
|
|
js_code = re.sub(r'^desaturateActor', 'function desaturateActor', js_code)
|
|
|
|
# Finally, create a .js file in the output directory
|
|
output_filename = f'{output_dir}/{i}.js'
|
|
with open(output_filename, 'w') as out_file:
|
|
out_file.write(f'{js_code}\n')
|
|
|
|
input_file, output_dir = sys.argv[1:]
|
|
extract_js_snippets(input_file, output_dir)
|
|
EOF
|
|
|
|
eslint \
|
|
--rule 'no-undef: off' \
|
|
--rule 'no-unused-vars: off' \
|
|
--rule 'no-invalid-this: off' $OUTDIR/*.js
|