Coder Social home page Coder Social logo

emacs-notes's People

Contributors

xbc5 avatar

Watchers

 avatar

emacs-notes's Issues

Remove redundant link aliases

e.g. the shortened hn:foo links. Keep the RFC one. You will need to sed your docs. Also get rid of lowercase rfc, use RFC instead.

Restructure the org directory

Use:

  • org/perm for perm org notes;
  • org/source for "bib" notes;
  • org/agenda for agenda items;
  • org/refs for the bibliography files;

This means that all perm notes will have the implicit @perm tag, making it easier to select non-bib notes without using negative tags.

If you want sources and agenda items to be roam files, you will still need to set the roam directory to ~/org. Additionally, you will need to update capture templates to add the perm or source slugs.

automatically do git commits

Firstly, look for packages that do this job: e.g. ryuslash/git-auto-commit-mode.

CAVEAT: once you save, it's in your git commit history. You save a lot.

Use the file name in the commit: "created|modified foo.org" or "created|modified title" if you intend to use the title in the file name as per #43. I prefer the second.

Truncate long file name with ellipses, and put the full name in the body.

Trigger the commit on save. You will need to handle multiple files in some cases, which means that you will need to think about how to title the commit.

This is incompatible with #26 -- so choose one or the other.

Consider applying automatic commits to some directories, but not others (e.g agenda, but not concept).

Create a reviw workflow; use timestamps

This means using a package to apply timestamps (creaton; modification) to all notes and agenda items. Create a workflow to review and improve notes.

Possibly create a TODO! tag, for notes that you've encountered that need serious editing, but you can't do it at that moment.

Set proper spacing at the bottom of sections

Org does not insert a trailing space at the bottom of each section, and it makes the text hard to read.

See if there's an option for it. Perhaps see if there's a formatter for org (or write your own function), that you can run on save.

Easier Git commits

A simple one liner with a quick keymap. If there's no text, then take the title of the note, and use [idea|bib]: do {{ title }};

Make this easy and quick, and also push changes. Background this if you can.

Make refactoring notes easier with a better refiler

Create a new, custom refiler so that:

  1. it takes the heading name, and fills out the fuzzy selector (ready for the user to hit enter);
  • it should also (possibly) include a primary category: e.g. "Golang foo";
  1. it transfers across a combination of all hierarchical tags from nested headings, including the original file tags;
  2. it transfers accross the ID given to then heading (if there is one), or else it creates a new one;
  3. it puts the content under "details" heading (use a configurable variable for this, and link it to the appropriate capture template);
  • ensure that it removes the root heading (because now it's the file name);
  1. it syncs the database afterwards;
  2. it creates an entry under the associated "+home +index" (if this is possible)
  • possibly copying some conclusion text (that's typically preceded by a colon);

Cannot insert citation

Error: Symbol's function defintion is void: org-ref-cite-insert-ivy.

After inserting a citation, it acts weird and throws up a file explorer (dired I think).

Create a feature to search across agenda tasks

For example, a textual or tag search. You should be able to edit it by selecting it. Possibly create one if not found, such that it will instigate the agenda file selection process, and capture template.

Create better mappings for linking words

When linking a word in a document I have to viw<leader>ri, perhaps create your own text object, and have it accept a number so that you can easily link multiple words.

Auto-create indexes

Create a dblock that filters nodes by tags/names, and displays them as an index list. Additionally, display some brief information about the note -- it should lift that brief information from the =BRIEF= header property.

Also, sometimes you will create a custom brief that makes more sense within that context. Display both:

- Foo
  - [*] embedded brief
  - custom brief

Mark one of them up so it's obvious which one is which.

Here is an example of an index

- foo: this is a brief;
- bar: this is another brief;

Make startup much faster

  • create a notes specific demon;
  • determine and fix startup time performance issues (is a byte code cache issue?);
  • determine why there's input lag when opening the first note;

create `img` and `diag` file protocols

Point them to img/ and diag/. See org-link-set-parameters which also allows you to set a completing functioin when manually entering mylink:. The primary issue I've had is determining which function to use for :follow -- I've tried org-link-open-as-file, but that does not open images inline, instead it opens a temporary buffer that you can cancel with q.

In addition, you will need to sed all org files: s|file:../img/?|myproto:|g, because currently all images use a relative path (they're all in img, on the same level, so it's a pretty simply fix).

Think about this.

start Org-Roam on boot

Starting this will kick-off some other package loads, and won't require you to open a roam buffer just to get some features.

setup roam-server

Also make keymap for creating a local graph (of current node) that shows only neighbours (instead of the full graph).

Use a session manager

So that when restarting Emacs after config changes, we don't have to reopen files, and reset buffer layout.

Save all periodically

Save all buffers periodically, or when they lose focus -- or both. This prevents the annoying "save" prompts at shutdown.

Add ability to edit agenda entries

Create a fuzzy finder, select the entry, open it in a mini-buffer, so that you can edit it quickly and close it.

You most likely want the ability to add a list item to such nodes -- add a multi-step confirmation: select node; select edit type (add list item; add list item with url; add plain text) etc.

Make a quick Git commit feat

A keymap that stages and commits all files; a keymap to reset to HEAD.

You have never (once) used the Git history, the commit messages do not matter at all. You only use itas a checkpoint, and a means to reset to HEAD.

Make agenda variables work

org-agenda-files is not set after loading -- it is set to some other random values. If you get this working, you will need to use this for my/pick-agenda-file under org/util.el too, so that the function will work when you change agenda config options too.

Create a smart function for inserting a roam link

Map it to <M-I>: if a single char is highlighted at point, then highlight a word, else use the current selection (more than one char).

This will allow you to quickly add words for linking, and use a manual selection for problem words.

Try to think how you can incorporate this into a search function: e.g. doing / for a word, hitting n, then using . to repeat the link on desired words throughout the buffer. Or perhaps you can create a function specialised for this task.

Configure "which key" for roam

Also do any other popular shortcuts that you use, like org-ref.

Org-roam which key text is a little crowded, they use the full symbol names, and some are simply +prefix. Fix this, and use short descriptive names.

Improve buffer selection

  • create a fuzzy selector;
  • create a map to close all saved buffers;

The current roam config creates buffers with numbers only (date), this is useless for traditional buffer selection. We need a way to get the org title from each buffer, I am sure that there is an org or roam function that does it.

Refactor bibliography

  • [] use a dedicated directory with a bib file per source;
  • [] fix all bib entries, use standard syntax;

update templates, add article too

Include header props in all captures.

Create an article capture: :NOTE_TYPE: article; also add :ARTICLE_KIND: game|movie. For movies and games, take a URL and use the downloader implemented in #42 to embed an image. Additionally, optionally accept a URL for a trailer or gameplay footage. Optionally, see if you can create an agenda item with it, using the same variables, and link it back to the article -- for example, a TODO, using the article kind.

Also add a RATING prop, which is nil or 0 by default. If 0, then 1/10 is the lowest we should go. Perhaps consider a :EXPERIENCED: true (e.g. played/watched/bought/read) prop, so that we can get precise when doing a table view.

You should modify all notes and templates to include NOTE_TYPE.

Create image downloader

Create a function to download, save, and insert an image into the current buffer -- i.e. make it easy to attach an image to the current note.

Put all images into a single directory so that #41 is easier to implement.

Name the files category-noun-number.ext: game-foo-1.jpg. This may prevent collisions, and also make it easier to fuzzy find.

Don't forget to strip metadata.

Create image picker

Create a function that fuzzy selects an image from the file system. Implement #40 first. Put all images within a single directory so it's easier to pick.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.