Skip to content

Nonbinary-Hebrew-Project/website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

369 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nonbinary Hebrew Project

This is the repository for the Nonbinary Hebrew Project website.

If you have a github account with editing permissions on this repo, most copy editing can be done using the Content Management System (CMS): https://nonbinaryhebrew.com/admin/

Admins can give new people access to the CMS by inviting their github account to our github organization here.

Using the CMS

Much of the site can be edited through the CMS using the available collections:

  • Pages - lets you edit standalone pages, such as the Donate page and the About Us page.
  • Grammar - lets you edit the pages in the Grammar learning module on the site.
  • NBHP In Practice - lets you edit and tag the blog-like pages for applied uses of NBHP.
  • Resources - these pages are not currently surfaced on the site, it was a potential idea we were exploring.
  • Configuration - provides additional configuration options for the website, such as adding things to the Nav Bar and editing the home page content.

It is recommended that you toggle the editor in the CMS to "Markdown" rather than "Rich Text" for most cases. Rich Text can be useful for adding images, but it doesn't play nicely with our hebrew formatting.

We also have some special HTML-like tags that you can use for fancy formatting:

  • <PdfViewer frontMatter={frontMatter} />
    • This is available for NBHP In Practice pages, where you can upload files directly, and then add this tag to the body to get a fancy inline PDF viewer for each uploaded file.
  • <HB> צ </HB>
    • The Hebrew Block (HB) tag ensures that all our Hebrew is consistently formatted and highly accessible.
    • You can only have a single line of hebrew in it, so if you need multi-line hebrew, surround each line.
    • Because mixing left-to-right and right-to-left languages can get messy on a computer, it is recommended that you first type <HB> </HB> with 2 spaces in between on an english keyboard, and then type the hebrew inside the spaces with a hebrew keyboard. The space on either side of the hebrew provides buffer that helps the website parse the HB tag properly.
  • <DonateButton/>
    • You can add this on any page to insert our donate button widget.

Diagnosing deployment issues

Deployment happens automatically on push to main, which happens automatically when publishing from the CMS.

If deployment isn't working (you're not seeing your changes show up on the site), the build is probably broken due to a syntax error introduced. You can check the status and diagnose it by visiting the Actions tab in the Github repo. There you can check whether the build is succeeding or failing. If it is failing, click into it to find the error message, which should help you figure out how to fix the problem in the CMS.

Changes that require manual edits

Adding a new CMS Collection

If you want to add a new collection to the CMS, which is required for things like adding a new subsection to the Grammar docs, you will need to create a new folder and edit the CMS config file manually. This will require some understanding of how to clone a github repo or how to edit a repo in the Github UI.

Steps:

  1. Create a new folder inside the docusaurus/docs folder with at least 1 file in it to start. Put the folder inside an existing folder (such as grammar or resources to create a subsection of an existing collection; if you want to create a totally separate section with its own navigation leftbar, then you will also have to add a new Sidebar (see the following section of this readme)
  2. Copy existing configuration in docusaurus/static/config.yml such as the following. Set the name and label to whatever you want, and set folder to the new folder that you created.
  - name: grammar
    label: "Grammar"
    folder: docusaurus/docs/grammar
    identifier_field: title
    extension: mdx
    format: frontmatter
    widget: "list"
    create: true
    slug: "{{slug}}"
    fields:
      - { name: title, label: Title, widget: string }
      - {
          name: body,
          hint: "For hebrew blocks, use <HB> צ </HB>. Multi-line hebrew blocks are not supported.",
          label: Body,
          widget: markdown,
        }
      - { name: slug, label: Slug, widget: string }
      - {
          name: sidebar_position,
          label: "Sidebar Position",
          widget: number,
          value_type: int,
        }

Making a new Sidebar for a new Collection

This will require some understanding if editing a Github repository using a clone or the Github UI. It will also require manually editing configuration in Typescript/Javascript. If you want to create a new sidebar (group of documents that can be navigated between using a left nav bar), edit docusaurus/docusaurus.config.ts and add a new entry in the plugins: section, like:

    [
      "@docusaurus/plugin-content-docs",
      {
        id: "resources",
        path: "docs/resources",
        routeBasePath: "resources",
        sidebarPath: require.resolve("./sidebars.js"),
      },
    ],

Then you can link to it in the top bar by adding a new entry to the navbar: items: section like:

        {
          docsPluginId: "resources",
          type: "docSidebar",
          sidebarId: "resourcesSidebar",
          position: "left",
          label: "Resources",
        },

Under the hood

We use Docusaurus as our static site generator, with a Lunr plugin for client-side search.

We use DecapCMS as our CMS, which relies on Github authentication.

We use Netlify for deployment and free hosting.

For transliteration, we use: https://github.com/charlesLoder/hebrew-transliteration

For translation, we use a combination of a custom translation dictionary connected to our CMS, and https://github.com/openscriptures/strongs

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages