add generate_doc