3 minute read

Post and Code Editor

Markdown Editor - Obsidian

Obsidian is the greatest markdown editor. It supports PC and mobile (smartphone and tablet) environment alike, and a third-party plugin (remotely save) is available if you want to maintain sync between different devices.

And preview feature basically supports $\LaTeX$ type rendering for mathematical and chemical equations. Wrap your expression with $ renders in-line formula and $$ warpper renders block formla.

For example, $z^2=\sqrt{x^2+y^2}$ is rendered like $z^2 = \sqrt{x^2+y^2}$ if you are in preview mode. If you type $$z^2=\sqrt{x^2+y^2}$$ output is as follows.

\[z^2 = \sqrt{x^2+y^2}\]

To input chemical equation, \ce{} can be used inside $ or $$ wrappers. For example, if you input $$\ce{2H2 + O2 -> 2H2O}$$, renderer results:

\[\ce{2H2 + O2 -> 2H2O}\]

The whole list of available formulations could be found here.

Linter

Maybe one of the most useful plugin I think, especially in terms of maintaining github blog because of its Lint On Save feature with automated timestamping. This feature rids you of manually changing the modified date item in YAML front matter, as just hitting Ctrl + s works for that.

Some of the detailed setting for me are like:

  • General Settings
    • Lint on Save: Automatically update some YAML front matter when document is saved or Ctrl+S shortcut is hit.
  • YAML Settings - YAML Timestamps
    • Keep track of the date the file was last editied in the YAML front matter. Gets dates from file metadata.
    • Date Created
    • Force Date Created Key Value Retention
    • Date Modified
Novel Word Count

This plugin allows you to see the number of words, last modified date, number of characters or so. You can also fine-tune the policies for counting. For example, you can ask the plugin to ignore code blocks or comments from word/character counts. Currently I am using it by ignoring codeblocks/comments to see the genuine length of content free from them, and trying to assure the length of any posts is longer than 1000 words.

Remotely Save

Even though there is a paid service for storage sync between devices called Obsidian Sync, but you can resort to this community plugin. This plugin allows you to use third-party cloud service like DropBox or Onedrive to be hurb storage where you can sync from different devices and therefore maintaining sync between mutliple devices.

I am using 1-minute setting for Schedule for Auto Run option, and activated Run Once on Start Up Automatically.

Floating TOC

This plugin enables you to have an automatically generated and updated table of contents, floating on the left side of obsidian window. You can easily navigate throughout your markdown file, as the items in generated TOC include hyperlinks directing you to the corresponding headings.

Periodic Notes

Obsidian serves Daily Note feature as default, allowing auto-generation of new markdown file with filename based on current date Periodic notes extends this feature to be applicable for different interval like weekly or monthly basis.

Advanced Tables

Handling table is a tedius work in writing markdown file. This plugin has convenient feature to handle table in markdown file.

Excalidraw

Being a drwaing tool basically, but is more geared to build mindmap linking different markdown files, pdfs and images. Basic drawing style is kind of handdrawing from developers or scientists pondering on blackboard.

Obsidian Git

With such a wide variety of plugins it is natural to anticipate git-related features and it really is. But unfortunately, this plugin Obsidian Git is not much successful in my envirionment. I could live with merge conflict resolving feature unsupported, but in my tablet it was even impossible to clone remote repository itself.

1
2
3
Cloning progress: Compressing objects: 2610 of 2610
...
TypeError: Cannot read properties of null (reading 'slice')

Occassionally cloning went well but in such case pushing crashed continuously. Now I gave up using this plugin but usign Termux terminal to install Git and Ruby to work on my blog using mobile devices. Please refer to this post if you are interested in.

Even though Obsidian Git did not work for me, it is not that flawed as Obsidian is basically powerful markdown handling tool and for other types of files like HTML, CSS, JS or so there are better options.

Warning! If you are to use Obsidian Git anyway, I highly recommend you to add **/.obsidian in your .gitignore file. Obsidian creates .obsidian hidden directory under the directory you choose to use obsidian storage (called vault), and all obsidian-related settings related to that vault is maintained there. A problem is that if a remote repository you want to clone using Obsidian Git already contains this path, Obsidian asks you to remove all the plugins installed in current vault. As Obsidian Git is a obsidian plugin itself, following this removes Obsidian Git also from your vault. And after successful clone, you need to install Obsidian Git again.

Code Editor - ACode

Obsidian is a strong markdown editor but except for some types of files including markdown (.md), vanilla obsidian cannot edit such files. So I am using different application ACode to edit HTML, CSS and JS files. There are a bunch of code editors with similarly powerful, but I prefer ACode because it is one of a handful of options featuring file tree display. Free version is bit messy to use due to the ads, which you can mitigate by activating paid version. For me it was worthwhile to activate by paying a bit.

Git

Termux

Even in mobile devices you can use Git, Ruby and Jekyll to maintain Jekyll-based static web page hosted by Github Pages. Refer to my different post for details.

Spck Editor

If you want to have a standalone solution where you can use as file editor and git controller in mobile, Spck Editor offers a good option. This was my favorite choice before I migrate to Obsidian + Termux Git environment. You can clone from remote repository and this function is far stable than Obsidian Git. And merge conflict resolving feature is also supported. Less convenience in handling markdown (compared with Obsidian) is the only drawback you have to bear.