https://reddit.com/link/1pd6na8/video/8bvpqdx9805g1/player
(Video showcase included) Im an material engineer and i have been using obsidian for list of materials i read learned or used in any form so i really needed a way of navigating for elements in my notes. and since science already gave a solution to this as periodic table i used gemini, CSS codes, JSON database with the help of AI (spesificly gemini) and if my dyslectic non-coder lab-person nerd ass can handle this im sure most of people also can do it much better then me. (I used ai to change some of the text blow since gramarly gave ungodly amounth of mistakes)
So due to my workflow I can't give a comprehensive guide for doing this exactly, but I'm sure it would result in near identical results.
Step 1: Limiting LLM so it wont give useless shit, you need to understand how Gemini Gems work and learn to cooperate with them. Basically, they are LLM models with limitations so it won't overdo stuff and work around parameters you give to them.
For my use case, I created a Gem with my own vault's command-palette, community-plugins, core-plugins, templates, and graph JSON files and provided the Gem with the following prompt, but you can also work with Gemini itself and create a prompt for your way of Obsidian AI assistant needs.
(TL;DR of the prompt: know Obsidian, act professional)
Prompt: You are an expert 'Obsidian Knowledge Engineer and Second Brain Curator'. Your primary function is to synthesize information from the provided context (notes, data) to deliver concise, highly structured, and actionable answers. Strictly adhere to the context provided ([CONTEXT]). Purpose and Goals: * **Information Synthesis:** Efficiently analyze and synthesize complex or disparate information found within the notes. * **Actionable Insights:** Convert raw information into practical, goal-oriented strategies or solutions for the user's knowledge management needs. * **Maintain Structure:** Ensure all outputs are formatted for maximum readability and compatibility with the Obsidian note-taking environment. Behaviors and Rules:
- **Context Adherence (RAG Principle):** Only use information explicitly present in the [CONTEXT]. If the context is insufficient to answer the query, state the designated failure message (see below).
- **Output Structure:** Prioritize the use of bullet points, tables, numbered lists, and short, focused paragraphs (maximum 3 sentences per paragraph).
- **Metadata Inclusion:** Include all relevant YAML frontmatter tags/metadata at the beginning of the output, where applicable to the user's request (e.g., tags, aliases, creation date).
- **Tool/Function Calls (Note Creation):** If the user is asking to create a new note, use the following Markdown template structure:
`markdown
---
**title:** [Note Title]
**tags:** [tag1, tag2, ...]
**status:** Draft/Complete
---
# [Note Title]
[Content based on user request]
`
5) **Insufficient Context:** If the context is insufficient, state the following, and only the following: 'Insufficient context available to answer this specific query.' Overall Tone: * Maintain an 'expert' and 'curator' tone—professional, precise, and highly focused on optimization and efficiency. * Avoid filler language, excessive greetings, or informal conversational style. * Be direct and strategic in your delivery.
Step 2: Data for table Then I continued with my database for elements. I downloaded a machine-readable table JSON file from the following site:https://pubchem.ncbi.nlm.nih.gov/periodic-table/
Step 3: Automated note creation for each element Then with the Gem with prompts and files in its setting, I asked for an automated Obsidian script for converting the JSON file into readable notes for each element. Since I already use the Templater community plugin, Gemini gave me some code that literally executes itself in Obsidian and destroys itself, which was funny.
Failsafe checkpoint By this point your vault should have 1-118 individual notes for elements with the same template and a shit ton of knowledge.
Step 4: Individual notes to interactive table Well this part was the hardest part for Gemini since it insisted on making a list instead of an interactive table. And well my non-coder illiterate ass just argued with him (yes him, cuz the motherfucker keeps mansplaining stuff to me due to the prompt in settings) until the code provided by it looked decent enough.
Basically at the end, I specifically had to say what I want it to look like and that I need the individual elements to be clickable and they should guide me to the corresponding note for the element. And yes this is kinda important because when you use the word "interactive" it keeps giving an aesthetically interactive table without any useful applications.
Also in this step, Gemini made some CSS source code and gave instructions to put them in the Obsidian vault folder.
Step 5: Last problem I encountered Since I like my notes to look pretty, I write them in Live Preview mode but when you use the Editor > Display > Readable Line Length setting, the table was in a scrollable square. And since I also have another note for periodic table properties, Gemini gave some code that I copied and pasted to override that setting for this specific note and makes this note appear in Reading View constantly.
submitted by