OER-Forge is a suite of tools to help authors create WCAG-compliant Open Educational Resources (OERs). The project is currently under development.
Below we describe the build system and its components; note that only scan.py and parts of convert.py are currently functional. And convert.py currently only supports conversion of Jupyter Notebooks (.ipynb) to Markdown (.md) and Word (.docx).
OER-Forge is a Python package with five modules (oerforge/):
scan.py- uses_config.ymland the files present incontent/to populate an sqlite database with site and file info.convert.py- draws fromsqlite.dbto convert files incontent/and places them inbuild/files/preserving the user's file structuremake.py- draws fromsqlite.dbto builds a temporary WCAG compliant site inbuild/.verify.py- reviewsbuild/in the context of WCAG Guidelines to generate a report and update pages on the site indicating level of compliance.confirm.py- integrates the WCAG reporting information into the site and rebuilds as a public site indocs/
OER-Forge uses build.py to orchestrate the build process.
build.py- uses functions from each module to construct the build inbuild/
The following diagram illustrates the envisioned build process:
- Starting with the
content/directory and_config.yml,scan.pypopulatessqlite.db. This includes metadata about the site and the files to be processed as well as their locations. Figures and images are also identified and catalogued. This is functional. convert.pyreads fromsqlite.dbto convert files incontent/to their appropriate formats, placing them inbuild/files/while preserving the user's file structure. The tools inconvert.pycurrently support conversion of Jupyter Notebooks (.ipynb) to Markdown (.md) and Word (.docx), and will be extended to support additional formats. The moduleconvert.pyuses the file extensions to determine the appropriate conversion tools and which formats to convert to (i.e., it will not attempt to convert a.mdfile to.mdor a.docxfile to.ipynb). This is partially functional.make.pyreads fromsqlite.dbto build a temporary WCAG compliant site inbuild/. This is not yet functional.verify.pyreviewsbuild/in the context of WCAG Guidelines to generate a report and update pages on the site indicating level of compliance. This is not yet functional.confirm.pyintegrates the WCAG reporting information into the site and rebuilds as a public site indocs/. This is not yet functional.
OER-Forge is under active development. Below is a punchlist of tasks to be completed. If you are interested in contributing, please reach out [email protected].
-
scan.pycan readcontent/and_config.ymlto populatesqlite.db -
convert.pycan convert files incontent/to their appropriate forms-
convert.pycan convert.ipynbto.mdwith images -
convert.pycan convert.ipynbto.docxwith images -
convert.pycan convert.ipynbto.texwith images -
convert.pycan convert.ipynbto.pdfwith images -
convert.pycan convert.docxto.mdwith images -
convert.pycan convert.docxto.texwith images -
convert.pycan convert.docxto.pdfwith images -
convert.pycan convert.mdto.docxwith images -
convert.pycan convert.mdto.texwith images -
convert.pycan convert.mdto.pdfwith images
-
-
convert.pycan write location of converted files tosqlite.db -
make.pycan build the initial WCAG compliant site tobuild/ -
verify.pycan traversebuild/to indicate which page builds are ok -
verify.pycan write build results tosqlite.dbfor each page -
verify.pycan read WCAG guidelines in a parse-able way -
verify.pycan traversebuild/to evaluate level of WCAG compliance -
verify.pycan write ECAG compliance levels tosqlite.dbfor each page -
confirm.pycan read compliance levels and modify page to indicate current level -
confirm.pycan generate a WCAG report on site and individual pages -
confirm.pycan build public site todocs/
