[[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 features 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 Proto-Ñ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 <> (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.com/phundrak/langue-phundrak-fr/blob/master/proto-nyqy.org][Ñyqy source file]]. It is planned to merge [[https://labs.phundrak.com/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 m l e l~ | (org-mode only) Translate Eittlandic transliteration into LaTeX runes | | ~SPC m l e r~ | (org-mode only) Translate Eittlandic transliteration into runes | | ~SPC m l m L~ | (org-mode only) Translate Mattér transliteration into LaTeX runes | | ~SPC m l m l~ | (org-mode only) Translate Mattér transliteration into native latin | | ~SPC m 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 Proto-Ñyqy file | | ~SPC o l o~ | Open the working conlanging directory | | ~SPC o l O~ | Open the root conlanging directory | | ~SPC o l t o~ | Open Proto-Tãso file |