Package: rupantar
RupantarNo-frills website generation, powered by Python/ɾuːpɑnˈtɔɾ/(Bengali)transformationTable of Contents 🚩DescriptionDependenciesInstallationUsageProject StructureConfigurationContributingLicenseDescription :ear_of_rice:Fork ofpidgeottoRupantar is a command-line tool that enables quick generation of simple, minimally themed, static websites with extensive support for customizations.(back to top :arrow_up:)Dependencies :bridge_at_night:Rupantar has the following dependencies:PyYAML:  Config and setting page metadatatomli:  Config and setting page metadata, not required if running Python 3.11 (or above)jinja2:	Templating engine used to render the HTML/XML pagesmarkdown2:	Reading Markdown filesxdg-base-dirs:  App-runtime data storage location as per XDG Base Dir spec(back to top :arrow_up:)Installation :coconut:Rupantar needsPythoninstalled locally.CPythonversion compatibility: needs Python interpreter (version 3.10 or higher)pip, Python's default package management tool, can be used for either of the methods.Installation fromsource:InstallGitClone thisgit repositorycdinto therupantardirectory$pipinstall-rrequirementsDirect installation usingGit:$pipinstallgit+https://github.com/bhodrolok/rupantar(back to top :arrow_up:)Usage :crab:NB: Rupantar is a pure CLI tool, without any GUI.To get a comprehensive list of commands and flags:$rupantar-hTo initiate a project ( say for examplenotun):$rupantarinitnotunNB: Some generic questions will be asked running this command in order to set up some configuration values.To avoid this, pass the-sor--skipflag afterinit.To add a new post/page (say for examplekagoch, to the existingnotun):$rupantarnewnotunkagochTo build the static pages (fornotun):$rupantarbuildnotunTo preview the website locally:$rupantarservenotunUseful for quick and simple testing via a local HTTP web server.(back to top :arrow_up:)Project Structure :fork_and_knife:The overall skeleton of a fully built & ready-to-serve rupantar project looks something like:rupantar_project/
    ├── config.yml  <-- Config for the page title, CSS file, and other custom config (custom templates, etc.)
    ├── content/  <-- Directory to store Markdown files.
    │   ├── header.md
    │   ├── footer.md
    │   ├── home.md
    │   └── notes/  <-- Directory to store Markdown files for content of extra pages.
    │       └── example_blog.md
    └──static/  <-- Directory to store static content eg: CSS, images, etc.
    │   └── demo.css
    ├── public/   <-- Directory to store generated static files.
    └── templates/  <-- Directory to store Jinja2 layouts for the pages.
        ├── home_template.html
        ├── note_template.html
        └── feed_template.xmlRupantar itself is developed with a "src layout" so as to follow a more standardized and organized way of managing everything. To read more about that, clickhere.A :construction: roadmap of this Python project can be foundhere.(back to top :arrow_up:)Development & Configuration :plate_with_cutlery:It is recommended to usePoetryfor better dependency management, packaging, and release.A big reason is the ease in managing virtual environments.Why considervenvsin the first place? Well you get an isolated environment, better reproducibility, better dependency management, and (most importantly!) minimize risk of any conflicts with other existing Python projects/dependencies locally on the system. Especially if they were installed globally system-wide usingpip.Just overall makes the development process more smoother.After forking and cloning the repository:Navigate to the cloned project directory.Installallthe dependencies, including the optional ones:$poetryinstall--with=dev,test,docuActivate a virtual env:$poetryshellRun rupantar:$pythonsrc/rupantar/start.py-h(back to top :arrow_up:)Contributing :scroll:This is an open source project. Suggestions, bug reports, feature requests, documentation improvements, etc. are more than welcome throughPull Requests (PRs)andIssues.Theusualsteps for contributing via a PR are:Fork this repository to your own GitHub accountClone the repository to your machine$gitclonehttps://github.com/Bhodrolok/rupantar.gitcdto where you cloned the repo and create a local git branch$gitcheckout-bnew-feature-branchMake your changes and commit them to that branch$gitcommit-m"brief description about changes"Push your changes to your remote fork$ git push origin new-feature-branchCreate a new Pull Request!(back to top :arrow_up:)License :bookmark:This project is licensed under theMIT License.tldris thatrupantaris Free and Open Source Software (FOSS)!(back to top :arrow_up:)Similar Projects :goat:pidgeotto- Primary inspiration for this project.Pelican- Python-basedJekyll- Ruby-basedHugo- Go-basedZola- Rust-basedEleventy- JavaScript-based alternative to JekyllSome more Python-based static site generators can be foundhere.(back to top :arrow_up:)