Consistent Technical Documents Using Emacs and Org Mode

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 89

  • @derkling
    @derkling 5 ปีที่แล้ว +34

    That's literate programming as sweet as it can be in a just 20mins demo. Awesome tutorial Sir, from plot to execution you tick all the boxes!

  • @armynyus9123
    @armynyus9123 4 ปีที่แล้ว +34

    "...and I hope you learned something." ... Learned Something?! You just changed my life. But that's ok :-)

  • @TaoHansen
    @TaoHansen ปีที่แล้ว +6

    This is easily the best video on literate programming with Org Mode on the internet.

  • @FractalMannequin
    @FractalMannequin 4 ปีที่แล้ว +2

    I've been using Emacs and org for almost a year now and I've watched a lot of videos and tutorials. This is among the best ones around for this topic. Thank you a lot, I was looking forward to it.

  • @PhilippeCarphin
    @PhilippeCarphin 3 ปีที่แล้ว +2

    @14:41 "Looks good though"
    Quite the understatement!

  • @victornoagbodji
    @victornoagbodji 5 ปีที่แล้ว +6

    🙌 🙌 👏 never have i found such a compelling reason for learning emacs! 🙏

  • @stacklysm
    @stacklysm 5 ปีที่แล้ว +2

    As a Windows user (and programmer), I've never stopped for a while to appreciate how flexible and powerful Linux distros can be. I specially liked this video since I often find myself using cmd and PowerShell alot

  • @catraaaw
    @catraaaw 5 ปีที่แล้ว +9

    I've been meaning to try org-mode for a while and your video was the last straw. :) Thank you! Please keep it up.

  • @lurgreen
    @lurgreen ปีที่แล้ว +2

    extremely well prepared video tutorial - amazing job!

  • @MMABeijing
    @MMABeijing 4 ปีที่แล้ว +1

    thank you YOutube, thank you Sir. You ability to story-tell and the quality of your video/sound made viewing that video as enjoyable as watching a short movie. You Sir had me on the edge of my seat and I learnt a lot as well. You are my new reference in terms of emacs. I am just gonna go ahead and sub/like, I am sure the rest of your channel rocks. Again, thank you !

    • @elspuddo
      @elspuddo  4 ปีที่แล้ว +1

      I'm glad you liked it! These days I mostly make videos of the presentations I give at the yearly SeaGL conference, but I hope to stop being lazy and to make more at other times of year too :)

  • @BerkaySoyluoglu
    @BerkaySoyluoglu 5 ปีที่แล้ว +6

    Read The Org: github.com/fniessen/org-html-themes
    Read The Docs: sphinx-rtd-theme.readthedocs.io/en/latest/installing.html (Need Sphinx which is a python module: www.sphinx-doc.org/en/master/usage/quickstart.html)
    Git from the Bits Up: th-cam.com/video/MYP56QJpDr4/w-d-xo.html

  • @bilange
    @bilange 5 ปีที่แล้ว +2

    I daily drive orgmode for agenda and simple lists, but still your video is border line witchcraft magic. (Take that as a compliment! ) Amazing to see in action!!

  • @fleetfoot9034
    @fleetfoot9034 5 ปีที่แล้ว +1

    I find the sound of your keyboard so very satisfying

  • @stevenbrown3654
    @stevenbrown3654 5 ปีที่แล้ว +1

    Fantastic video! Tonnes of content, reasonable length, entertaining and extremely well produced. I will definitely be adapting some of these methods for my own practice. Thank you!

  • @geez6666
    @geez6666 3 ปีที่แล้ว

    Killed it! Thing about Emacs and Org is there is always something better and new to learn.
    Especially from content published few years back, and just when you think there is nothing more to learn about these two....lol.
    Thanks

  • @danv8718
    @danv8718 5 ปีที่แล้ว +2

    Outstanding tutorial. Really top-quality stuff. Thank you for sharing.

  • @quantum_mechanic
    @quantum_mechanic 5 ปีที่แล้ว +2

    This is awesome, and very well made video. Inspired me to start learning emacs.

  • @d1sixpounder
    @d1sixpounder 5 ปีที่แล้ว +1

    This presentation is a very high quality presentation on literate
    Programming with org-mode and emacs. I had love to see your talk in that conference. Please post a link to the talk, if possible.

  • @ethernet764
    @ethernet764 4 หลายเดือนก่อน

    00:39 #+title: - in-buffer setting
    01:13 what is org mode?
    01:44 formatting syntax
    02:18 org-export-dispatch (C-c C-e) as html
    02:28 #+setupfile: - in-buffer setting
    03:29 what is org babel?
    03:35 #+begin_src and #+end_src - org babel code block
    03:52 org-ctrl-c-ctrl-c (C-c C-c) execute org babel code block
    04:28 :dir - code block header argument
    04:48 #+property: - in-buffer setting; sets file-level header arguments
    05:07 #+include: - in-buffer setting
    05:23 # -- mode: -- - local variables in files
    05:30 #+name: - code block directive
    05:38 :exports - code block header argument
    06:04 #+call: - in-buffer setting
    06:22 why redirect stderr to stdout?
    07:15 :results output - code block header argument
    08:59 call_hello() - inline call to code block (prefix with "call_" and append the #+name: of the code block)
    09:20 call_hello[:results raw]() - header arguments in inline call ()
    09:41 :noweb - code block header argument
    10:36 :var - code block header argument
    11:09 call_short_hash(line=hashobject) - inline call with argument
    13:42 :noweb - call with argument
    15:49 terminal vs gui - font size
    16:35 org-edit-special (C-c ')
    16:54 company-mode - emacs third-party package
    17:28 :results - code block header argument
    18:52 custom org publish function
    21:06 org-publish
    22:20 final thoughts on confluence editor

  • @k11m1
    @k11m1 5 ปีที่แล้ว +1

    brilliant, more videos like this need to be done! Amazing work!

  • @glennhoetker2721
    @glennhoetker2721 5 ปีที่แล้ว

    Thank you very much for the super clear video and accompanying documents. Inspirational and educational.

  • @meathead919
    @meathead919 4 ปีที่แล้ว

    Really nicely made tutorial and demonstration of the possibilities. Thank you!

  • @MingweiZhang
    @MingweiZhang 4 ปีที่แล้ว +1

    This is fantastic! Thank you for sharing! Been using org mode for four years, realized that I still have much to learn!

  • @bobkoss280
    @bobkoss280 5 ปีที่แล้ว

    Very well thought out and executed. You, sir, have an awesome talent.

  • @ChristopherOstrouchov
    @ChristopherOstrouchov 5 ปีที่แล้ว

    Very well done. Thank you for this excellent and approachable introduction to org-mode.

  • @KostasKolias
    @KostasKolias 4 ปีที่แล้ว

    Dude, awesome job. Keep the good stuff coming...

  • @callimas
    @callimas 5 ปีที่แล้ว +3

    This video was very, very useful to me. I also hope to see more Emacs content in the future. I just have one tiny, pedantic comment: Org is not "a Markdown language." Markdown and org-mode's syntax are two unrelated markup languages that were invented independently around the same time (org-mode in 2003, Markdown in 2004).

  • @akashdeeph.2865
    @akashdeeph.2865 4 ปีที่แล้ว

    Bro..just do this more often. U rock. V need more heroes like U to show'em vmers what Emacs can do that they cant!!!

  • @dontorzz
    @dontorzz 5 ปีที่แล้ว +2

    Thank you for excellent tutorial!

  • @Cons-Cat
    @Cons-Cat 4 ปีที่แล้ว

    This demo is incredible!

  • @nasseralkmim4394
    @nasseralkmim4394 3 ปีที่แล้ว

    Really nice presentation. Good work!

  • @aaparky7039
    @aaparky7039 4 ปีที่แล้ว

    Many thanks for a great working example.

  • @MimiKLM
    @MimiKLM 7 หลายเดือนก่อน

    That's great, again! Is there any chance you could discuss a bit more around export/dispatch customisation? Ie, having this great document, we'd like probably to publish it on our server (ftp?) where some css-es already are present. Or, perhaps, we have our WordPress blog and we'd like to publish this technical document as a post? Or publish it in confluence? Many thanks in advance. K.

  • @kedonsiemen
    @kedonsiemen 5 ปีที่แล้ว

    Very well done! Beautiful presentation!

  • @gartenstuhl2396
    @gartenstuhl2396 4 ปีที่แล้ว +1

    Wow, I have been using emacs for years and apparently I still know nothing about it. Thank you very much, I have learned a lot. This video is actually worth to watch multiple times. You are really fast with Emacs. I know you have posted your .emacs files but I still got to ask. Are you still using classical Emacs bindings? Do you have any insights/opinion on how to become more efficient?

    • @elspuddo
      @elspuddo  4 ปีที่แล้ว +2

      Yup, I do indeed use the classic Emacs bindings. One of the things that helps my efficiency is having a good programmable keyboard. I use a Kinesis Advantage 2, which has 6 thumb buttons. This allows me easy access to Control and Meta keys, which makes chording very easy.

  • @johnhammer8668
    @johnhammer8668 3 ปีที่แล้ว +1

    use let instead of setq in the my-publish function that would affect only locally

  • @sergioruiz
    @sergioruiz 5 ปีที่แล้ว +1

    Great video! Wondering how you got the little circles as your section headers. I have always had asterisks. I have never seen those little circles.

    • @cuperius
      @cuperius 5 ปีที่แล้ว +2

      That's the org-bullets-mode. It can be found here: github.com/sabof/org-bullets

  • @armynyus9123
    @armynyus9123 4 ปีที่แล้ว +1

    very important: change org from value mode to scripting mode (7:38)!

    • @jeongpyolee717
      @jeongpyolee717 4 ปีที่แล้ว

      I can't find out how and where to change that mode from default. how do you change that?

    • @elspuddo
      @elspuddo  4 ปีที่แล้ว

      Check out the variable "org-babel-default-header-args". You can set the ":results" header to "output" there.

    • @jeongpyolee717
      @jeongpyolee717 4 ปีที่แล้ว

      @@elspuddo Thanks you for Help!!! Much Love! & Cheer! th-cam.com/video/i-VBSMixrns/w-d-xo.html Good day for you!

  • @syzygy6
    @syzygy6 5 ปีที่แล้ว +6

    Small quibble! Markdown HTML and Org are types of markup languages, not mark down languages. That could cause some confusion for people, especially beginners.

    • @elspuddo
      @elspuddo  5 ปีที่แล้ว +2

      That's a good point, I often butcher the whole mark{down,up} distinction.

  • @kickbuttowsk2i
    @kickbuttowsk2i 5 ปีที่แล้ว +1

    this is a well made video. Can we expect more emacs content in the future?

    • @elspuddo
      @elspuddo  5 ปีที่แล้ว +7

      I'd like to, I don't have a ton of ideas for other videos though. One idea I did have though was to do one on common data structures in elisp. I still sometimes struggle with relatively simple stuff like association lists, and quoting, and I bet a lot of other people do too.

    • @MarkEichin
      @MarkEichin 5 ปีที่แล้ว

      @@elspuddo I do find that using python for string and list manipulation on a daily basis causes me to/helps me to forget the elisp ways, so I'd certainly watch that...

    • @MMABeijing
      @MMABeijing 4 ปีที่แล้ว

      @@elspuddo Maybe something about using snippets and templates with org-mode?

  • @dolahn
    @dolahn 4 หลายเดือนก่อน

    Would have been helpful if you would have said which command you used to generate the HTML file @ 2:24.

    • @ethernet764
      @ethernet764 4 หลายเดือนก่อน

      The command is
      org-export-dispatch (C-c C-e)

  • @MMABeijing
    @MMABeijing 4 ปีที่แล้ว

    Ok I want to pick you brains on your video editing :) what did you use to create the sound of the keyboard (unless you actually recorded your keyboard, but somehow I doubt it), also could you tell me what you used to speed up the input at certain moments of the video? thank you forehand!

    • @elspuddo
      @elspuddo  4 ปีที่แล้ว

      I recorded the on-screen portions of the video separately from the narration, but I did have my microphone active (and my breath held) while I did it, so it picked up the sounds of my keyboard. I later recorded the narration separately and then edited it into the video timeline.

    • @MMABeijing
      @MMABeijing 4 ปีที่แล้ว

      @@elspuddo did you use something special to have the fast-typing effect, or did you simply sped it up with your editing software? (btw which sw do you use for video edition?). But yeah you have a very interesting delivery, I am subbing to your channel just in case you come back to making more videos :), and yesterday night for the first time I tried to use erc/irc as you mentionned in the comment that's where people can find you. I have yet to register my nick properly, I am very new to that, but for what it 's worth you opened one person's eyes to irc, so thank you for that as well:)

    • @elspuddo
      @elspuddo  4 ปีที่แล้ว +2

      The fast-typing comes from my keyboard, a Kinesis Advantage 2, which has a macro record/playback capability. So when it's going fast, I'm hitting my macro playback key. I use ScreenFlow on macOS for all my screen capture and video editing. I may try out an all Linux workflow, as I'm interested in trying out Kdenlive. The #emacs channel on Freenode is pretty great, there are very knowledgeable people there!

    • @chrysleague
      @chrysleague 3 ปีที่แล้ว

      Haha, I waded into the comments specifically to find anyone talking about the keyboard sound. I was pretty sure I recognized it just by the sound, and indeed I did… I have the Kinesis Advantage 2 as well. It's not just the click of the switches, but the difference in tone on the thumb pads, I think.

    • @MMABeijing
      @MMABeijing 3 ปีที่แล้ว

      @@elspuddo belated thank you for the recording tip, I managed to not notice it until today and really appreciate the information. :pray:

  • @MMABeijing
    @MMABeijing 3 ปีที่แล้ว

    Hi Mike, I am slowly following your tuto, I am now @13:50 and I was wondering if you could explain what the =file - = does. I looked at the file utility help page but I don't think it mentions the =file - = , thanks!

    • @elspuddo
      @elspuddo  3 ปีที่แล้ว

      A lot of UNIX utilities that take a filename as an argument will accept a dash ("-") to mean "read from STDIN instead". That's why it says "/dev/stdin:" at the start of the output. Hope this helps!

    • @MMABeijing
      @MMABeijing ปีที่แล้ว

      @@elspuddo thank you ( I thought I had answered your kind explanation last year but I had not, sorry). This video is still a great reference for me, amazing job Mike

  • @roberthaddon5069
    @roberthaddon5069 5 ปีที่แล้ว +1

    Great video. Can you link to the source of the git mechanics you used? It’s mentioned in the vid, but I didn’t catch the time.

    • @elspuddo
      @elspuddo  5 ปีที่แล้ว +1

      Git from the Bits Up: th-cam.com/video/MYP56QJpDr4/w-d-xo.html
      (also in the pinned comment, I'll add it to the end of the video's description too)

  • @neilclay5835
    @neilclay5835 2 หลายเดือนก่อน

    Very good

  • @lurgreen
    @lurgreen ปีที่แล้ว

    that theme are you using? In config file I have found this (load-theme 'modus-vivendi) but it's not that theme.

    • @elspuddo
      @elspuddo  ปีที่แล้ว

      That's Zenburn with a darkened background.

  • @CBusschaert
    @CBusschaert 5 ปีที่แล้ว

    I learned things today.

  • @furkanturkal8414
    @furkanturkal8414 5 ปีที่แล้ว

    Awesome video!

  • @MMABeijing
    @MMABeijing 3 ปีที่แล้ว

    @9:58 Hi Mike, I followed along but when I try to echo the result of invoking the =hello= function (with "") I am not getting the proper result, I am only getting the string "". When within the code.inc file I can invoke the function hello and access the right message. Any idea? I tried to add the header-args ":noweb yes" but that did not help either. Cheers,

    • @elspuddo
      @elspuddo  3 ปีที่แล้ว

      Check out the function "org-babel-lob-ingest" which tells org to add the function in that file to the "Library of Babel". If you look at my config, I have a function called "my-maybe-lob-ingest" which I run as an after-save-hook for Org mode. This makes it so when I save code.inc it automatically adds it to the LOB so you can call hello() from your main document. You'll notice @8:57 when I save it says "2 src blocks added to Library of Babel", that's my after-save-hook.

    • @MMABeijing
      @MMABeijing 3 ปีที่แล้ว

      @@elspuddo gotcha, I will use the LOB from now on thank you. Yesterday I finally understood that I could also from and I was quite proud of myself haha, but yes LOB is easier. Thank you for the feedback. I have left issue on your github I was not sure which way you prefer using when giving feedback. Whichever way you prefer, cheers!

    • @elspuddo
      @elspuddo  3 ปีที่แล้ว

      @@MMABeijing Very cool, I didn't know you could do that!

  • @pedromorais8709
    @pedromorais8709 5 ปีที่แล้ว

    Hey! Nice video, can you say how to export to Confluence?

  • @MMABeijing
    @MMABeijing 3 ปีที่แล้ว

    Hi Mike, I am trying to follow that tutorial, however my orgmode setup is different from yours and your results do not match what I get. Ex: @4:02 when you execute your codeblock within your results there is a nested begin_example, I don't have that. WHen you export in html your results get exported and not mine. Can you point me in the right direction? thank you

    • @elspuddo
      @elspuddo  3 ปีที่แล้ว

      Hey, sorry for the confusion on this. In my Emacs configuration I have manipulated the "org-babel-default-header-args" to change the default header args supplied to every code block. You can manually get the same results as me by doing:
      #+BEGIN_SRC shell :results output verbatim replace
      echo "My current working directory is: $(dirs +0)"
      ls -l
      #+END_SRC
      Hope this helps!

    • @MMABeijing
      @MMABeijing 3 ปีที่แล้ว

      @@elspuddo It's not working for me :) Right now I m only using fniessen set up file to export to html. I tried your code but it won't output the name of my current file (it does it in orgmode, but not on html). Same thing with the output the codeblock: it is not showing within the html page.

    • @MMABeijing
      @MMABeijing 3 ปีที่แล้ว

      update: might be a bug, but in my case the only way to displaying the output of the block is to make sure there is at least a text character between the babel codeblock and the output. Weird:)

    • @MMABeijing
      @MMABeijing 3 ปีที่แล้ว

      @@elspuddo I really want to follow along your instructional, do you see any pb with the code below?
      #+NAME: hashobject
      #+begin_src sh :exports both :results output verbatim replace
      echo -n '' | git hash-object --stdin -w
      #+end_src
      #+RESULTS: hashobject
      : 7435a4d4bbd4c88971f2b1929491abd8ca9da3bb
      ------------------
      I don't understand why I am not able to export to html, am I missing something out?

  • @onlyfaas
    @onlyfaas 5 ปีที่แล้ว

    Yoooooo this is great

  • @izz6190
    @izz6190 4 ปีที่แล้ว

    How did you get the asterisk to appear as those orange bubbles?

    • @elspuddo
      @elspuddo  4 ปีที่แล้ว +1

      The org-bullets package does that.
      github.com/sabof/org-bullets

    • @izz6190
      @izz6190 4 ปีที่แล้ว

      @@elspuddo Oh Actually you can get it from elpa archive. You can find it using M-x list-packages. All I needed was the name thanks! I am not new to emacs but new to org mode, may I contact you if I have more questions?

    • @elspuddo
      @elspuddo  4 ปีที่แล้ว

      @@izz6190 If you look carefully, you can spot my email address in the bottom left corner in parts of the video. I'm also on #emacs on Freenode, fire up an IRC client and join us!

  • @kortaffel
    @kortaffel 4 ปีที่แล้ว

    cool

  • @jaderanderson
    @jaderanderson 3 ปีที่แล้ว

    My brain melted. Not very good brain