Consistent Technical Documents Using Emacs and Org Mode

Поділитися
Вставка
  • Опубліковано 12 вер 2024
  • Files used in the demo: gitlab.com/spu...
    My dotfiles: gitlab.com/spu...
    Read The Org: github.com/fni...
    Read The Docs: sphinx-rtd-the...
    Git from the Bits Up: • Git From the Bits Up

КОМЕНТАРІ • 88

  • @derkling
    @derkling 4 роки тому +33

    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 роки тому +32

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

  • @TaoHansen
    @TaoHansen Рік тому +4

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

  • @PhilippeCarphin
    @PhilippeCarphin 3 роки тому +2

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

  • @victornoagbodji
    @victornoagbodji 4 роки тому +6

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

  • @FractalMannequin
    @FractalMannequin 3 роки тому +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.

  • @stacklysm
    @stacklysm 4 роки тому +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 4 роки тому +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.

  • @MMABeijing
    @MMABeijing 3 роки тому +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  3 роки тому +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 :)

  • @lurgreen
    @lurgreen Рік тому +1

    extremely well prepared video tutorial - amazing job!

  • @BerkaySoyluoglu
    @BerkaySoyluoglu 4 роки тому +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: ua-cam.com/video/MYP56QJpDr4/v-deo.html

  • @stevenbrown3654
    @stevenbrown3654 4 роки тому +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!

  • @bilange
    @bilange 4 роки тому +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!!

  • @d1sixpounder
    @d1sixpounder 4 роки тому +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.

  • @fleetfoot9034
    @fleetfoot9034 4 роки тому +1

    I find the sound of your keyboard so very satisfying

  • @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 4 роки тому +2

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

  • @ethernet764
    @ethernet764 Місяць тому

    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

  • @quantum_mechanic
    @quantum_mechanic 4 роки тому +2

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

  • @callimas
    @callimas 4 роки тому +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).

  • @k11m1
    @k11m1 4 роки тому +1

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

  • @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!

  • @glennhoetker2721
    @glennhoetker2721 4 роки тому

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

  • @KostasKolias
    @KostasKolias 3 роки тому

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

  • @bobkoss280
    @bobkoss280 4 роки тому

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

  • @meathead919
    @meathead919 4 роки тому

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

  • @ChristopherOstrouchov
    @ChristopherOstrouchov 4 роки тому

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

  • @dontorzz
    @dontorzz 4 роки тому +2

    Thank you for excellent tutorial!

  • @gartenstuhl2396
    @gartenstuhl2396 3 роки тому +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  3 роки тому +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.

  • @MimiKLM
    @MimiKLM 5 місяців тому

    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.

  • @nasseralkmim4394
    @nasseralkmim4394 3 роки тому

    Really nice presentation. Good work!

  • @Cons-Cat
    @Cons-Cat 4 роки тому

    This demo is incredible!

  • @syzygy6
    @syzygy6 4 роки тому +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  4 роки тому +2

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

  • @kedonsiemen
    @kedonsiemen 4 роки тому

    Very well done! Beautiful presentation!

  • @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!!!

  • @aaparky7039
    @aaparky7039 4 роки тому

    Many thanks for a great working example.

  • @kickbuttowsk2i
    @kickbuttowsk2i 4 роки тому +1

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

    • @elspuddo
      @elspuddo  4 роки тому +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 4 роки тому

      @@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 3 роки тому

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

  • @johnhammer8668
    @johnhammer8668 3 роки тому +1

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

  • @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  3 роки тому

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

    • @jeongpyolee717
      @jeongpyolee717 3 роки тому

      @@elspuddo Thanks you for Help!!! Much Love! & Cheer! ua-cam.com/video/i-VBSMixrns/v-deo.html Good day for you!

  • @sergioruiz
    @sergioruiz 4 роки тому +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 4 роки тому +2

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

  • @furkanturkal8414
    @furkanturkal8414 4 роки тому

    Awesome video!

  • @roberthaddon5069
    @roberthaddon5069 4 роки тому +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  4 роки тому +1

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

  • @CBusschaert
    @CBusschaert 4 роки тому

    I learned things today.

  • @dolahn
    @dolahn 2 місяці тому

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

    • @ethernet764
      @ethernet764 Місяць тому

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

  • @MMABeijing
    @MMABeijing 3 роки тому

    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  3 роки тому

      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 3 роки тому

      @@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  3 роки тому +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 2 роки тому

      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 2 роки тому

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

  • @onlyfaas
    @onlyfaas 4 роки тому

    Yoooooo this is great

  • @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

  • @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.

  • @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 4 роки тому

    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?

  • @kortaffel
    @kortaffel 3 роки тому

    cool

  • @jaderanderson
    @jaderanderson 3 роки тому

    My brain melted. Not very good brain

  • @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!