1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-05 00:42:14 +03:00

Merge branch 'master' of git://github.com/drzippie/BookStack into drzippie-master

This commit is contained in:
Dan Brown
2020-06-27 17:11:11 +01:00
2 changed files with 12 additions and 7 deletions

View File

@@ -1,5 +1,7 @@
<?php namespace BookStack\Entities; <?php namespace BookStack\Entities;
use Illuminate\Support\Str;
class SlugGenerator class SlugGenerator
{ {
@@ -32,9 +34,7 @@ class SlugGenerator
*/ */
protected function formatNameAsSlug(string $name): string protected function formatNameAsSlug(string $name): string
{ {
$slug = preg_replace('/[\+\/\\\?\@\}\{\.\,\=\[\]\#\&\!\*\'\;\:\$\%]/', '', mb_strtolower($name)); $slug = Str::slug($name);
$slug = preg_replace('/\s{2,}/', ' ', $slug);
$slug = str_replace(' ', '-', $slug);
if ($slug === "") { if ($slug === "") {
$slug = substr(md5(rand(1, 500)), 0, 5); $slug = substr(md5(rand(1, 500)), 0, 5);
} }

View File

@@ -273,15 +273,20 @@ class EntityTest extends BrowserKitTest
->seeInElement('#recently-updated-pages', $page->name); ->seeInElement('#recently-updated-pages', $page->name);
} }
public function test_slug_multi_byte_lower_casing() public function test_slug_multi_byte_url_safe()
{ {
$book = $this->newBook([ $book = $this->newBook([
'name' => 'КНИГА' 'name' => 'информация'
]); ]);
$this->assertEquals('книга', $book->slug); $this->assertEquals('informatsiya', $book->slug);
}
$book = $this->newBook([
'name' => '¿Qué?'
]);
$this->assertEquals('que', $book->slug);
}
public function test_slug_format() public function test_slug_format()
{ {