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

@flatland/sermon-note-parser

v1.2.0

Published

At [Flatland Church](https://flatlandchurch.com) we want to provide our people the ability to take notes during our Sunday morning service as well as online afterward.

Downloads

7

Readme

Sermon Note Parser

At Flatland Church we want to provide our people the ability to take notes during our Sunday morning service as well as online afterward.

One of the challenges we were faced with was a reusable format for notes that can be written like Markdown but can contain fill-in notes, spots to take free notes, as well as a special format to indicate Bible verses.

The resulting parser creates a tree with 4 possible node types: text, fill_in, note, and verse.

Note Tree

A note tree node will consist of the following values:

| Property | Description | Present On | | --- | --- | --- | | type | The type the node belongs to, one of: text, fill_in, note, or verse | text, fill_in, note, verse | | text | The content of the node, be it a line of text, the answer to fill-in, or verse content | text, fill_in, verse | | lineBreakAfter | Whether a line break was present in the original document following this node. Always true for note | text, fill_in, note, verse | | id | A unique identifier of each node. This is useful for matching saved user generated data to the document. | text, fill_in, note, verse | | ref | Data related to the verse in question. | verse |

Verse Ref

| Property | Description | | --- | --- | | book | The book of the Bible the verse comes from | | chapter | The chapter of the book of the Bible the verse comes from | | verse | The verse of the book of the Bible | | version | The version of the Bible the verse is quoting |

Example:

[
    {
        type: 'text',
        text: '1. The most important thing to remember is ',
        id: 'abc123',
        lineBreakAfter: false,
    },
    {
        type: 'fill_in',
        text: 'Jesus',
        id: 'abc231',
        lineBreakAfter: false,
    },
    {
        type: 'note',
        id: 'abc312',
        lineBreakAfter: true,
    },
    {
        type: 'verse',
        id: 'abc213',
        lineBreakAfter: true,
        text: 'but whose delight is in the law of the LORD, and who meditates on his law day and night.',
        ref: {
            book: 'Psalm',
            chapter: 1,
            verse: 2,
        },
    },
]

Note Text Format

Our note text format (the input text) is designed to be able to work with standard markdown, so any additions we've created for fill-ins, notes, and verses should not clash with a standard markdown document.

Fill In

In order to put a fill-in-the-blank note into your text, simply enclose it with angle brackets:

1. The most important thing to remember is <Jesus> loves you

Note

Notes can be added anywhere in the document. A note is simply an asterisk (*) enclosed with angle brackets:

There are many times throughout the Bible where we see God's in action. <*>

Something to note here is that while you are free to use the resulting tree any way you like, for our use case we've made a business rule that notes will always be followed by a line break. Thus the lineBreakAfter prop will be set to true any time a note is present.

Verse

Verses are the most complicated of the bunch. In order to get the most bang for your buck you'll need to precede each verse with it's verse number enclosed in square brackets [14]. You'll also want to follow up your verse with what we call Verse Matter on the following line: | Book | Chapter | Version |. Here's an example:

[1] Blessed is the one who does not walk in step with the wicked or stand in the way that sinners take or sit in the company of mockers, [2] but whose delight is in the law of the LORD, and who meditates on his law day and night.
| Psalm | 1 | NIV |