"Inverse literate" configuration #114
Replies: 6 comments 16 replies
-
Thank you for sharing how you use Org-transclusion!
I have always thought that if a tool is good, there will be people who put it in good use in ways that its creator has never thought of. So your use case means a lot to me :) Thank you. On a side note, I really like what you are doing with gemini protocol with your capsule/blog and EmacsVanillaChocolateSwirl. The Emacs wizard idea by Yuan looks also good. I wonder if we/you/I/someone can pick it up from where it was left... |
Beta Was this translation helpful? Give feedback.
-
Thanks for the gracious sentiment @nobiot, very kind of you! I went a step further and added an in-buffer function (if that's the right term) to automatically generate the readme.md each time the org file is saved: https://git.sr.ht/~shom/.emacs.custom#exporting-readme-markdown (please let me know if you think there's a better way to do this). I definitely want to make some time and come back to automating gemini publishing from my single org file that publishes using ox-hugo. As for EmacsVanillaChocolateSwirl it's a (tasty) mouthful of a project name. I have learned a lot more since I started that but I'm really glad I have that "new user perspective" documented. I think I want to convert all of that over to inverse literate, so new users can just hack on the .el file and remove another layer of abstraction while still providing the commentary. What do you think? I would love for Emacs to have a new user wizard (which only triggers if a config isn't detected) but my emacs-lisp chops are non-existent. But I would love to contribute to an effort like that (I can hack around if there's a structure). If you ever consider it, please let me know. |
Beta Was this translation helpful? Give feedback.
-
I'm planning to use this same approach, and am hoping to make a very streamlined workflow with as little friction as possible. I'll update here when I feel like I have something that is starting to be coherent. :) |
Beta Was this translation helpful? Give feedback.
-
@nobiot I'm curious, is there a technical limitation that prevents us from using live sync on source code blocks? If it's possible, do you have a rough idea how much effort it will take? |
Beta Was this translation helpful? Give feedback.
-
Really interesting thread, i'm very interested by such workflow. In this issue ( #144), i also try to think about the "inverse literate" configuration in a "sharing code source in a team workflow". When many people use the same repository, with or without org-mode, they change name of function, line number, etc. Detecting the code source to transclude using generic "uuid" (like org-roam finally) is probably more robust in a team environnement.
|
Beta Was this translation helpful? Give feedback.
-
I have taken a keen interest in using transclusion for development workflow. I do full-stack development with Clojure, and I often need to jump between different sets of files. Suppose on the frontend, I have files A, B, C, and on the backend, D, E, F. It's hard to juggle different windows for different kinds of workflows. But with org-transclusion, I can have transcluded A, B, C in a frontend.org file, and simulate the experience of having three vertically stacked windows in a single window. The advantage of transclusion is that "toggling" the visibility of individual files is much easier, not to mention all the org-mode advantages you get. I think with some :lines trickery you can also change the "view" into the files themselves in order to simulate cursor move in a buffer. A src code live-sync on top of this would be great. |
Beta Was this translation helpful? Give feedback.
-
@nobiot thanks for creating this great package. I wanted to share an example of how I'm using it. I'm using it to create an "inverse literate" configuration for Emacs. Essentially, instead of creating code blocks in an org file and tangling them out, the org file has org-transclusion code blocks to pull in the specific parts of the config.
I wrote a bit more about my motivation behind it with a short example/explanation if anyone is interested. Or you can jump straight to my config and take a look.
I haven't finished writing about all the packages I use yet, but the good thing is that the org file doesn't need to talk every line/block you have in your config only what you want to highlight, which is another "advantage" than a literate config that is tangled out.
Thanks again for the great package, thought I'd share a perhaps unintended use case that is working very well for me!
Beta Was this translation helpful? Give feedback.
All reactions