Obsidian October 2021 daily progress and learnings

Zettelkasten Scrolls Theme

Because I can’t seem to settle on a theme, I went ahead and created another one… Some of the differences with this one

  • Trying to make it minimal to a degree, oftentimes I won’t have the right side panel
  • Very Wide Note Sizes that stack on each other, trying to keep the focus on one note at a time for this theme
  • All headers will look the same instead of changing size

What I’m trying to figure out:

  • When the file explorer populates, it has this weird occurrence where the alternating color of the filenames change
  • Having trouble properly styling the graph view settings panel
  • What I want the note width to be. I like it really wide like this, but it doesn’t work particularly well when I want to make Obsidian half the size to have something else up on the second half of the screen
6 Likes

First plugin, a variant on the completed area plugin: GitHub - ebullient/obsidian-task-collector

This allows you to set a few things:

  • characters that count for incomplete tasks (e.g. do you use > or ? … )
  • a regular expression for text that should be removed from a string (e.g. strip tag)
  • a moment date format indicating that the date should be appended to the task in that format
  • A header to contain completed items.

It has two commands:

  • one “completes” the task under the cursor if it isn’t already complete (which could include removing text from the task and/or appending the date)
  • one gathers all completed tasks in the document and moves them underneath the configured header along with associated/nested notes (you may have some list indenting to repair, in that case).

It works better (for me) than the others I’ve tried. I need to add automated tests.

Went better than I expected. =)

Edit: Changed plugin name and added right click edit menu options.

6 Likes

This is my first attempt at a theme! I decided to play about with the Tumblr colours and see if I can use something based on that for a first attempt/ bit of fun.

GitHub for the Theme

So far I’ve learned:

  • How to change the colours of the bar at the side with the file names
  • Change the colours of the main workspace area
  • Change the colour of the bar at the top
  • Change fonts
  • Make it less time consuming by creating variables for the different colours and then using their name - E.g - “Blue” and “darkerBlue”

Next steps:

  • Actually change the fonts
  • Tidy it up a bit - improve how the colours look together

Edit: I’m putting the “how I did the thing” on my publish site: Obsidian Publish - along with updates of what I’m changing, how I’m getting on

3 Likes

For O_O, I’m super excited to be working on a plugin for Obsidian.

My plugin is called Stenography-Obsidian, and it basically links the Stenography API with Obsidian.

Features:

  • highlight any code in Obsidian
  • press the Stenography button
  • the API will replace the code block with a simple English explanation/docstring of what the code does and it guesses the language the code block is written in as well (see demo below)

Learnings:

  • the plugin starter boilerplate is awesome
  • getting selected text from the Obsidian editor is a breeze!
const editor = this.app.workspace.getActiveViewOfType(MarkdownView)?.editor; 
const selectedText = editor.getSelection(); // Get selected text
  • fetch is built in (I got stuck in an axios hole for a while, but @shabegom helped me get unstuck, thank you!)

obsidian-steno

Github:

3 Likes

I made URI Commands, a plugin which allows you to create commands using custom URI links which can then be executed from the command palette, have hotkeys assigned to them, etc.

Screenshot from 2021-10-01 14-20-37

Includes full command editing:

I started from this feature request, but got pretty into expending it with extra functionality. I got really excited when I realized that adding {{fileName}} and {{fileText}} placeholders meant I could use the mailto: URI scheme to send emails from Obsidian.

I think this plugin has a lot of potential on mobile, especially iOS, which does a lot of inter-app communication via URIs, but I’m not an iPhone user so I can’t play with it there.

Todo:

  • I’m hoping to handle metadata with multiple values more intelligently: currently it just copies them all as a comma separated list, which is very rarely what someone wants. My current plan is to implement some syntax like {{meta:FIELD_NAME[0]}}, but I’m worried this will conflict with valid field names.
  • I would like to be able to set hotkeys straight from the command editing page, but my attempts to implement it so far haven’t been very successful. One place I could go with this is have the hotkeys added as plain text rather than the convenient “just press the right keys” UI.

I learned some interesting things about how to make custom input modals and how to work with other plugin’s APIs (very easy, thank you MetaEdit, but it would be even nicer if there was some official support/standardization for this), but my favorite bug was completely unrelated.

At some point, in the process of making some seemingly-unrelated edits, I noticed that the icon picker had suddenly stopped displaying the icon and icon name on one line, and instead had them each one separate lines, which was much uglier. I went back and undid the likeliest culprits: no change. Went line by line through the changes undoing everything that had any possibility of making a functional change: no change. Went back to the previous commit: no change, and also now I had somehow managed to get myself into a horrible git tangle. Gave up, nuked the entire directory, cloned a fresh copy from the remote which I had tested and definitely remembered having a pretty icon picker: no change.

