Add Strong's dictionary reference package
This commit is contained in:
+7
-1
@@ -2,7 +2,13 @@
|
||||
|
||||
## Current
|
||||
|
||||
- Restored LibreBible to a source-neutral public catalog foundation.
|
||||
- Added Strong's dictionary reference material for KJV word links.
|
||||
|
||||
## 0.1.6 - 2026-07-12
|
||||
|
||||
- Added Open Scriptures Strong's Hebrew and Greek dictionaries as a LibreBible lexicon resource.
|
||||
- Generated dictionary JSONL packages keyed by Strong's number for KJV hover/click reference behavior.
|
||||
- Connected the dictionary package to existing KJV Strong's links through catalog attachment metadata.
|
||||
|
||||
## 0.1.5 - 2026-07-12
|
||||
|
||||
|
||||
+2
-1
@@ -6,4 +6,5 @@ This file is generated from source manifests and package catalogs. Edit `sources
|
||||
|
||||
| Resource | Type | Language | Date / Edition | Source | License | Features | Attachments | Counts | Detail |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [King James (Authorized) Version](docs/resources/kjv-eng-kjv2006.md) | translation | English (eng) - archaic British | 1611; 1769 edition | eBible.org | Public Domain (redistributable) | Bible text, Strong's-linked words, USFM source | Strong's links, future: study_notes, future: commentary, future: cross_references, future: morphology, future: lemma_links, future: lexicon, future: dictionary, future: maps, future: timeline, future: media | 66 books, 31102 verses, 348884 Strong's links | [Details](docs/resources/kjv-eng-kjv2006.md) |
|
||||
| [King James (Authorized) Version](docs/resources/kjv-eng-kjv2006.md) | translation | English (eng) - archaic British | 1611; 1769 edition | eBible.org | Public Domain (redistributable) | Bible text, Strong's-linked words, USFM source, Strong's dictionary lookup | Strong's links, Strong's dictionary lookup, future: study_notes, future: commentary, future: cross_references, future: morphology, future: lemma_links, future: lexicon, future: dictionary, future: maps, future: timeline, future: media | 66 books, 31102 verses, 348884 Strong's links | [Details](docs/resources/kjv-eng-kjv2006.md) |
|
||||
| [Strong's Hebrew and Greek Dictionaries](docs/resources/strongs-open-scriptures.md) | lexicon | English (eng) | n/a | Open Scriptures | CC-BY-SA digital edition; original Strong's dictionaries public domain (redistributable) | Strong's dictionary entries, Hebrew and Aramaic entries, Greek entries | Strong's number definitions, future: morphology, future: lemma_links | 14197 dictionary entries | [Details](docs/resources/strongs-open-scriptures.md) |
|
||||
|
||||
@@ -50,11 +50,13 @@ Public-domain KJV package based on the 1769 standardized text, with Strong's num
|
||||
- Bible text: translation_text; languages: eng; embedded
|
||||
- Strong's-linked words: concordance_links; languages: hebrew, aramaic, greek; systems: strongs; embedded; package: packages/json/kjv-eng-kjv2006/strongs-links.jsonl
|
||||
- USFM source: source_format; format: usfm
|
||||
- Strong's dictionary lookup: lexicon_lookup; languages: hebrew, aramaic, greek, eng; systems: strongs; package: packages/json/strongs-open-scriptures/entries.jsonl
|
||||
|
||||
## Attachments
|
||||
|
||||
Included:
|
||||
- Strong's links: concordance_links; word-to-strongs; anchors: verse, word, strongs_number; languages: hebrew, aramaic, greek; systems: strongs; package: packages/json/kjv-eng-kjv2006/strongs-links.jsonl
|
||||
- Strong's dictionary lookup: lexicon; strongs-number-to-definition; anchors: strongs_number, word; languages: hebrew, aramaic, greek, eng; systems: strongs; package: packages/json/strongs-open-scriptures/entries.jsonl
|
||||
|
||||
Supported future attachment types:
|
||||
- study_notes
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
# Strong's Hebrew and Greek Dictionaries
|
||||
|
||||
Strong's Hebrew and Greek dictionary entries keyed by Strong's number for KJV word hover, click, and concordance reference views.
|
||||
|
||||
## Identity
|
||||
|
||||
- Resource ID: `strongs-open-scriptures`
|
||||
- Type: lexicon
|
||||
- Abbreviation: Strong's
|
||||
- Short title: Strong's Dictionaries
|
||||
- Alternate IDs: openscriptures/strongs
|
||||
- Language: English (eng)
|
||||
- Canon: reference
|
||||
|
||||
## Translation
|
||||
|
||||
- Base title: n/a
|
||||
- Translation year: n/a
|
||||
- Edition: n/a
|
||||
- Edition year: n/a
|
||||
- Source text basis: n/a
|
||||
- Tradition: n/a
|
||||
|
||||
## Source
|
||||
|
||||
- Provider: Open Scriptures
|
||||
- Upstream ID: openscriptures/strongs
|
||||
- Upstream page: https://github.com/openscriptures/strongs
|
||||
- Download URL: https://github.com/openscriptures/strongs/archive/0acd2f251c2d35ff8db2dece4e0593979d3ac223.zip
|
||||
- Source format: github-archive-zip
|
||||
- Upstream last updated: 2017-04-15
|
||||
- Available upstream formats: n/a
|
||||
|
||||
## License
|
||||
|
||||
- Name: CC-BY-SA digital edition; original Strong's dictionaries public domain
|
||||
- Redistribution allowed: Yes
|
||||
- License/source URL: https://github.com/openscriptures/strongs
|
||||
- Attribution: Strong's Dictionaries of Hebrew and Greek, original work by James Strong; digital JSON edition by Open Scriptures.
|
||||
- Jurisdiction notes: The original Strong's dictionaries are public domain. The Open Scriptures JSON/digital edition identifies itself as CC-BY-SA.
|
||||
- Restrictions: Redistributed normalized package should preserve attribution and share-alike notice.
|
||||
|
||||
## Contributors
|
||||
|
||||
- James Strong: original dictionary compiler
|
||||
- Open Scriptures: digital text maintainer and JSON provider
|
||||
|
||||
## Features
|
||||
|
||||
- Strong's dictionary entries: lexicon; languages: hebrew, aramaic, greek, eng; systems: strongs; embedded; package: packages/json/strongs-open-scriptures/entries.jsonl
|
||||
- Hebrew and Aramaic entries: dictionary; languages: hebrew, aramaic, eng; systems: strongs; embedded; package: packages/json/strongs-open-scriptures/hebrew.jsonl
|
||||
- Greek entries: dictionary; languages: greek, eng; systems: strongs; embedded; package: packages/json/strongs-open-scriptures/greek.jsonl
|
||||
|
||||
## Attachments
|
||||
|
||||
Included:
|
||||
- Strong's number definitions: lexicon; strongs-number-to-definition; anchors: strongs_number, word; languages: hebrew, aramaic, greek, eng; systems: strongs; package: packages/json/strongs-open-scriptures/entries.jsonl
|
||||
|
||||
Supported future attachment types:
|
||||
- morphology
|
||||
- lemma_links
|
||||
|
||||
## Generated Package
|
||||
|
||||
- Package catalog: packages/json/strongs-open-scriptures/catalog.json
|
||||
- Verses JSONL: n/a
|
||||
- Strong's links JSONL: n/a
|
||||
- Entries JSONL: packages/json/strongs-open-scriptures/entries.jsonl
|
||||
- Source SHA-256: 04a2d6d0a13d75f17e562998bba7491beeed5a149909f904d12dd80aa1e47037
|
||||
- Last checked: 2026-07-12T12:37:00Z
|
||||
|
||||
## Counts
|
||||
|
||||
- Books: n/a
|
||||
- Verses: n/a
|
||||
- Strong's links: n/a
|
||||
- Entries: 14197
|
||||
- Commentary entries: n/a
|
||||
- Dictionary entries: 14197
|
||||
|
||||
## Package Checksums
|
||||
|
||||
- entries_jsonl: `entries.jsonl` (b3d03e03592cc1c2b0a4c73ee7c9f65f325b812239119b4e3b951da37cef73f2)
|
||||
- hebrew_jsonl: `hebrew.jsonl` (1e97e18fa7f7ccc26ef814751c79e08ad3fa50b0380b59c8f2b5d04149328805)
|
||||
- greek_jsonl: `greek.jsonl` (4f450d8ec36066fb575e039e2152d34f6785813f059c577a02bc5ab552e13479)
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "libre-bible-data",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.6",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "libre-bible-data",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.6",
|
||||
"dependencies": {
|
||||
"adm-zip": "^0.5.16"
|
||||
}
|
||||
|
||||
+3
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "libre-bible-data",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.6",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
@@ -8,7 +8,8 @@
|
||||
"docs": "node scripts/generate-docs.js",
|
||||
"catalog": "node scripts/generate-catalog.js",
|
||||
"import:kjv": "node scripts/import-usfm.js sources/kjv-eng-kjv2006.json",
|
||||
"build": "npm run check && npm run import:kjv && npm run catalog && npm run docs"
|
||||
"import:strongs": "node scripts/import-strongs.js sources/strongs-open-scriptures.json",
|
||||
"build": "npm run check && npm run import:kjv && npm run import:strongs && npm run catalog && npm run docs"
|
||||
},
|
||||
"dependencies": {
|
||||
"adm-zip": "^0.5.16"
|
||||
|
||||
+199
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "librebible.index-catalog.v1",
|
||||
"project": "LibreBible",
|
||||
"generated_at": "2026-07-12T12:05:53.357Z",
|
||||
"generated_at": "2026-07-12T12:40:40.189Z",
|
||||
"resources": [
|
||||
{
|
||||
"id": "kjv-eng-kjv2006",
|
||||
@@ -73,6 +73,22 @@
|
||||
"label": "USFM source",
|
||||
"format": "usfm",
|
||||
"embedded": false
|
||||
},
|
||||
{
|
||||
"id": "strongs-dictionary-lookup",
|
||||
"type": "lexicon_lookup",
|
||||
"label": "Strong's dictionary lookup",
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": false,
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"attachments": {
|
||||
@@ -97,6 +113,27 @@
|
||||
],
|
||||
"source": "Embedded in the eBible USFM package.",
|
||||
"package": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "kjv-eng-kjv2006-strongs-dictionary",
|
||||
"resource_type": "lexicon",
|
||||
"label": "Strong's dictionary lookup",
|
||||
"relationship": "strongs-number-to-definition",
|
||||
"anchor_types": [
|
||||
"strongs_number",
|
||||
"word"
|
||||
],
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"source": "LibreBible resource strongs-open-scriptures.",
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"supported_future_types": [
|
||||
@@ -175,6 +212,167 @@
|
||||
"expected_sha256": "4ea6952590d070bfa22985aded48a49581e31b568a60aa09e25f73462e700e7d",
|
||||
"last_checked_at": "2026-07-12T02:18:30Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "strongs-open-scriptures",
|
||||
"resource_type": "lexicon",
|
||||
"title": "Strong's Hebrew and Greek Dictionaries",
|
||||
"short_title": "Strong's Dictionaries",
|
||||
"abbreviation": "Strong's",
|
||||
"alternate_ids": [
|
||||
"openscriptures/strongs"
|
||||
],
|
||||
"language": {
|
||||
"code": "eng",
|
||||
"name": "English"
|
||||
},
|
||||
"script": "Latn",
|
||||
"canon": {
|
||||
"scope": "reference",
|
||||
"notes": "Dictionary entries are keyed by Hebrew and Greek Strong's numbers."
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "James Strong",
|
||||
"role": "original dictionary compiler"
|
||||
},
|
||||
{
|
||||
"name": "Open Scriptures",
|
||||
"role": "digital text maintainer and JSON provider"
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"id": "strongs-dictionary-entries",
|
||||
"type": "lexicon",
|
||||
"label": "Strong's dictionary entries",
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "strongs-hebrew-dictionary",
|
||||
"type": "dictionary",
|
||||
"label": "Hebrew and Aramaic entries",
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/hebrew.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "strongs-greek-dictionary",
|
||||
"type": "dictionary",
|
||||
"label": "Greek entries",
|
||||
"languages": [
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/greek.jsonl"
|
||||
}
|
||||
],
|
||||
"attachments": {
|
||||
"included": [
|
||||
{
|
||||
"id": "strongs-number-definitions",
|
||||
"resource_type": "lexicon",
|
||||
"label": "Strong's number definitions",
|
||||
"relationship": "strongs-number-to-definition",
|
||||
"anchor_types": [
|
||||
"strongs_number",
|
||||
"word"
|
||||
],
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"source": "Open Scriptures Strong's dictionary JSON derived from Strong's public-domain dictionaries.",
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"supported_future_types": [
|
||||
"morphology",
|
||||
"lemma_links"
|
||||
]
|
||||
},
|
||||
"source": {
|
||||
"provider": "Open Scriptures",
|
||||
"url": "https://github.com/openscriptures/strongs",
|
||||
"download_url": "https://github.com/openscriptures/strongs/archive/0acd2f251c2d35ff8db2dece4e0593979d3ac223.zip",
|
||||
"format": "github-archive-zip",
|
||||
"upstream_id": "openscriptures/strongs",
|
||||
"upstream_last_updated": "2017-04-15",
|
||||
"commit": "0acd2f251c2d35ff8db2dece4e0593979d3ac223"
|
||||
},
|
||||
"license": {
|
||||
"name": "CC-BY-SA digital edition; original Strong's dictionaries public domain",
|
||||
"redistribution": true,
|
||||
"share_alike": true,
|
||||
"jurisdiction_notes": "The original Strong's dictionaries are public domain. The Open Scriptures JSON/digital edition identifies itself as CC-BY-SA.",
|
||||
"source_license_url": "https://github.com/openscriptures/strongs",
|
||||
"attribution": "Strong's Dictionaries of Hebrew and Greek, original work by James Strong; digital JSON edition by Open Scriptures.",
|
||||
"restricted_notes": "Redistributed normalized package should preserve attribution and share-alike notice."
|
||||
},
|
||||
"catalog_display": {
|
||||
"primary_features": [
|
||||
"Strong's dictionary entries",
|
||||
"Hebrew and Aramaic entries",
|
||||
"Greek entries"
|
||||
],
|
||||
"summary": "Strong's Hebrew and Greek dictionary entries keyed by Strong's number for KJV word hover, click, and concordance reference views."
|
||||
},
|
||||
"package_path": "packages/json/strongs-open-scriptures/catalog.json",
|
||||
"source_manifest_path": "sources/strongs-open-scriptures.json",
|
||||
"detail_doc_path": "docs/resources/strongs-open-scriptures.md",
|
||||
"counts": {
|
||||
"entries": 14197,
|
||||
"dictionary_entries": 14197,
|
||||
"hebrew_entries": 8674,
|
||||
"greek_entries": 5523
|
||||
},
|
||||
"files": {
|
||||
"entries_jsonl": {
|
||||
"path": "entries.jsonl",
|
||||
"bytes": 4943907,
|
||||
"sha256": "b3d03e03592cc1c2b0a4c73ee7c9f65f325b812239119b4e3b951da37cef73f2"
|
||||
},
|
||||
"hebrew_jsonl": {
|
||||
"path": "hebrew.jsonl",
|
||||
"bytes": 3049791,
|
||||
"sha256": "1e97e18fa7f7ccc26ef814751c79e08ad3fa50b0380b59c8f2b5d04149328805"
|
||||
},
|
||||
"greek_jsonl": {
|
||||
"path": "greek.jsonl",
|
||||
"bytes": 1894116,
|
||||
"sha256": "4f450d8ec36066fb575e039e2152d34f6785813f059c577a02bc5ab552e13479"
|
||||
}
|
||||
},
|
||||
"checks": {
|
||||
"expected_sha256": "04a2d6d0a13d75f17e562998bba7491beeed5a149909f904d12dd80aa1e47037",
|
||||
"last_checked_at": "2026-07-12T12:37:00Z"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -70,6 +70,22 @@
|
||||
"label": "USFM source",
|
||||
"format": "usfm",
|
||||
"embedded": false
|
||||
},
|
||||
{
|
||||
"id": "strongs-dictionary-lookup",
|
||||
"type": "lexicon_lookup",
|
||||
"label": "Strong's dictionary lookup",
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": false,
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"attachments": {
|
||||
@@ -94,6 +110,27 @@
|
||||
],
|
||||
"source": "Embedded in the eBible USFM package.",
|
||||
"package": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "kjv-eng-kjv2006-strongs-dictionary",
|
||||
"resource_type": "lexicon",
|
||||
"label": "Strong's dictionary lookup",
|
||||
"relationship": "strongs-number-to-definition",
|
||||
"anchor_types": [
|
||||
"strongs_number",
|
||||
"word"
|
||||
],
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"source": "LibreBible resource strongs-open-scriptures.",
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"supported_future_types": [
|
||||
@@ -152,7 +189,7 @@
|
||||
"name": "scripts/import-usfm.js",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"generated_at": "2026-07-12T12:05:53.357Z",
|
||||
"generated_at": "2026-07-12T12:40:38.744Z",
|
||||
"source_sha256": "4ea6952590d070bfa22985aded48a49581e31b568a60aa09e25f73462e700e7d",
|
||||
"checks": {
|
||||
"expected_sha256": "4ea6952590d070bfa22985aded48a49581e31b568a60aa09e25f73462e700e7d",
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"schema_version": "librebible.resource-catalog.v1",
|
||||
"project": "LibreBible",
|
||||
"id": "strongs-open-scriptures",
|
||||
"resource_type": "lexicon",
|
||||
"title": "Strong's Hebrew and Greek Dictionaries",
|
||||
"short_title": "Strong's Dictionaries",
|
||||
"abbreviation": "Strong's",
|
||||
"alternate_ids": [
|
||||
"openscriptures/strongs"
|
||||
],
|
||||
"language": {
|
||||
"code": "eng",
|
||||
"name": "English"
|
||||
},
|
||||
"script": "Latn",
|
||||
"canon": {
|
||||
"scope": "reference",
|
||||
"notes": "Dictionary entries are keyed by Hebrew and Greek Strong's numbers."
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "James Strong",
|
||||
"role": "original dictionary compiler"
|
||||
},
|
||||
{
|
||||
"name": "Open Scriptures",
|
||||
"role": "digital text maintainer and JSON provider"
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"id": "strongs-dictionary-entries",
|
||||
"type": "lexicon",
|
||||
"label": "Strong's dictionary entries",
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "strongs-hebrew-dictionary",
|
||||
"type": "dictionary",
|
||||
"label": "Hebrew and Aramaic entries",
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/hebrew.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "strongs-greek-dictionary",
|
||||
"type": "dictionary",
|
||||
"label": "Greek entries",
|
||||
"languages": [
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/greek.jsonl"
|
||||
}
|
||||
],
|
||||
"attachments": {
|
||||
"included": [
|
||||
{
|
||||
"id": "strongs-number-definitions",
|
||||
"resource_type": "lexicon",
|
||||
"label": "Strong's number definitions",
|
||||
"relationship": "strongs-number-to-definition",
|
||||
"anchor_types": [
|
||||
"strongs_number",
|
||||
"word"
|
||||
],
|
||||
"languages": [
|
||||
"hebrew",
|
||||
"aramaic",
|
||||
"greek",
|
||||
"eng"
|
||||
],
|
||||
"systems": [
|
||||
"strongs"
|
||||
],
|
||||
"source": "Open Scriptures Strong's dictionary JSON derived from Strong's public-domain dictionaries.",
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"supported_future_types": [
|
||||
"morphology",
|
||||
"lemma_links"
|
||||
]
|
||||
},
|
||||
"source": {
|
||||
"provider": "Open Scriptures",
|
||||
"url": "https://github.com/openscriptures/strongs",
|
||||
"download_url": "https://github.com/openscriptures/strongs/archive/0acd2f251c2d35ff8db2dece4e0593979d3ac223.zip",
|
||||
"format": "github-archive-zip",
|
||||
"upstream_id": "openscriptures/strongs",
|
||||
"upstream_last_updated": "2017-04-15",
|
||||
"commit": "0acd2f251c2d35ff8db2dece4e0593979d3ac223"
|
||||
},
|
||||
"license": {
|
||||
"name": "CC-BY-SA digital edition; original Strong's dictionaries public domain",
|
||||
"redistribution": true,
|
||||
"share_alike": true,
|
||||
"jurisdiction_notes": "The original Strong's dictionaries are public domain. The Open Scriptures JSON/digital edition identifies itself as CC-BY-SA.",
|
||||
"source_license_url": "https://github.com/openscriptures/strongs",
|
||||
"attribution": "Strong's Dictionaries of Hebrew and Greek, original work by James Strong; digital JSON edition by Open Scriptures.",
|
||||
"restricted_notes": "Redistributed normalized package should preserve attribution and share-alike notice."
|
||||
},
|
||||
"catalog_display": {
|
||||
"primary_features": [
|
||||
"Strong's dictionary entries",
|
||||
"Hebrew and Aramaic entries",
|
||||
"Greek entries"
|
||||
],
|
||||
"summary": "Strong's Hebrew and Greek dictionary entries keyed by Strong's number for KJV word hover, click, and concordance reference views."
|
||||
},
|
||||
"importer": {
|
||||
"name": "scripts/import-strongs.js",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"source_manifest_file": "strongs-open-scriptures.json",
|
||||
"generated_at": "2026-07-12T12:40:40.189Z",
|
||||
"source_sha256": "04a2d6d0a13d75f17e562998bba7491beeed5a149909f904d12dd80aa1e47037",
|
||||
"checks": {
|
||||
"expected_sha256": "04a2d6d0a13d75f17e562998bba7491beeed5a149909f904d12dd80aa1e47037",
|
||||
"last_checked_at": "2026-07-12T12:37:00Z"
|
||||
},
|
||||
"counts": {
|
||||
"entries": 14197,
|
||||
"dictionary_entries": 14197,
|
||||
"hebrew_entries": 8674,
|
||||
"greek_entries": 5523
|
||||
},
|
||||
"files": {
|
||||
"entries_jsonl": {
|
||||
"path": "entries.jsonl",
|
||||
"bytes": 4943907,
|
||||
"sha256": "b3d03e03592cc1c2b0a4c73ee7c9f65f325b812239119b4e3b951da37cef73f2"
|
||||
},
|
||||
"hebrew_jsonl": {
|
||||
"path": "hebrew.jsonl",
|
||||
"bytes": 3049791,
|
||||
"sha256": "1e97e18fa7f7ccc26ef814751c79e08ad3fa50b0380b59c8f2b5d04149328805"
|
||||
},
|
||||
"greek_jsonl": {
|
||||
"path": "greek.jsonl",
|
||||
"bytes": 1894116,
|
||||
"sha256": "4f450d8ec36066fb575e039e2152d34f6785813f059c577a02bc5ab552e13479"
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,132 @@
|
||||
import { mkdir, readFile, readdir, rm, writeFile } from 'node:fs/promises'
|
||||
import path from 'node:path'
|
||||
import AdmZip from 'adm-zip'
|
||||
import { downloadFile, readJson, sha256File, writeJson } from './lib.js'
|
||||
|
||||
const manifestPath = process.argv[2]
|
||||
if (!manifestPath) {
|
||||
console.error('Usage: node scripts/import-strongs.js sources/<manifest>.json')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const root = process.cwd()
|
||||
const manifest = await readJson(path.resolve(root, manifestPath))
|
||||
const archivePath = path.join(root, 'cache', manifest.id, path.basename(manifest.source.download_url))
|
||||
const extractDir = path.join(root, 'cache', manifest.id, 'source')
|
||||
const packageDir = path.join(root, 'packages', 'json', manifest.id)
|
||||
|
||||
await downloadFile(manifest.source.download_url, archivePath)
|
||||
const sourceSha = await sha256File(archivePath)
|
||||
if (sourceSha !== manifest.checks.expected_sha256.toLowerCase()) {
|
||||
throw new Error(`${manifest.id}: source checksum mismatch. Expected ${manifest.checks.expected_sha256}, got ${sourceSha}`)
|
||||
}
|
||||
|
||||
await rm(extractDir, { force: true, recursive: true })
|
||||
await mkdir(extractDir, { recursive: true })
|
||||
new AdmZip(archivePath).extractAllTo(extractDir, true)
|
||||
|
||||
const sourceRoot = await findExtractedRoot(extractDir)
|
||||
const greek = parseDictionary(
|
||||
await readFile(path.join(sourceRoot, 'greek', 'strongs-greek-dictionary.js'), 'utf8'),
|
||||
'strongsGreekDictionary',
|
||||
'greek',
|
||||
)
|
||||
const hebrew = parseDictionary(
|
||||
await readFile(path.join(sourceRoot, 'hebrew', 'strongs-hebrew-dictionary.js'), 'utf8'),
|
||||
'strongsHebrewDictionary',
|
||||
'hebrew',
|
||||
)
|
||||
|
||||
const entries = [...hebrew, ...greek].sort((a, b) => {
|
||||
if (a.system !== b.system) return a.system.localeCompare(b.system)
|
||||
return a.number_value - b.number_value
|
||||
})
|
||||
|
||||
await mkdir(packageDir, { recursive: true })
|
||||
await writeJsonl(path.join(packageDir, 'hebrew.jsonl'), hebrew)
|
||||
await writeJsonl(path.join(packageDir, 'greek.jsonl'), greek)
|
||||
await writeJsonl(path.join(packageDir, 'entries.jsonl'), entries)
|
||||
|
||||
const files = {
|
||||
entries_jsonl: await fileInfo(path.join(packageDir, 'entries.jsonl')),
|
||||
hebrew_jsonl: await fileInfo(path.join(packageDir, 'hebrew.jsonl')),
|
||||
greek_jsonl: await fileInfo(path.join(packageDir, 'greek.jsonl')),
|
||||
}
|
||||
|
||||
await writeJson(path.join(packageDir, 'catalog.json'), {
|
||||
schema_version: 'librebible.resource-catalog.v1',
|
||||
project: manifest.project_name ?? 'LibreBible',
|
||||
id: manifest.id,
|
||||
resource_type: manifest.resource_type,
|
||||
title: manifest.title,
|
||||
short_title: manifest.short_title,
|
||||
abbreviation: manifest.abbreviation,
|
||||
alternate_ids: manifest.alternate_ids ?? [],
|
||||
language: manifest.language,
|
||||
script: manifest.script,
|
||||
canon: manifest.canon,
|
||||
contributors: manifest.contributors ?? [],
|
||||
features: manifest.features ?? [],
|
||||
attachments: manifest.attachments ?? {},
|
||||
source: manifest.source,
|
||||
license: manifest.license,
|
||||
catalog_display: manifest.catalog_display,
|
||||
importer: manifest.importer,
|
||||
source_manifest_file: path.basename(manifestPath),
|
||||
generated_at: new Date().toISOString(),
|
||||
source_sha256: sourceSha,
|
||||
checks: manifest.checks,
|
||||
counts: {
|
||||
entries: entries.length,
|
||||
dictionary_entries: entries.length,
|
||||
hebrew_entries: hebrew.length,
|
||||
greek_entries: greek.length,
|
||||
},
|
||||
files,
|
||||
})
|
||||
|
||||
console.log(`${manifest.id}: imported ${entries.length} Strong's dictionary entries`)
|
||||
|
||||
async function findExtractedRoot(dir) {
|
||||
const entries = await readdir(dir, { withFileTypes: true })
|
||||
const dirs = entries.filter((entry) => entry.isDirectory())
|
||||
if (dirs.length !== 1) return dir
|
||||
return path.join(dir, dirs[0].name)
|
||||
}
|
||||
|
||||
function parseDictionary(source, variableName, language) {
|
||||
const match = new RegExp(`var\\s+${variableName}\\s*=\\s*(\\{[\\s\\S]*?\\})\\s*;\\s*(?:module\\.exports\\s*=\\s*${variableName}\\s*;)?\\s*$`).exec(source)
|
||||
if (!match) throw new Error(`Could not find ${variableName}`)
|
||||
const data = JSON.parse(match[1])
|
||||
return Object.entries(data).map(([number, entry]) => ({
|
||||
id: number,
|
||||
strongs_number: number,
|
||||
system: number.startsWith('H') ? 'hebrew' : 'greek',
|
||||
language,
|
||||
number_value: Number(number.slice(1)),
|
||||
lemma: entry.lemma ?? null,
|
||||
transliteration: entry.translit ?? entry.xlit ?? null,
|
||||
pronunciation: entry.pron ?? null,
|
||||
derivation: cleanText(entry.derivation),
|
||||
strongs_definition: cleanText(entry.strongs_def),
|
||||
kjv_definition: cleanText(entry.kjv_def),
|
||||
}))
|
||||
}
|
||||
|
||||
function cleanText(value) {
|
||||
if (value == null) return null
|
||||
return String(value).replace(/\s+/g, ' ').trim()
|
||||
}
|
||||
|
||||
async function writeJsonl(filePath, rows) {
|
||||
await writeFile(filePath, `${rows.map((row) => JSON.stringify(row)).join('\n')}\n`, 'utf8')
|
||||
}
|
||||
|
||||
async function fileInfo(filePath) {
|
||||
const data = await readFile(filePath)
|
||||
return {
|
||||
path: path.basename(filePath),
|
||||
bytes: data.length,
|
||||
sha256: await sha256File(filePath),
|
||||
}
|
||||
}
|
||||
@@ -58,6 +58,15 @@
|
||||
"label": "USFM source",
|
||||
"format": "usfm",
|
||||
"embedded": false
|
||||
},
|
||||
{
|
||||
"id": "strongs-dictionary-lookup",
|
||||
"type": "lexicon_lookup",
|
||||
"label": "Strong's dictionary lookup",
|
||||
"languages": ["hebrew", "aramaic", "greek", "eng"],
|
||||
"systems": ["strongs"],
|
||||
"embedded": false,
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"attachments": {
|
||||
@@ -72,6 +81,17 @@
|
||||
"systems": ["strongs"],
|
||||
"source": "Embedded in the eBible USFM package.",
|
||||
"package": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "kjv-eng-kjv2006-strongs-dictionary",
|
||||
"resource_type": "lexicon",
|
||||
"label": "Strong's dictionary lookup",
|
||||
"relationship": "strongs-number-to-definition",
|
||||
"anchor_types": ["strongs_number", "word"],
|
||||
"languages": ["hebrew", "aramaic", "greek", "eng"],
|
||||
"systems": ["strongs"],
|
||||
"source": "LibreBible resource strongs-open-scriptures.",
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"supported_future_types": [
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"id": "strongs-open-scriptures",
|
||||
"resource_type": "lexicon",
|
||||
"project_name": "LibreBible",
|
||||
"title": "Strong's Hebrew and Greek Dictionaries",
|
||||
"short_title": "Strong's Dictionaries",
|
||||
"abbreviation": "Strong's",
|
||||
"alternate_ids": ["openscriptures/strongs"],
|
||||
"language": {
|
||||
"code": "eng",
|
||||
"name": "English"
|
||||
},
|
||||
"script": "Latn",
|
||||
"canon": {
|
||||
"scope": "reference",
|
||||
"notes": "Dictionary entries are keyed by Hebrew and Greek Strong's numbers."
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "James Strong",
|
||||
"role": "original dictionary compiler"
|
||||
},
|
||||
{
|
||||
"name": "Open Scriptures",
|
||||
"role": "digital text maintainer and JSON provider"
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"id": "strongs-dictionary-entries",
|
||||
"type": "lexicon",
|
||||
"label": "Strong's dictionary entries",
|
||||
"languages": ["hebrew", "aramaic", "greek", "eng"],
|
||||
"systems": ["strongs"],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "strongs-hebrew-dictionary",
|
||||
"type": "dictionary",
|
||||
"label": "Hebrew and Aramaic entries",
|
||||
"languages": ["hebrew", "aramaic", "eng"],
|
||||
"systems": ["strongs"],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/hebrew.jsonl"
|
||||
},
|
||||
{
|
||||
"id": "strongs-greek-dictionary",
|
||||
"type": "dictionary",
|
||||
"label": "Greek entries",
|
||||
"languages": ["greek", "eng"],
|
||||
"systems": ["strongs"],
|
||||
"embedded": true,
|
||||
"package": "packages/json/strongs-open-scriptures/greek.jsonl"
|
||||
}
|
||||
],
|
||||
"attachments": {
|
||||
"included": [
|
||||
{
|
||||
"id": "strongs-number-definitions",
|
||||
"resource_type": "lexicon",
|
||||
"label": "Strong's number definitions",
|
||||
"relationship": "strongs-number-to-definition",
|
||||
"anchor_types": ["strongs_number", "word"],
|
||||
"languages": ["hebrew", "aramaic", "greek", "eng"],
|
||||
"systems": ["strongs"],
|
||||
"source": "Open Scriptures Strong's dictionary JSON derived from Strong's public-domain dictionaries.",
|
||||
"package": "packages/json/strongs-open-scriptures/entries.jsonl"
|
||||
}
|
||||
],
|
||||
"supported_future_types": ["morphology", "lemma_links"]
|
||||
},
|
||||
"source": {
|
||||
"provider": "Open Scriptures",
|
||||
"url": "https://github.com/openscriptures/strongs",
|
||||
"download_url": "https://github.com/openscriptures/strongs/archive/0acd2f251c2d35ff8db2dece4e0593979d3ac223.zip",
|
||||
"format": "github-archive-zip",
|
||||
"upstream_id": "openscriptures/strongs",
|
||||
"upstream_last_updated": "2017-04-15",
|
||||
"commit": "0acd2f251c2d35ff8db2dece4e0593979d3ac223"
|
||||
},
|
||||
"license": {
|
||||
"name": "CC-BY-SA digital edition; original Strong's dictionaries public domain",
|
||||
"redistribution": true,
|
||||
"share_alike": true,
|
||||
"jurisdiction_notes": "The original Strong's dictionaries are public domain. The Open Scriptures JSON/digital edition identifies itself as CC-BY-SA.",
|
||||
"source_license_url": "https://github.com/openscriptures/strongs",
|
||||
"attribution": "Strong's Dictionaries of Hebrew and Greek, original work by James Strong; digital JSON edition by Open Scriptures.",
|
||||
"restricted_notes": "Redistributed normalized package should preserve attribution and share-alike notice."
|
||||
},
|
||||
"checks": {
|
||||
"expected_sha256": "04a2d6d0a13d75f17e562998bba7491beeed5a149909f904d12dd80aa1e47037",
|
||||
"last_checked_at": "2026-07-12T12:37:00Z"
|
||||
},
|
||||
"importer": {
|
||||
"name": "scripts/import-strongs.js",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"packages": {
|
||||
"json_catalog": "packages/json/strongs-open-scriptures/catalog.json",
|
||||
"entries_jsonl": "packages/json/strongs-open-scriptures/entries.jsonl",
|
||||
"hebrew_jsonl": "packages/json/strongs-open-scriptures/hebrew.jsonl",
|
||||
"greek_jsonl": "packages/json/strongs-open-scriptures/greek.jsonl"
|
||||
},
|
||||
"catalog_display": {
|
||||
"primary_features": ["Strong's dictionary entries", "Hebrew and Aramaic entries", "Greek entries"],
|
||||
"summary": "Strong's Hebrew and Greek dictionary entries keyed by Strong's number for KJV word hover, click, and concordance reference views."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user