Skip to content

Commit

Permalink
Ignore tags in first paragraph of page for paragraph indexing
Browse files Browse the repository at this point in the history
  • Loading branch information
zefhemel committed Oct 13, 2023
1 parent 9b6214e commit 99fe8e8
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 8 deletions.
14 changes: 10 additions & 4 deletions plugs/index/paragraph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ export type ParagraphObject = ObjectValue<
export async function indexParagraphs({ name: page, tree }: IndexTreeEvent) {
const objects: ParagraphObject[] = [];
addParentPointers(tree);
let paragraphCounter = 0;

await traverseTreeAsync(tree, async (p) => {
if (p.type !== "Paragraph") {
return false;
}
paragraphCounter++;

if (findParentMatching(p, (n) => n.type === "ListItem")) {
// Not looking at paragraphs nested in a list
Expand All @@ -35,10 +37,14 @@ export async function indexParagraphs({ name: page, tree }: IndexTreeEvent) {

// So we're looking at indexable a paragraph now
const tags = new Set<string>(["paragraph"]);
// tag the paragraph with any hashtags inside it
collectNodesOfType(p, "Hashtag").forEach((tagNode) => {
tags.add(tagNode.children![0].text!.substring(1));
});
if (paragraphCounter > 1) {
// Only attach hashtags to later paragraphs than the first

// tag the paragraph with any hashtags inside it
collectNodesOfType(p, "Hashtag").forEach((tagNode) => {
tags.add(tagNode.children![0].text!.substring(1));
});
}

const attrs = await extractAttributes(p, false);
const pos = p.from!;
Expand Down
4 changes: 2 additions & 2 deletions website/SilverBullet.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ rating: 5
But where things get _really_ interesting is when using features like [[Live Queries]] that allow you to query all types of [[Objects]] indexed based on the pages in your space.
Let’s explore this with a meta example of using this for this very website. All pages in this space that represent a plug are tagged with the #plug tag. Now, if we would want to render a list of all plugs in one place using the [[template/plug]] template, we can simply do this:
Let’s explore this with a meta example of using this for this very website. All pages in this space that represent a plug are tagged with the `#plug` tag. Now, if we would want to render a list of all plugs in one place using the [[template/plug]] template, we can simply do this:

```query
plug where tags = "page" render [[template/plug]]
plug render [[template/plug]]
```
Hover over that list, click the edit button to see the query that generates this view.

Expand Down
1 change: 1 addition & 0 deletions website/πŸ”Œ Directive.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
> **Warning** Deprecated
> Directives are now deprecated and will likely soon be removed, use [[Live Templates]] and [[Live Queries]] instead.

The directive plug is a built-in plug implementing various so-called β€œdirective” that all take the form of `<!-- #directiveName ... -->` and close with `<!-- /directiveName -->`. Currently the following directives are supported:

* `#query` to perform queries: [[Live Queries]]
Expand Down
4 changes: 2 additions & 2 deletions website/πŸ”Œ Plugs.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ Plugs are distributed as self-contained JavaScript bundles (ending with `.plug.j
## Core plugs
These plugs are distributed with SilverBullet and are automatically enabled:
```query
plug where tags = "page" and uri = null order by name render [[template/plug]]
plug where uri = null order by name render [[template/plug]]
```
## Third-party plugs
These plugs are written either by third parties or distributed separately from the main SB distribution:
```query
plug where tags = "page" and uri != null order by name render [[template/plug]]
plug where uri != null order by name render [[template/plug]]
```

## How to develop your own plug
Expand Down

0 comments on commit 99fe8e8

Please sign in to comment.