This repository has been archived on 2020-12-27. You can view files and clone it, but cannot push or open issues or pull requests.
conlang-layer/README.org

102 lines
4.1 KiB
Org Mode
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[[file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]
#+TITLE: Conlanging layer
#+author: Lucien “Pundrak” 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
<<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 darbre 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 |