mirror of
https://github.com/tcsenpai/The-Ember-Index.git
synced 2025-06-01 01:50:03 +00:00
added screenshot
This commit is contained in:
commit
bb59142d2f
83
README.md
Normal file
83
README.md
Normal file
@ -0,0 +1,83 @@
|
||||
The Ember Index is a gentle system for tracking and revisiting your suspended fixations — creative projects, intellectual obsessions, half-finished builds, forgotten puzzles, abandoned sparks.
|
||||
|
||||
## Structure
|
||||
|
||||
Each fixation lives in its own note.
|
||||
|
||||
Once added to the system, it can be “evoked” randomly through a ritual command or a click of a button.
|
||||
|
||||
Creating a fixation can be done by clicking a button too.
|
||||
|
||||
When you summon a fragment:
|
||||
|
||||
- A random fixation is selected
|
||||
|
||||
- Its link appears inside your Ember Index note
|
||||
|
||||
- A timestamp is added to mark the moment of return
|
||||
|
||||
- The event is logged in a ritual register for future reflection
|
||||
|
||||
|
||||
You can revisit the ember, reignite it, or gently return it to sleep — without guilt, without pressure.
|
||||
|
||||
It's not a todo list.
|
||||
It’s a memory temple for the parts of you that once burned brightly.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Prerequisites & Setup
|
||||
|
||||
To make The Ember Index fully functional, you’ll need two community plugins:
|
||||
|
||||
### 1. [Templater](https://github.com/SilentVoid13/Templater)
|
||||
|
||||
Used to execute the logic behind each ritual (random selection, timestamping, logging, file editing).
|
||||
|
||||
- Install **Templater** from the Community Plugins section
|
||||
|
||||
- Go to `Settings → Templater → Template folder location`
|
||||
→ Set your desired folder (e.g. `Templates/`; this is the suggested default for plug-and-play with this repository)
|
||||
|
||||
**NOTE**: If you chose another folder, please change the `Templates` references in the step below with your configured folder
|
||||
|
||||
- Make sure “Trigger Templater on file creation” is **off** (optional but recommended)
|
||||
|
||||
- Go to `Settings → Templater → Template Hotkeys` and add a reference to `Templates/invokefixation.md`
|
||||
(you don’t need to assign a hotkey — just register the path; adjust it if you use a custom template folder)
|
||||
|
||||
- Do the same for `Templates/Fixation_base.md`
|
||||
(you don’t need to assign a hotkey — just register the path; adjust it if you use a custom template folder)
|
||||
|
||||
**IMPORTANT**: Make sure to copy `invokefixation.md` and `Fixation_base.md` from this repository’s `Templates` folder into your configured Templater folder.
|
||||
|
||||
---
|
||||
|
||||
### 2. [Buttons](https://github.com/shabegom/obsidian-buttons)
|
||||
|
||||
Used to add clickable buttons for summoning fragments inside your notes.
|
||||
|
||||
- Install **Buttons** from Community Plugins
|
||||
|
||||
- No setup required — just make sure your notes are in **Reading Mode** to see and use buttons properly
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 🧪 First-time Setup Steps
|
||||
|
||||
1. **Copy the folder `The Ember Index` from this repository into your Obsidian vault**
|
||||
|
||||
2. Inside it, populate the `fixations/` folder with your personal suspended projects (see format below)
|
||||
|
||||
3. Each fixation should be a single `.md` file (e.g. `escape-box.md`) inside the `fixations/` folder
|
||||
|
||||
|
||||
**IMPORTANT**: If you are not using the default `Templates/` folder for Templater, be sure to update the `Invoke Scroll` buttons code accordingly to match your custom path.
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
Once configured, just open the `Invokation Scroll` as any other note and use the buttons to interact with the system.
|
33
Templates/Fixation_base.md
Normal file
33
Templates/Fixation_base.md
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
> **Status**:
|
||||
> **Location**:
|
||||
> **Last Interaction**:
|
||||
> **Sigils**:
|
||||
> **Tag**:
|
||||
|
||||
---
|
||||
|
||||
### 📝 Notes
|
||||
|
||||
Write here your notes…
|
||||
|
||||
---
|
||||
|
||||
<div style="text-align:center; font-size: 0.9em; opacity: 0.6;">
|
||||
⟡ 𓂀 Part of The Ember Index ⟡
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<%*
|
||||
const folder = "The Ember Index/fixations";
|
||||
const title = await tp.system.prompt("What is the title?");
|
||||
const filename = `${title}`;
|
||||
await tp.file.rename(filename);
|
||||
await tp.file.move(`${folder}/${filename}`);
|
||||
// Replacing title
|
||||
|
||||
// const updatedContent = tp.file.content.replace("# Name", `# ${title}`);
|
||||
// await this.app.vault.modify(tp.file, updatedContent);
|
||||
%>
|
44
Templates/invokefixation.md
Normal file
44
Templates/invokefixation.md
Normal file
@ -0,0 +1,44 @@
|
||||
<%*
|
||||
const folder = "The Ember Index/fixations";
|
||||
const files = app.vault.getMarkdownFiles().filter(f => f.path.startsWith(folder));
|
||||
const random = files[Math.floor(Math.random() * files.length)];
|
||||
const timestamp = tp.date.now("YYYY-MM-DD HH:mm");
|
||||
|
||||
const invokation = [
|
||||
"%% SCROLL-OF-INVOKATION-BEGINS %%",
|
||||
"## 🔥 Invoked Shard",
|
||||
"",
|
||||
`✨ [[${random.basename}]]`,
|
||||
`🕒 ${timestamp}`,
|
||||
"%% SCROLL-OF-INVOKATION-ENDS %%"
|
||||
].join("\n");
|
||||
|
||||
const currentFile = tp.file.find_tfile(tp.file.title);
|
||||
const content = await app.vault.read(currentFile);
|
||||
|
||||
const regex = /%% SCROLL-OF-INVOKATION-BEGINS %%[\s\S]*?%% SCROLL-OF-INVOKATION-ENDS %%/g;
|
||||
|
||||
let newContent = "";
|
||||
|
||||
if (regex.test(content)) {
|
||||
newContent = content.replace(regex, invokation.trim());
|
||||
} else {
|
||||
newContent = content.trimEnd() + "\n\n" + invokation;
|
||||
}
|
||||
|
||||
await app.vault.modify(currentFile, newContent);
|
||||
|
||||
// Registering in the register
|
||||
|
||||
const date = tp.date.now("YYYY-MM-DD HH:mm");
|
||||
const logPath = "The Ember Index/register.md";
|
||||
|
||||
// Trova il file reale nel vault
|
||||
const logFile = app.vault.getAbstractFileByPath(logPath);
|
||||
|
||||
if (logFile) {
|
||||
const logEntry = `### 📅 ${date}\Invoked: [[${random.basename}]]\n\n`;
|
||||
await app.vault.append(logFile, logEntry);
|
||||
}
|
||||
|
||||
%>
|
30
The Ember Index/Invokation Scroll.md
Normal file
30
The Ember Index/Invokation Scroll.md
Normal file
@ -0,0 +1,30 @@
|
||||
# 𓂀 The Ember Index
|
||||
|
||||
**Welcome to your sanctuary of suspended passions.**
|
||||
|
||||
> Every dormant fragment is a small ember waiting to be rekindled.
|
||||
|
||||
Press the button to invoke a Shard of Passion
|
||||
|
||||
```button
|
||||
name 🔥 Invoke a Shard of Passion
|
||||
type command
|
||||
action Templater: Insert Templates/invokefixation.md
|
||||
```
|
||||
|
||||
```button
|
||||
name 🔥 Create a New Fixation
|
||||
type command
|
||||
action Templater: Create Templates/Fixation_base.md
|
||||
```
|
||||
|
||||
---
|
||||
…or open the 🕯️ [[Registry]] 🕯️ and reflect.
|
||||
|
||||
<hr>
|
||||
|
||||
<div style="text-align:center; font-size: 0.85em; opacity: 0.6;">
|
||||
⟡ Curated by your obsessions ⟡
|
||||
</div>
|
||||
|
||||
<hr>
|
0
The Ember Index/Registry.md
Normal file
0
The Ember Index/Registry.md
Normal file
Loading…
x
Reference in New Issue
Block a user