mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-20 11:00:52 +08:00
🎨 Display tags in search results list https://github.com/siyuan-note/siyuan/issues/12601
This commit is contained in:
parent
357d1fd22c
commit
ccc09569e0
@ -1393,6 +1393,7 @@ const onSearch = (data: IBlock[], edit: Protyle, element: Element, config: Confi
|
|||||||
let resultHTML = "";
|
let resultHTML = "";
|
||||||
data.forEach((item, index) => {
|
data.forEach((item, index) => {
|
||||||
const title = getNotebookName(item.box) + getDisplayName(item.hPath, false);
|
const title = getNotebookName(item.box) + getDisplayName(item.hPath, false);
|
||||||
|
const tags = item.tag ? `<span class="b3-list-item__meta b3-list-item__meta--ellipsis">${item.tag.split("# #").map(tag => `${tag.replace("#", "")}`).join(" ").replace("#", "")}</span>` : "";
|
||||||
if (item.children) {
|
if (item.children) {
|
||||||
resultHTML += `<div class="b3-list-item">
|
resultHTML += `<div class="b3-list-item">
|
||||||
<span class="b3-list-item__toggle b3-list-item__toggle--hl">
|
<span class="b3-list-item__toggle b3-list-item__toggle--hl">
|
||||||
@ -1416,6 +1417,7 @@ ${getAttr(childItem)}
|
|||||||
${unicode2Emoji(item.ial.icon, "b3-list-item__graphic", true)}
|
${unicode2Emoji(item.ial.icon, "b3-list-item__graphic", true)}
|
||||||
<span class="b3-list-item__text">${item.content}</span>
|
<span class="b3-list-item__text">${item.content}</span>
|
||||||
${getAttr(item)}
|
${getAttr(item)}
|
||||||
|
${tags}
|
||||||
<span class="b3-list-item__meta b3-list-item__meta--ellipsis ariaLabel" aria-label="${escapeAriaLabel(title)}">${escapeGreat(title)}</span>
|
<span class="b3-list-item__meta b3-list-item__meta--ellipsis ariaLabel" aria-label="${escapeAriaLabel(title)}">${escapeGreat(title)}</span>
|
||||||
</div>`;
|
</div>`;
|
||||||
}
|
}
|
||||||
|
1
app/src/types/index.d.ts
vendored
1
app/src/types/index.d.ts
vendored
@ -668,6 +668,7 @@ interface IBlock {
|
|||||||
name?: string;
|
name?: string;
|
||||||
memo?: string;
|
memo?: string;
|
||||||
alias?: string;
|
alias?: string;
|
||||||
|
tag?: string;
|
||||||
refs?: IBlock[];
|
refs?: IBlock[];
|
||||||
children?: IBlock[]
|
children?: IBlock[]
|
||||||
length?: number
|
length?: number
|
||||||
|
@ -1202,7 +1202,7 @@ func fullTextSearchRefBlock(keyword string, beforeLen int, onlyDoc bool) (ret []
|
|||||||
"snippet(" + table + ", 7, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS name, " +
|
"snippet(" + table + ", 7, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS name, " +
|
||||||
"snippet(" + table + ", 8, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS alias, " +
|
"snippet(" + table + ", 8, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS alias, " +
|
||||||
"snippet(" + table + ", 9, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS memo, " +
|
"snippet(" + table + ", 9, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS memo, " +
|
||||||
"tag, " +
|
"snippet(" + table + ", 10, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS tag, " +
|
||||||
"snippet(" + table + ", 11, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS content, " +
|
"snippet(" + table + ", 11, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS content, " +
|
||||||
"fcontent, markdown, length, type, subtype, ial, sort, created, updated"
|
"fcontent, markdown, length, type, subtype, ial, sort, created, updated"
|
||||||
stmt := "SELECT " + projections + " FROM " + table + " WHERE " + table + " MATCH '" + columnFilter() + ":(" + quotedKeyword + ")' AND type"
|
stmt := "SELECT " + projections + " FROM " + table + " WHERE " + table + " MATCH '" + columnFilter() + ":(" + quotedKeyword + ")' AND type"
|
||||||
@ -1325,7 +1325,7 @@ func fullTextSearchByFTS(query, boxFilter, pathFilter, typeFilter, orderBy strin
|
|||||||
"snippet(" + table + ", 7, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS name, " +
|
"snippet(" + table + ", 7, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS name, " +
|
||||||
"snippet(" + table + ", 8, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS alias, " +
|
"snippet(" + table + ", 8, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS alias, " +
|
||||||
"snippet(" + table + ", 9, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS memo, " +
|
"snippet(" + table + ", 9, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS memo, " +
|
||||||
"tag, " +
|
"snippet(" + table + ", 10, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 64) AS tag, " +
|
||||||
"snippet(" + table + ", 11, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS content, " +
|
"snippet(" + table + ", 11, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "', '...', 512) AS content, " +
|
||||||
"fcontent, markdown, length, type, subtype, ial, sort, created, updated"
|
"fcontent, markdown, length, type, subtype, ial, sort, created, updated"
|
||||||
stmt := "SELECT " + projections + " FROM " + table + " WHERE (`" + table + "` MATCH '" + columnFilter() + ":(" + query + ")'"
|
stmt := "SELECT " + projections + " FROM " + table + " WHERE (`" + table + "` MATCH '" + columnFilter() + ":(" + query + ")'"
|
||||||
@ -1365,7 +1365,7 @@ func highlightByFTS(query, typeFilter, id string) (ret []string) {
|
|||||||
"highlight(" + table + ", 7, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS name, " +
|
"highlight(" + table + ", 7, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS name, " +
|
||||||
"highlight(" + table + ", 8, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS alias, " +
|
"highlight(" + table + ", 8, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS alias, " +
|
||||||
"highlight(" + table + ", 9, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS memo, " +
|
"highlight(" + table + ", 9, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS memo, " +
|
||||||
"tag, " +
|
"highlight(" + table + ", 10, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS tag, " +
|
||||||
"highlight(" + table + ", 11, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS content, " +
|
"highlight(" + table + ", 11, '" + search.SearchMarkLeft + "', '" + search.SearchMarkRight + "') AS content, " +
|
||||||
"fcontent, markdown, length, type, subtype, ial, sort, created, updated"
|
"fcontent, markdown, length, type, subtype, ial, sort, created, updated"
|
||||||
stmt := "SELECT " + projections + " FROM " + table + " WHERE (`" + table + "` MATCH '" + columnFilter() + ":(" + query + ")'"
|
stmt := "SELECT " + projections + " FROM " + table + " WHERE (`" + table + "` MATCH '" + columnFilter() + ":(" + query + ")'"
|
||||||
@ -1490,6 +1490,7 @@ func fromSQLBlock(sqlBlock *sql.Block, terms string, beforeLen int) (block *Bloc
|
|||||||
content = util.EscapeHTML(content) // Search dialog XSS https://github.com/siyuan-note/siyuan/issues/8525
|
content = util.EscapeHTML(content) // Search dialog XSS https://github.com/siyuan-note/siyuan/issues/8525
|
||||||
content, _ = markSearch(content, terms, beforeLen)
|
content, _ = markSearch(content, terms, beforeLen)
|
||||||
content = maxContent(content, 5120)
|
content = maxContent(content, 5120)
|
||||||
|
tag, _ := markSearch(sqlBlock.Tag, terms, beforeLen)
|
||||||
markdown := maxContent(sqlBlock.Markdown, 5120)
|
markdown := maxContent(sqlBlock.Markdown, 5120)
|
||||||
fContent := util.EscapeHTML(sqlBlock.FContent) // fContent 会用于和 content 对比,在反链计算时用于判断是否是列表项下第一个子块,所以也需要转义 https://github.com/siyuan-note/siyuan/issues/11001
|
fContent := util.EscapeHTML(sqlBlock.FContent) // fContent 会用于和 content 对比,在反链计算时用于判断是否是列表项下第一个子块,所以也需要转义 https://github.com/siyuan-note/siyuan/issues/11001
|
||||||
block = &Block{
|
block = &Block{
|
||||||
@ -1501,7 +1502,7 @@ func fromSQLBlock(sqlBlock *sql.Block, terms string, beforeLen int) (block *Bloc
|
|||||||
Alias: sqlBlock.Alias,
|
Alias: sqlBlock.Alias,
|
||||||
Name: sqlBlock.Name,
|
Name: sqlBlock.Name,
|
||||||
Memo: sqlBlock.Memo,
|
Memo: sqlBlock.Memo,
|
||||||
Tag: sqlBlock.Tag,
|
Tag: tag,
|
||||||
Content: content,
|
Content: content,
|
||||||
FContent: fContent,
|
FContent: fContent,
|
||||||
Markdown: markdown,
|
Markdown: markdown,
|
||||||
|
Loading…
Reference in New Issue
Block a user