Support any character in filenames using encoding

Adding a +1 here. Creating lots of notes from articles with colons in the title, would be handy to have a backup in case I forget to replace a forbidden character.

Would be great. I get many errors now.


I clip web content to Obsidian and often the page title (and hence the filename created) will include a colon. I’d be happy for illegal characters to be replaced with any legal character (ideally user defined, but not necessarily).

+1 Good idea

Steps to reproduce

Symbols of /|<> cannot be adding in note names.

Expected result

Due to I am not the engineering so I don’t know how to develop the plugin, so I hope that engineer can helps for develop plugin that make the plugin can have an option to enable and disable to let Mac users writing down the symbols into note name, this is due to because of I am habitual expressing using these symbols and also I am also wanted to using these symbols for my work purpose to record the work matters into the note name.

Actual result

It’s not convenient about people that wanted use these symbols to express about somethings.


Obsidian version: v1.4.13
Installer version: v1.4.13
Operating system: Darwin Kernel Version 22.6.0: Fri Sep 15 13:41:30 PDT 2023; root:xnu-8796.141.3.700.8~1/RELEASE_ARM64_T8103 22.6.0
Login status: logged in
Catalyst license: none
Insider build toggle: off
Live preview: off
Legacy editor: off
Base theme: dark
Community theme: Prism v3.4.1
Snippets enabled: 0
Restricted mode: off
Plugins installed: 28
Plugins enabled: 28
1: Dataview v0.5.58
2: Advanced Tables v0.19.1
3: Kanban v1.5.3
4: Calendar v1.5.10
5: Tasks v4.7.1
6: Templater v1.16.0
7: Style Settings v1.0.7
8: Outliner v4.8.0
9: Minimal Theme Settings v7.2.2
10: QuickAdd v1.2.1
11: Tag Wrangler v0.5.13
12: Icon Folder v2.2.1
13: Recent Files v1.3.8
14: Day Planner v0.10.1
15: Checklist v2.2.12
16: Natural Language Dates v0.6.1
17: Omnisearch v1.17.1
18: Highlightr v1.2.2
19: File Tree Alternative Plugin v2.3.6
20: Text Generator v0.3.20
21: Projects v1.16.5
22: Dictionary v2.22.0
23: LanguageTool Integration v0.3.4
24: Vault Statistics v0.1.3
25: Mind Map v1.1.0
26: Attachment Manager v1.1.0
27: Table of Contents v0.2.0
28: Weread Plugin v0.5.4

Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

Additional information

You’re talking about “illegal characters”, or forbidden characters you’re not allowed to use.

At least in file names you can’t use any characters, because file names are tied to file paths, which are managed by your operating system, be it mac or win.

This isn’t an issue related to Obsidian but a limitation of our operating systems (Windows is even more restrictive)

Since Obsidian is multi platform, uses sync and aims for compatibility, this issue won’t get resolved unless Apple or Microsoft address this issue and change path conventions

You’re not talking about note “names” here, you’re talking about filenames. Your computer can’t use a / in a filename, it’s not a limitation of Obsidian.

You can turn off showing the filename as a title, and put your own title in with the normal markdown syntax. Then you can use any characters you want:

# A title with as many / / \ as you like!

That’s the way I do it, as I prefer having my title inside the markdown file rather than being dependent on the system filename.

There are also plugins which let you show this title as the note name in the file explorer. For example: obsidian://show-plugin?id=obsidian-front-matter-title-plugin


Use case or problem

Create a new note and enter a title like “GET /users/:id” and notice that these characters are not permitted in a title. I often create a note on Web APIs, so often come across this situation, which is so annoying. It would be very nice if we could enter a title without minding these characters and the title would be displayed properly.

Proposed solution

Percent encode the title and use it as the filename, and display it with encoded.
When opening a link, look for the path denoted by the link text, and if not found encode the text and try again.

Current workaround (optional)

Related feature requests (optional)

Does your OS support such characters in filenames? If yes, then I think Obsidian should probably support that too. If not, you can use a plugin like Front Matter Title which will allow you to set the title property / YAML key to whatever you want the filename to be, and then it’ll display that as the filename at the top of the Markdown, the tab title, in the Files sidebar tab, etc. It doesn’t change the underlying filename however.

Thanks for info. I’m giving the plugin a try. But typing


is a bit hard work for just entering a title.
I think it would be awesome if the front matter is automatically inserted when typed title includes disallowed characters.
Any suggestions to make this less effort would be appreciated.

That’s a cool idea for a plugin, or possible a feature for the one I mentioned (but I’m not sure it’s really in the same vein of what the plugin aims to achieve).

The basic idea to make this simpler is to use templates so that each time you create a new note, the title: front matter is automatically inserted, requiring you to only click on the title: line and type your preferred title.

The two solutions I can offer are: The Templates core plugin (bundled with Obsidian) in combination with a community made plugin name Auto Template Trigger [see Solution 2], or by using a single, also community made, plugin named Templater [see Solution 1]. Community plugins are downloaded via Obsidian’s settings.

Solution 1

To achieve this via Templater alone, the first step is to create a folder named “My templates” (it can have any name or location in your vault). Now create a new note in this new folder, name it “Note template” (again, any name) and enter:


(You may want to add a couple other useful keys which Obsidian makes use of, such as aliases: and tags: – one key per line. You can also add normal text after the final --- if you want.)

Next, download and enable Templater. In its options at the top, set the Templates folder location to the “My templates” folder which contains the new note. Enable the Trigger Templater on new file creation option which then reveals the Folder Templates option further down. Finally, click Enable Folder Templates and set / as the value on the left, and the value on the right to the location where your “Note” note is. This should be all you need for Templater. Try creating a new note.

Solution 2

As stated, the other solution to achieve automatically adding a template is the core Templates plugin, and although it’s simpler, it can only take you so far (unlike Templater which will open up a whole new world to you should you want it). You will have to also download and enable the Auto Template Trigger plugin (which doesn’t have any options to configure). After that, enable the core Templates plugin via Obsidian’s settings (disable Templater if you happened to already download/enable it), and then go to its options. In these options, set Template folder location to the same “My templates” I suggested to create for using Templater as a solution. This should be all you need for this solution to work. Create a note and see (it will ask you to choose a template I think, which may not be something you want to do each time unless you want to use multiple templates – Templater can also do something similar via its Folder Templates option).

If I didn’t miss anything, these solutions should both help make entering a title: value more convenient.

Why is this so difficult to implement? Logseq already supports this, and it stores all files locally as Markdown as well. If one wants to ensure compatibility, then the page title can be stored as metadata instead.