stevencohn/OneMore

Best places to discuss OneNote and best practices etc?

jasonjac2 opened this issue · 9 comments

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:

  • x is broken
  • how do I make it do y
  • z is a really bad "feature, can here is a better way"
  • the other stuff: best practices, more detailed discussions about use cases and solutions.

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!

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

  • I look at this from time to time, people asking how-to's. I haven't identified any guru's yet.

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

  • Howto videos including organisation of information - nice concise delivery

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

  • Not sure why this popped up, I don't subscribe to this and he seems a bit full on and purple.

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.

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!

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.

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.

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:

  • you mentioned "local or cloud" - for all my notebooks, when you goto "file" all have a location of either https://*.sharepoint or https://onedrive.live.com

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.

...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.

@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.

  • A section and all of its pages are stored in a single file with a .one file extension, like recipes.one. Each section has its own unique section ID.
  • A pages ID is a complex ID comprised of the section identifier and a unique page identifier, like {section-id}{1}{page-id}.
  • Objects on a page are based on their container. Each container (one:Outline) has its own unique ID. Objects - paragraphs - in that container each have their own unique sequential IDs comprised of the container ID and the object ID, like {container-id}{index]{B0}
  • A notebook has no content in and of itself; it is merely a hierarchical structure with pointers to section .one files, and stored in a separate .onetoc2 file. This hierarchy is where the sections group "folder" constructs exist.

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.

  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?

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