├── .babelrc
├── .gitignore
├── .jshintrc
├── .sass-cache
└── 40ef6696ce83a3a06fade2e81111f51d28ff6f68
│ └── styles.scssc
├── 153.html
├── CNAME
├── CONTRIBUTING.md
├── README.md
├── ajax-loader.gif
├── android-icon-144x144.png
├── android-icon-192x192.png
├── android-icon-36x36.png
├── android-icon-48x48.png
├── android-icon-72x72.png
├── android-icon-96x96.png
├── api
├── searchApi.js
└── word.js
├── apple-icon-114x114.png
├── apple-icon-120x120.png
├── apple-icon-144x144.png
├── apple-icon-152x152.png
├── apple-icon-180x180.png
├── apple-icon-57x57.png
├── apple-icon-60x60.png
├── apple-icon-72x72.png
├── apple-icon-76x76.png
├── apple-icon-precomposed.png
├── apple-icon.png
├── browserconfig.xml
├── build
├── bundle.935d01b59593a21c2947.js
├── bundle.js
└── index.html
├── clear.html
├── create-directories.sh
├── createRoots.html
├── createbranches.html
├── crossReferenceCombiner.html
├── css
└── layout.css
├── data
├── bible.js
├── crossReferences.js
├── extra-dictionary.js
├── greek4.js
├── hebrew-with-morph5.js
├── hebrew.js
├── hebrewWithoutPointing.js
├── kjvdwyer7.js
├── literalConsistent.js
├── literalConsistentExtra.js
├── morphology.js
├── strongs-dictionary.js
├── strongs-greek-dictionary.js
├── strongsObjectRoots.js
├── strongsObjectWithFamilies2.js
└── web3.js
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon-96x96.png
├── favicon.ico
├── googlef41cf4fef494a76d.html
├── greekReplaceAccents.html
├── hebrew-test.html
├── help
└── index.html
├── icon-128.png
├── index.html
├── javascripture.svg
├── lib
├── MorphCodes.js
├── MorphParse.js
├── json2.js
├── raphael-min.js
└── raphael.pie.js
├── literalConsistentHebrew.html
├── manifest.json
├── ms-icon-144x144.png
├── ms-icon-150x150.png
├── ms-icon-310x310.png
├── ms-icon-70x70.png
├── package-lock.json
├── package.json
├── parsing.txt
├── pie.html
├── postcss.config.js
├── promo
├── large.png
├── marquee.png
├── screenshot.png
└── small.png
├── redirect.html
├── root test.txt
├── src
├── actions
│ └── index.js
├── app.js
├── components
│ ├── _colors.scss
│ ├── _dimensions.scss
│ ├── add-column-button
│ │ ├── index.js
│ │ └── style.scss
│ ├── bookmarks
│ │ ├── bookmark.js
│ │ ├── index.js
│ │ └── styles.scss
│ ├── cross-references
│ │ ├── index.js
│ │ └── styles.scss
│ ├── dock
│ │ ├── index.js
│ │ └── style.scss
│ ├── footer
│ │ ├── index.js
│ │ └── styles.scss
│ ├── keyboard-shortcuts.js
│ ├── reference-selector-mobile
│ │ ├── index.js
│ │ └── style.scss
│ ├── reference-selector
│ │ ├── book-control.js
│ │ ├── index.js
│ │ └── styles.scss
│ ├── reference-wrapper
│ │ ├── index.js
│ │ └── style.scss
│ ├── reference
│ │ ├── bookmarker.js
│ │ ├── chapter.js
│ │ ├── index.js
│ │ ├── single-reference.js
│ │ ├── styles.scss
│ │ ├── verse-number.js
│ │ ├── verse.js
│ │ ├── word-single.js
│ │ └── word.js
│ ├── remove-column-button
│ │ ├── index.js
│ │ └── style.scss
│ ├── root.js
│ ├── search
│ │ ├── index.js
│ │ ├── search-block.js
│ │ ├── search-link.js
│ │ └── styles.scss
│ ├── strongs-color.js
│ ├── svg
│ │ ├── add.js
│ │ ├── book.js
│ │ ├── bookmark.js
│ │ ├── cancel.js
│ │ ├── cog.js
│ │ ├── eye.js
│ │ ├── picker.js
│ │ ├── remove.js
│ │ ├── search.js
│ │ ├── sync-disabled.js
│ │ └── sync.js
│ ├── sync-button
│ │ ├── index.js
│ │ └── style.scss
│ ├── tray-filter
│ │ └── styles.scss
│ ├── tray-list.js
│ ├── trays
│ │ ├── bookmarks.js
│ │ ├── filter.js
│ │ ├── goto.js
│ │ ├── index.js
│ │ ├── search.js
│ │ ├── settings.js
│ │ ├── styles.scss
│ │ ├── tray-button.js
│ │ ├── tray-list.js
│ │ └── word.js
│ ├── version-selector
│ │ ├── index.js
│ │ └── styles.scss
│ ├── word-details
│ │ ├── index.js
│ │ ├── kjv-def.js
│ │ ├── styles.scss
│ │ └── word-block.js
│ └── word-highlight
│ │ └── index.js
├── containers
│ ├── FilterTrayLink.js
│ ├── book-control.js
│ ├── bookmark.js
│ ├── bookmarker.js
│ ├── bookmarks.js
│ ├── chapter.js
│ ├── cross-references.js
│ ├── keyboard-shortcuts.js
│ ├── kjv-def.js
│ ├── reference-wrapper.js
│ ├── reference.js
│ ├── root.js
│ ├── search-block.js
│ ├── search-link.js
│ ├── search.js
│ ├── single-reference.js
│ ├── verse.js
│ ├── version-selector.js
│ ├── visible-trays.js
│ ├── word-block.js
│ ├── word-details.js
│ ├── word-highlight.js
│ └── word-single.js
├── index.js
├── lib
│ ├── morphology.js
│ ├── reference.js
│ ├── strip-pointing.js
│ ├── stylizer
│ │ ├── README.md
│ │ └── index.js
│ └── word.js
└── reducers
│ ├── bookmarks.js
│ ├── cross-references.js
│ ├── current-reference.js
│ ├── index.js
│ ├── reference-selector-mobile.js
│ ├── reference.js
│ ├── scroll-chapter.js
│ ├── search-advanced.js
│ ├── search-form.js
│ ├── search-results.js
│ ├── search-select.js
│ ├── search-terms.js
│ ├── settings.js
│ ├── trayVisibilityFilter.js
│ ├── trays.js
│ ├── version.js
│ ├── word-details.js
│ └── word-highlight.js
├── sw.js
├── todo
├── web.php
├── webpack.config.js
├── worker.html
├── workers
└── worker.js
└── xmltojson.html
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [ "es2015", "stage-1", "stage-2", "react" ]
3 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | nbproject/
3 | node_modules/
4 | css/.sass_cache/
5 |
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "boss": true,
3 | "curly": true,
4 | "eqeqeq": true,
5 | "eqnull": true,
6 | "expr": true,
7 | "immed": true,
8 | "noarg": true,
9 | "onevar": false,
10 | "trailing": true,
11 | "undef": true,
12 | "unused": true,
13 |
14 | "browser": true,
15 | "node": true,
16 |
17 | "globals" : {
18 | /* MOCHA */
19 | "describe" : false,
20 | "it" : false,
21 | "before" : false,
22 | "beforeEach" : false,
23 | "after" : false,
24 | "afterEach" : false
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/.sass-cache/40ef6696ce83a3a06fade2e81111f51d28ff6f68/styles.scssc:
--------------------------------------------------------------------------------
1 | 3.3.0.rc.5 (Maptastic Maple)
2 | ab27ddca68fb13f1584e6ad9a4471b27ee2403f3
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::RuleNode:
4 | @rule[I" body:ET:@selector_source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position:
5 | @linei:@offseti:
@end_poso;
;i;i:
6 | @fileI"sass/styles.scss; T:@importero: Sass::Importers::Filesystem:
7 | @rootI"#/Users/ben/Sites/Javascripture; T:@same_name_warningso:Set:
8 | @hash{ :
9 | @tabsi :@parsed_ruleso:"Sass::Selector::CommaSequence:
@members[o:Sass::Selector::Sequence;[o:#Sass::Selector::SimpleSequence;[o:Sass::Selector::Element :
10 | @name[I" body; T:@namespace0;i:@filenameI" ; T:
@subject0:
@sourceso;;{ :@source_rangeo; ;o;
;i;i;o;
;i;i
11 | ;@;0;i;!@;i;!@;[o:Sass::Tree::PropNode;[I"background; T:@valueo: Sass::Script::Tree::Literal;&o: Sass::Script::Value::String;&I"
12 | white; T:
13 | @type:identifier:
@options{ ;i;$o; ;o;
;i;i;o;
;i;i;@
;@;i :@prop_syntax:new;[ ;i;$o; ;o;
;i;i;o;
;i;i;@
;@:@name_source_rangeo; ;@.;o;
;i;i;@
;@:@value_source_rangeo; ;o;
;i;i;@/;@
;@;+@(;i;$o; ;o;
;i;i;o;
;i;i;@
;@:@has_childrenT;+@(o:Sass::Tree::CommentNode
14 | ;&[I"+/*# sourceMappingURL=styles.css.map */; T;):normal;[ ;i ;+@(:@templateI"Kbody {
15 | background: white; }
16 |
17 | /*# sourceMappingURL=styles.css.map */
18 | ; T;i;$o; ;o;
;i;i;o;
;i;i;@
;@;0T;+@(
--------------------------------------------------------------------------------
/153.html:
--------------------------------------------------------------------------------
1 |
5 |
6 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | javascripture.xyz
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to JavaScripture
2 |
3 | Thanks for your interest in contributing to JavaScripture.
4 |
5 | There are many ways to contribute – reporting bugs, feature suggestions, fixing bugs, submitting pull requests for enhancements.
6 |
7 | ## Reporting Bugs, Asking Questions, Sending Suggestions
8 |
9 | We'd love to hear about any issues you have or ideas for new features. You can just [file a GitHub issue](https://github.com/scruffian/Javascripture/issues/), or [contact me](http://ben.blog/contact).
10 |
11 | ## Running JavaScripture Locally
12 |
13 | If you’d like to contribute code, first, you will need to run JavaScripture locally. Here is the short version:
14 |
15 | 1. Make sure you have git, node and npm installed
16 | 2. Clone this repository locally with git@github.com:scruffian/Javascripture.git
17 | 3. Execute npm start to install packages and start the server
18 | 4. Open http://localhost:7777 in your browser. I find it best to work in Firefox in private mode to avoid caching issues.
19 |
20 | ## Pull Requests
21 |
22 | When you have a patch ready to submit in your local version you need to submit a pull request so it can be reviewed before being merged. Here is a typical workflow:
23 |
24 | 1. Make sure your local repo is up to date: `git pull`
25 | 2. Create a new branch locally and check it out: `git checkout -b branch-name"
26 | 3. Add the files you have changed: `git add filename.js`
27 | 4. Commit the files: `git commit -m "Commit message goes here"
28 | 5. Push your local branch to the remote server: `git push --set-upstream origin branch-name`
29 | 6. Open the repo and use the GUI to create and submit a pull request from this branch: https://github.com/scruffian/javascripture
30 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Javascripture
2 | A tool for studying scripture, written in Javascript (React and Redux)
3 |
4 | ## Principles
5 |
6 | Javascripture is agnostic; it's purpose is to make it easier to access bible data. Doctrine is not a consideration in the interface or the data. If there are mistakes in a translation, these are preserved. This is important because:
7 |
8 | - it means the tool can be useful to all bible students, not just those of a particular denomination
9 | - it helps to remove our own bias from our bible study
10 |
11 | However Javascripture is heavily geared towards a "bible only" approach to study. This means that, as much as is practical, extra-biblical data is removed to reveal the inspired word as close to how it was revealed. This means that:
12 |
13 | - accents and pointing are removed from the original text (as these are later additions)
14 | - human "definitions" (like Strong's) are removed, as these are merely interpretations
15 |
16 | Instead the emphasis is on making it as easy as possible to access the raw data. This is a fine line to tread. The intention is to encourage students to think critically, and make their own interpretation. This means also being critical of the data that is presented (e.g. not all cross references are helpful, not all "related words" are related). By removing things like Strong's definitions we hope to make students work harder to come to their own conclusions.
17 |
18 | The primary data points are:
19 |
20 | - The original text, keyed with Strongs numbers, making it easy to follow the translation.
21 | - The usage of a word; by surfacing where a word is used elsewhere we can find "single word quotations".
22 | - Related words; this is based on Strong's concordance and is not always accurate.
23 | - Cross references; this is data that has been collected through recieved wisdom and should be subject to scrutiny.
24 |
25 | ## Get involed
26 |
27 | To find out how to get involved with the project read the [CONTRIBUTING](./CONTRIBUTING.md) document.
28 |
--------------------------------------------------------------------------------
/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/ajax-loader.gif
--------------------------------------------------------------------------------
/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/android-icon-144x144.png
--------------------------------------------------------------------------------
/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/android-icon-192x192.png
--------------------------------------------------------------------------------
/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/android-icon-36x36.png
--------------------------------------------------------------------------------
/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/android-icon-48x48.png
--------------------------------------------------------------------------------
/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/android-icon-72x72.png
--------------------------------------------------------------------------------
/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/android-icon-96x96.png
--------------------------------------------------------------------------------
/api/word.js:
--------------------------------------------------------------------------------
1 | /*globals javascripture bible*/
2 | javascripture.api.word = {
3 | getFamily: function ( strongsNumber ) {
4 | if ( javascripture.data.strongsObjectWithFamilies[ strongsNumber ] ) {
5 | return javascripture.data.strongsObjectWithFamilies[ strongsNumber ].family;
6 | } else {
7 | return strongsNumber;
8 | }
9 | }
10 | };
--------------------------------------------------------------------------------
/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-114x114.png
--------------------------------------------------------------------------------
/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-120x120.png
--------------------------------------------------------------------------------
/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-144x144.png
--------------------------------------------------------------------------------
/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-152x152.png
--------------------------------------------------------------------------------
/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-180x180.png
--------------------------------------------------------------------------------
/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-57x57.png
--------------------------------------------------------------------------------
/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-60x60.png
--------------------------------------------------------------------------------
/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-72x72.png
--------------------------------------------------------------------------------
/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-76x76.png
--------------------------------------------------------------------------------
/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scruffian/javascripture/2087f36882a40be076b4012f08b7e4af36c86340/apple-icon.png
--------------------------------------------------------------------------------
/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/build/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Caching
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/clear.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/createRoots.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Javascripture
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
25 |
26 |
27 |
28 |
29 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/createbranches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/crossReferenceCombiner.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/css/layout.css:
--------------------------------------------------------------------------------
1 | * {
2 | border: none;
3 | margin: 0;
4 | padding: 0; }
5 |
6 | body {
7 | background: #fff;
8 | color: #000;
9 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
10 | font-size: 100%;
11 | }
12 |
13 | a {
14 | color: #000;
15 | }
16 |
17 | .added {
18 | color: #aaa; font-style: italic; }
19 |
20 | input, select, button {
21 | border: 1px solid rgba(0, 0, 0, 0.3);
22 | border-radius: 5px;
23 | box-sizing: border-box;
24 | font-family: Helvetica, Arial, sans-serif;
25 | font-size: 14px;
26 | height: 40px;
27 | line-height: 1em;
28 | padding: 0;
29 | }
30 |
31 | @media ( min-width: 768px ) {
32 | input, select, button {
33 | font-size: 20px;
34 | }
35 | }
36 | input {
37 | text-indent: .3em;
38 | }
39 | input {
40 | width: 100%;
41 | }
42 |
43 | input[type=checkbox] {
44 | box-shadow: none; }
45 |
46 | input[type=reset] {
47 | background: none;
48 | border: none;
49 | color: #999;
50 | font-size: 14px;
51 | height: auto;
52 | line-height: 2;
53 | }
54 |
55 | select {
56 | /* Removes the default