Reference a page by name without linking to it

Here is my problem: I am a fiction writer, and the names of things and characters can change frequently.

Please excuse this terrible example:

  • Say I have a page called “Fred” and another page called “Fred’s Castle”
  • There’s something appealing about the idea of using “[[Fred]]'s Castle” as the page name, which would automagically update the page name if I ever to rename the “Fred” page.
  • But, I don’t actually want the [[Fred]] in Fred’s Castle to be a link, as it’s quite ugly and can lead to some unwanted UX.
  • What I really want is for Fred to be a linked variable. I’m 99% sure there’s no way to do this, but thought I’d ask. Should I be thinking about this differently? Thanks!
1 Like
  1. You want both pages (“Fred” & “Fred’s Castle”) to be renamed at the same time with renaming “Fred”. That is not possible.

  2. Alternative way is to have a hierarchy “Fred” & “Fred/Castle”. Renaming “Fred” renames “Fred/Castle” also. But “Fred/Castle” have a not so nice readability (is it important for you?)

  3. Another alternative: with the help of properties and 🏛 Full House Templates plugin:
    2024-08-16 03.19.43
    Note a bug with a cache in Logseq after page renaming.
    Note: the content from a page “Fred’s Castle” was not moved to new page.

    Text from demo:

    person:: [[Fred]]  
    plain — {{renderer :view, "c.page.propsRefs.person"}}
    
    ref — {{renderer :view, "c.page.props.person"}}
    
    plain — {{renderer :view, "c.page.propsRefs.person + '\'s Castle'"}}
    
    ref — {{renderer :view, "ref(c.page.propsRefs.person + '\'s Castle')"}}
    

:exclamation: Also take a look here for inline properties implementation.

3 Likes