【6】Trilium 基础使用技巧合集 | shmaur

shmaur
2024-06-07
-
-

本文将持续更新 Trilium 的使用技巧

1、怎么快速引用笔记

    1.1 引用方式1:输入@就可快速调用笔记

输入@符号就可以快速选择,非常方便

 

     1.2 引用方式2:在输入方左侧点击就可以查看到一个 Trilium 三叶草,就可以选择笔记

选择三叶草

 

选择文章

 

插入后的效果

引用后的效果图片

 

在笔记内鼠标移动上去就会显示预览

 

2、怎么嵌入笔记

        上面的笔记是嵌入一个标题连接,如果你想把整个笔记嵌入到当前笔记中直接显示就可以采用下面的方式

嵌入笔记

 

选择笔记

 

效果,直接铺满,也可以不选择铺满,只展示一定的可视高度

 

3、怎么分享笔记

分享笔记可以在公网可以看到,也可以分享给好友。

点击分享就可以输入具体的ip地址访问笔记了

 

4、怎么加密笔记

加密笔记由两种方式,第一种是笔记里面加密访问,一个是分享给好友,需要输入账号密码

4.1  第一种:在笔记后台访问笔记的时候输入密码

选择笔记右键就可以直接添加

密码

 

4.2  第二种:分享出去的文章,需要输入密码才能访问笔记

在笔记的属性栏目添加一个属性

#shareCredentials="username:password"  # username 是需要输入的用户  password是输入访问的密码
添加属性

 

或者直接粘贴,修改对应的内容

如果是使用本博客主题,配置方式在属性配置里面直接输入账号和密码,格式与官方要求一致:shmaur:123

本博客主题配置方式

 

效果,需要输入用户名和密码就可以访问

 

5、通过 share 分享到 html 中显示内嵌笔记

通过第2点分享的在笔记内可以显示,但是在分享后不会显示;需要使用本主题,使用本主题后默认可以使用。

以下是嵌入笔记示例

============ 嵌入开始 ===================

 

============ 嵌入结束 ===================

6、分享出去的文章树,想隐藏其中一个节点

官方配置在属性中配置:

#shareHiddenFromTree 
添加属性后,在分享列表中就不会有了。

本博客主题配置:

需要隐藏勾上即可,不需要则取消勾选

 

7、分享出去的是一串字符串,不能够被识别,那就可以添加一个别名

官方配置方式:

字符串,比如我想改成后缀为html的

 

预览效果

 

#shareAlias=TriliumSkill.html  
添加一个属性别名,保存

 

效果,现在就变成了自己改的名字,看链接就能大概知道是什么了

本博客配置方式:

填写如地址即可

 

8、克隆笔记

       对于作者对于这个功能的定义是克隆,但是直观理解就是复制一份副本,但是实际上不是。比如复制了一份笔记,如果两份里面随便修改一个,都会跟着进行同步。

       默认复制粘贴也是这种效果,如果需要创建一份独立不受影响的副本则需要

 

9、文章标题序号及快捷键

以下为 Trilium 自动生成的标题序号

快捷键:

tab:增加缩进
shift + tab:缩减缩进
shift+回车:可以无格式小换行且与上一行对齐
  1. 一级标题
    1. 二级标题
  2. 一级标题

    接着上个段落自动生成序而我认为

    四单反

    1. 二级标题
    2. 二级标题
      1. 三级标题
      2. 三级标题
      3. 三级标题
        1. 四级标题
        2. 四级标题
          1. 五级标题
          2. 五级标题
            1. 六级标题
            2. 六级标题
              1. 七级标题
              2. 七级标题
  3. 一级标题

10、右侧笔记目录怎么出现

        右侧目录为Trilium自带效果,默认超过5个标题的时候会显示,可以进行调整。

文章示例
设置方式,当标题超过多少个后显示笔记目录

 

11、怎么添加笔记模板

在属性中添加 template 即可,添加成功后,这个笔记的内容属性都会被使用,如果是继承属性则会继承到所有添加的笔记中。

 

12、直接在笔记中打开电脑本地文件路径,双击打开

内容来自官方 https://github.com/zadam/trilium/discussions/1549 

示例效果:

使用方法:

1、复制以下代码

async function OpenLocalPath(event) {
    // Check if the event was a Ctrl+double click.
    if (event.ctrlKey) {
        var path = event.target.innerText;
        console.log(`>> ctrl + double_click get line content:\n${path}`)
        //------ Check if the text content contain a file path.   ------
        if (/[A-Z]:\\.*/.test(path)) {
            var path = path.match(/[A-Z]:\\.*/)[0]
            console.log(`>> Open local path: ${path}`)
            // Use the PathLinkerApi to open the file at the path.
            await document.PathLinkerApi.runAsyncOnBackendWithManualTransactionHandling(async (path) => { 
                const shell = require('electron').shell;
                await shell.openPath(path);
                return;
            }, [path]);
        }
    }
}

