Show top-level title in seach, hide to-do's.

This commit is contained in:
Sergio Martínez Portela 2022-10-18 23:13:21 +02:00
parent 7bad44cfb6
commit d71c28d1e8
3 changed files with 28 additions and 5 deletions

View File

@ -55,7 +55,7 @@ def create_db(path):
os.unlink(path)
db = sqlite3.connect(path)
db.execute('CREATE VIRTUAL TABLE note_search USING fts5(note_id, title, body);')
db.execute('CREATE VIRTUAL TABLE note_search USING fts5(note_id, title, body, top_level_title, is_done, is_todo);')
return db
def load_all(top_dir_relative):
@ -191,12 +191,19 @@ def regen_all(src_top, dest_top, *, docs=None, db=None):
"depth": headline.depth,
}
topLevelHeadline = headline
while isinstance(topLevelHeadline.parent, org_rw.Headline):
topLevelHeadline = topLevelHeadline.parent
# Save for full-text-search
cur.execute('''INSERT INTO note_search(note_id, title, body) VALUES (?, ?, ?);''',
cur.execute('''INSERT INTO note_search(note_id, title, body, top_level_title, is_done, is_todo) VALUES (?, ?, ?, ?, ?, ?);''',
(
headline.id,
headline.title.get_text(),
''.join(headline.get_contents('raw')),
topLevelHeadline.title.get_text(),
headline.is_done,
headline.is_todo,
))
# Render HTML

View File

@ -64,7 +64,7 @@ func main() {
query := c.Query("q")
stm, err := db.Prepare("SELECT note_id, title FROM note_search WHERE title LIKE ?")
stm, err := db.Prepare("SELECT note_id, title, top_level_title, is_done, is_todo FROM note_search WHERE title LIKE ?")
if err != nil {
log.Fatal(err)
@ -90,8 +90,17 @@ func main() {
for rows.Next() {
var note_id string
var note_title string
var note_top_level_title string
var note_is_done string
var note_is_todo string
err = rows.Scan(&note_id, &note_title)
err = rows.Scan(
&note_id,
&note_title,
&note_top_level_title,
&note_is_done,
&note_is_todo,
)
if err != nil {
log.Fatal(err)
c.JSON(500, gin.H{
@ -104,6 +113,9 @@ func main() {
item := make(map[string]string)
item["id"] = note_id
item["title"] = note_title
item["top_level_title"] = note_top_level_title
item["is_done"] = note_is_done
item["is_todo"] = note_is_todo
results = append(results, item)
}

View File

@ -73,13 +73,17 @@ function _codigoparallevar_enable_search_box(selector, options) {
resultsList.innerHTML = '';
for (const note of body.results.notes) {
if (note.is_todo === "1") {
return;
}
const resultCard = document.createElement('li');
const resultContents = document.createElement('a');
resultContents.setAttribute('href', './' + note.id + '.node.html');
const resultTitle = document.createElement('h2');
resultTitle.innerText = note.title;
resultTitle.innerText = `${note.title} (${note.top_level_title})`;
resultContents.appendChild(resultTitle);
resultCard.appendChild(resultContents);