When I'm taking notes, sometimes I encounter some issues like
- I copied some text from pdf or some other source, but the copied content is out of format. For example, there are more than one space between words or one paragraph brokes into several lines.
- Lowercase letters are required while they are all uppercase, etc.
- blahblahblah...
This plugin is created to format selected text lowercase/uppercase/capitalize/titlecase or remove redundant spaces/newline characters, and other features listed below.
Click to install this plugin right now
Experimental features:
Press cmd/ctrl+P to enter the command. 👇
Or you can consider to bind custom hotkeys to those commands according to #29.
⚙️: There is setting of this command.
Command | Description |
---|---|
Lowercase | Lowercase all letters in selection or the whole title (when cursor focus inline tile) |
Uppercase | Uppercase all letters in selection or the whole title (when cursor focus inline tile) |
Capitalize all words ⚙️ | Capitalize all words in selection or the whole title (when cursor focus inline tile) |
Capitalize only first word of sentence ⚙️ | Capitalize only first word of sentence(s) in selection or the whole title (when cursor focus inline tile) |
Title case ⚙️ | Capitalize words but leave certain words in lower case in selection or the whole title (when cursor focus inline tile) #1 |
Cycle case ⚙️ | A custom loop to format the selection or the whole title (when cursor focus inline tile) |
Slugify selected text | convert any input text into a URL-friendly slug |
Snakify selected text | Lowercase all letters in selection and replace spaces with underscores |
Command | Description |
---|---|
Heading upper | e.g.: # Heading -> ## Heading (default shortcut: Ctrl+Shift+] ) |
Heading lower | e.g.: ## Heading -> # Heading (default shortcut: Ctrl+Shift+[ ) [discussions] |
Callout format | #80 |
Command | Description |
---|---|
Detect and format bullet list ⚙️ | Change • into bullet list, i.e. - ; split every bullet point into single line; and remove blank lines. (test cases) |
Detect and format ordered list | Change *) (star could be any letter) into ordered list (e.g. 1. , 2. ); split every ordered point into single line; and remove blank lines. (#4) |
Convert table to bullet list | The first volume is 1st list, other volumes are sub-list |
Convert table to bullet list with header | Sub-list begins with ${header}: |
Sort to-do list | #37, #46 |
Command | Description |
---|---|
Remove WikiLinks format in selection | e.g. Convert [[WikiLinks]] to WikiLinks (#28) |
Remove URL links format in selection | e.g. Convert [Google](www.google.com) to Google |
Convert URL links to WikiLinks in selection | e.g. Convert [Google](www.google.com) to [[Google]] |
Convert WikiLinks to plain markdown links in selection ⚙️ | e.g. Convert [[Google]] to [Google](Google.md) (#40) |
Command | Description |
---|---|
Remove redundant spaces in selection | Ensure only one space between words |
Remove all spaces in selection | Remove all spaces |
Remove trailing spaces in selection | Remove trailing spaces (#61) |
Remove blank line(s) | replace \n\n with \n |
Merge broken paragraph(s) in selection ⚙️ | Change selected lines into single-line, except lines are separated by blank line(s). At the same time, blank lines will be merged into one blank line(optional, default enable), and redundant spaces will be removed(optional, default enable). |
Split line(s) by blanks | Replace ` with \n` for OCR use case. |
Convert to Chinese punctuation marks (,;:!?) ⚙️ | For OCR use case. (For who require more custom setting, I would recommend https://p.gantrol.com/) |
Convert to English punctuation marks | Similar to Convert to Chinese punctuation marks (,;:!?) |
Remove hyphens | Remove hyphens (like when pasting text from pdf) #15 |
Replace ligature | Replace ligature to Non-ligature #24 |
Command | Description |
---|---|
Convert selection into Anki card format | #32 |
Remove citation index | e.g., A research [12] about notes => A research about notes |
Get Zotero note from clipboard and paste ⚙️ | See below ⬇️ |
Detect and convert characters to math mode (LaTeX) | e.g. convert P into $P$ (latex), apply for all single letter except a . |
Convert Mathpix array to markdown table | Convert latex array generated by Mathpix to markdown table format |
Command | Description |
---|---|
Custom Replace ⚙️ | Custom replace <search> to <replace> . See below for more examples ⬇️ |
Custom Wrapper ⚙️ | Add any arbitrary wrapping element in Setting. (https://github.com/Benature/obsidian-underline/issues/5) See below for more examples ⬇️ |
Custom API Request ⚙️ | Replace Selection with the return of custom API request. The selection will be sent to custom API URL with POST method. (No user data is collected!) There is an example of my use case. |
Command | Description |
---|---|
Decode URL | Decode URL for better reading and shorter url. |
Add extra double spaces per paragraph for whole file | Add double spaces at the end of every paragraph #8 |
Add extra line break to paragraph | replace \n with \n\n |
Format space between word and symbol | add space between words and ( |
If you find this plugin useful and would like to support its development, you can sponsor me via Buy Me a Coffee ☕️, WeChat, Alipay or AiFaDian. Any amount is welcome, thank you!
The format template can refer to https://www.zotero.org/support/note_templates
<p>{{highlight quotes='true'}} {{citation}} {{comment}}</p>
“(?<text>.*)” \((?<item>.*?)\) \(\[pdf\]\((?<pdf_url>.*?)\)\)
{text} [🔖]({pdf_url})
<u>
, suffix=</u>
, then selected text will turn into <u>text</u>
With bib-cacher, I can connect to Zotero database by python, building a simple Flask server.
Example of command Custom API Request
:
- A survey concludes that obsidian is a good app [12]. Furthermore, The note taking...
+ A survey concludes that obsidian is a good app ([[File Name of the Reference]]). Furthermore, The note taking...
- Hello, I am using Obsidian.
+ hello, i am using obsidian.
- Hello, I am using Obsidian.
+ HELLO, I AM USING OBSIDIAN.
- Hello, I am using Obsidian.
+ Hello, I Am Using Obsidian.
- hello, I am using Obsidian.
+ Hello, I am using Obsidian.
^
- Obsidian is a good app.
+ Obsidian Is a Good App.
^
- Obsidian - a good app.
+ obsidian-a-good-app
- Obsidian is a good app
+ obsidian_is_a_good_app
- There are so many redundant blanks
+ There are so many redundant blanks
merge broken paragraph
- This paragraph is broken
- into several lines. I want
- those lines merged!
-
- And this is second paragraph. There is a blank line between
- two paragraph, indicating that they should not be merged into
- one paragraph!
+ This paragraph is broken into several lines. I want those lines merged!
+
+ And this is second paragraph. There is a blank line between two paragraph, indicating that they should not be merged into one paragraph!
bullet list
- • first, blahblah • second, blahblah • third, blahblah
+ - first, blahblah
+ - second, blahblah
+ - third, blahblah
ordered list
- a) first, blahblah b) second, blahblah c) third, blahblah
- i) first, blahblah ii) second, blahblah iii) third, blahblah
+ 1. first, blahblah
+ 2. second, blahblah
+ 3. third, blahblah