emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Berry, Charles" via "General discussions about Org-mode." <emacs-orgmode@gnu.org>
To: Ihor Radchenko <yantar92@gmail.com>
Cc: Org-mode <emacs-orgmode@gnu.org>,
	Daryl Manning <dwm+orgmode@wakatara.com>
Subject: Re: Tricking org-mode into using markdown conventions
Date: Tue, 5 May 2020 17:22:53 +0000	[thread overview]
Message-ID: <36BA2720-A8C3-49E9-ADD7-9856B5E3CEB7@ucsd.edu> (raw)
In-Reply-To: <87v9lan50o.fsf@localhost>



> On May 5, 2020, at 1:46 AM, Ihor Radchenko <yantar92@gmail.com> 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 <dwm+orgmode@wakatara.com> 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 <diego@zzamboni.org> 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 <yantar92@gmail.com> 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 <diego@zzamboni.org> 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 <dwm+orgmode@wakatara.com>
>>>> 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: yantar92@gmail.com, ihor_radchenko@alumni.sutd.edu.sg
>>>> 
>>> 
> 
> -- 
> 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: yantar92@gmail.com, ihor_radchenko@alumni.sutd.edu.sg
> 
> 


      reply	other threads:[~2020-05-05 17:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-03 16:22 Tricking org-mode into using markdown conventions Daryl Manning
2020-05-03 16:39 ` Diego Zamboni
2020-05-04  4:15   ` Ihor Radchenko
2020-05-04  7:37     ` Diego Zamboni
2020-05-05  8:12       ` Daryl Manning
2020-05-05  8:42         ` Diego Zamboni
2020-05-05  8:46         ` Ihor Radchenko
2020-05-05 17:22           ` Berry, Charles via General discussions about Org-mode. [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=36BA2720-A8C3-49E9-ADD7-9856B5E3CEB7@ucsd.edu \
    --to=emacs-orgmode@gnu.org \
    --cc=ccberry@health.ucsd.edu \
    --cc=dwm+orgmode@wakatara.com \
    --cc=yantar92@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).