Thank you for your interest in contributing to the Open Buddhist University!
If you're looking to report a problem or propose a change, feel free to simply create an issue or open a Pull Request.
If you'd like to get more involved, but aren't sure where to begin, some project ideas are listed on the issues page. Feel free to email me if you have any questions!
For an introduction to the codebase, read on:
OBU is a static HTML website built with Jekyll and served by GitHub Pages.
To run the site locally:
Install Node, Ruby, and Bundler. Then run:
git clone https://github.com/buddhist-uni/buddhist-uni.github.io.git
cd buddhist-uni.github.io
npm ci
bash scripts/install-deps.bash
bundle install
bundle exec jekyll serve -tI
Note that you can add the --config _config.yml,_quick_build.yml
build flag to jekyll serve
for a faster, but partial build of the site.
For more information on the build options, see the Jekyll docs and for the production build script, see build.yaml.
For this section of the guide, we'll walk through OBU's source tree.
You can think of each of the _folders
in the source code as representing individual object types.
Each folder is a different "table" in a hardcoded "database":
- _authors - Each author with their own page.
- _content - All of the individual works in the library, divided by
category
based on the type. Each content item has a number of metadata fields listing its bibliographic information (e.g.pages
). The site templates use this information to render the HTML pages of the website. - _categories - This folder houses the
index.html
pages for the/content/*
folders and contains a little metadata about the categories, such as their English titles. - _courses - The University's courses.
- _data - Site configuration variables.
- _drafts - Unpublished courses or tags.
- _includes - A Jekyll folder which houses the site's reusable UI components.
- _journals - Periodicals which get their own page.
- _layouts houses the html page templates.
- _plugins is not a collection but rather contains native Ruby extensions for quickly running complex algorithms or for dynamically generating content.
- _posts are the blog posts which make up the newsletter.
- _publishers are the publishers which I have granted their own hub page.
- _sass contains the site's css.
- _series - Are collections of
_content
items that were published as part of anumber
edseries
(specified by fields on the content item) - _tags - The bibliographic topics, arranged in a directed, ontological graph via the
parents
field. - _tests - A couple of pages with Integration Tests. Currently, only the "content" tests are actively monitored.
Lastly,
- .github/workflows contains my GitHub Actions Workflow files which build the site and check for broken links.
The beauty of Jekyll is that it outputs plain HTML, which you can reuse in a variety of ways. The entire database can also be found in Bibtex format here, in case that's helpful, for example for importing into an academic reference manager.
Feel free to reuse this website in any (ethical) way you like consistent with the attached MIT License.
A slightly out-of-date backup of the site's source code can be found at: