Skip to content

mahmoodsh36/organ-mode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

this readme is mostly a placeholder. it will be updated as things progress.

the code is yet to be properly packaged properly for lem.

most of the functionality is currently present in https://github.com/mahmoodsh36/cltpt

Installing

You will need quicklisp installed first.

Once it is installed, do the following:

cd ~/common-lisp
git clone https://github.com/mahmoodsh36/organ-mode.git
git clone https://github.com/mahmoodsh36/cltpt

Then open your Lem init file (this is usually located in ~/.lem/init.lisp

In this file add:

(ql:quickload :organ-mode)

Problems

If you run into problems, some people have had better luck putting the organ-mode folder and its dependencies in ~/common-lisp/lem/.qlot/local-projects

preview

scrot.png

emphasized ideas and goals

  • extensibility: the features should be extensible and customizable.
  • community: ideally, the features should be liked and inspired by the community’s needs. if all goes well, we could eventually make a draft to lem’s codebase and get builtin org-mode-like features.
  • performance: the code should be performant. the “org-agenda buffer” should load instantly even when it has to parse thousands of files. this is possible by a parser written from scratch in common lisp, which will also be improved even further in the future.

notes

  • most of the functionality for parsing is currently present in cltpt (the base code for parsing org and other formats).
  • code and features in this repo will be lem-specific, but cltpt will remain editor-independent with a commandline interface.
  • progress is bound to be slow but steady (like it has been for some time now)
  • the goal is not to have a completely faithful, but an almost faithful replication of org-mode features where it matters. the vision of an “improved” version of org-mode is more important than maintaining total compatbility.

roadmap

a quick reference for org-element support

org-elementparsinghighlightingconversion to htmlconversion to latex
headersttt
blockttt
inline codett
linkstt
boldtt
italictt
tablett
listtt
inline mathttt
display mathtt
latex envttt
comment
src results
org-cite
  • [ ] proper packaging for lem
  • [ ] org-element
    • [ ] latex snippts (display math, inline math, latex environment)
    • [ ] headers
    • [ ] special/code blocks
    • [ ] drawers
    • [ ] lists
    • [ ] tables
    • [ ] italic text
    • [ ] bold text
    • [ ] inline code
    • [ ] top-level keywords
    • [ ] links
    • [ ] src-block results
  • [ ] markdown
    • [ ] headers (including support for agenda TODO data)
    • [ ] roam links/anchors/titles in markdown
  • [ ] latex
    • [ ] roam links/anchors/titles
  • [ ] roam (idea from org-roam)
    • [ ] node navigation
    • [ ] node links
      • [ ] links to files
      • [ ] links to headers
      • [ ] links to blocks
    • [ ] backlinks buffer
  • [ ] agenda (idea from org-agenda)
    • [ ] agenda buffer
      • [ ] todo navigation
      • [ ] next/previous week, or more generally display specific date range
    • [ ] todo state handling/modification for headers
    • [ ] state history tracking
  • [ ] element folding
    • [ ] headers
    • [ ] blocks
  • [ ] babel (idea from org-babel)
    • [ ] literate programming
    • [ ] code block tangling
    • [ ] library of babel
    • [ ] execution results
    • [ ] noweb
    • [ ] sessions
    • [ ] data pipeline between code blocks, possibly between different languages
  • [ ] buffer navigation by element (headers, blocks, etc)
  • [ ] element-specific/quick actions
    • [ ] list-specific actions (insert new list item on enter)
    • [ ] table-specific actions
      • [ ] new row/column
      • [ ] delete row/column
      • [ ] reorganize
      • [ ] next/previous cell (using tab/shift-tab)
    • [ ] insert new header
  • [ ] converting (exporting)
    • [ ] org to latex
    • [ ] org to html
    • [ ] org to markdown
    • [ ] markdown to org
  • [ ] org-clock
  • [ ] latex previews
  • [ ] inline image display
  • [ ] org-attach

documentation

organ-roam

  • node roamer (find headers/files/etc) can be started using C-c r.

related variables:

variabledescription
organ-filesa set of rules for finding files. see docstring of cltpt/roam:find-files

organ-agenda

once the variable *organ-files* has been customized, organ-agenda can be opened using C-c a. default keybindings:

variabledescription

related variables:

variabledescription
days-to-shownumber of days to show by default in the agenda buffer

About

an alternative to org-mode for lem

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •