Assignment 2 Report: Static Personal Blog Website¶
Introduction¶
This report documents the process of setting up, managing, and deploying a static personal blog website for Assignment 2.
Tool Selection¶
I chose Sphinx to generate the static site. Sphinx is a robust, well-established documentation generator written in Python. It natively supports reStructuredText, but with the recommonmark extension, it provides excellent Markdown support. I chose Sphinx because it is straightforward to set up, highly customizable, and perfectly suited for creating clean, static web pages for text-heavy content like reports and blogs.
Setup Process¶
Environment Preparation: Installed the required packages using
pip install sphinx sphinx-markdown-parser recommonmark.Initialization: Created a
blogdirectory and initialized a Sphinx project usingsphinx-quickstart, separating the source and build directories.Configuration: Modified
conf.pyto enable Markdown support by addingrecommonmarkto the extensions list and setting thesource_suffixto accept.mdfiles.Content Creation: Added Markdown files including
about.md,assignment1_report.md(integrating the previous assignment), and this report (assignment2_report.md). Updated theindex.rsttoctreeto link them all together.Building: Ran
make htmlto generate the static HTML files into the_build/htmldirectory.
Git Management Process¶
The project uses Git for version control to track logical steps in development.
Commit 1: Initial setup of Sphinx project
Reason: To establish the repository and save the initial file structure generated by
sphinx-quickstart, along with a.gitignoreto prevent tracking build artifacts.
Commit 2: Added Markdown support and configuration
Reason: To save the configuration changes in
conf.pythat enable the parsing of.mdfiles, a crucial requirement for the project.
Commit 3: Added Assignment 1 integration and homepage
Reason: To commit the integration of the previous assignment’s report and the initial home/about pages.
Commit 4: Added Assignment 2 documentation
Reason: To save the project report documenting the process and tool choices.
Commit 5: Finalized structure and built HTML
Reason: To mark the project as complete and ready for deployment.
Deployment¶
The generated static HTML files (located in the _build/html directory) can be served locally using a simple HTTP server (e.g., python -m http.server) or hosted on platforms like GitHub Pages.