Docbook Editor Configuration

From NixOS Wiki
Revision as of 09:13, 27 August 2017 by imported>Fadenb (→‎For Emacs: syntaxhighlight)

For Emacs

The following creates an Emacs with a custom module, which configures nXML for the NixOS / Nixpkgs docbook codebase:

   let
     pkgs = import <nixpkgs> {};
     inherit (pkgs) emacsPackagesNg docbook5 writeText;
 
     schemas = writeText "schemas.xml" ''
       <locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
         <documentElement localName="section" typeId="DocBook"/>
         <documentElement localName="chapter" typeId="DocBook"/>
         <documentElement localName="article" typeId="DocBook"/>
         <documentElement localName="book" typeId="DocBook"/>
         <typeId id="DocBook" uri="${docbook5}/xml/rng/docbook/docbookxi.rnc" />
       </locatingRules>
     '';
 
   in emacsPackagesNg.emacsWithPackages (epkgs: [
     (emacsPackagesNg.trivialBuild {
       pname = "nix-docbook-mode";
       version = "1970-01-01";
       src = writeText "default.el" ''
         (eval-after-load 'rng-loc
           '(add-to-list 'rng-schema-locating-files "${schemas}"))
       '';
     })
   ])