fix: non-unicode character in popover and search #67, #68
| | |
| | | - uses: actions/checkout@v2 |
| | | |
| | | - name: Build Link Index |
| | | uses: jackyzha0/hugo-obsidian@v2.10 |
| | | uses: jackyzha0/hugo-obsidian@v2.11 |
| | | with: |
| | | index: true |
| | | input: content |
| | |
| | | const links = [...document.getElementsByClassName("internal-link")] |
| | | links.forEach(li => { |
| | | const linkDest = content[li.dataset.src.replace(basePath, "")] |
| | | // const linkDest = content[li.dataset.src] |
| | | if (linkDest) { |
| | | const popoverElement = `<div class="popover"> |
| | | <h3>${linkDest.title}</h3> |
| | |
| | | // ----- |
| | | |
| | | (async function () { |
| | | const encoder = str => str.toLowerCase().split(/([^a-z]|[^\x00-\x7F])+/) |
| | | const contentIndex = new FlexSearch.Document({ |
| | | cache: true, |
| | | charset: "latin:extra", |
| | | optimize: true, |
| | | worker: true, |
| | | document: { |
| | | index: [{ |
| | | field: "content", |
| | | tokenize: "strict", |
| | | context: { |
| | | resolution: 5, |
| | | depth: 3, |
| | | bidirectional: true |
| | | }, |
| | | suggest: true, |
| | | tokenize: "reverse", |
| | | encode: encoder, |
| | | }, { |
| | | field: "title", |
| | | tokenize: "forward", |
| | | encode: encoder, |
| | | }] |
| | | } |
| | | }) |
| | | |
| | | const { content } = await fetchData |
| | |
| | | }) |
| | | source.addEventListener('input', (e) => { |
| | | term = e.target.value |
| | | contentIndex.search(term, [ |
| | | const searchResults = contentIndex.search(term, [ |
| | | { |
| | | field: "content", |
| | | limit: 10, |
| | | suggest: true, |
| | | }, |
| | | { |
| | | field: "title", |
| | | limit: 5, |
| | | } |
| | | ]).then(searchResults => { |
| | | ]) |
| | | const getByField = field => { |
| | | const results = searchResults.filter(x => x.field === field) |
| | | if (results.length === 0) { |
| | |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | |
| | | const searchContainer = document.getElementById("search-container") |
| | |
| | | } |
| | | |
| | | document.addEventListener('keydown', (event) => { |
| | | if (event.key === "/") { |
| | | if (event.key === "k" && (event.ctrlKey || event.metaKey)) { |
| | | event.preventDefault() |
| | | openSearch() |
| | | } |
| | |
| | | - 🚧 [Troubleshooting and FAQ](notes/troubleshooting.md) |
| | | - 🐛 [Submit an Issue](https://github.com/jackyzha0/quartz/issues) |
| | | - 👀 [Discord Community](https://discord.gg/cRFFHYye7t) |
| | | |
| | |
| | | {{ .TableOfContents }} |
| | | </aside> |
| | | {{end}} |
| | | {{.Content}} |
| | | |
| | | {{.Content | safeHTML}} |
| | | </article> |
| | | {{partial "footer.html" .}} |
| | | {{partial "popover.html" .}} |
| | |
| | | {{ .TableOfContents }} |
| | | </aside> |
| | | {{end}} |
| | | {{- .Content -}} |
| | | {{.Content | safeHTML}} |
| | | </article> |
| | | {{partial "footer.html" .}} |
| | | {{partial "popover.html" .}} |