website/docs/plugins/plugin/io.github.jackgruber.note-o.../index.html

764 lines
40 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Common page configuration that goes in the <head></head> tag -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,viewport-fit=cover"/>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src * data: ; style-src 'self' 'unsafe-inline' ; child-src 'none' ; connect-src 'self' raw.githubusercontent.com ;"/>
<link rel="icon" type="image/x-icon" href="&#x2F;plugins/favicon.png" />
<link rel="stylesheet" href="&#x2F;plugins/fontawesome-6.4.2/css/all.min.css" type="text/css"/>
<!-- Allow included JavaScipt files to determine the root directory of this site. -->
<script id="site-root" type="text/plain">/plugins</script>
<!-- Scripts used by all pages -->
<script src="&#x2F;plugins/bundle-main.js"></script>
<script src="&#x2F;plugins/bundle-components.js"></script>
<title>Joplin Plugins - Note overview</title>
<meta property="og:title" content="Joplin Plugin: Note overview"/>
<meta property="og:description" content="A note overview is created based on the defined search and the specified fields."/>
<meta property="og:image" content="https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;JackGruber&#x2F;joplin-plugin-note-overview&#x2F;HEAD&#x2F;img&#x2F;icon_256.png"/>
<script src="&#x2F;plugins/bundle-pluginPage.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg bg-body-tertiary sticky-top">
<div class="container">
<a class="navbar-brand" href="https://joplinapp.org/">
<img src="/plugins/joplin-logo.png" alt="Home"/>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ms-auto me-2 mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/plugins">Plugins</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://joplinapp.org/news/">News</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://joplinapp.org/help/">Help</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://discourse.joplinapp.org/">Forum</a>
</li>
</ul>
<div class="search-field col-12 col-lg-3 mb-3 mb-lg-0 me-lg-3">
<i class="fa-solid fa-magnifying-glass search-icon" alt=""></i>
<input
type="search"
class="form-control search-input"
placeholder="Search..."
id="search-input"/>
<div class="search-results" id="search-results-container" aria-live="polite"></div>
</div>
</div>
</div>
</nav>
<main class="plugin-details">
<nav aria-label="breadcrumb" class="container breadcrumb-container">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="&#x2F;plugins"><i class="fas fa-home"></i> Home</a>
</li>
<li class="breadcrumb-item"><a id="current-category-nav-link" href="&#x2F;plugins/">All</a></li>
<li class="breadcrumb-item active" aria-current="page">Note overview</li>
</ol>
</nav>
<div class="plugin-overview">
<div class="spacer">
</div>
<div class="plugin-page-header">
<div class="title plugin-page-title">
<img
class="icon plugin-icon -dark-mode-shadow"
src="https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;JackGruber&#x2F;joplin-plugin-note-overview&#x2F;HEAD&#x2F;img&#x2F;icon_256.png"
alt="Plugin icon"
/>
<div>
<h1 class="card-title">Note overview</h1>
<div class="card-title pb-2">
by
<a
href="./?search=author%3D%22JackGruber%22%20max-results%3D20"
style="display: inline;"
>
JackGruber
</a>
</div>
</div>
</div>
<div class="categories">
<a href="&#x2F;plugins/#recommended-section">
<span class="plugin-recommended me-2 badge"><i class="fas fa-crown"></i> Recommended</span>
</a>
<a class="plugin-category me-2 badge" href="&#x2F;plugins/#tab-productivity">
<i class="fas fa-tag"></i> productivity
</a>
</div>
</div>
<div class="download-link-container">
<a
href="/plugins/downloadPlugin.html?plugin=io.github.jackgruber.note-overview"
class="btn btn-primary process--append-parent-tab-to-href"
>
Install Plugin
</a>
</div>
</div>
<div class="plugin-content">
<div class="secondary-section">
<div class="content" id="screenshots-container">
<div id="raw-screenshots">
<img src="https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;JackGruber&#x2F;joplin-plugin-note-overview&#x2F;HEAD&#x2F;img&#x2F;main.png" alt="Screenshot: Main Screenshot"/>
<img src="https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;JackGruber&#x2F;joplin-plugin-note-overview&#x2F;HEAD&#x2F;img&#x2F;showcase1.png" alt="Screenshot: Showcase 1"/>
<img src="https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;JackGruber&#x2F;joplin-plugin-note-overview&#x2F;HEAD&#x2F;img&#x2F;showcase2.png" alt="Screenshot: Showcase 2"/>
</div>
<!-- See https://getbootstrap.com/docs/5.3/components/carousel/ -->
<div id="screenshots-carousel" class="carousel slide">
<button
class="carousel-control-prev"
type="button"
data-bs-target="#screenshots-carousel"
data-bs-slide="prev"
>
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button
class="carousel-control-next"
type="button"
data-bs-target="#screenshots-carousel"
data-bs-slide="next"
>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</div>
<div class="container section">
<h3>Description</h3>
<p class="card-text pb-4">A note overview is created based on the defined search and the specified fields.</p>
</div>
<div class="container section">
<h3>Additional Information</h3>
<table class="additional-information-table">
<tbody>
<tr>
<th>Links:</th>
<td>
<ul class="list-group list-group-flush text-break">
<li><a href=https:&#x2F;&#x2F;github.com&#x2F;JackGruber&#x2F;joplin-plugin-note-overview style="display: block;"><i class="fa-solid fa-link"></i> Repository</a></li>
<li><a href=https:&#x2F;&#x2F;github.com&#x2F;JackGruber&#x2F;joplin-plugin-note-overview&#x2F;blob&#x2F;master&#x2F;README.md style="display: block;"><i class="fa-solid fa-link"></i> Homepage</a></li>
<li>
<a
id="view-plugin-source-link"
href="&#x2F;plugins/view-source.html?plugin=io.github.jackgruber.note-overview"
class="process--append-parent-tab-to-href"
>
<i class="fa-solid fa-code"></i> View source
</a>
</li>
</ul>
</td>
</tr>
<tr>
<th>Maintainers:</th>
<td>
<a href="./?search=maintainer%3D%22jackgruber%22%20max-results%3D20" class="maintainer-link">
jackgruber
</a>
</td>
</tr>
<tr><th>Version:</th><td>1.7.1</td></tr>
<tr><th>Minimum app version:</th><td>1.8.1</td></tr>
<tr><th>Downloads: This version:</th><td>3478</td></tr>
<tr><th>Last updated:</th><td class="process--format-as-local-time">2024-01-11T19:37:38Z</td></tr>
</tbody>
</table>
</div>
<div class="container section" id="readme" data--is-rendered-markdown>
<h1>Joplin Plugin: Note overview <img src="https://raw.githubusercontent.com/JackGruber/joplin-plugin-note-overview/HEAD/img/icon_32.png" /></h1>
<p>A note overview is created based on the defined search and the specified fields.</p>
<img src="https://raw.githubusercontent.com/JackGruber/joplin-plugin-note-overview/HEAD/img/main.png" />
<ul>
<li><a href="#installation">Installation</a>
<ul>
<li><a href="#automatic">Automatic</a></li>
<li><a href="#manual">Manual</a>
<ul>
<li><a href="#manual-via-file-system">Manual via file system</a></li>
<li><a href="#manual-via-file-via-gui">Manual via file via GUI</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#limitations">Limitations</a></li>
</ul>
</li>
<li><a href="#codeblock-options">Codeblock options</a>
<ul>
<li><a href="#search">search</a>
<ul>
<li><a href="#search-variable-date">search variable date</a></li>
</ul>
</li>
<li><a href="#fields">fields</a></li>
<li><a href="#sort">sort</a></li>
<li><a href="#limit">limit</a></li>
<li><a href="#alias">alias</a></li>
<li><a href="#datetime">datetime</a></li>
<li><a href="#image">image</a></li>
<li><a href="#excerpt">excerpt</a></li>
<li><a href="#details">details</a></li>
<li><a href="#count">count</a></li>
<li><a href="#listview">listview</a></li>
<li><a href="#link">link</a></li>
<li><a href="#status">status</a></li>
</ul>
</li>
<li><a href="#examples">Examples</a>
<ul>
<li><a href="#todo-overview">ToDo Overview</a></li>
<li><a href="#show-all-todos-with-status">Show all ToDos with status</a></li>
<li><a href="#open-todos-for-the-next-7-days-and-overdue-todos">Open ToDos for the next 7 days and overdue ToDos</a></li>
<li><a href="#exclude-todos-with-no-due-date">Exclude ToDos with no due date</a></li>
<li><a href="#show-all-todos-with-no-due-date">Show all ToDos with no due date</a></li>
<li><a href="#rename-fields">Rename fields</a></li>
<li><a href="#notes-without-a-tag">Notes without a tag</a></li>
<li><a href="#notes-created-last-7-days">Notes created last 7 days</a></li>
<li><a href="#cooking-recipes-overview">Cooking recipes overview</a></li>
<li><a href="#details-option">Details option</a></li>
<li><a href="#change-count-for-single-overview">Change count for single overview</a></li>
<li><a href="#change-to-listview-no-linbreak">Change to listview no linbreak</a></li>
<li><a href="#combine-notes-dynamically">Combine notes dynamically</a></li>
<li><a href="#show-all-uncompleted-checkboxes-todos">Show all uncompleted checkboxes ToDos</a></li>
<li><a href="#disable-automatic-note-overview-update-for-one-note-overview">Disable automatic note overview update for one note overview</a></li>
<li><a href="#show-the-last-5-edited-notes">Show the last 5 edited notes</a></li>
</ul>
</li>
<li><a href="#plugin-options">Plugin options</a></li>
<li><a href="#keyboard-shortcuts">Keyboard Shortcuts</a></li>
<li><a href="#faq">FAQ</a>
<ul>
<li><a href="#the-note-overview-is-not-updated">The note overview is not updated</a></li>
<li><a href="#error-nested-mappings-are-not-allowed-in-compact-mappings">Error: Nested mappings are not allowed in compact mappings</a></li>
<li><a href="#error-implicit-map-keys-need-to-be-followed-by-map-values">Error: Implicit map keys need to be followed by map values</a></li>
<li><a href="#error-all-collection-items-must-start-at-the-same-column">Error: All collection items must start at the same column</a></li>
<li><a href="#error-eslice-is-not-a-function">Error: e.slice is not a function</a></li>
</ul>
</li>
<li><a href="#develop">Develop</a>
<ul>
<li><a href="#build">Build</a></li>
<li><a href="#updating-the-plugin-framework">Updating the plugin framework</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a></li>
<li><a href="#links">Links</a></li>
</ul>
<h2>Installation</h2>
<h3>Automatic</h3>
<ul>
<li>Go to <code>Tools &gt; Options &gt; Plugins</code></li>
<li>Search for <code>Note overview</code></li>
<li>Click Install plugin</li>
<li>Restart Joplin to enable the plugin</li>
</ul>
<h3>Manual</h3>
<h4>Manual via file system</h4>
<ul>
<li>Download the latest released JPL package (<code>io.github.jackgruber.note-overview.jpl</code>) from <a href="https://github.com/JackGruber/joplin-plugin-note-overview/releases/latest">here</a></li>
<li>Close Joplin</li>
<li>Copy the downloaded JPL package in your profile <code>plugins</code> folder</li>
<li>Start Joplin</li>
</ul>
<h4>Manual via file via GUI</h4>
<ul>
<li>Download the latest released JPL package (<code>io.github.jackgruber.notelistpreview.jpl</code>) from <a href="https://github.com/JackGruber/joplin-plugin-notelistpreview/releases/latest">here</a></li>
<li>Go to <code>Tools &gt; Options &gt; Plugins</code></li>
<li>Click on the gear wheel and select <code>Install from file</code></li>
<li>Select the downloaded JPL file</li>
<li>Restart Joplin</li>
</ul>
<h2>Usage</h2>
<p>Create one or more notes with the following content:</p>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">-tag:*</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">updated_time,</span> <span class="hljs-string">title</span>
<span class="hljs-attr">alias:</span> <span class="hljs-string">updated_time</span> <span class="hljs-string">AS</span> <span class="hljs-string">Last</span> <span class="hljs-string">edit,</span> <span class="hljs-string">title</span> <span class="hljs-string">AS</span> <span class="hljs-string">Title</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">title</span> <span class="hljs-string">DESC</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<p>Several of these blocks can be included in one note, also between text.</p>
<p>The note content is updated every x minutes (depending on your setting) or manualy by <code>Tools &gt; Create Note overview</code>.</p>
<h3>Limitations</h3>
<blockquote>
<p>⚠ Adding and editing the code block does not work in the <strong>Rich Text (WYSIWYG)</strong> editor!</p>
</blockquote>
<blockquote>
<p>⚠ When the note is edited in <code>Rich Text</code> (WYSIWYG) editor, the note code block is not preserved!</p>
</blockquote>
<blockquote>
<p>⚠ The manual refresh of the note ist not working in the <code>Rich Text</code> (WYSIWYG) editor, to update the note chnage to markdown editor, viewer or a other note and trigger the note overview update again.</p>
</blockquote>
<blockquote>
<p>With an automatic update, the currently displayed note opened in the <code>markdown</code> or <code>Rich Text</code> (WYSIWYG) editor is not updated to prevent data loss during editing!</p>
</blockquote>
<h2>Codeblock options</h2>
<p>Options that can be specified in the in the code block using YAML syntax.</p>
<h3>search</h3>
<p>The search filter which will be used to create the overview.
<a href="https://joplinapp.org/help/apps/search#search-filters">Documentation of search filters</a>.</p>
<pre class="hljs"><code><span class="hljs-attr">search:</span> <span class="hljs-string">type:todo</span>
</code></pre>
<h4>search variable date</h4>
<p>To search for date texts the variable <code>{{moments:&lt;FORMAT&gt;}}</code> is available, replace the <code>&lt;FORMAT&gt;</code> with the <a href="https://momentjs.com/docs/#/displaying/">moments formatting</a></p>
<pre class="hljs"><code><span class="hljs-attr">search:</span> <span class="hljs-string">Logbook</span> {{<span class="hljs-string">moments:YYYY</span>}}
</code></pre>
<p>The date can be manipulated with <code>modify:&lt;MANIPULATION&gt;</code>, for <code>&lt;MANIPULATION&gt;</code> the syntax is <code>&lt;+ or -&gt;&lt;amount&gt;&lt;Key&gt;</code> and the following key. This syntax can be repeated comma separated.</p>
<table class="table table-hover undefined">
<thead>
<tr>
<th>Modification</th>
<th>Key</th>
</tr>
</thead>
<tbody>
<tr>
<td>years</td>
<td>y</td>
</tr>
<tr>
<td>quarters</td>
<td>Q</td>
</tr>
<tr>
<td>months</td>
<td>M</td>
</tr>
<tr>
<td>weeks</td>
<td>w</td>
</tr>
<tr>
<td>days</td>
<td>d</td>
</tr>
<tr>
<td>hours</td>
<td>h</td>
</tr>
<tr>
<td>minutes</td>
<td>m</td>
</tr>
</tbody>
</table>
<pre class="hljs"><code><span class="hljs-attr">search:</span> <span class="hljs-string">Logbook</span> {{<span class="hljs-string">moments:DD-MM-YYYY</span> <span class="hljs-string">modify:+1m</span>,<span class="hljs-string">-1d</span>}}
</code></pre>
<h3>fields</h3>
<p>Which fields should be output in the table.<br />
All fields of the note are available, a complete list of all field can be found <a href="https://joplinapp.org/api/references/rest_api/#properties">here</a>.</p>
<p>In addition to the Joplin fields, there are the following virtual fields:</p>
<ul>
<li><code>status</code>: for todo status</li>
<li><code>file</code>: List of all attachments</li>
<li><code>file_size</code>: List of all attachments including their size</li>
<li><code>size</code>: Size of the note, including attachments</li>
<li><code>tags</code>: Assigned tags of the note</li>
<li><code>notebook</code>: Folder in which the note is stored</li>
<li><code>breadcrumb</code>: Folder breadcrumb (Folder path)</li>
<li><code>image</code>: In this field a image resource from the note will be displayed. This field can be configured using the <code>image</code> option</li>
<li><code>excerpt</code>: Displays an excerpt of the note body</li>
<li><code>link</code>: Display the <code>source_url</code>. This field can be configured using the <code>link</code> option</li>
</ul>
<pre class="hljs"><code><span class="hljs-attr">fields:</span> <span class="hljs-string">todo_due,</span> <span class="hljs-string">title,</span> <span class="hljs-string">tags,</span> <span class="hljs-string">notebook</span>
</code></pre>
<h3>sort</h3>
<p>By which field the output should be sorted. It can be only sorted by one field and it's not possible to sort by a virtual field!</p>
<pre class="hljs"><code><span class="hljs-attr">sort:</span> <span class="hljs-string">todo_due</span> <span class="hljs-string">ASC</span>
</code></pre>
<h3>limit</h3>
<p>Displayes only the first x hits of the search. Without the limit option all results are displayed.</p>
<pre class="hljs"><code><span class="hljs-attr">limit:</span> <span class="hljs-number">5</span>
</code></pre>
<h3>alias</h3>
<p>This allows renaming the fields in the output.</p>
<p>Syntax: <code>&lt;field&gt; AS &lt;new field name&gt;</code>, multiple fields comma seperated.</p>
<pre class="hljs"><code><span class="hljs-attr">alias:</span> <span class="hljs-string">todo_due</span> <span class="hljs-string">AS</span> <span class="hljs-string">Due</span> <span class="hljs-string">Date,</span> <span class="hljs-string">notebook</span> <span class="hljs-string">AS</span> <span class="hljs-string">Folder</span>
</code></pre>
<h3>datetime</h3>
<p>Customize datetime format for a single overview.</p>
<pre class="hljs"><code><span class="hljs-attr">datetime:</span>
<span class="hljs-attr">date:</span> <span class="hljs-string">"YYYY-MM-DD"</span>
<span class="hljs-attr">time:</span> <span class="hljs-string">"HH:mm"</span>
</code></pre>
<ul>
<li><code>date</code>: Set date format. Default is Joplin global settings on <code>Tools</code> &gt; <code>Options</code> &gt; <code>General</code> &gt; <code>Date format</code></li>
<li><code>time</code>: Set time format. Default is Joplin global settings on <code>Tools</code> &gt; <code>Options</code> &gt; <code>General</code> &gt; <code>Time format</code></li>
</ul>
<p>Complete list of format can be found <a href="https://momentjs.com/docs/#/displaying/format/">here</a>.</p>
<p>You can also set datetime to <a href="https://momentjs.com/docs/#/durations/humanize/">humanize</a> format, to display a length of time. You can do that by adding <code>humanize</code> settings.</p>
<pre class="hljs"><code><span class="hljs-attr">datetime:</span>
<span class="hljs-attr">date:</span> <span class="hljs-string">"YYYY-MM-DD"</span>
<span class="hljs-attr">time:</span> <span class="hljs-string">"HH:mm"</span>
<span class="hljs-attr">humanize:</span>
<span class="hljs-attr">enabled:</span> [<span class="hljs-literal">true</span> <span class="hljs-string">|</span> <span class="hljs-literal">false</span>]
<span class="hljs-attr">withSuffix:</span> [<span class="hljs-literal">true</span> <span class="hljs-string">|</span> <span class="hljs-literal">false</span>]
</code></pre>
<ul>
<li><code>enabled</code> : set <code>true</code> to enable humanize format. Default is <code>false</code>.</li>
<li><code>withSuffix</code> : set <code>false</code>, to remove oriented duration (ex: <code>a month</code>). Default is <code>true</code>, it will add oriented duration (ex: <code>in a month</code>, <code>a month ago</code>).</li>
</ul>
<h3>image</h3>
<p>This allows you to control the image displayed in the <code>image</code> field.</p>
<ul>
<li><code>nr</code>: Which image should be displayed</li>
<li><code>exactnr</code>:
<code>false</code> = If the image number is not found, the last available one is used.
<code>true</code> = Only the exact image number is used.</li>
<li><code>width</code>: The image is reduced to this width.</li>
<li><code>height</code>: The image is reduced to this height</li>
</ul>
<pre class="hljs"><code><span class="hljs-attr">image:</span>
<span class="hljs-attr">nr:</span> <span class="hljs-number">1</span>
<span class="hljs-attr">exactnr:</span> <span class="hljs-literal">true</span>
<span class="hljs-attr">width:</span> <span class="hljs-number">200</span>
<span class="hljs-attr">height:</span> <span class="hljs-number">200</span>
</code></pre>
<h3>excerpt</h3>
<p>Displays an excerpt of the note body, the length of the excerpt can be configured using <code>maxlength</code> or you can use a RegEx to select data for the excerpt.</p>
<pre class="hljs"><code><span class="hljs-attr">excerpt:</span>
<span class="hljs-attr">maxlength:</span> <span class="hljs-number">200</span>
<span class="hljs-attr">removenewline:</span> [<span class="hljs-literal">true</span> <span class="hljs-string">|</span> <span class="hljs-literal">false</span>]
<span class="hljs-attr">removemd:</span> [<span class="hljs-literal">true</span> <span class="hljs-string">|</span> <span class="hljs-literal">false</span>]
<span class="hljs-attr">regex:</span> <span class="hljs-string">^.*Joplin.*$</span>
<span class="hljs-attr">regexflags:</span> <span class="hljs-string">gmi</span>
</code></pre>
<ul>
<li><code>maxlength</code>: Maximum length for the excerpt</li>
<li><code>removenewline</code>: Remove new lines from excerpt, default <code>true</code></li>
<li><code>removemd</code>: Remove markdown from excerpt, default <code>true</code></li>
<li><code>regex</code>: Regular expression to match content for the excerpt. <code>maxlength</code> will be ignored if this option is used.</li>
<li><code>regexflags</code>: Regular expression flags for the <code>regex</code> match</li>
</ul>
<h3>details</h3>
<p>Add the overview into a details section that can open and close on demand.
In the summary the variable <code>{{count}}</code> can be used, to display the number of matched notes.</p>
<pre class="hljs"><code><span class="hljs-attr">details:</span>
<span class="hljs-attr">open:</span> [<span class="hljs-literal">true</span> <span class="hljs-string">|</span> <span class="hljs-literal">false</span>]
<span class="hljs-attr">summary:</span> {{<span class="hljs-string">count</span>}} <span class="hljs-string">notes</span> <span class="hljs-string">without</span> <span class="hljs-string">a</span> <span class="hljs-string">Tag</span>
</code></pre>
<h3>count</h3>
<p>Customize note count field for a single overview.</p>
<pre class="hljs"><code><span class="hljs-attr">count:</span>
<span class="hljs-attr">enable:</span> [<span class="hljs-literal">true</span> <span class="hljs-string">|</span> <span class="hljs-literal">false</span>]
<span class="hljs-attr">position:</span> [<span class="hljs-string">above</span> <span class="hljs-string">|</span> <span class="hljs-string">below</span>]
<span class="hljs-attr">text: Note count:</span> {{<span class="hljs-string">count</span>}}
</code></pre>
<h3>listview</h3>
<p>Option to display the overview as list instead of a table.
For the field <code>text</code> all fields can be used, all used Joplin fields must be specified in the <code>fields</code>!</p>
<pre class="hljs"><code><span class="hljs-attr">fields:</span> <span class="hljs-string">title</span>
<span class="hljs-attr">listview:</span>
<span class="hljs-attr">text:</span> <span class="hljs-string">"<span class="hljs-template-variable">{{title}}</span> in <span class="hljs-template-variable">{{notebook}}</span>"</span>
<span class="hljs-attr">linebreak:</span> [<span class="hljs-literal">true</span> <span class="hljs-string">|</span> <span class="hljs-literal">false</span>]
<span class="hljs-attr">separator:</span> <span class="hljs-string">" | "</span>
<span class="hljs-attr">prefix:</span> <span class="hljs-string">==</span>
<span class="hljs-attr">suffix:</span> <span class="hljs-string">==</span>
</code></pre>
<h3>link</h3>
<p>This allows you to control the output displayed in the <code>link</code> field.</p>
<ul>
<li><code>caption</code>: The text to display for the link (default = <code>Link</code>).</li>
<li><code>html</code>:
<code>false</code> = Output is a markdown link (default)
<code>true</code> = Output is a HTML link</li>
</ul>
<pre class="hljs"><code><span class="hljs-attr">link:</span>
<span class="hljs-attr">caption:</span> <span class="hljs-string">"Jump to"</span>
<span class="hljs-attr">html:</span> <span class="hljs-literal">true</span>
</code></pre>
<h3>status</h3>
<p>Customize note status field for a single overview.</p>
<pre class="hljs"><code><span class="hljs-attr">status:</span>
<span class="hljs-attr">note:</span> <span class="hljs-string">""</span>
<span class="hljs-attr">todo:</span>
<span class="hljs-attr">open:</span> <span class="hljs-string"></span>
<span class="hljs-attr">done:</span> <span class="hljs-string">🗹</span>
<span class="hljs-attr">overdue:</span> <span class="hljs-string"></span>
</code></pre>
<h2>Examples</h2>
<h3>ToDo Overview</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">type:todo</span> <span class="hljs-string">iscompleted:0</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">todo_due,</span> <span class="hljs-string">title,</span> <span class="hljs-string">tags,</span> <span class="hljs-string">notebook</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">todo_due</span> <span class="hljs-string">ASC</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Show all ToDos with status</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">type:todo</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">status,</span> <span class="hljs-string">todo_due,</span> <span class="hljs-string">title</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">todo_completed</span> <span class="hljs-string">ASC</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Open ToDos for the next 7 days and overdue ToDos</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">-due:day+7</span> <span class="hljs-string">iscompleted:0</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">todo_due,</span> <span class="hljs-string">title</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">todo_due</span> <span class="hljs-string">ASC</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Exclude ToDos with no due date</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">due:19700201</span> <span class="hljs-string">iscompleted:0</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">todo_due,</span> <span class="hljs-string">title</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">todo_due</span> <span class="hljs-string">ASC</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Show all ToDos with no due date</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">-due:19700201</span> <span class="hljs-string">iscompleted:0</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">todo_due,</span> <span class="hljs-string">title</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">todo_due</span> <span class="hljs-string">ASC</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Rename fields</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">"*"</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">updated_time,</span> <span class="hljs-string">title</span>
<span class="hljs-attr">alias:</span> <span class="hljs-string">updated_time</span> <span class="hljs-string">AS</span> <span class="hljs-string">Modified</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Notes without a tag</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">-tag:*</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">updated_time,</span> <span class="hljs-string">title</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Notes created last 7 days</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">created:day-7</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title,</span> <span class="hljs-string">updated_time</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">title</span> <span class="hljs-string">DESC</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Cooking recipes overview</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">notebook:Cooking</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title,</span> <span class="hljs-string">image,</span> <span class="hljs-string">tags</span>
<span class="hljs-attr">image:</span>
<span class="hljs-attr">width:</span> <span class="hljs-number">200</span>
<span class="hljs-attr">height:</span> <span class="hljs-number">200</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<img src="https://raw.githubusercontent.com/JackGruber/joplin-plugin-note-overview/HEAD/img/example_image.jpg" />
<h3>Details option</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">-tag:*</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title</span>
<span class="hljs-attr">details:</span>
<span class="hljs-attr">open:</span> <span class="hljs-literal">false</span>
<span class="hljs-attr">summary:</span> <span class="hljs-string">All</span> <span class="hljs-string">notes</span> <span class="hljs-string">without</span> <span class="hljs-string">a</span> <span class="hljs-string">Tag</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<img src="https://raw.githubusercontent.com/JackGruber/joplin-plugin-note-overview/HEAD/img/example_option_details.jpg" />
<h3>Change count for single overview</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">-tag:*</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title</span>
<span class="hljs-attr">count:</span>
<span class="hljs-attr">enable:</span> <span class="hljs-literal">true</span>
<span class="hljs-attr">position:</span> <span class="hljs-string">above</span>
<span class="hljs-attr">text:</span> <span class="hljs-string">For</span> <span class="hljs-string">the</span> <span class="hljs-string">query</span> {{<span class="hljs-string">count</span>}} <span class="hljs-string">notes</span> <span class="hljs-string">where</span> <span class="hljs-string">found</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Change to listview (no linbreak)</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">-tag:*</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title,</span> <span class="hljs-string">updated_time</span>
<span class="hljs-attr">listview:</span>
<span class="hljs-attr">text:</span> <span class="hljs-string">"<span class="hljs-template-variable">{{title}}</span>"</span>
<span class="hljs-attr">linebreak:</span> <span class="hljs-literal">false</span>
<span class="hljs-attr">separator:</span> <span class="hljs-string">" | "</span>
<span class="hljs-attr">prefix:</span> <span class="hljs-string">==</span>
<span class="hljs-attr">suffix:</span> <span class="hljs-string">==</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<img src="https://raw.githubusercontent.com/JackGruber/joplin-plugin-note-overview/HEAD/img/example_option_listview_nolb.jpg" />
<h3>Combine notes dynamically</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">notebook:"Welcome!</span> <span class="hljs-string">(Desktop)"</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">body</span>
<span class="hljs-attr">listview:</span>
<span class="hljs-attr">text:</span> <span class="hljs-string">"<span class="hljs-template-variable">{{body}}</span>"</span>
<span class="hljs-attr">separator:</span> <span class="hljs-string">---</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Show all uncompleted checkboxes (ToDos)</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">tag:todo</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title,</span> <span class="hljs-string">excerpt</span>
<span class="hljs-attr">listview:</span>
<span class="hljs-attr">text:</span> <span class="hljs-string">|-</span>
{{<span class="hljs-string">title</span>}}
{{<span class="hljs-string">excerpt</span>}}
<span class="hljs-attr">excerpt:</span>
<span class="hljs-attr">regex:</span> <span class="hljs-string">^.*-</span> <span class="hljs-string">\[(</span> <span class="hljs-string">)\].*$</span>
<span class="hljs-attr">regexflags:</span> <span class="hljs-string">gmi</span>
<span class="hljs-attr">removenewline:</span> <span class="hljs-literal">false</span>
<span class="hljs-attr">removemd:</span> <span class="hljs-literal">false</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<img src="https://raw.githubusercontent.com/JackGruber/joplin-plugin-note-overview/HEAD/img/example_option_excerpt_regex_checkbox.png" />
<h3>Disable automatic note overview update for one note overview</h3>
<p>When you set the <code>update</code> option to <code>manual</code>, then note overview is only updated when you select the note and trigger a update.</p>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">tag:todo</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title,</span> <span class="hljs-string">excerpt</span>
<span class="hljs-attr">update:</span> <span class="hljs-string">manual</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h3>Show the last 5 edited notes</h3>
<pre class="hljs"><code><span class="hljs-string">&lt;!--</span> <span class="hljs-string">note-overview-plugin</span>
<span class="hljs-attr">search:</span> <span class="hljs-string">/*</span>
<span class="hljs-attr">fields:</span> <span class="hljs-string">title,</span> <span class="hljs-string">updated_time</span>
<span class="hljs-attr">sort:</span> <span class="hljs-string">updated_time</span> <span class="hljs-string">DESC</span>
<span class="hljs-attr">limit:</span> <span class="hljs-number">5</span>
<span class="hljs-string">--&gt;</span>
</code></pre>
<h2>Plugin options</h2>
<p>Settings for the plugin, accessible at <code>Tools &gt; Options &gt; Note overview</code>.</p>
<h2>Keyboard Shortcuts</h2>
<p>Under <code>Options &gt; Keyboard Shortcuts</code> you can assign a keyboard shortcut for the following commands:</p>
<ul>
<li><code>Create note overview</code></li>
</ul>
<h2>FAQ</h2>
<h3>The note overview is not updated</h3>
<p>See the <a href="#limitations">limitations</a> section.</p>
<h3>Error: Nested mappings are not allowed in compact mappings</h3>
<p>This error message occurs when a colon is used in the option value and an space character follows the colon. Just enclose the value of the option in quotes like <code>alias: "title AS : Title :"</code>.</p>
<h3>Error: Implicit map keys need to be followed by map values</h3>
<p>There is a space missing between the <code>&lt;option&gt;:</code> and the value. The option should looks like <code>&lt;option&gt;: &lt;value&gt;</code>.</p>
<h3>Error: All collection items must start at the same column</h3>
<p>If an option value starts with a <code>{</code>, the text must be enclosed by quotes.
For example change <code>text: {{title}} match</code> to <code>text: "{{title}} match"</code></p>
<h3>Error: e.slice is not a function</h3>
<p>If an option value starts with a <code>{</code> and and ends with a <code>}</code> the text is interpreted as object. Enclose the value with quotes.
For example change <code>text: {{title}}</code> to <code>text: "{{title}}"</code></p>
<h2>Develop</h2>
<h3>Build</h3>
<p>To build your one version of the plugin, install node.js and run the following command <code>npm run dist</code></p>
<h3>Updating the plugin framework</h3>
<p>To update the plugin framework, run <code>npm run update</code></p>
<h2>Changelog</h2>
<p>See <a href="https://raw.githubusercontent.com/JackGruber/joplin-plugin-note-overview/HEAD/CHANGELOG.md">Changelog</a></p>
<h2>Links</h2>
<ul>
<li><a href="https://joplinapp.org/api/get_started/plugins/">Joplin - Getting started with plugin development</a></li>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Joplin - Plugin API reference</a></li>
<li><a href="https://joplinapp.org/api/references/rest_api/">Joplin - Data API reference</a></li>
<li><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins">Joplin - Plugin examples</a></li>
</ul>
</div>
</div>
</main>
<footer class="page-footer">
<div class="plugin-documentation-section">
<div class="heading">
Would you like to submit or develop a plugin? Consult our documentation:
</div>
<a class="btn btn-outline-primary" href="https://joplinapp.org/help/api/get_started/plugins">
See documentation
</a>
</div>
<div class="links legal-and-about-links">
<div class="copyright">© Joplin 2023 - 2024</div>
<a class="link terms-and-conditions" href="&#x2F;plugins/terms-and-conditions.html">Terms and conditions</a>
<a class="link privacy" href="&#x2F;plugins/privacy-policy.html">Privacy policy</a>
</div>
<div class="site-links">
<a
class="a-github"
href="https://github.com/joplin/website-plugin-discovery"
aria-label="GitHub"
title="GitHub"
>
<i class="fab fa-github"></i>
</a>
<a
class="a-discord"
href="https://discord.com/invite/VSj7AFHvpq"
aria-label="Discord"
title="Discord"
>
<i class="fab fa-discord"></i>
</a>
<a
class="a-linkedin"
href="https://www.linkedin.com/company/joplin"
aria-label="LinkedIn"
title="LinkedIn"
>
<i class="fab fa-linkedin"></i>
</a>
<a
class="a-twitter"
href="https://twitter.com/joplinapp"
aria-label="Twitter"
title="Twitter"
>
<i class="fab fa-twitter"></i>
</a>
<a
class="a-mastodon"
href="https://mastodon.social/@joplinapp"
aria-label="Mastodon"
title="Mastodon"
>
<i class="fab fa-mastodon"></i>
</a>
<a
class="a-patreon"
href="https://www.patreon.com/joplin"
aria-label="Patreon"
title="Patreon"
>
<i class="fab fa-patreon"></i>
</a>
</div>
</footer>
</body>
</html>