diff options
| -rw-r--r-- | Readme.md | 3 | ||||
| -rw-r--r-- | database/migrations/2016_01_04_143702_create_verbs_table.php | 4 | ||||
| -rw-r--r-- | public/css/fonts/EzraSIL.ttf | bin | 0 -> 155584 bytes | |||
| -rw-r--r-- | public/css/hebrewparsetrainer.css | 7 | ||||
| -rw-r--r-- | public/js/hebrewparsetrainer.js | 37 | 
5 files changed, 35 insertions, 16 deletions
| @@ -10,5 +10,8 @@ A simple app to practice Hebrew verbs.  GPL v3.0, see the LICENSE file. +This project uses the [EzraSIL][ezrasil] font which is licensed under the Open Font License. +  [demo]: https://demo.camilstaps.nl/HebrewParseTrainer +[ezrasil]: http://scripts.sil.org/cms/scripts/page.php?item_id=EzraSIL_Home diff --git a/database/migrations/2016_01_04_143702_create_verbs_table.php b/database/migrations/2016_01_04_143702_create_verbs_table.php index 35e7c34..81ed49e 100644 --- a/database/migrations/2016_01_04_143702_create_verbs_table.php +++ b/database/migrations/2016_01_04_143702_create_verbs_table.php @@ -36,8 +36,8 @@ class CreateVerbsTable extends Migration              $table->string('stem', 24);              $table->string('tense', 24);              $table->enum('person', [1,2,3])->nullable(); -            $table->enum('gender', ['m', 'f', 'c']); -            $table->enum('number', ['s', 'p']); +            $table->enum('gender', ['m', 'f', 'c'])->nullable(); +            $table->enum('number', ['s', 'p'])->nullable();              $table->timestamps();              $table->unique(['verb', 'root', 'stem', 'tense', 'person', 'gender', 'number']); diff --git a/public/css/fonts/EzraSIL.ttf b/public/css/fonts/EzraSIL.ttfBinary files differ new file mode 100644 index 0000000..b135760 --- /dev/null +++ b/public/css/fonts/EzraSIL.ttf diff --git a/public/css/hebrewparsetrainer.css b/public/css/hebrewparsetrainer.css index 2cc1c85..9b90843 100644 --- a/public/css/hebrewparsetrainer.css +++ b/public/css/hebrewparsetrainer.css @@ -15,6 +15,11 @@   * You should have received a copy of the GNU General Public License   * along with this program.  If not, see <http://www.gnu.org/licenses/>.   */ +@font-face { +    font-family: 'Ezra SIL'; +    src: url('fonts/EzraSIL.ttf'); +} +  #trainer-404 {      display: none;      padding: 15px; @@ -26,4 +31,4 @@  .hebrew-large {      font-size: 40px; -}
\ No newline at end of file +} diff --git a/public/js/hebrewparsetrainer.js b/public/js/hebrewparsetrainer.js index 779554c..858d3cd 100644 --- a/public/js/hebrewparsetrainer.js +++ b/public/js/hebrewparsetrainer.js @@ -72,10 +72,10 @@ $(document).ready(function(){      function parseAnswer(parsing) {          var persons = ['1', '2', '3', null]; -        var genders = ['m', 'f', 'c']; -        var numbers = ['s', 'p']; +        var genders = ['m', 'f', 'c', null]; +        var numbers = ['s', 'p', null]; -        var re = /^\s*(\w+)\s+(\w+)\s+(?:([123])\s*)?([mfc])\s*([sp])\s*$/; +        var re = /^\s*(\w+)\s+(\w+)(?:\s+(?:([123])\s*)?([mfc])\s*([sp])\s*)?$/;          var match = parsing.match(re);          if (match == null)              return false; @@ -83,17 +83,23 @@ $(document).ready(function(){          var stem = findStem(match[1]);          var tense = findTense(match[2]);          var person = match[3] ? match[3] : null; -        var gender = match[4]; -        var number = match[5]; +        var gender = match[4] ? match[4] : null; +        var number = match[5] ? match[5] : null;          if (typeof stem === 'undefined' || typeof tense === 'undefined' || $.inArray(person, persons) == -1 || -            !$.inArray(gender, genders) == -1 || !$.inArray(number, numbers) == -1) +                $.inArray(gender, genders) == -1 || $.inArray(number, numbers) == -1)              return false; -        if (tense.indexOf('participle') == 0 && person != null) -            return false; -        if (tense.indexOf('participle') != 0 && person == null) +        if (tense.indexOf('infinitive') == 0 && (person != null || gender != null || number != null))              return false; +        if (tense.indexOf('infinitive') != 0) { +            if (gender == null || number == null) +                return false; +            if (tense.indexOf('participle') == 0 && person != null) +                return false; +            if (tense.indexOf('participle') != 0 && person == null) +                return false; +        }          return {              stem: stem, @@ -115,10 +121,15 @@ $(document).ready(function(){              'p': 'plural'          };          if (extended === true) { -            return parsing.stem + ' ' + parsing.tense + ' ' + parsing.person + -                ' ' + genders[parsing.gender] + ' ' + numbers[parsing.number]; +            return parsing.stem + ' ' + parsing.tense +  +                    (parsing.person ? (' ' + parsing.person) : '') + +                    (parsing.gender ? (' ' + genders[parsing.gender]) : '') +  +                    (parsing.number ? (' ' + numbers[parsing.number]) : '');          } else { -            return parsing.stem + ' ' + parsing.tense + ' ' + parsing.person + ' ' + parsing.gender + ' ' + parsing.number; +            return parsing.stem + ' ' + parsing.tense +  +                    (parsing.person ? (' ' + parsing.person) : '') +  +                    (parsing.gender ? (' ' + parsing.gender) : '') +  +                    (parsing.number ? (' ' + parsing.number) : '');          }      } @@ -200,4 +211,4 @@ $(document).ready(function(){      });      init(); -});
\ No newline at end of file +}); | 
