Smart capitalization of new filenames

A little bit like the case referred to here, but the solution suggested there doesn’t quite satisfy me. I am wondering if Obsidian couldn’t work smarter with the way it capitalizes, or doesn’t capitalize, links and new file names. The solution of using aliases (which I’ve done up to now) still leaves a lot of friction in the process. I would like a more friction-free way of dealing with this.

In essence, I think I’m asking for two things: being able to auto set the capitalization of new notes, and for autosuggestions of links to remain capitalization agnostic.

Use case or problem

I experience friction when typing links and trying to make sure the capitalization fits the writing context, and yet I always like to have initial capitalization of my filenames. So, I run into friction in a couple of cases:

  1. I want to create a new note, “Cardiac arrest”, in the middle of a sentence. I write “Blah blah [[cardiac arrest]]”. Clicking on this link creates a note with a lower-case filename. If I want an initial capital, I have to manually change the filename in the new file. BUT, this then changes the link text in the original file, forcing me to go back and change that too.
  2. The file “Cardiac arrest” already exists. I’m typing in another note and write “Blah blah [[cardiac arrest]]” but the autosuggest gives me the capitalized version, and if I accept it I have to manually go back and change my text.

In both cases I feel like I’ve got unnecessary friction in the process. Am I missing something obvious here?

Proposed solution

My suggestion is twofold:

  1. Have a setting to determine default capitalization of new files when created through clicking a link. E.g. “no change”; “lower case” “Initial cap”; “Title Cap”; “ALL CAP”
  2. Have Obsidian remain agnostic to capitalization when autosuggesting files – e.g. if I’ve typed a filename lower case but the existing file is capitalized, Obsidian respects what I’ve typed and doesn’t try to change that to match the capitalization of the existing filename.

I hope this makes sense. If I’ve missed a really obvious solution here, I’d be interested to hear it.

6 Likes

I’m just going to bump this topic one time. It doesn’t seem to have hit upon much resonance in the community, which I find this a little surprising because I’m constantly mildly frustrated when I have to go back and change the capitalization of a link.

Most importantly, I think it would be nice if Obsidian retained the capitalization I use when I type a link to an existing file, regardless of how the latter is capitalized. Generally, both capitalized and uncapitalized versions can exist and link to the same file without the need for aliases, so I assume that this should be possible, no?

Maybe I’m missing something really obvious. If so, I would happy to be enlightened. :grimacing:

2 Likes

When I ported my 14000 pages worth of stuff over from MS Word, I faced the problem of having to choose between capitalized or lowercase versions of my individual – now md extension – files.
Because many files related to persons, geographical areas, etc., I decided to capitalize common nouns/words of filenames as well. This looked weird in my texts though, so I had to run some regex replacements that provided the lowercase versions in aliases ([[Alias|alias]]), while keeping sentence starters and the personal names intact ([[Robert Burns|robert Burns]] or [[Robert Burns|robert burns]] would have been equally weird).

My new file creation Templater template also automatically inserts a lowercase version of the filename as an alias, which can be deleted as I go along if not needed.

So for now, this is how I go about dealing with this. There are indeed a lot of extra characters, which luckily don’t show in (Live Preview and) Reading Mode.

There are some threads on the forum which deal with Obsidian sync where they talk about this problem of handling case differences.
I also chirped in with what I saw in how GitHub Desktop was handling these cases:

So – although I’m far from an expert – it could be a limitation on more than one operating system (and Obsidian must heed all of them) or syncing/file version tool. I had not looked into this more deeply, nor do I intend to.

1 Like

Thanks for this. Perhaps the automatic lowercase alias in the template could be good as a work-around.

I suppose there’s two main issues here: how filenames are capitalized, which would be relevant for sync; and how Obsidian handles capitalization of internal links, which I don’t think should impact sync. If internal links could be ‘agnostic’ to capitalization – i.e. not try to force what I’m typing to match the target file capitalization – that would be a great help. It’s already the case that if a file exists I can use a different capitalization of an internal link and it will still work, so I assume that something like that would be technically possible. Unfortunately I don’t understand enough about how these systems work under the hood. The point about needing to respect all operating systems is probably an important one…

My template for those who are interested (minus the javascript that moves files):

---
type: 
topics: 
tags: [formatted🟢]
publish: true
alias: [<%tp.file.title.toLowerCase()%>]
date created: <% tp.date.now("YYYY-MM-DD")%>
date modified: <% tp.date.now("YYYY-MM-DD")%>
---

# <%tp.file.title%>


With the internal link suggestion, I have let the community plugin Various Complements take over (as I like the feature of not having to type in [[ there).

Now that I come to think of it, I seem to remember from my experience with opening files on iOS (since then I have a different workflow) that Obsidian can open a file from a Siri Shortcut if I mistakenly typed in the lowercase version of the file, while with the Taio app, you had to type in the exact (leading capital letter) filenames.

1 Like

Thanks very much for sharing!

1 Like

I too am surprised this request hasn’t gained much traction, really irritates me as well.

1 Like

It might be due to differences in workflow.

For example, I never create links that go to a non-existent note. What I do is press Ctrl+N for new note, which executes my new note template and inserts the link back in the note I’m working on. That way my note is created with correct capitalisation, and I am free to change the visual alias if needed.

It feels weird for me to create links to notes that don’t exist, which is why I don’t do it, but I agree that the issue can be solved better than how it is in vanilla Obsidian.

1 Like

Chiming in just to say that I have this exact issue, and the alias solution feels very clunky. Making file linking capitalization-agnostic does seem like it would be the best solution.

1 Like

You can use templater on your new file folder to always auto capitalize or title case. Just need a little JavaScript