Просмотр исходного кода

Merge branch 'master' into fix/code-block-code-highlight

ryoji-s 3 лет назад
Родитель
Сommit
c81c3788ef

+ 1 - 1
packages/app/public/static/locales/ja_JP/admin.json

@@ -24,7 +24,7 @@
     "Guest Users Access":"ゲストユーザーのアクセス",
     "Guest Users Access":"ゲストユーザーのアクセス",
     "always_hidden": "非表示 (固定)",
     "always_hidden": "非表示 (固定)",
     "always_displayed": "表示 (固定)",
     "always_displayed": "表示 (固定)",
-    "displayed_or_hidden": "非表示 / 表示s",
+    "displayed_or_hidden": "非表示 / 表示",
     "Fixed by env var": "環境変数 <code>{{forcewikimode}}={{wikimode}}</code> により固定されています。",
     "Fixed by env var": "環境変数 <code>{{forcewikimode}}={{wikimode}}</code> により固定されています。",
     "register_limitation": "登録の制限",
     "register_limitation": "登録の制限",
     "register_limitation_desc": "新しいユーザーを登録する方法を制限します。",
     "register_limitation_desc": "新しいユーザーを登録する方法を制限します。",

+ 8 - 3
packages/app/src/server/service/search-delegator/elasticsearch.ts

@@ -943,12 +943,17 @@ class ElasticsearchDelegator implements SearchDelegator<Data, ESTermsKey, ESQuer
 
 
   appendHighlight(query) {
   appendHighlight(query) {
     query.body.highlight = {
     query.body.highlight = {
+      fragmenter: 'simple',
+      pre_tags: ["<em class='highlighted-keyword'>"],
+      post_tags: ['</em>'],
       fields: {
       fields: {
         '*': {
         '*': {
           fragment_size: 40,
           fragment_size: 40,
-          fragmenter: 'simple',
-          pre_tags: ["<em class='highlighted-keyword'>"],
-          post_tags: ['</em>'],
+        },
+        'path.*': {
+          // No fragments are generated
+          // see: https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html#highlighting-settings
+          number_of_fragments: 0,
         },
         },
       },
       },
     };
     };

+ 10 - 5
packages/remark-lsx/src/server/routes/lsx.js

@@ -104,12 +104,17 @@ class Lsx {
     }
     }
 
 
     let filterPath = '';
     let filterPath = '';
-    if (optionsFilter.charAt(0) === '^') {
-      // move '^' to the first of path
-      filterPath = new RegExp(`^${addTrailingSlash(pagePath)}${optionsFilter.slice(1, optionsFilter.length)}`);
+    try {
+      if (optionsFilter.charAt(0) === '^') {
+        // move '^' to the first of path
+        filterPath = new RegExp(`^${addTrailingSlash(pagePath)}${optionsFilter.slice(1, optionsFilter.length)}`);
+      }
+      else {
+        filterPath = new RegExp(`^${addTrailingSlash(pagePath)}.*${optionsFilter}`);
+      }
     }
     }
-    else {
-      filterPath = new RegExp(`^${addTrailingSlash(pagePath)}.*${optionsFilter}`);
+    catch (err) {
+      throw createError(400, err);
     }
     }
 
 
     if (isExceptFilter) {
     if (isExceptFilter) {