stevencohn / OneMore

A OneNote add-in with simple, yet powerful and useful features
Mozilla Public License 2.0
2.65k stars 223 forks source link

Best places to discuss OneNote and best practices etc? #1130

Open jasonjac2 opened 1 year ago

jasonjac2 commented 1 year ago

How can I help you?

So this isn't about OneMore per-se and I may have asked the question before, so apologies if I have.

I've checked my "OneNote" OneNote page and I haven't recorded forums / NG's etc, which I do for other products.

I think discussions fall into:

So I could have started this thread on answers.microsoft.com or reddit. I started this post because I we have been adding pages to our 4 person ON's for about 10 years now. We are adding more people to the group and I need to think about organising / archiving etc.

But I thought I would start with the question of groups / support / discussion / sources of info and curate them. So can I have your opionions on that first. Then I'll post my question there (even if it is another post here).

THE FINE PRINT This is a hobby project that I started for myself. I'm happy to take requests and will promise to consider each one carefully but offer no guarantees that I will ultimately agree to their usefulness or have time to implement any of them. If OneNote offers a "close enough" work-around then I will probably reject the request - you've been warned!

jasonjac2 commented 1 year ago

Let me start: Using and organising OneNote https://www.reddit.com/r/OneNote/

https://www.youtube.com/@AndyPark365

https://www.youtube.com/@MikeTholfsen

Automating / Developing / Scripting .....

Aside: In our development community (Delphi) someone has created a repo that is basically a list of Delphi components / tools and resources. I am happy to set this up for ON, then people can just make change requests OR I could work out how to set up a knowledgebase.

jasonjac2 commented 1 year ago

I need to re-organise my shared notebooks and asked about moving sections and pages

https://www.reddit.com/r/OneNote/comments/177m85g/safety_moving_pages_and_sections_between/

No answers. Anyone fancy chiming in there?

Ultimately I need to move notebooks from personal to "Work" accounts. I need to reorganise pages into different notebooks, reorganise pages into different sections, archive a load of pages, but not lose them forever. All this in notbooks that must have 10's if not 100's of K links between pages and paragraphs!

stevencohn commented 1 year ago

Can't say I have any answers. But I do have questions. Since I haven't been able to repro this although have experienced the issue in the past, I'm wondering how you move pages. Are they across Onedrive notebooks? Local notebooks? A combination? And in what direction? Do links break when you move pages between sections vs notebooks (more or less or equally?) Does it matter if you move the linking page or linked page, or both?

I'll have to dig it up, but I thought OneNote docs mention that pageIDs are mutable, although it doesn't say when they change. I suspect links get broken on shared pages more (or exclusively?) with shared pages but haven't confirmed.

With all of that, I can create some test pages and easily move them about in any direction, across any section or notebook, local or cloud, without any issues whatsoever. So if we can narrow down a repeatable example, then we can open a support ticket with Microsoft. I haven't looked, there may already be a similar case opened.

jasonjac2 commented 12 months ago

Hey, really sorry @stevencohn for not replying I remember reading and doubting myself. I will test and get back to you. I have avoided mass moving and re-organising, so will have to have an experiment.

jasonjac2 commented 11 months ago

My test was (from memory) from a onedrive.live.com -> *.sharepoint.com.

Just an update on this. I moved (Right click on page in page list) and used ON's Move / Copy. Selected a new location in a different notebook. Clicked "move". So: Source Notebook = https://onedrive.live.com/view.aspx?resid=&id=documents Dest Notebook: https://-my.sharepoint.com/personal/jason_/_layouts/OneNote.aspx?id=%2Fpersonal%2F so from a personal account to a work account and the ON Notebook on the work account appears to be in my work account.

I definitely clicked on move, but now there is a page in the new and the old location and they both have the same page ID!

If I take the OneNote link and cut everything out other than the page link.... click start | Run and paste it in, it finds the old one!

If I delete the old one and do the same, it finds the deleted page! onenote:page-id={}&end

If I go to another machine logged in as the same user (MS, non domain), and without going to any specific pages in ON, tell it to sync all. Then goto a page that has both the old and the new link, click the new link, it takes me to the moved page. If I click the old link, it takes me to the same page, i.e. on that machine it seems to find the new location for the page ID.

I know this all sounds very confusing and it really confuses me.

Other comments:

