From 88d7c60f3407f29366e8c3a8be27a1425af9c7bf Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 5 Jan 2016 00:36:48 +0100 Subject: Can work with installation in subdirectory --- app/Http/routes.php | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/app/Http/routes.php b/app/Http/routes.php index 37cb27f..70e9164 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -28,16 +28,20 @@ | */ -$app->get('/', function () use ($app) { - return view('trainer'); +$app->group(['prefix' => parse_url(env('APP_URL'), PHP_URL_PATH)], function ($app) { + + $app->get('/', function () use ($app) { + return view('trainer'); + }); + + $app->get('/stem', function () use ($app) { + return \HebrewParseTrainer\Stem::all(); + }); + + $app->get('/tense', function () use ($app) { + return \HebrewParseTrainer\Tense::all(); + }); + + $app->get('/verb/random', 'App\Http\Controllers\RandomVerbController@show'); + }); - -$app->get('/stem', function () use ($app) { - return \HebrewParseTrainer\Stem::all(); -}); - -$app->get('/tense', function () use ($app) { - return \HebrewParseTrainer\Tense::all(); -}); - -$app->get('/verb/random', 'RandomVerbController@show'); -- cgit v1.2.3 From cf04fa8f3a760ddcc935c597bf3d3d053e58c128 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 5 Jan 2016 12:35:46 +0100 Subject: Ezra SIL font --- Readme.md | 3 +++ public/css/fonts/EzraSIL.ttf | Bin 0 -> 155584 bytes public/css/hebrewparsetrainer.css | 7 ++++++- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 public/css/fonts/EzraSIL.ttf diff --git a/Readme.md b/Readme.md index 2d15160..7b150e6 100644 --- a/Readme.md +++ b/Readme.md @@ -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/public/css/fonts/EzraSIL.ttf b/public/css/fonts/EzraSIL.ttf new file mode 100644 index 0000000..b135760 Binary files /dev/null and b/public/css/fonts/EzraSIL.ttf differ 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 . */ +@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 +} -- cgit v1.2.3 From f64c2d9799852d2ed5a6565fb68a845b8a68fba7 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 5 Jan 2016 12:50:21 +0100 Subject: Allow gender/number NULL for infinitives --- database/migrations/2016_01_04_143702_create_verbs_table.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 baf8b12..09516b1 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', 'gender', 'number']); -- cgit v1.2.3 From 11c6c59e6d2a28c0598bc0ab57dcb887050b5f13 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 5 Jan 2016 13:00:37 +0100 Subject: Infinitives don't have person-gender-number --- public/js/hebrewparsetrainer.js | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) 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 +}); -- cgit v1.2.3