policies: Extend publication script to handle any Conservancy policy.

This commit is contained in:
Brett Smith 2018-05-04 16:05:32 -04:00
parent 967ee95282
commit 637ca012b7

View file

@ -24,7 +24,7 @@ except ImportError:
markdown_import_success = False markdown_import_success = False
TEMPLATE_HEADER = """{% extends "base_projects.html" %} TEMPLATE_HEADER = """{% extends "base_projects.html" %}
{% block subtitle %}Travel and Reimburseable Expense Policy - {% endblock %} {% block subtitle %}{% endblock %}
{% block submenuselection %}Policies{% endblock %} {% block submenuselection %}Policies{% endblock %}
{% block content %} {% block content %}
@ -181,7 +181,7 @@ Setting any flag will always override the default behavior.
) )
add_parser_flag( add_parser_flag(
parser, 'commit', parser, 'commit',
help="Commit changes to the travel policy", help="Commit changes to the website repository",
) )
parser.add_argument( parser.add_argument(
'-m', dest='commit_message', '-m', dest='commit_message',
@ -194,7 +194,7 @@ Setting any flag will always override the default behavior.
) )
parser.add_argument( parser.add_argument(
'input_path', type=pathlib.Path, 'input_path', type=pathlib.Path,
help="Path to the Conservancy travel policy Markdown source", help="Path to the Conservancy policy Markdown source",
) )
parser.add_argument( parser.add_argument(
'output_path', type=pathlib.Path, 'output_path', type=pathlib.Path,
@ -221,7 +221,7 @@ Try `apt install python3-markdown` or `python3 -m pip install --user Markdown`."
pass pass
if args.revision is None: if args.revision is None:
parser.error("no --revision specified and not found from input path") parser.error("no --revision specified and not found from input path")
args.output_link_path = args.git_output.dir_path / 'conservancy-travel-policy.html' args.output_link_path = args.git_output.dir_path / args.input_path.with_suffix('.html').name
args.output_file_path = args.output_link_path.with_suffix('.{}.html'.format(args.revision)) args.output_file_path = args.output_link_path.with_suffix('.{}.html'.format(args.revision))
return args return args
@ -299,7 +299,17 @@ def write_output(args):
], ],
output_format='html5', output_format='html5',
) )
header = TEMPLATE_HEADER
with args.input_path.open(encoding=args.encoding) as src_file: with args.input_path.open(encoding=args.encoding) as src_file:
for line in src_file:
if line.startswith('# '):
subtitle = line[2:].replace('Software Freedom Conservancy', '').strip()
header = header.replace(
'{% block subtitle %}',
'{{% block subtitle %}}{} - '.format(subtitle),
)
break
src_file.seek(0)
body = converter.convert(src_file.read()) body = converter.convert(src_file.read())
with tempfile.NamedTemporaryFile( with tempfile.NamedTemporaryFile(
'w', 'w',
@ -309,7 +319,7 @@ def write_output(args):
delete=False, delete=False,
) as tmp_out: ) as tmp_out:
try: try:
tmp_out.write(TEMPLATE_HEADER) tmp_out.write(header)
tmp_out.write(body) tmp_out.write(body)
tmp_out.write(TEMPLATE_FOOTER) tmp_out.write(TEMPLATE_FOOTER)
tmp_out.flush() tmp_out.flush()