Skip to content

Commit 99b48c3

Browse files
author
wenli.lw
committed
feat: prevent break words #6
1 parent 10325f7 commit 99b48c3

30 files changed

+34
-32
lines changed

assets/search.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ require([
8282
$('.body-inner').scrollTop(0);
8383
}
8484

85-
function escapeReg(keyword) {
85+
function escapeRegExp(keyword) {
8686
//escape regexp prevserve word
87-
return String(keyword).replace(/([\*\.\?\+\$\^\[\]\(\)\{\}\|\/\\])/g, '\\$1');
87+
return String(keyword).replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
8888
}
8989

9090
function query(keyword) {
@@ -97,7 +97,9 @@ require([
9797
results.push({
9898
url: page,
9999
title: INDEX_DATA[page].title,
100-
body: INDEX_DATA[page].body.substr(Math.max(0, index - 50), MAX_DESCRIPTION_SIZE).replace(new RegExp('(' + escapeReg(keyword) + ')', 'gi'), '<span class="search-highlight-keyword">$1</span>')
100+
body: INDEX_DATA[page].body.substr(Math.max(0, index - 50), MAX_DESCRIPTION_SIZE)
101+
.replace(/^[^\s,.]+./,'').replace(/(..*)[\s,.].*/, '$1') //prevent break word
102+
.replace(new RegExp('(' + escapeRegExp(keyword) + ')', 'gi'), '<span class="search-highlight-keyword">$1</span>')
101103
});
102104
}
103105
}

examples/book/Authoring-libraries.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
666666
<script>
667667
var gitbook = gitbook || [];
668668
gitbook.push(function() {
669-
gitbook.page.hasChanged({"page":{"title":"创建库","level":"1.6.9","depth":2,"previous":{"title":"理解 Chunks","level":"1.6.8","depth":2,"path":"Understanding-chunks.md","ref":"Understanding-chunks.md","articles":[]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Authoring-libraries.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-01-21T16:38:39.410Z"},"basePath":".","book":{"language":""}});
669+
gitbook.page.hasChanged({"page":{"title":"创建库","level":"1.6.9","depth":2,"previous":{"title":"理解 Chunks","level":"1.6.8","depth":2,"path":"Understanding-chunks.md","ref":"Understanding-chunks.md","articles":[]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Authoring-libraries.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-05T05:20:29.383Z"},"basePath":".","book":{"language":""}});
670670
});
671671
</script>
672672
</div>

examples/book/Automatic-CSS-refresh.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
638638
<script>
639639
var gitbook = gitbook || [];
640640
gitbook.push(function() {
641-
gitbook.page.hasChanged({"page":{"title":"自动刷新 CSS","level":"1.4.2","depth":2,"next":{"title":"加载 LESS 和 SASS","level":"1.4.3","depth":2,"path":"Loading-LESS-or-SASS.md","ref":"Loading-LESS-or-SASS.md","articles":[]},"previous":{"title":"加载 CSS","level":"1.4.1","depth":2,"path":"Loading-CSS.md","ref":"Loading-CSS.md","articles":[]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Automatic-CSS-refresh.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-01-21T16:38:39.410Z"},"basePath":".","book":{"language":""}});
641+
gitbook.page.hasChanged({"page":{"title":"自动刷新 CSS","level":"1.4.2","depth":2,"next":{"title":"加载 LESS 和 SASS","level":"1.4.3","depth":2,"path":"Loading-LESS-or-SASS.md","ref":"Loading-LESS-or-SASS.md","articles":[]},"previous":{"title":"加载 CSS","level":"1.4.1","depth":2,"path":"Loading-CSS.md","ref":"Loading-CSS.md","articles":[]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Automatic-CSS-refresh.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-05T05:20:29.383Z"},"basePath":".","book":{"language":""}});
642642
});
643643
</script>
644644
</div>

examples/book/Automatic-browser-refresh.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
675675
<script>
676676
var gitbook = gitbook || [];
677677
gitbook.push(function() {
678-
gitbook.page.hasChanged({"page":{"title":"浏览器自动刷新","level":"1.2.3","depth":2,"next":{"title":"引入文件","level":"1.2.4","depth":2,"path":"Requiring-files.md","ref":"Requiring-files.md","articles":[]},"previous":{"title":"开始工作流","level":"1.2.2","depth":2,"path":"Running-a-workflow.md","ref":"Running-a-workflow.md","articles":[]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Automatic-browser-refresh.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-01-21T16:38:39.410Z"},"basePath":".","book":{"language":""}});
678+
gitbook.page.hasChanged({"page":{"title":"浏览器自动刷新","level":"1.2.3","depth":2,"next":{"title":"引入文件","level":"1.2.4","depth":2,"path":"Requiring-files.md","ref":"Requiring-files.md","articles":[]},"previous":{"title":"开始工作流","level":"1.2.2","depth":2,"path":"Running-a-workflow.md","ref":"Running-a-workflow.md","articles":[]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Automatic-browser-refresh.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-05T05:20:29.383Z"},"basePath":".","book":{"language":""}});
679679
});
680680
</script>
681681
</div>

examples/book/Configuring-react-js.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
702702
<script>
703703
var gitbook = gitbook || [];
704704
gitbook.push(function() {
705-
gitbook.page.hasChanged({"page":{"title":"配置 React JS","level":"1.3.1","depth":2,"next":{"title":"优化重合并","level":"1.3.2","depth":2,"path":"Optimizing-rebundling.md","ref":"Optimizing-rebundling.md","articles":[]},"previous":{"title":"React JS","level":"1.3","depth":1,"path":"Introduction-to-React-JS.md","ref":"Introduction-to-React-JS.md","articles":[{"title":"配置 React JS","level":"1.3.1","depth":2,"path":"Configuring-react-js.md","ref":"Configuring-react-js.md","articles":[]},{"title":"优化重合并","level":"1.3.2","depth":2,"path":"Optimizing-rebundling.md","ref":"Optimizing-rebundling.md","articles":[]},{"title":"Flow","level":"1.3.3","depth":2,"path":"Type-checking-with-flow.md","ref":"Type-checking-with-flow.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Configuring-react-js.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-01-21T16:38:39.410Z"},"basePath":".","book":{"language":""}});
705+
gitbook.page.hasChanged({"page":{"title":"配置 React JS","level":"1.3.1","depth":2,"next":{"title":"优化重合并","level":"1.3.2","depth":2,"path":"Optimizing-rebundling.md","ref":"Optimizing-rebundling.md","articles":[]},"previous":{"title":"React JS","level":"1.3","depth":1,"path":"Introduction-to-React-JS.md","ref":"Introduction-to-React-JS.md","articles":[{"title":"配置 React JS","level":"1.3.1","depth":2,"path":"Configuring-react-js.md","ref":"Configuring-react-js.md","articles":[]},{"title":"优化重合并","level":"1.3.2","depth":2,"path":"Optimizing-rebundling.md","ref":"Optimizing-rebundling.md","articles":[]},{"title":"Flow","level":"1.3.3","depth":2,"path":"Type-checking-with-flow.md","ref":"Type-checking-with-flow.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["-lunr","-search","search-plus","fontsettings"],"root":"./content","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"search-plus":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.0"},"title":"test search plus plugin","gitbook":"*"},"file":{"path":"Configuring-react-js.md","mtime":"2017-01-14T08:27:39.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-05T05:20:29.383Z"},"basePath":".","book":{"language":""}});
706706
});
707707
</script>
708708
</div>

0 commit comments

Comments
 (0)