User:ABSHK/GSoC21/Log
From BRL-CAD
Development Log for Gsoc'21[edit]
Community Bonding Period (May 17 - June 6)[edit]
- 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)[edit]
- 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 4)
- 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.
- Week - 5 (July 5 - July 11)
- Added an argument `pdf` to the functions, to help them distinguish if the webpage being dealt with is to be converted into a pdf.
- Changed the program to create a PDF from Print Version of the manual to get a single big file for easier navigation.
- Worked on various issues arising in the PDF conversion according to input from the mentors.
- Week - 6 (July 12 - July 18)
- Phase - 1 Evaluations
- Weeks - 7 & 8 (July 19 - Aug 1)
- Explored and learnt more about CMakeLists for help in the integration part of the program.
- Made a python script to download the generated Manual from OpenSCAD Documentation.
- Weeks - 9 & 10 (Aug 2 - Aug 15)
- Changed python script and added static links to the documentation resources.
- Created function is_connected() to check if an internet connection is available.
- Created CMakeLists.txt inside the `resources` folder which now handles the download part instead of the main CMakeLists.txt
- Added option inside main CMakeLists.txt to enable download of the User Manual.
- Added the files generated by CMakeLists.txt and the python script to .gitnore.
- Added the option `Offline Documentation` to the help menu.
- The option `Offline Documentation now hides if the user chooses not to download the User Manual.