Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a proof of concept of the template repository for guides #1

Open
amercader opened this issue Aug 29, 2022 · 5 comments
Open

Comments

@amercader
Copy link

Context

The School of Data team publishes several guides and reports in the context of different projects. The presentation format of these reports is generally PDF files, as well as the online versions. The process for generating these guides is currently one of:

Both these approaches make the updating of guides complicated or impossible, and make collaboration difficult. The Scoda team would like to consolidate an approach which was more flexible and streamlined and made easier for collaborators to submit contributions.

Approach and requirements

The goal of this mini-project is to set up a pilot project, ideally re-using some existing published content that showcases the new approach and highlights its limitations so we can explore how to fix them.

As a starting point we are going to explore a repository of Markdown content files, which are built into an HTML site and a PDF document. For an initial phase we will use a documentation builder like Sphinx or MKDocs. If we find we need more advance functionality we can explore using more advanced static site generators.

Requirements:

  • Easy replicable to different guides, and allowing customization between them (eg GitHub repo templates)
  • Markdown based, as it's the most collaborator friendly format (eg if using sphinx use the MyST parser)
  • Adding new content should be done via GitHub pull requests
  • It needs to be able to generate a PDF version of the content, and importantly, that generated PDF needs to be customized (changing style, adding logos etc)
  • The content should support translations, connecting to an external service like Transifex
  • In the online version, the content needs to be searchable
  • In the online version, ideally there should be the option of adding custom HTML content in some pages, including custom layouts or dynamic content powered by JS

Example

This is just a suggested starting point and can be tweaked:

  1. Content Source: Markdown files (Standard markdown plus extensions)
  2. Documentation builder: Sphinx or MKDocs
  3. Custom Scoda / OKF theme
  4. Automated deployment and Hosting: Readthedocs.org or self-hosted on Github pages or similar (using a custom schoolofdata.org or okfn.org domain)
@amercader
Copy link
Author

@clombion @benhur07b Let me know if I didn't capture something important

@avdata99
Copy link

avdata99 commented Sep 1, 2022

@amercader here my test with mkdocs

image

Static page with GitHub pages and mkdocs action: https://avdata99.github.io/test-mkdocs/
Repo: https://github.com/avdata99/test-mkdocs
A PDF was built as part of the page build process

We can prepate a GH template with this (it will require custom CSS as our OKF theme)
Not sure on how much we can style the PDF, I'll investigate

@avdata99
Copy link

avdata99 commented Sep 2, 2022

Check of the current version after an update

  • Easy replicable to different guides:
  • Allowing customization: Custom CSS and JS can be defined
  • Use as a GitHub template. The repo it's also a template (tested here)
  • Markdown based
  • Adding new content should be done via GitHub pull requests
  • Able to generate a PDF version of the content: Automatically on each commit to main
  • Generated PDF needs to be customized
    • changing style: There's a custom scss file for this
    • adding logos: The cover and back-cover page can be customized
  • The content should support translations, connecting to an external service like Transifex
  • In the online version, the content needs to be searchable: mkdocs include a search tool.
  • In the online version, ideally there should be the option of adding custom HTML content in some pages, including custom layouts or dynamic content powered by JS

@avdata99
Copy link

avdata99 commented Sep 2, 2022

Not sure in a service like Transifex will work.
It look like if we want several languages (for HTML and PDF) we will need to use separated files and
squidfunk/mkdocs-material#2346.

@avdata99
Copy link

avdata99 commented Sep 9, 2022

Creating a first site+pdf documentation with our test template

Home site
https://avdata99.github.io/testing-mkdocs-multilang-template/

Step by step to get you multilingual documentation site done:
https://github.com/avdata99/testing-mkdocs-multilang-template/blob/main/step-by-step-template.md

English version

image

Spanish version

image

I propose to have a meeting to check and discuss this approach. If this is what we expect, we can make the final changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants