Adamantine Pick

by Urist McMiner
5
4
3
2
1
Score: 66/100

Description

Category: Creative & Writing Tools

The Adamantine Pick plugin allows users to embed and render Pikchr diagrams directly within Obsidian notes. It simplifies the process of generating SVG diagrams from Pikchr code blocks, providing an offline, client-side solution without requiring external installations. The plugin supports advanced customization through CSS styling, enabling tailored visual enhancements for diagrams. It offers features such as importing pre-designed diagram notes, exporting designs, and interacting with other Obsidian plugins for seamless integration. The tool is ideal for users looking to incorporate lightweight, vector-based illustrations into their notes for technical or creative purposes.

Reviews

No reviews yet.

Stats

41
stars
5,180
downloads
1
forks
1,184
days
32
days
32
days
1
total PRs
0
open PRs
0
closed PRs
1
merged PRs
2
total issues
0
open issues
2
closed issues
2
commits

Latest Version

a month ago

Changelog

Adamantine Pick Plugin for Obsidian Updated original source artifact Various improvements of and fixes in source artifact Improved dark mode detection

README file from

Github

GitHub release (latest by date including pre-releases) GitHub all releases

Adamantine Pick

Embeddable Pikchr diagrams renderer plugin for Obsidian. Outputs end-user diagram to viewable SVG inside Obsidian note out of the box client side offline without need to compile install Pikchr itself

Demo

adamantine_pick_demo

Use note with 3-backticks(tildes) fenced code block marked pikchr to get SVG in

```pikchr
box "What are we going to do today" "Second Brain?" fit 
arrow
box "The same thing we do everyday" "To take over the World!" fit
```

...quick pikchr diagram in one of this text notes maybe(or not) extremely useful for anyone out there

Use adamantine class attribute selector to manipulate it from code

GPT-4 parrot #39402817203 pikchr random space station map adamantine diagram note and fix 9000 oval in it

See? "Absurd nerd value" for 3 pages free wrapper script(plugin)

adamantine_note_sample

Resistor color table calc? Sure

resistor_calculator_sample

And my favourite sample so far recursive diagram see src/pikchr.pikchr file

recursive_sample

Installation

Because pikchr.c precompiled with emcc installing this plugin allows user to markup diagrams directly from client without installing compiling Pikchr itself. This makes plugin embeddable usable "out of the box" "client-side" "offline"

With user interface

  • Ensure Safe mode is off
  • Settings > Community plugins > Turn On Community Plugins
  • Click Browse community plugins or just open install URL obsidian://show-plugin?id=adamantine-pick
  • Search for "Adamantine Pick"
  • Click Install
  • Don't forget to turn it ON with the purple slider
  • Settings > Community Plugins > Installed Plugins > Adamantine Pick

Manually installing

  • Copy over main.js, manifest.json, styles.css to your Vault VaultFolder/.obsidian/plugins/adamantine-pick/

Test installing

Picking up and Pushing adamantine diagram notes

To pick up adamantine diagram notes use separate "Adamantine Pick" command Ctrl + Shift + F5 If it has internet it will try to fetch(request) JSON adamantine-diagram-notes.json with entire notes collection from GitHub plugin release page then check it decode and generate notes in your VaultFolder/adamantine

Or you can pick up it manually by copying src/*.md files from this plugin repo to your VaultFolder/adamantine or downloading adamantine-diagram-notes.zip from latest release page and extracting it to your VaultFolder/adamantine

To push your own adamantine diagram note design into plugin collection use this checklist:

  • UTF-8 encoded text file in English(preferably)
  • less equal 4KB(4096 bytes) size that fits in a single HDD block
  • lowercase (a-z) less equal 8 characters unique filename len with extension .md 8 + 2
  • has one or more Pikchr diagrams in it MathJax Markdown optionally
  • fits in a single screen when picked with Obsidian
  • tagged with YAML --- tag: adamantine --- and #adamantine
  • tight cybersecure has no malicious executable code in it(i.e. Perl one-liners)
  • no ads messing with others personal data(OP self signature is OK)
  • embeddable in place does not rely on cloud internet connection or dynamic linking
  • decodable with stock computer hardware
  • does not repeat existing adamantine diagram notes in collection(also has unique filename)
  • picking it is memorable has some reusability utility cool nerd/hacker value
  • easy human digestible readable can be shared in place has clear semantics bits of knowledge
  • not necessary a STEM/EE/ME cheatsheet use your own imagination show some effort
  • easy discardable and disposable you constantly want to asswipe with it purple toilet paper

then fork this repo commit it into src folder then make pull request thread and wait for approve

Sure requirements are hard to met adamantine diagram notes are rare it's sort of CCG or sticker album with dinosaurs operating over the popular note-taking app open source vector graphic stack with hope to aid your workflow that's it basically

Remote gripping adamantine diagram notes

This is the most hilarious usage case then you virtualize decoder desktop box (with Obsidian and plugin installed and note collection picked in it) on the remote virtualization server then share hypervisor virtual machine player over the network or remote framebuffer keyboard protocol with your target host screen browser or VNC window so you fully observe notes decoded remotely locally

I tested it with Neverinstall boxes you can retry it anytime If you are running YouTube channel you can show this trick to your subscribers "Unboxing adamantine diagram notes" lol anyway it's very hard to achieve truly reusable city screens

Anyway you can also use native shell script to fetch decode JSON directly then preprocess the Pikchr + Markdown input then convert it to PDF or HTML with Pandoc without touching note taking app GUI and plugin system at all

Moreover it can replace Pikchr with some ancient logo turtle interpreter or even typographical forth dialect basically anything that output vectors in computers General interest in computer archaeology and dinosaurs is fascinating curious international paperwork affair Nonetheless it provides excellent tooling for durable lightweight computer documentation Input data inconsistency is a fact of life (not advocating that)

How to build plugin

Install and activate emcc using emsdk

git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
emsdk activate

Clone this plugin repo to your Vault into VaultFolder/.obsidian/plugins/adamantine-pick folder

cd VaultFolder/.obsidian/plugins
git clone https://github.com/notlibrary/obsidian-adamantine-pick adamantine-pick
cd adamantine-pick

Install Node.js dev packages

npm install

Build pick.js from pick.c wrap to pikchr.c artifact

npm run pikchr

The compiler one-liner is this

emcc src/pick.c -Wall -Wextra -lm -O3 --memory-init-file 0 --closure 1 -sWASM=0 -sMODULARIZE=1 -sEXPORT_NAME=pick -sTOTAL_STACK=131072 -sENVIRONMENT=web -sEXPORTED_FUNCTIONS=_pick,_pick_width,_pick_height,_pick_version -sEXPORTED_RUNTIME_METHODS=ccall,cwrap -o src/pick.js

Or standalone pick.wasm it needs some glue code to pass C strings anyway

npm run pick

The compiler invocation then

emcc src/pick.c -Wall -Wextra -lm -O3 --no-entry -DNDEBUG --minify=0 -sMODULARIZE=0 -sWASM=1 -sSTANDALONE_WASM=1 -sTOTAL_STACK=131072 -sENVIRONMENT=web -sEXPORTED_FUNCTIONS=_pick,_pick_width,_pick_height,_pick_version,_malloc,_free -o src/pick.wasm

Encode adamantine-diagram-notes.json database

npm run notes

Bundle build(and minify) main.js from main.ts wrapper

npm run build

To debug wrapper in loop

npm run dev

Build server actions workflow is also usable to automate this(and version bump) See emsdk from GitHub actions Also read raw action runner logs if you find this instructions inconsistent or hard to understand

Pikchr Official Documentation References

CSS SVG postprocessing features

Feasible to further postprocess diagram processor output using builtin CSS rules and SVG parser For example this autogenerated CSS snippet

/* default id selector for single diagram object is #postproc-diag-42 */
svg.adamantine {
	filter: drop-shadow(0 -6mm 4mm rgb(160, 0, 210));
	border-image-slice: 41 42 42 44;
	border-image-width: 42px 42px 42px 42px;
	border-image-outset: 42px 42px 42px 42px;
	border-image-repeat: round round;
	border-image-source: url("https://mdn.github.io/css-examples/tools/border-image-generator/border-image-6.svg");
	border-style: solid; 
}

Makes all diagrams drop purple shadow and borders it with gimmick glittering fence like this:

css_postprocessing_sample

I am happy to leave discussion of actual utility of aforementioned features to the users As for syntax highlighter GitHub editor already has one

Another nice feature is interacting with core app plugins Put the note with callout that embeds named clock diagram block from another note into canvas then open canvas and page preview note with callout

plugin_interaction_sample

Here it is have fun

Note

Experimental bloated ugly wrapper but possibility to run it entirely in js environment outweighs security drawbacks

  • Do not edit pikchr.c it's autogenerated from original artifact and intended for integrator usage
  • Do not use it for CAD/CAM drawings, marketing presentations, spreadsheet charts, function graphs(plots) and specialized STEM charts
  • Acknowledge original Pikchr developers

Deflated binary size with wrap ~75-100KB(depends on compr algo) So it fits in desktop L2 cache arrow <-> from A to B chop together with encoded diagram and even leaves some more free space for others Common output mime-type image/svg+xml makes it easy negotiable and decodable anywhere by anyone

tl, dr: for those who read it to the end "BanKan"

```pikchr
box "DONE"; box "IN" ; box "DO" ; down; move from first box.n

DONE: [ box "Shit" ] ; right 
IN: box "Random"
DO: box "Task 1" "Task 2" "Task 3"
```

and clock diagrams

```pikchr
gmt = 0
hours =  time / 3600 + gmt
mins = time / 60
circle rad 0.5
circle invis rad 0.6 at first circle.c
circle rad 0.7 at first circle.c
arrow thick from first circle go 90% heading hours*30 
arrow from first circle go heading mins*6
arrow dashed thin from first circle go heading time*6
dot at first circle
text "XII" at 0.1 above first circle.n
text "VI" at 0.1 below first circle.s
text "III" at 2nd circle.e
text "IX" at 2nd circle.w
#?time
```

P.S. Although not best practice because "Digital? Every Idiot Can Count to One"(c) I pushed my lame memo test OPamp circuit diagram note into separate src/opamp.md

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Advanced Canvas
2 years ago by Developer-Mike
⚡ Supercharge your canvas experience! Graph view integration and unlimited styling options empower flowcharts, dynamic presentations, and interconnected knowledge.
Advanced Progress Bars
a year ago by cactuzhead
Obsidian plugin to create custom progress bars
Alfonso Money Manager
2 years ago by SmartLifeGPT Innovation
This is the repository for the obsidian plugin of the Alfonso Money Manager mobile application
Argument Map with Argdown
5 years ago by amdecker
Arrows
2 years ago by artisticat
Draw arrows across different parts of your notes, similar to on paper
ASCII Tree Generator
a year ago by Matěj Michálek
BattleSnake Board Viewer
3 years ago by EnderInvader
Plugin to render battlesnake boards in Obsidian
Boardgame Search
a year ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Canvas Explorer
2 years ago by Henri Jamet
A plugin that enables users to explore their vault by iteratively adding or ignoring linked notes, ultimately generating a customizable canvas that visually represents the preserved notes and their connections.
Canvas Filter
3 years ago by Ivan Koshelev
Obsidian Canvas plugin that let's you show only pages / arrows with specific tags / colors / connections.
Canvas Links
3 years ago by aqav
Show the links between "Canvas" and "File"
Canvas Mindmap Helper
2 years ago by Tim Smart
CardNote
2 years ago by cycsd
Help you extract your thoughts more quickly in canvas
Chemical Structure Renderer
3 years ago by xaya1001
Render chemical structures from SMILES strings into PNG or SVG format using Ketcher and Indigo Service.
Chessboard Viewer
5 years ago by Davide Aversa
Plugin to render chessboards in Obsidian using chessboardjs
Class Relation Visualization
a year ago by Yong
Content Cards
a year ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
Contribution Graph
2 years ago by vran
generate interactive gitxxx style contribution graph for obsidian, use it to track your goals, habits, or anything else you want to track.
D2
3 years ago by Terrastruct
The official D2 plugin for Obsidian. D2 is a modern diagram scripting language thats turns text to diagrams.
Desk
2 years ago by David Landry
A desk for obsidian
Desmos
4 years ago by Nigecat
Embed graphs directly into your obsidian notes
Diagram Zoom Drag
2 years ago by ChenPengyuan
Diagrams
5 years ago by Sam Greenhalgh
Draw.io plugin for obsidian.md
Diagrams.Net
4 years ago by Jens M Gleditsch
This repository contains a plugin for Obsidian for inserting and editing diagrams.net (previously draw.io) diagrams.
Dirtreeist
3 years ago by kasahala
Render a directory Structure Diagram from a markdown lists in codeblock.
Easy Timeline
a year ago by Romeliun
The Easy Timeline plugin for Obsidian allows you to create timelines easily.
Enhanced Canvas
a year ago by RobertttBS
When editing on Canvas, properties and Markdown links to notes are automatically updated, enabling backlinks in Canvas.
Every Day Calendar
a year ago by QuBe
Obsidian plugin to create calendars inspired by Simone Giertz's Every Day Calendar
Excalidraw
5 years ago by Zsolt Viczian
A plugin to edit and view Excalidraw drawings in Obsidian
Export Graph View
a year ago by Sean McGhee
Plugin to export your vault's graph view.
Extended File Support
a year ago by Nick de Bruin
Adds opening and embedding support for various filetypes to Obsidian
Extended Graph
a year ago by Kapirklaa
Community plugin to add features to the graph view.
Flowcharts
a year ago by land0r
Flowchart Plugin for Obsidian – Create and customize flowcharts seamlessly within your Obsidian vault. Powered by Flowchart.js and designed for productivity
Folder Canvas
a year ago by Nancy Lee
Generate a canvas view of your folder structure
Generate Timeline
a year ago by Shanshuimei
An obsidian plugin to generate timelines from tags, folders, files or metadata automatically. 根据标签,文件夹,文件或者属性自动生成时间轴的插件。
GLSL Viewer
3 months ago by iY0Yi
Preview GLSL shaders on Obsidian.
GoBoard
4 months ago by Dmitry I. Sokolov
Obsidian plugin for rendering Go game diagrams from markdown code blocks
Graph Banner
2 years ago by ras0q
An Obsidian plugin to display a relation graph view on the note header.
Graph Link Types
2 years ago by natefrisch01
Link types for Obsidian graph view.
Habit Tracker
5 years ago by duo
This plguin for Obsidian creates a simple month view for visualizing your punch records.
Habit Tracker
4 years ago by David Moeller
A Plugin to display a Habit Tracker in Obsidian.
Heatmap Calendar
4 years ago by Richard Slettevoll
An Obsidian plugin for displaying data in a calendar similar to the github activity calendar
Heatmap Tracker
a year ago by Maksim Rubanau
A customizable heatmap tracker plugin for Obsidian to visualize daily data trends with intuitive navigation and flexible settings.
historica
2 years ago by Nhan Nguyen
Not (smart) to help you create your timeline in obsidian like a ... bro
InfraNodus AI Graph View
2 years ago by Nodus Labs
Advanced graph view for Obsidian: text analysis, topic modeling, and AI with InfraNodus AI text analysis tool: https://infranodus.com
Inline Local Graph
3 months ago by TKOxff
Inline Local Graph of Obsidian
Kale Graph
a year ago by Oli
Render mathematical graphs in Obsidian
Kroki
5 years ago by Greg Zuro
Laws of Form
3 years ago by Kevin German
Life in Weeks Calendar
6 months ago by Jeff Szuc
Plugin for the Obsidian markdown editor. Displays a calendar of your life in weeks with weekly Periodic Notes plugin integration. Includes options for the traditional Memento Mori/Stoic style calendar, as well as a Gregorian calendar accurate version.
Lilypond
3 years ago by DOT-ASTERISK
Lilypond for Obsidian
Lineup Builder
4 years ago by James Fallon
An Obsidian plugin that lets you build football lineups
Link Exploder
3 years ago by Ben Hughes
Magic Move
2 years ago by imfenghuang
Animating Code Blocks in Obsidian
Mahgen Renderer
a year ago by Michael Francis Williams
Obsidian plugin to render mahgen automatically
Mahjong Renderer
2 years ago by hypersphere
Map View
5 years ago by esm
Interactive map view for Obsidian.md
Mapbox Location Image
2 years ago by Aaron Czichon
Render a mapbox location image based on provided coordinates
Maps
7 months ago by Obsidian
Map layout for Obsidian Bases. Display your notes as an interactive map view.
Markline
2 years ago by 闲耘
Markline: Markdown timeline view in Obsidian.
Markmind
5 years ago by Mark
A mind map, outline for obsidian,It support mobile and desktop
Mathematica Plot
2 years ago by Marcos Nicolau
Insert functions on Obsidian using Wolfram Mathematica!
Mehrmaid
2 years ago by huterguier
Rendering Obsidian Markdown inside Mermaid diagrams.
Mermaid Icons
3 months ago by toshs
Obsidian plugin enabling the use of icons in Mermaid diagrams.
Mermaid Popup
2 years ago by ChenPengyuan
Mermaid Themes
3 years ago by jvsteiner
mermaid themes for obsidian
Mindmap
2 years ago by YunXiaoYi
An Obsidian plugin for creating Mindmaps.
MoreDraw
a year ago by webceoboy2011
mordraw.com for obsidian plugin
Neo4j Graph View
5 years ago by Emile van Krieken
New 3D Graph
9 months ago by Aryan Gupta
Visualize your vault in 3D with a powerful, highly customizable, and filterable graph.
Nifty Links
3 years ago by x-Ai
Generating elegant, Notion-styled rich link cards to enhance your note-taking experience.
Node Factor
a year ago by CalfMoon
Customize factors effecting node size in obsidian graph.
NodeFlow
a year ago by LincZero
Render node streams like `ComfyUi`, `UE`, `Houdini`, `Blender`, etc., to make it easy to write relevant notes. json describes the chart, compared to screenshots, making it easier to modify later. The plugin is also compatible with blogs.",
Nomnoml Diagram
5 years ago by Daeik Kim
Obsidian Plugin for nomnoml diagram
Note Gallery
2 years ago by Pash Shocky
A masonry note gallery for obsidian.
NyanBar
2 years ago by xhyabunny
Give life to your Obsidian notes with NyanBar !
Obsidian Graphviz
4 years ago by Feng Peng
Graphviz plugin for obsidian md.
Optimize Canvas Connections
3 years ago by Félix Chénier
An Obsidian plugin that declutters a canvas by reconnecting notes using their nearest edges
Pintora
2 years ago by Amias Lee
Create Pintora diagrams directly in the Obsidian.
Poker Range
2 years ago by marplek
Easily create, view, and interact with poker hand ranges in your obsidian.
Release Timeline
4 years ago by cakechaser
Sankey
a year ago by Finn Romaneessen
An Obsidian plugin to create sankey diagrams
ShaahMaat-md
a year ago by Mihail Kovachev
Show Whitespace
2 years ago by Erin Schnabel
Show leading/trailing whitespace
Smart Connections Visualizer
2 years ago by Evan Moscoso
Visualize your notes and see links to related content with AI embeddings. Use local models or 100+ via APIs like Claude, Gemini, ChatGPT & Llama 3
Smart Vault Visualizer
a year ago by Evan Moscoso
Storyclock Viewer
2 years ago by Jonathan Fisher
Obsidian plugin for creating a storyclock
Tagvis
a year ago by Mason Bryant
Tasks Map
7 months ago by NicoKNL
A graph view of your tasks.
Tier List
a year ago by Mox Alehin
Obsidian plugin for visual ranking and organizing content into customizable Tier Lists.
TikZJax
4 years ago by artisticat1
Render LaTeX and TikZ diagrams in your notes
Timelive
a year ago by aNNiMON
Turn a list of dates into a timeline
Tracker+
3 years ago by GreaterThan (original by pyrochlore)
A plugin for Obsidian that tracks and visualizes in your notes. A continuation of the plugin originally developed by @pyrochlore
Visited Countries
7 months ago by Ivan Peshykov
Obsidian plugin to mark and visualize the countries you've visited on an interactive world map.
WaveDrom
5 years ago by Alex Stewart
Waveform Player
a year ago by Zhou Hua
Weather Widget
3 months ago by mr-asa
Weather widget for display in notes, Canvas, and a separate tab.
YourPulse - Your Writing Activity Visualised
a year ago by Jiri Sifalda
YourPulse.cc - Obsidian.md plugin that turns your vault into a reflection of your creativity, and put your writing on steroids 💪