Can use the following kit:
- Add a macro inside file
config.edn, insidemacros{}::ref "<span class='kit' data-kit='blockref' data-ref='$1'>[ref]( $1 )</span>" - Create a page with the kit’s name
- in this case
BlockRef
- in this case
- Put inside a javascript code-block with this code:
logseq.kits.setStatic(function blockref(span){ const uuid = span.dataset.ref.slice(2, -2) const block = logseq.api.get_block(uuid) if (!block) return var title = block.content.slice(0, 64) const index = title.indexOf("\n") if (index > -1) title = title.slice(0, index) const blockId = span.closest(".ls-block").getAttribute("blockid") const sourceContent = logseq.api.get_block(blockId).content const ref = span.dataset.ref const target = "{{ref " + ref + "}}" const markdown = "[" + title + "]( " + ref + " )" logseq.api.update_block(blockId, sourceContent.replace(target, markdown)) }) - Now when typing something like
{{ref pasted-ref}}- one space only
- check
targetin the code
- If the ref’s block is found, it will be replaced with
[block-title]( pasted-ref )- check
markdownin the code - for the desired title’s maximum length, adjust number
64in the code
- check