summaryrefslogtreecommitdiffstats
path: root/2020/schedule/22.md
diff options
context:
space:
mode:
Diffstat (limited to '2020/schedule/22.md')
-rw-r--r--2020/schedule/22.md74
1 files changed, 2 insertions, 72 deletions
diff --git a/2020/schedule/22.md b/2020/schedule/22.md
index 9d9907b9..60a2ae35 100644
--- a/2020/schedule/22.md
+++ b/2020/schedule/22.md
@@ -5,79 +5,9 @@ Back to the [[schedule]]
Previous: <a href="/2020/schedule/38">Emacs development update</a>
Next: <a href="/2020/schedule/23">Incremental Parsing with emacs-tree-sitter</a>
+Sunday, Nov 29 2020, 9:33 AM - 9:53 AM EST / 6:33 AM - 6:53 AM PST / 2:33 PM - 2:53 PM UTC / 3:33 PM - 3:53 PM CET / 10:33 PM - 10:53 PM +08
-# Powering-up Special Blocks
-Sunday, Nov 29 2020, 9:33 AM - 9:53 AM EST / 6:33 AM - 6:53 AM PST / 2:33 PM - 2:53 PM UTC / 3:33 PM - 3:53 PM CET / 10:33 PM - 10:53 PM +08
-Musa Al-hassy
-
-Users will generally only make use of a few predefined \`special
-blocks', such as \`example, centre, quote', and will not bother with
-the effort required to make new ones. When new encapsulating notions
-are required, users will either fallback on HTML or LaTeX specific
-solutions, usually littered with \`#+ATTR' clauses to pass around
-configurations or parameters.
-
-Efforts have been exerted to mitigate the trouble of producing new
-special blocks. However, the issue of passing parameters is still
-handled in a clumsy fashion; e.g., by having parameters be expressed
-in a special block's content using specific keywords.
-
-We present a novel approach to making special blocks in a familiar
-fashion and their use also in a familiar fashion. We achieve the
-former by presenting \`\`defblock'', an anaphoric macro exceedingly
-similar to \`\`defun'', and for the latter we mimic the usual
-\`\`src''-block syntax for argument passing to support special blocks.
-
-For instance, here is a sample declaration.
-
- (defblock stutter () (reps 2)
- "Output the CONTENTS of the block REPS many times"
- (org-parse (s-repeat reps contents)))
-
-Here is an invocation that passes an *optional* argument; which
-defaults to 2 when not given.
-
-<div class="stutter">
-<p>
-Emacs for the win ⌣̈
-</p>
-
-</div>
-
-Upon export, to HTML or LaTeX for instance, the contents of this block
-are repeated (\`stuttered') 5 times. The use of \`\`src''-like
-invocation may lead to a decrease in \`#+ATTR' clauses.
-
-In the presentation, we aim to show a few \`practical' special blocks
-that users may want: A block that &#x2026;
-
-- translates *some selected* text &#x2014;useful for multilingual blogs
-- hides *some selected* text &#x2014;useful for learning, quizzes
-- folds/boxes text &#x2014;useful in blogs for folding away details
-
-In particular, all of these examples will be around ~5 lines long!
-
-We also have a larger collection of more useful block types, already
-implemented.
-
-The notable features of the system are as follows.
-
-- Familiar \`\`defun'' syntax for making block &#x2014;\`\`defblock''
-- Familiar \`\`src'' syntax for passing arguments &#x2014;e.g., \`\`:key
- value''
-- Fine-grained control over export translation phases &#x2014;c.f.,
- \`\`org-parse'' above
-- **Modular**: New blocks can be made out of existing blocks really
- quickly using \`\`blockcall'' &#x2014;similar to Lisp's \`\`funcall''. We
- will show how to fuse two blocks to make a new one, also within ~5
- lines.
-
-It is hoped that the ease of creating custom special blocks will be a
-gateway for many Emacs users to start using Lisp.
-
-
-
-
+[[!inline pages="../info/22" raw="yes"]]
Back to the [[schedule]]
Previous: <a href="/2020/schedule/38">Emacs development update</a>