npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bahai-browser

v0.6.1

Published

An app to browser the Bahá'í Writings and associated texts'

Downloads

5

Readme

bahai-browser

This web app is for browsing the Bahá'í Writings and related texts.

See the web app in action or see some videos introducing the app.

Please note that while the website is functioning, this code is currently under construction as we attempt to break up the constituent code into separate reusable repositories. The history of the project prior to construction is under the bahaiwritings project, but that project is now going to be reserved for the Bahá'í Writings only.

Although the TextBrowser project for which this repository includes content is open sourced under the MIT license (as is the specific JSON formatting (and schema and meta-data files) of this repository), the contents of this data repository are under their own licenses and their copyright is retained. The usage terms of the Baha'i Writings are described at http://www.bahai.org/legal. The Qur'an and Bible translations (Rodwell/Sale and the King James) as well as the notes of Sale and Rodwell are in the public domain. The Baha'i translation cross-references are under the MIT license. Lights of Guidance is under its own copyright as is the Collins bibliography.

Installation

npm install bahai-browser

To-dos

  1. Waiting: It is hoped that the addition of these tables (which are Scriptures) can also be automatically generated from any possible future authoritative API

    1. Suggest API to Baha'i World Centre to automatically (and periodically) parse their texts into JSON here to ensure we have the most up-to-date and corrected translations
  2. Integrate with Steven Phelps' inventory of the Writings; could add a single link to the metadata for whole works, but especially useful for the by-verse annotations (its links to musical interpretation of individual Hidden Words; of course, Bahai9.com could also link to them).

  3. Make iframes responsive https://blog.theodo.com/2018/01/responsive-iframes-css-trick/

  4. Use https://github.com/sapegin/shipit against a hidden config file to auto-deploy to https://bahai-browser.org

  5. Customize which voices get used

  6. Ability to bind plugin language dynamically at run-time rather than JSON, so any field can be translated

  7. Add plugin using such as https://github.com/recogito/recogito-js for inline, and more range-flexible annotations, using adapter that works with W3C-standard Web Annotations; also is a validator.

    1. Could create a corresponding server, including possibly as a Mediawiki extension which provided a CRUD adapter for Web Annotations to/from MW API calls (including login) which allowed loading/updating content from within a wiki (or say a User subpage or maybe Wikidata) as the basis for the annotations. As wikidata can be federated, could have a dedicated user wiki for user annotations separate from a more formal, offical one for more general purpose data.
  8. Use Wikidata.org language data to transform Arabic (or Persian) to root words for dictionary look-up (if not Wiktionary or Wikidata->Wikipedia->language link mapping, then any other free dictionary we might find)

  9. Upon update completion have service worker read from the (latest section of) CHANGES.md

  10. Add more Cypress tests?

  11. Add disableable "Powered by TextBrowser" message on non-results pages with link to that repo.

  12. Break out plugins into separate repository(ies) for reusability with textbrowser (and publicize their presence on its wiki).

    1. Make (modular) plugin schemas

    2. Change wikilinks to be able to make post-load (CORS?) HEAD detection of Last-Modified as with BADIPagesCreatedLinks, so can style uncreated links in orange and make own cache; or to avoid multiple repeat requests, query a central cache (even an API to BADIPagesCreatedLinks).

    3. Allow plugins to be reused multiple times with different metadata

  13. Apply https://www.gnu.org/software/librejs/free-your-javascript.html labels to provide machine-automated detection of (open source) licenses.

  14. ONGOING:

    1. Once stabilized, target TextBrowser dependency by tagged version.

    2. Ensure notextbrowser branch is kept up to date with master besides the package.json and absent HTML/JavaScript/CSS differences.

    3. Ensure still passing tests/validating

    4. Once TextBrowser version stabilizes, target "textbrowser" dependency by tagged version instead of master.

  15. See TextBrowser to-dos

  16. Fix tooltip when showing just 2 columns (Arabic goes too far to right)

  17. Actually update notextbrowser branch and tag this version when stable

  18. Add/change data files and meta-data files to use $schema?

  19. Fix TextBrowser so it can load with a port in npm start

  20. Change schema references (in both bahaiwritings branches) to point to absolute URLs so as to be independent of repository/branch (rather than their current assumption of being utilized within TextBrowser).

  21. Look at backlinks for templates like {{pup|}} to find the pages which reference a book, and then look for the heading above those quotes, so as to insert summary headings next to paragraphs as we do for the Kitáb-i-Aqdas indexes. Could also just use WhatLinksHere backlinks to include the title of the page on which it was cited.

  22. Add/Add back references for automated:

    1. Synopsis, Roman numerals (pm, gwb), Chinese numbers, word-by-word translation (Persian/Arabic/German/English) with ruby-style annotations above the word and/or tooltip option, auto-romanized Persian (Baha'i-style with help link to http://bahai9.com/wiki/Pronunciation), Persian with English tooltips, English with Persian tooltips, text-to-(Google search, Google define, Wikipedia, bahai9.com edit pages); add Word-by-word/phrase mapping

    2. Make a version for the Browser API to enable side-by-side views of (Bahai9.com) iframes dedicated to a given verse/paragraph!

  23. Specific works - See bahaiwritings

  24. Lower priority

    1. Add any other reasonable browse_options
    2. Add "By page" for the Aqdas (once parsed by page)
    3. Further localization including column aliases, etc.
    4. Baha'i Bot for Discord?
    5. Idea for plugin to add links to a Calendar/Task API (no web standard yet apparently)

Testing

You will first need to run npm install.

The syntax used in the tests currently only works in a modern browser. Note that this may lock up your terminal as the validator must load and process all of the files (including child files):

npm test

Note that the tests currently only perform schema validation. We do not yet have full UI tests though these can be run with:

npm run browser-test

If you merely wish to see the app running in a server, you can run:

npm run server

Background

For background of this project, see TextBrowser's History section.

Justification

While there was a letter from the international governing body of the Bahá'í Faith (online at http://bahai-library.com/uhj_interlinear_writings_cta), suggesting that interlinear publications are not necessary for the Bahá'í Writings, I do not think that this guidance pertains to our project for the following reasons:

  • The context appears to be more about official print publications which would need to justify resources being spent on such specialized text versions. The original question refers to Publishing Trusts and the response speaks of "all other readers" (besides those comparing with the Persian/Arabic originals) being distracted, whereas online, there are minimal (and non-official) resources being spent to provide the works, so there is no concern for distraction of other readers (and those using our TextBrowser-based tool can indeed selectively disable any column they wish).

  • Besides allowing those already familiar with English (or other translations) and Arabic/Persian, to confirm the original meaning, the availability of such interlinear tools allows for comparison by language learners who, although as per the letter, learning the original language is not required in the Bahá'í Faith, the learning of the original is very much praised as evident in the quotations at https://bahai9.com/wiki/Persian and https://bahai9.com/wiki/Arabic.

  • Our software tool is not confined to displaying translations multilinearly. For example, the version of the Qur'án herein included also provide notes which can be viewed interlinearly (from translators whose works were, at least for the time when translations into English were not as abundant, recommended for use or study by Bahá'ís), and study of such notes was even recommended by Shoghi Effendi. More such non-translation fields, including automated ones, are planned. And the tool can even be used for viewing merely the paragraph number and a single language of text. (While the notes of Rodwell were not recommended, and are indeed often antagonistic or skeptical of His Holiness Muhammad, they are provided largely for the sake of Biblical cross-references, and can be selectively omitted from view.)