Package: webifier
WebifierHow to Use•Docs•LicenseWebifier is a stand-alone build tool for converting any repository into a deployablejekyllwebsite. You can define your pages viayamlfiles and provide notebooks, markdown and pdf and other files for Webifier
to render. It usespython markdownproviding additional control over attributes and other extensive functionalities. It lets you define and direct how your
web pages feel and automatically manages your assets, making it a perfect solution for fast static website development
and a straightforward tool for creating Github pages as a Github action. Webifier is a good fit for the missing puzzle
piece of collaborative content creation on Github and is a great tool for sharing educational material on the web.Webifier lets you communicate with your audience through comments with the help ofutterancesand track their engagement throughGoogle Analytics. It also automatically creates a
static search engine with the help ofJekyll-Simple-Search. And
as a cherry on the cake, you can provide customjinja2templates if
the built-in ones do not satisfy your needs. Plus, you can change the behavior of the rendering stage of Webifier by
providing your custom implementation ofassets,_includes, and_layoutsin your repository.How to UseLocallyIn order to see how your webified pages look before you send it out to the world, you might want to build and serve them
locally. For this you would need both webifier and jekyll installed.Install Jekyll.Installwebifierfrom PYPI (webifier usespython>=3.8therefore you might need
toinstall an appropriate python versionbeforehand):pipinstallwebifierChange your working directory to where your website resides and Webify everything (assuming your initial index file
isindex.yml, and you want the results to go towebified)# cwd should be where your files arewebify--index=index.yml--output=webifiedChange your working directory to the webified results and serve jekyll:cdwebifiedjekyllserveYou can now access your website fromlocalhost:4000by default.GithubUsing Webifier for your repositories is as simple as adding it as a step in your deployment workflow. After checking out
your desired repository, add the Webifier action and change the default values forbaseurl,repo, andindexinput
variables to your needs. After that you are good to deploy your Webified website for which there are a number of great
actions available.Your workflow might look something like follows. We are usingpeaceiris/actions-gh-pagesdeploy action as an example here and you can
replace it with any other deployment action or even push the webified results into a separate github branch manually.
Keep in mind that because the results are pushed to a separate branch, you might need to change the Github Pages source
branch from your repository settings under the Pages section.name:Webify & Deployon:push:branches:[master]jobs:build-and-deploy:runs-on:ubuntu-lateststeps:# you need to checkout your code before webifying-name:Checkoutuses:actions/checkout@v2-name:Webifyuses:webifier/build@master# or select a desired version# the deploy action is in charge of pushing back the#     webified files into a separate branch such as `gh-pages`-name:Deployuses:peaceiris/actions-gh-pages@v3# or use any other jekyll deploy actionwith:github_token:${{ secrets.GITHUB_TOKEN }}enable_jekyll:truepublish_dir:./webified/Note that if you wish to webify a<name>.github.iorepository or do not wish to have the content of your repository to
be referred to with a/<repository-name>/slug, you should providebaseurl: ''to the webifier action. It is highly
suggested that you consult thedocumentationsfor further details of the nuts and bolts
of webifiable materials. You can also look at the documentations'codewhich itself is built using Webifier and greatly showcases its
functionalities.LicenseMIT License, seewebifier/build/LICENSE.TodoThere are a number of improvements that can enlarge Webifier's usability. What follows is a list of the ideas that we
have in mind, feel free to suggest your ideas by opening up a feature request issue.Print content: add automatic print (and export as pdf) functionality for content content (markdown/notebook)
pages.Table of Content: add automatic creation of a customizable multi-level table of content for all pages.