At this point I am thoroughly sick of this bug and conclude that it’s probably best to move on to something else until the thought of further debugging doesn’t make me want to do a murder. Decide to implement icons actually displaying next to their command in the settings made. Go to phibr0’s Customizable Sidebar plugin, which I had already borrowed a lot of the UI code from, and copy some of the relevant code.

…icons display on separate lines.

After a brief round of swearing, it hits me. The icon display code, both here and in the icon picker, declares a CSS class. I had never changed the name of the class from when I had copied it from Customizable Sidebar, so while I had Customizable Sidebar enabled, the CSS from that plugin was also styling my URI Commands settings. Somewhere in the process of writing URI Commands, I had gone through my plugins and disabled a bunch of plugins I wasn’t using, including URI commands, and the pretty styling which had been freeloading off Customizable Sidebar disappeared.

I added my own CSS file, changed the name of the classes, and the icons went back to their old side-by-side view.


I am going to consider that adventure a rather cheap lesson in making sure I understand what exactly code I am copying actually does.

7 Likes

So many exciting additions already early in this contest. I am throwing a plugin into “ring”.

My plugin is called the Beta Reviewers Auto-update Tester or BRAT for short. It is a plugin that makes it easier for you to assist other developers with reviewing and testing their plugins.

Simply add the GitHub repository path for the beta Obsidian plugin to the list for testing and now you can just check for updates. Updates are downloaded and the plugin is reloaded. No more having to create folders, download files, copy them to right place and so on. This plugin takes care of all that for you.

Just starting beta testing. Feedback warmly welcome:

5 Likes

This will be my submission to O_O, as well as my first obsidian theme. I present to you

Sanctum

Sanctum’s a minimalist theme with the aim of creating a serene space of retreat, for thought and uninterrupted work.


IYCz8ZP6gz

This theme follows a set of predetermined variables, in order to keep the project consistent throughout. It features customized icons, animations, task checkboxes, highlighting, responsive typography, sidenotes, and more.

It’s aim is to be simple, clear and honest. To achieve this, the theme has only 1 main color which covers the entire screen, yet still maintaining hierarchy through the rules of gestalt. This one color was the first step in ensuring consistency, and the one by which the rest of the greyscale spectrum is based on. When switching to dark mode, the spectrum simply flips.

Responsiveness is still maintained, by having a consistent language (icons change color when hovered, and when activated; responsive resize handles enlarge when hovered, etc), custom animations which, in time, will be customizable, in order to switch between a “productive”, and an “expressive” mode.
Further customization options will be explained and made available in due time.

The theme already has compatibility with the following plugins:

  • Advanced Tables
  • Breadcrumbs
  • Calendar
  • Changelogs
  • Charts
  • Checklist
  • Contextual Typography (which is recommended)
  • Copy Code Button
  • Excalidraw
  • Gallery
  • Kanban
  • Quick Explorer
  • Sliding Panes (Andy’s Mode)
  • Templater (although with the new update, it might need some reviewing)

Some of these features can go from simple icon replacements to more extensive changes.
Mobile development is under way, and in a few days I hope to make it available for testing and further improvement based on people’s feedback. :slight_smile:

16 Likes

Working on a new plugin, Cross-reference Navigation.

It’s a live demonstration of a concept laid out in my lab notes exploring ideas for the future of the OS / personal computing.

