Deeplinking

Obsidian has something similar. The three-dot menu within a document has an option called “Copy Obsidian URL”, which when clicked from outside the app will open the aforementioned document in Obsidian.

E.g obsidian://open?vault=Vault%201&file=Test%20document%20test%20document%20link

Anytype, instead, uses IPFS content address to locate objects, not the filename within the filesystem like Obsidian. Thus, it might make sense to use the content identifier to create these deeplinks.

1 Like

Not the OP, but I think what the original post is asking for the ability to link Anytype Objects outside of the app, while the similar issue you linked appears to be asking for the ability to link specific blocks within an object inside of the app. It’s similar but I don’t exactly think these are similar enough to merge.

2 Likes

I would prefer deeplinking to something immutable like a content identifier rather than a file name, so it would be cool for AnyType to implement that.

3 Likes

Is your feature request related to a problem? Please describe.
The ability to link to headers of the note so users are able to click the link to read/modify the contents under the header.

Describe the solution you’d like
There are two solutions in my mind:

  1. Like other note-taking applications (e.g., obsidian), input the symbol for linking (@ for Anytype; [[ for obsidian) to list all objects, and then input the symbol # to list the headers of a specific object to link to. (Please go to the end of the post for example of this solution)

  2. Making headers as a new object type like task object but with a header style instead of the task style. And then users will be able to link to a header just like linking to a task object. (No example)

I personally think solution 1 is more straightforward from a traditional note-taking user’s perspective. However, solution 2 is more close to the Anytype’s concept.

Describe alternatives you’ve considered
I can think about an alternative solution that was taken from the Notion application’s idea. That is, giving a block an URL/URI, and then users will be able to use the URL/URI to link to a specific block. However, to my experience with Notion, this is not good UX, because there will be a lot of step to go to do a linking. (Example are as below.)

(ALSO, the craft can do both solutions but a bit different, the example is as below.)

Additional context

  • Example of solution 1 (obsidian-like internal linking):

CleanShot 2022-08-27 at 14.12.47

  • There is no example for solution 2 because Anytype is the only object-based note-taking application.

  • Example of the alternative solution (Notion-like linking to block/header):

CleanShot 2022-08-27 at 14.21.49

  • Craft Note can do both solutions:

CleanShot 2022-08-27 at 14.28.43

2 Likes

WHAT DO YOU RECOMMEND

Allow generating local URLs like anytype://738dcd1e-76fb-43d0-922a-3ebce67dbed6, which when clicked, will get picked up by AnyType and open a certain object

HOW COULD IT BE DONE

Define URL association and use whatever internal ID objects already use, I guess

REAL WORLD USE CASES

I currently use some other ToDo apps for upcoming tasks and projects, but some more details information(such as design choices and notes) I store in AnyType, and I would be able to drop a link in the ToDo app which will then open the corresponding object in AnyType for me.

RECOMMENDED ALTERNATIVES

I just put “See on AnyType” which probably isn’t the best way to do it.

ADDITIONAL CONTEXT

N/A

12 Likes

That would be really handy! Basically you’re describing a kind of cross platform transclusion, with just a simple hyper-link. Would also be very useful when collaboration is implemented.

9 Likes

I like this idea, it could really help improve the workflow when coming from other apps.

5 Likes

Dear Anytype-team, is there any progress on this feature request? It would be really great to be able to use that to link anytype with other apps like calendar or logseq… so we could jump fast between those with the direct links.

4 Likes

Any news about this?

3 Likes

An interesting use case for deeplinking is the ability to create OS shortcuts for certain objects located inside Anytype. If I wanted to be able to directly open my books shortcut from my OS search, I would be able to implement that.

5 Likes

This should really be table stakes for any kind of PKM app, IMHO.

Much more about the whys and hows can be found here:

4 Likes

The deep linking or whatever it’s called is mandatory for future. But a side note is that managing all the links is overwhelming and a major issue. Right now only computer nerds can work on meta-data. So then I have to make a list of all links and make my own columns and dashboards and then learn SQL to start linking the links together. Only a few people online seem to understand this issue in my searches. Basically to be able to browse files like iTunes does music. The hierarchy system is horrendous especially for sharing. I’ve seen large companies go out of business because nobody knows how to find anything.

So if anytype is going to get into sharing I think they could use that shareable iTunes style browsing for objects/files. And users would need full customizability of the meta-data.

Anyone else feel the user is a lot better working with registers direct - configuring the TTL like switch config. Personally in my life I think it’s mad that we can’t … I’m about ready to switch to relays and light switches for any local controls… Ranting a bit, but also advertising. Local controls for real things could work with anytype with the “deep linking” in both directions. Already does in one direction. So basically if I wanted to use a Plc program (ladder logic) for opening a valve in tangible reality I could do so - but those programs don’t show any totalities like anytype does. And Scada systems could show sequencing of processes.
So the filing system could also link to tangible folders too - by giving co-ordinates ( my office at this address file cabinet #2 red files labelled xyz). Anytype would be great for showing information connections as aspects - supplier info, maintenance info, logic, etc. Many aspects that necessarily can’t be in anytype.

But this iTunes file viewing I wonder if it could be a simple extended app? I’m not sure but if anyone wants to point me in the right direction I’ve been working on requirements and started with a tutor. I would also pay anyone to help my with anytype specifically as it’s getting pretty close to what I want and it’s open-source.

Fyi - I am an electrician by trade. And an epistemologist and ontologist. So I get the conversation but I get lost with the specific jargon as I am not fluid in the application and presentation layers of computers.

It’s probably a seperate app not a feature… Albeit a useful app that could bind all other apps. Maybe of interest to anytype? Perhaps could be done in anytype… With a more customizable list for objects - adding whatever connection -to object as content/context - to object process cycles ; becoming, operations and maintenance, relationships and transformational moment it drives to or gets driven to (object as being or as tooI) I have a generalized block labelling schema if that helps?!

Sorry, if I sound alien! Hahah. I’m pointing at a solution many non-computer people and computer people would find useful though. It seems like people have the idea in this forum - in which case a useful auxiliary condition for working with anytype that could be a conversation - the Immanence of becoming an anytyper; how user gets aligned in the real world - it’s personal but billions of people are lost in these zones! So it’s an opportunity that is part silicone switching and pixel presentation, part tangible and part human cognitive faculties - but all in circuits toward some developmental aim a human object is centre of respectively.

1 Like

I’ve just made a similar proposal in relation to a different feature request by @MrsBasilEFrankweiler.

Maybe the value I added with my suggestion there is that I suggest a simple markup syntax in line with what the OP had originally proposed there:

  1. using named links and deeplinks such as
    [link text](my-object#my-anchor)
    in addition to encrypted URLs like
    anytype:///view/4c0c4f9...0bf19de0 as suggested here

  2. using a MarkUp-type syntax like
    {#my anchor} for named deeplinks or
    ## my headline to automatically generate deeplinks for headlines,
    to be accessed via
    [link text](my-object#my-anchor) or with publish-to-web, via
    https://my.domain.url/view/my-object#my-anchor

2 Likes

Yeah, and it would be great that we can click on URL scheme links from other apps in Anytype…
(ex. omnifocus:///task/oekxb28YaiQ) At the moment, it just opens a new object with the link as the title.

Not great…

2 Likes

After a bit of tinkering around, i discovered that deep-linking is already possible in a limited way:

  • it only works on MacOS
  • it survives a restart
  • No clue about what happens when moving the object
  • I found it only for Sets
  • It requires deep tinkering

If you wanna try it out. Here are the steps to build a link:

  • Open AnyType on MacOS
  • Select Debug → Dev Tools
  • Go to Sources → anytype → src → ts → lib → api → command.ts
  • Set a breakpoint inside of the declaration of const ObjectOpen
  • Click on a link to the desired Set
  • Now objectId should contain the Id of the Set

The URL will then look like this:

anytype://main/set/XXXYourIdXXX

Yes, super complicated to get the ID. Hope they add an option for it in the GUI

You can actually turn on Debug -> Flags -> Middleware to see middleware requests/responses and see ObjectOpen request from there or press Cmd/Ctrl + Shift + \ and see object id in a popup.

And deeplinks work not only for sets, they work for all routes, for example anytype://main/graph.

1 Like

Cool, thank you! Is there an overview what routes do exist?

Here is the list of all routes, auth is for auth pages, main for authorised. Most routes work as main/history/<object id> for example.

Thanks, but not gonna lie i dont understand much of what you guys are talking about. I’m able to get to my homepage with anytype://main/history even tho i dont understand what that means. I’d like to get a link for any of the objects in Anytype, what is the path to, for exemple a page that is in my homepage etc…

2 Likes

See PR Feature/JS-4019: Universal deeplink by ra3orblade · Pull Request #574 · anyproto/anytype-ts (github.com)