SYMBOL INDEX (20 symbols across 5 files) FILE: assets/js/plugins/jquery.greedy-navigation.js function updateNav (line 16) | function updateNav() { FILE: markdown_generator/publications.py function create_md (line 37) | def create_md(lines: list, layout: list): function html_escape (line 72) | def html_escape(text): function read (line 76) | def read(filename: str) -> tuple[list, list]: FILE: markdown_generator/pubsFromBib.py function html_escape (line 52) | def html_escape(text): FILE: markdown_generator/talks.py function html_escape (line 52) | def html_escape(text): FILE: scripts/cv_markdown_to_json.py class DateTimeEncoder (line 17) | class DateTimeEncoder(json.JSONEncoder): method default (line 18) | def default(self, obj): function parse_markdown_cv (line 23) | def parse_markdown_cv(md_file): function parse_config (line 55) | def parse_config(config_file): function extract_author_info (line 65) | def extract_author_info(config): function parse_education (line 161) | def parse_education(education_text): function parse_work_experience (line 190) | def parse_work_experience(work_text): function parse_skills (line 232) | def parse_skills(skills_text): function parse_publications (line 251) | def parse_publications(pub_dir): function parse_talks (line 280) | def parse_talks(talks_dir): function parse_teaching (line 309) | def parse_teaching(teaching_dir): function parse_portfolio (line 338) | def parse_portfolio(portfolio_dir): function create_cv_json (line 367) | def create_cv_json(md_file, config_file, repo_root, output_file): function main (line 414) | def main():