More confusion. I need to dig out notes on Object ID's / Page ID's and how ON deals with these and the precedence it gives to other data (section / notebook) information in the links. I am assuming internally it has a "try" and a "try harder" to navigate to a page based on a link, then finally a "We couldn't open that location" message.

GrantRobertson commented 10 months ago

...I'm wondering how you move pages. Are they across Onedrive notebooks? Local notebooks? A combination? And in what direction? Do links break when you move pages between sections vs notebooks (more or less or equally?) Does it matter if you move the linking page or linked page, or both?

I just mad a post on Reddit, about this very issue. You can find that post here: https://www.reddit.com/r/OneNote/comments/19at4j7/warning_do_not_create_links_to_specific/ . Basically, the links break any time you move a page from one section to another, but not when you move a whole section from one section group or notebook to another. They break because OneNote assigns all the paragraphs new GUID "object-id" values, and because it doesn't update any links to the new "base-path" of the page. Lots more info on Reddit.

stevencohn commented 10 months ago

@GrantRobertson Excellent post. I responded to it on Reddit. For completeness, here's a copy of my response:

I certainly appreciate your frustration, have seen it myself, and heard of it from plenty of other people. Background, I'm the developer of the OneMore add-in, so while I'm not a Microsoft employee and have no connections to the OneNote product team, I have a little insight into the inner workings of OneNote.

Yes, I 100% agree that this is a defect regarding the design vs. expectation of linking and Microsoft should resolve it. Somehow. Now here's a little technical explanation based on my observations. First, the fundamentals.

Because a page, being stored in a section .one file, is bound to that section, it can move freely within that section while maintaining its ID and the IDs of its containers and objects.

But when a page is moved to another section, you're ostensibly tearing down the old page and creating a brand new page, which causes OneNote to generate a new ID for the page and all of the objects on that page.

Fabricating a new page ID makes sense since page IDs include the ID of their parent section. But why are the container and object IDs also replaced? Well, OneNote has an Interop API that lets you navigate to any object across all of your notebooks by specifying that object's ID, implying they all need to be unique! (I presume that's a wrapper of an internal routine that does the same thing.) But again, why do they need to be replaced? Well, if you copy a page to another section, obviously, you'd need all new IDs so that navigate routine doesn't get confused. I also presume (may be wrong) that OneNote has a single shared routine to copy/move a page to another section and that routine just blindly replaces all IDs when copying content into that section.

This is my best understanding. I can appreciate Microsoft's dilemma when they try to abide their "always backwards compatible" mantra. But I can also appreciate why this needs to be fixed because it doesn't satisfy the end-users' needs.

jasonjac2 commented 6 months ago

1) .... so how easy would it be to write a broken link where you give it a scope (page, section, section group, notebook, all notebooks) and it come up with links to those broken links? If you could then have that run as a scheduled report, you could keep on top of the problem (and I could start my mass migration from to a new ON structure that better fits my organisation)? 2) I am sure I have asked and you have answered, but how best to get this lobbied toget fixed and is there already a bug report we can promote?

stevencohn commented 6 months ago

Rewiring broken links may be possible but also may be quite tricky. If you see that a page contains a broken link, perhaps you could tell it to look for the target page in the same section or notebook. The link is similar in structure to a Web hyperlink: it has an internal address and a text component for display but that text component can be customized. So, to match, the text must match exactly one page in scope. I suppose it could present you with a selection box of all the pages that have the same title. If the title can't be found then you're hunting it down yourself anyway.

It looks like Microsoft replaced their support site where you could submit tickets and is now relying on public forums. In other words, we're all SOL

jasonjac2 commented 1 week ago

SOL?

jasonjac2 commented 1 week ago

OK, I'm going to start lobbying ON influenca's - who do you think are likely to have some leverage and do you know any of the names of the ON dev team (I have a little experience doing this with other smaller dev companies).

jasonjac2 commented 1 week ago

AI - So in my other dev life (UkDeveloperGroup), we are learning about AI and "Embedding" our data repositories into local or SAAS models. Is anyone here on that journey / looking at leveraging their ON data for this. I want to be more nuanced than just getting Copilot to ransack my data (I haven't paid for Copilot as part of my Office 365 subscription). So looking for any input / ideas / collaboration. I see this as a possible extension of OM, where it is doing crawling and offering up content to chunkers and embedders (can you tell I learnt 2 new terms in the last couple of days).