#+TITLE: ietf layer

#+TAGS: layer|misc

[[file:img/ietf-logo.png]]

* Table of Contents                     :TOC_5_gh:noexport:
- [[#description][Description]]
  - [[#features][Features:]]
- [[#fetching-and-opening-ietf-documents][Fetching and Opening IETF Documents]]
- [[#viewing-ietf-documents][Viewing IETF Documents]]
- [[#writing-ietf-documents][Writing IETF Documents]]
- [[#install][Install]]
- [[#key-bindings][Key bindings]]

* Description
The =IETF= layer collects various useful packages for participating in the
Internet Engineering Task Force ([[https://www.ietf.org]]).

** Features:
- Fetching and opening IETF documents.
- Viewing IETF documents.
- Writing IETF documents.

* Fetching and Opening IETF Documents
Support for fetching and downloading IETF documents is added through the
=ietf-docs= package. The IETF docs package adds support for fetching and loading
IETF documents based on the name of a document (usually under the emacs point).
For example if the point is anwhere on the text RFC781 and one invokes the
=ietf-docs-open-at-point= the package will fetch the document to a local cache
(if not present) and view it. This works for the 3 standard document names,
STDXXX, RFCXXX and draft-xxxx-yyy.

* Viewing IETF Documents
Support for viewing IETF documents is added through the IRFC minor mode
(=irfc-mode=). The IRFC minor mode improves the display and formatting of IETF
documents using the well known IETF document structure. Additionally it creates
hyperlink overlays for references within the document.

* Writing IETF Documents
Support for writing IETF documents using org mode is added using the RFC Org
Mode Exporter (=ox-rfc=) package.

* Install
To use the ietf layer add it to your =~/.spacemacs=

#+BEGIN_SRC emacs-lisp
  (setq-default dotspacemacs-configuration-layers '(ietf))
#+END_SRC

By default fetched IETF documents are stored in a subdirectory of the
=spacemacs-cache-directory=. To override this location you can set the
=ietf-docs-cache= variable.

#+BEGIN_SRC emacs-lisp
  (setq-default dotspacemacs-configuration-layers '(
    (ietf :variables
          ietf-docs-cache "~/Downloads/ietf-docs-cache")))
#+END_SRC

* Key bindings

| Key binding | Description                                         |
|-------------+-----------------------------------------------------|
| ~SPC f I~   | Opens IETF document based on the text at the point. |
