[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tricking org-mode into using markdown conventions
From: |
Berry, Charles |
Subject: |
Re: Tricking org-mode into using markdown conventions |
Date: |
Tue, 5 May 2020 17:22:53 +0000 |
> On May 5, 2020, at 1:46 AM, Ihor Radchenko <address@hidden> wrote:
>
>> I am assuming though, from the lack of answers back, that there appears to
>> be no way to have org-mode grok markdown code blocks (triple backticks)
>> when it parses as a substitute for `#+BEGIN_SRC` ?
>
> #+BEGIN_SRC is a part of org syntax, "```" is not.
> You will need to modify the org-mode internals to do change it.
> Depending on implementation details of org-mode, changing
> org-block-regexp and all the occurrences of "BEGIN_SRC" and "END_SRC" in
> org mode sources might achieve what you want, but there is no guarantee
> that it will not be broken in future versions of org.
>
True.
However, if your interest is only in exporting a document with such markup,
there is `org-export-before-processing-hook'.
I haven't tried this but if you want to execute such src blocks, maybe polymode
would work.
HTH,
Chuck
> Best,
> Ihor
>
>
> Daryl Manning <address@hidden> writes:
>
>> This looks great (your elisp-fu is impressive) and definitely fulfills
>> making it look markdown-ish. Thanks! Will plug it in tonight and take it
>> for a pain.
>>
>> I am assuming though, from the lack of answers back, that there appears to
>> be no way to have org-mode grok markdown code blocks (triple backticks)
>> when it parses as a substitute for `#+BEGIN_SRC` ?
>>
>> Daryl.
>>
>>
>> On Mon, May 4, 2020 at 3:37 PM Diego Zamboni <address@hidden> wrote:
>>
>>> Ihor,
>>>
>>> Awesome, thanks for the tip. Using your code, the following config (inside
>>> the code from https://pank.eu/blog/pretty-babel-src-blocks.html) produces
>>> a display with the backticks instead of begin/end_src:
>>>
>>> (defun yant/str-to-glyph (str)
>>> "Transform string into glyph, displayed correctly."
>>> (let ((composition nil))
>>> (dolist (char (string-to-list str)
>>> (nreverse (cdr composition)))
>>> (push char composition)
>>> (push '(Br . Bl) composition))))
>>>
>>> (defun rasmus/org-prettify-symbols ()
>>> (mapc (apply-partially 'add-to-list 'prettify-symbols-alist)
>>> (cl-reduce 'append
>>> (mapcar (lambda (x) (list x (cons (upcase (car
>>> x)) (cdr x))))
>>> `(("#+begin_src" . ,(yant/str-to-glyph
>>> "```")) ;; โก โค ๐ โ โค โ
>>> ("#+end_src" . ,(yant/str-to-glyph
>>> "```")) ;; โฃ โ
>>> ("#+header:" . ,rasmus/ob-header-symbol)
>>> ("#+begin_quote" . ?ยซ)
>>> ("#+end_quote" . ?ยป)))))
>>> (turn-on-prettify-symbols-mode)
>>> (add-hook 'post-command-hook 'rasmus/org-prettify-src t t))
>>>
>>> It looks like this in my config (the bars hide the header arguments):
>>>
>>> [image: image.png]
>>>
>>> --Diego
>>>
>>>
>>> On Mon, May 4, 2020 at 6:19 AM Ihor Radchenko <address@hidden> wrote:
>>>
>>>>> I did a quick test, and it seems
>>>>> that =prettify-symbols-alist= (which is what this code uses) can only
>>>>> replace for a single character, so I was not able to make it display
>>>>> the three backticks, but there might be other techniques that can be
>>>>> used.
>>>>
>>>> Yes, there is another technique.
>>>> See part of my config below:
>>>>
>>>>
>>>> (defun yant/str-to-glyph (str)
>>>> "Transform string into glyph, displayed correctly."
>>>> (let ((composition nil))
>>>> (dolist (char (string-to-list str)
>>>> (nreverse (cdr composition)))
>>>> (push char composition)
>>>> (push '(Br . Bl) composition))))
>>>>
>>>> (append pretty-symbol-patterns
>>>> `(((yant/str-to-glyph " ") org-specific ,(format
>>>> "^\\(\\*\\{%d,%d\\}\\)\\*[^*]" (1- org-inlinetask-min-level) (1-
>>>> org-inlinetask-max-level)) (org-mode) 1)
>>>> ((yant/str-to-glyph "โโโ") org-specific ,(format
>>>> "^\\(\\*\\{%d,%d\\}\\)\\(\\*\\)[^*]" (1- org-inlinetask-min-level) (1-
>>>> org-inlinetask-max-level)) (org-mode) 2)
>>>> (?โญ org-specific "^[ ]*#[+]NAME" (org-mode))
>>>> (?โญ org-specific "^[ ]*#[+]name" (org-mode))
>>>> (?โ org-specific "[ ]*#[+]begin_src" (org-mode))
>>>> (?โ org-specific "[ ]*#[+]BEGIN_SRC" (org-mode))
>>>> (?โฐ org-specific "[ ]*#[+]end_src" (org-mode))
>>>> (?โฐ org-specific "[ ]*#[+]END_SRC" (org-mode))
>>>> ((yant/str-to-glyph "๐๐๐") org-specific ":\\(ATTACH\\):"
>>>> (org-mode) 1)
>>>> ((yant/str-to-glyph "โ D") org-specific "\\<DEADLINE:"
>>>> (org-mode))
>>>> ((yant/str-to-glyph "โดS") org-specific "\\<SCHEDULED:"
>>>> (org-mode))))
>>>>
>>>> Diego Zamboni <address@hidden> writes:
>>>>
>>>>> Hi Daryl,
>>>>>
>>>>> If it's for display purposes only, you might be able to simply use
>>>>> display substitutions for things to appear the way you want. For
>>>>> example, I use the technique described here:
>>>>> https://pank.eu/blog/pretty-babel-src-blocks.html to replace the
>>>>> begin/end_src strings with symbols. I did a quick test, and it seems
>>>>> that =prettify-symbols-alist= (which is what this code uses) can only
>>>>> replace for a single character, so I was not able to make it display
>>>>> the three backticks, but there might be other techniques that can be
>>>>> used.
>>>>>
>>>>> --Diego
>>>>>
>>>>> On Sun, May 3, 2020 at 6:24 PM Daryl Manning <address@hidden>
>>>> wrote:
>>>>>>
>>>>>> While using C-c C-, is easy enough for insertion and such, I was
>>>> wondering if there was any way of having org-mode honour markdown
>>>> conventions for things like code fences and quotes.
>>>>>>
>>>>>> ``` elisp
>>>>>> #+begin_src
>>>>>> #+end_src
>>>>>>
>>>>>> #+begin_quote
>>>>>> #+end_quote
>>>>>> ```
>>>>>>
>>>>>> being a bit nicer to read with
>>>>>>
>>>>>> ``` go
>>>>>> code block
>>>>>> ```
>>>>>> as well as
>>>>>>
>>>>>>> And gentlemen in England now-a-bed.
>>>>>>> Shall think themselves accurs'd they were not here,
>>>>>>> And hold their manhoods cheap whiles any speaks.
>>>>>>> That fought with us upon Saint Crispin's day.
>>>>>>
>>>>>> Just curious as to whether that's possible. YMMV before you start
>>>> debating on whether you think this is a good idea or not... =]
>>>>>>
>>>>>> Of course, I'd want the code highlighting especially to work that way,
>>>> though... =] Less concerned with whether it works in export modes for the
>>>> moment, more about display atm.
>>>>>>
>>>>>> thanks!
>>>>>> Daryl.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> --
>>>> Ihor Radchenko,
>>>> PhD,
>>>> Center for Advancing Materials Performance from the Nanoscale (CAMP-nano)
>>>> State Key Laboratory for Mechanical Behavior of Materials, Xi'an Jiaotong
>>>> University, Xi'an, China
>>>> Email: address@hidden, address@hidden
>>>>
>>>
>
> --
> Ihor Radchenko,
> PhD,
> Center for Advancing Materials Performance from the Nanoscale (CAMP-nano)
> State Key Laboratory for Mechanical Behavior of Materials, Xi'an Jiaotong
> University, Xi'an, China
> Email: address@hidden, address@hidden
>
>
- Tricking org-mode into using markdown conventions, Daryl Manning, 2020/05/03
- Re: Tricking org-mode into using markdown conventions, Diego Zamboni, 2020/05/03
- Re: Tricking org-mode into using markdown conventions, Ihor Radchenko, 2020/05/04
- Re: Tricking org-mode into using markdown conventions, Diego Zamboni, 2020/05/04
- Re: Tricking org-mode into using markdown conventions, Daryl Manning, 2020/05/05
- Re: Tricking org-mode into using markdown conventions, Diego Zamboni, 2020/05/05
- Re: Tricking org-mode into using markdown conventions, Ihor Radchenko, 2020/05/05
- Re: Tricking org-mode into using markdown conventions,
Berry, Charles <=