101 lines
4.1 KiB
Org Mode
101 lines
4.1 KiB
Org Mode
[[file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]
|
||
|
||
#+TITLE: Conlanging layer
|
||
#+author: Lucien “P’undrak” Cartier-Tilet
|
||
|
||
[[img/conlang_flag.png]]
|
||
|
||
* Table of Contents :TOC_4_gh:noexport:
|
||
- [[#description][Description]]
|
||
- [[#features][Features]]
|
||
- [[#graphviz-trees][Graphviz trees]]
|
||
- [[#install][Install]]
|
||
- [[#key-bindings][Key bindings]]
|
||
|
||
* Description
|
||
This layer adds support for conlanging.
|
||
|
||
** Features
|
||
- Generate graphviz trees based on Elisp trees
|
||
- Replace some text by its runic equivalent (supports the Mattér and
|
||
Eittlandic languages)
|
||
- Adds phonetics to Ňyqy text
|
||
- Provides custom shortcuts
|
||
|
||
** Graphviz trees
|
||
The ~conlanging~ layer provides one public function called ~conlanging/tree-to-dot~. It accepts as its sole argument a list of strings
|
||
or lists, such as the following:
|
||
|
||
#+NAME: vowels-example
|
||
#+BEGIN_SRC emacs-lisp :noweb yes
|
||
(setq-local vowels
|
||
'("[vowel]"
|
||
("[back]"
|
||
("[tense]"
|
||
("[high]" ("ü"))
|
||
("{high}" ("ö")))
|
||
("{tense}"
|
||
("[high]" ("u"))
|
||
("{high}" ("o"))))
|
||
("{back}"
|
||
("[tense]"
|
||
("[high]" ("y"))
|
||
("{high}" ("ë")))
|
||
("{tense}"
|
||
("[high]" ("i"))
|
||
("{high}" ("e"))))))
|
||
#+END_SRC
|
||
|
||
When passed in the above mentioned function, and the result itself is passed
|
||
through graphviz, we get the following result:
|
||
|
||
#+NAME: tree-vowels
|
||
#+BEGIN_SRC emacs-lisp :exports results :noweb yes :cache yes
|
||
<<vowels-example>>
|
||
(conlanging/tree-to-dot vowels)
|
||
#+END_SRC
|
||
|
||
#+BEGIN_SRC dot :file img/vowels-example.png :var input=tree-vowels :exports results
|
||
$input
|
||
#+END_SRC
|
||
#+NAME: arbre:vow
|
||
#+ATTR_HTML: :alt Exemple d’arbre de voyelles
|
||
#+RESULTS:
|
||
[[file:img/vowels-example.png]]
|
||
|
||
This example tree is only a binary tree, but a single node can have up to ten
|
||
children. See some examples in the [[https://labs.phundrak.fr/phundrak/langue-phundrak-fr/blob/master/nyqy.org][Ňyqy source file]].
|
||
|
||
It is planned to merge [[https://labs.phundrak.fr/phundrak/distinctive-features-chooser][this project]] into this layer in order to facilitate
|
||
the creation of trees based on distinctive features.
|
||
|
||
* Install
|
||
To install this layer, either clone this project in your =~/.emacs.d/private/=
|
||
folder, or symlink it from there to your actual clone location. Then, add =conlanging= in your dotspacemacs file in the =dotspacemacs-configuration-layers= list:
|
||
|
||
#+begin_src emacs-lisp
|
||
(setq-default dotspacemacs-configuration-layers '(conlanging))
|
||
#+end_src
|
||
|
||
You can then reload your configuration file with ~SPC f e R~, or restart Emacs
|
||
with ~SPC q r~ or ~SPC q R~.
|
||
|
||
* Key bindings
|
||
|
||
| Key Binding | Description |
|
||
|---------------+-------------------------------------------------------------------------|
|
||
| ~SPC l e l~ | (org-mode only) Translate Einnlandish transliteration into native latin |
|
||
| ~SPC l e r~ | (org-mode only) Translate Einnlandish transliteration into runes |
|
||
| ~SPC l m L~ | (org-mode only) Translate Mattér transliteration into LaTeX runes |
|
||
| ~SPC l m l~ | (org-mode only) Translate Mattér transliteration into native latin |
|
||
| ~SPC l m r~ | (org-mode only) Translate Mattér transliteration into runes |
|
||
| ~SPC o l e o~ | Open Eittlandic file |
|
||
| ~SPC o l h o~ | Open Hjelp file |
|
||
| ~SPC o l m o~ | Open Mattér file |
|
||
| ~SPC o l n o~ | Open Ňyqy file |
|
||
| ~SPC o l o~ | Open the conlanging directory |
|
||
| ~SPC o l t o~ | Open Tãso file |
|