2022-11-20 03:26:06 +08:00
|
|
|
import path from 'path';
|
|
|
|
import { getSVGNode } from '../utils/getSVGNode.mjs';
|
|
|
|
|
|
|
|
const ICONS_SEARCH_PATH = path.resolve(process.cwd(), 'scripts/assets/search.svg');
|
|
|
|
|
|
|
|
export function search({ homePath = '', isHome } = {}) {
|
|
|
|
const relativePath = homePath.replace(/\/?index.html$/, isHome ? '' : '/');
|
|
|
|
const fuseJSUrl = relativePath + 'js/fuse.min.js';
|
|
|
|
const manJSUrl = relativePath + 'js/main.js';
|
|
|
|
const dataJSUrl = relativePath + 'data.js';
|
|
|
|
const svgSearchNode = getSVGNode(ICONS_SEARCH_PATH);
|
|
|
|
return [
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'script',
|
|
|
|
properties: {
|
|
|
|
src: dataJSUrl,
|
|
|
|
defer: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'script',
|
|
|
|
properties: {
|
|
|
|
src: fuseJSUrl,
|
|
|
|
defer: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'script',
|
|
|
|
properties: {
|
|
|
|
src: manJSUrl,
|
|
|
|
defer: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: {
|
|
|
|
id: 'mysearch',
|
|
|
|
},
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: {
|
|
|
|
class: ['mysearch-box'],
|
|
|
|
},
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: { class: ['mysearch-input'] },
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: {},
|
|
|
|
children: [
|
|
|
|
...svgSearchNode,
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'input',
|
2022-11-22 00:18:06 +08:00
|
|
|
properties: {
|
|
|
|
id: ['mysearch-input'],
|
|
|
|
type: 'search',
|
|
|
|
placeholder: '搜索备忘清单',
|
|
|
|
autocomplete: 'off',
|
|
|
|
},
|
2022-11-20 03:26:06 +08:00
|
|
|
children: [],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: { class: ['mysearch-clear'] },
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'button',
|
|
|
|
properties: { id: ['mysearch-close'], type: 'button' },
|
|
|
|
children: [{ type: 'text', value: '取消' }],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: { class: ['mysearch-result'] },
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: { id: 'mysearch-menu' },
|
|
|
|
children: [],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'element',
|
|
|
|
tagName: 'div',
|
|
|
|
properties: { id: 'mysearch-content' },
|
|
|
|
children: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
];
|
|
|
|
}
|