const TEMPLATE = `
    <div style="padding: 10px; border-top: 1px solid var(--main-border-color); contain: none;">
    <script>
    ${OpenLocalPath.toString()}
    document.addEventListener('dblclick', OpenLocalPath);
    </script>
    </div>`;

class PathLinkerWidget extends api.NoteContextAwareWidget {
    constructor(...args) {
        super(...args);
        this.balloonEditorCreate = null;
    }
    
    get position() { 
        // higher value means position towards the bottom/right
        return 100; 
    } 

    get parentWidget() { return 'center-pane'; }

    doRender() {
        this.$widget = $(TEMPLATE);
        this.$widget.hide();
        
        // store API in document to access it from callback
        document.PathLinkerApi = api;
        return this.$widget;
    }
}

let widget = new PathLinkerWidget();
console.log(">> Loaded PathLinkerWidget");
module.exports = widget;
 

到笔记中创建一个 code 的笔记,并且为  js frontend 类型,并且为这个笔记添加一个属性:#widget

笔记文件类型

添加属性

添加这个属性,添加完成后刷新一下笔记
示例效果,示例效果来自 Trilium 群友 uu;

13、统计做了多少笔记

笔记系统默认有个统计,可以在这里查看到

笔记统计
可以在这里查看到所有的笔记类型数量

14、删除通过 js 导入到左侧的按钮

需要删除的内容
点击菜单
找到对应的按钮,右键点击删除即可

15、怎么创建模板文件

比如创建一个读书笔记,再任意一个位置创建一个笔记,再属性里面添加#template 即可;再右键创建的时候就能够看到刚刚创建的模板。

添加模板属性
添加模板笔记

 

 

15、怎么让无序标题可以折叠

看效果,原文地址:https://github.com/zadam/trilium/issues/1850
 

上代码,使用方式:

1、创建一个js笔记,类型为js

2、再笔记类型里面添加属性:#widget

3、刷新效果后生效

/**
 * A widget make lists collapsible in text notes.
 */
const TPL = `<div>
</div>`;

const styles = `
/* Place your CSS below this */

.note-detail-editable-text li.collapsed > ul {
    display: none;
}

.note-detail-editable-text li.sublist-item {
    position: relative;
}

.note-detail-editable-text li.sublist-item::before {
    content: "➤";
    display: flex;
    position: absolute;
    top: 3px;
    left: -40px;
    width: 16px;
    height: 16px;
    align-items: center;
    cursor: pointer;
    transform: rotate(90deg);
    transition: transform 200ms ease;
}

.note-detail-editable-text li.sublist-item.collapsed::before {
    transform: rotate(0);
}

/* Place your CSS above this */`;


$(document).off(".collapse-ul");

$(document).on("click.collapse-ul", ".note-detail-editable-text ul li:has(ul)", e => {
    e.stopPropagation();
    const rect = e.target.getBoundingClientRect();
    if (e.pageX < rect.left) e.target.classList.toggle("collapsed");
});

function addSublistClass() {
    console.log("addSublistClass");
    console.log("======223343========444")
    $(".note-detail-editable-text ul li:has(ul)").each((_, e) => {
        console.log(e);
        if (e.classList.contains("sublist-item")) return;
        e.classList.add("sublist-item");
    });
}

class CollapseWidget extends api.NoteContextAwareWidget {
    get position() {return 100;}
    get parentWidget() {return "note-detail-pane";}

    isEnabled() {
        
        if (!super.isEnabled()) return false;
        return this.note.type === "text";
    }

    doRender() {
        this.$widget = $(TPL);
        
        this.cssBlock(styles);
        return this.$widget;
    }

    async refreshWithNote() {
        
        setTimeout(addSublistClass, 100);
    }

    async entitiesReloadedEvent({loadResults}) {
        if (loadResults.isNoteContentReloaded(this.noteId)) {
            this.refresh();
        }
    }
    
    async noteSwitched() {
        console.log("======8778=======")
        await this.refresh();
    }
}

module.exports = new CollapseWidget();

16、怎么隐藏子笔记列表中显示的属性

1、创建一个笔记,笔记类型为CSS笔记

2、添加如下代码,并添加属性#appCss

.rendered-note-attributes {
    display: none;
}

3、刷新 Trilium

未设置之前
设置之后

17、想把笔记放U盘里随时使用,数据库路径要怎么修改

使用 portable.bat 启动

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录关闭