This plugin surfaces commonly cross-referenced tags as you browse through your things, and it makes great use of nested tags (e.g. #status/inprogress).

Here’s a video showing it in action

With the tag structure I use in my personal notes vault, this plugin effectively gives me a handful of useful interfaces. Some examples:

  • “In Progress” shows me my current workspace: all of the things I’m learning and working on right now.
  • “Up Next” is filled with new and interesting things to explore.
  • “Done” is a nicely organized archive.
  • “Reading” brings up things I’ve read, things I’m in the middle of, and what I’d like to read next.
  • “Writing” brings up the things I’ve written recently, am currently writing, and might work on next.

And of course, I can dive deeper from there: I might pull up just the things I’m reading in the topic of music, or specifically the things I’m currently writing on personal computing, or the things I’d like to read next by Doug Engelbart.

For more information, see my page on this experiment.

Hope you enjoy it. Here’s the repo:

9 Likes

I didn’t make a plugin, but I did write some special user scripts for Templater. One fetches the day’s quote from dailyzen.com and one retrieves a YouTube transcript, given a URL. I blogged about how they were made here: Templater Treats for Obsidian October - DEV Community

I’ve got some bigger stuff I’m thinking about submitting too, but it was nice to do something small. Templater is really powerful.

Looking forward to seeing what everyone came up with.

5 Likes

My first theme Sunset (only dark)


Main Feature:

  • Pseudo WYSIWYG
  • Outline for list, file-folder, outliner
  • Beautiful Design (Highly Motivated by the themes of tridimond)

More To do

  • Make compatible with the popular plugin
  • Make Mobile Compatible
9 Likes

Hey Folks :wave: first time caller, long time listener!

I’ve just submitted a PR to the community repo for my theme Sodalite. Relatively opinionated, and inspired by some of the Windows 10 and 11 design ideas - available here: GitHub - tomzorz/Sodalite: Sodalite Obsidian theme

5 Likes

2 little updates:

v0.2 is out, fixing the sliding panes / andy mode :slight_smile:

The PR was merged, the theme is now available to download from within the app:

image

5 Likes

I’ve created a plugin that allows you to run arbitrary JavaScript on Obsidian startup (and at any other time).

My motivation was when someone asked if they could start my ‘Focus Mode’ plugin on startup, and I could have added that functionality directly to the plugin, but I wanted something more generically useful. Lots of programs have startup style processes, so this felt like a natural extension.

6 Likes

Love the idea on ‘Hot Notes’, but don’t you have access to file timestamps? If so, you could color code based on that.

There is mtime and ctime, last modified time and creation time.

I could use that, but I’d still need to assign Tags or something to these Files so I can target them in the Graph View. mtime would also only change if one actually edits the file, not only if you view it.

I have an idea that would work without tags, will ping you on Discord.

And after my first theme, here’s my fist plugin - super simple but hopefully plenty useful: GitHub - tomzorz/obsidian-link-archive: Link Archive plugin for Obsidian

The plugin adds a new ribbon button that lets you submit every external link in your note to https://archive.org to save them, and then embeds an archive link in your note after each one. This way even if the original site goes down or gets deleted - you can still refer back to the content later.

6 Likes

So my plugin submission is now live in Community Plugins in Obsidian. Will be pushing out a minor update after some more testing:

one of the greatest parts of the process is getting feedback from the Obsidian crew. Always learning something, how to improve code and to simplify.

5 Likes

I’m working on my theme “Bubble Space”, taking the O_O event as the opportunity to complete the theme I’ve been using in my creatives vault.

The theme is inspired by Bubbles for light mode and Space for dark mode hence the name. There are still a lot of things to change and try :sweat_smile:

Below is my progress so far :running_woman:

Bubble [:sunny: Light Mode]

Space [:crescent_moon: Dark Mode]

6 Likes

Brand new user, and joining the party kind of late, but hoping to get the most out of the rest of October by focusing on this!!!

Project: Moss on Stone (A Theorem Proving Assistant for Obsidian)

Background: I started using Obsidian as a way to take smart notes for pure maths. I’m still iterating and improving on my workflow, but at the moment there are two basic types of notes: definitions, and propositions,. Each have a basic title, a short english description, a formalization, and optional additional descriptions.

So far I have gotten an immense amount of utility by seeing which definitions are linked to which theorems. The next natural step is to add notes which are proofs of the theorems, and devising a digital scratch pad/workflow that facilitates this.

Today I am just writing this post as a way of getting my initial thoughts out there and as a way to commit to this daily progress.

MVP Feature List:
3 panes

  • Main pane: has an input for hypotheses and conclusions and this is where we will be left to do symbolic manipulations and scratch work
  • Definitions pane: Lists all the definitions inside of the theorem, and all of their logically equivalencies. There should be some way of marking which definition is the main definition
  • Related theorems: Shows all of the theorems in your vault which make use of the definitions which you are using. Potential to organize them by hypothesis and conclusions split. Also some type of recommendation system for which theorem would be the most helpful would be totally, totally sick.

Notes:
-At the moment this is particular to my own note taking workflow (which is still in it’s infancy)
-Consulting Polya’s books on induction and discovery could provide good motivation.
-Getting some
-Getting a more concrete specification of which cognitive tasks (ex. memorization…) are involved in theorem proving would greatly improve this project’s scope (As well as make me a better mathematician, which is what this is all about)

Dreaming dreams spit ball list
-Mobile support
-Way out there (Using RegEx or AI in order to formalize written proofs and/or theorems into lean so as to verify that the proofs which we have written are in fact correct and rigorous)

6 Likes