Development Log for Gsoc'21
Community Bonding Period (May 17 - June 6)
- May 17 - May 23
- Made a prototype script to download the User Manual from WikiBooks.
- May 24 - May 31
- Learnt to use cmake and how to execute a .py script using add_custom_command.
- June 1 - June 7
- Went through WikiMedia's rules for using their API. Learnt about the URL-Headers to use while accessing the WikiBooks API.
Coding Period (June 7 - August 16)
- Week - 1 (June 7 - June 13)
- Started with making the .py script
- Implemented function prototypes
- Made function getPage() to download the page given at the url using the WikiMedia API.
- Made function getFooter() to add footer to the HTML pages with proper attribution (CC-BY-SA-3.0).
- Made function cleanSoup() to remove the redundant HTML tags from the pages.
- Made function getUrl() to get clean, formatted URLs.
- Week - 2 (June 14 - June 20)
- Made function getMaths() to download the Math Formulas in the User Manual as SVG Images.
- Made function getTags() to deal with <a> tags and the hrefs.
- Made function getImages() to download the images in the Manual.
- Made a config.yml file for ease of maintenance of the script.
- Made function getCSS() to download the CSS (more about which is given at API:Styling_content).
- Made function getStyled() to improve the styling of the pages.
- Week - 3 (June 21 - June 27)
- Explored GitHub Actions, to run the program and generate the documentation on GitHub.
- Added feature to zip the docs, thus reducing the file size by 25%.
- Created GitHub Action to generate a zipped doc file and release it.
- Changed getUrl() to getParsedUrl(), which now returns a parsed URL (using urllib.parse.urlparse()).
- Miscellaneous code optimizations in cleanSoup(), for a cleaner and smaller code.
- Week - 4 (June 28 - July 5)
- Explored the different options available for conversion of HTML to PDF.
- Chose the tool wkhtmltopdf for the conversion process, and made GitHub action to install the same.
- Created function getPdf() to get the pages converted to pdf.
- Changed the parser handling the XML response of the API.