#pragma once #include #include #include const std::string link_delimiter { "%" }; class Heading { public: Heading(int level, const std::string& filename, const std::string& section, const std::string& id, const std::string& number, const std::string& title) : m_level(level), m_filename(filename), m_section(section), m_id(id), m_number(number), m_title(title) {}; int m_level {}; std::string m_filename {}; std::string m_section {}; std::string m_id {}; std::string m_number {}; std::string m_title {}; }; std::ostream& operator<<(std::ostream& os, const Heading h); /* std::tuple, std::vector, unsigned int> add_section_numbers(const std::string& s, const std::string& basename, std::vector levels, unsigned int initial_id, std::map& section_id_map); */ std::string make_html_table_of_contents(std::vector headings); std::pair make_navigation_table_of_contents(std::vector headings); void show_table_of_contents( const std::string& kt_filename, const std::string& title, std::vector headings); std::string cache_table_of_contents( const std::string& kt_root_filename, const std::string& title, std::vector headings);