Docbook Editor Configuration: Difference between revisions

From NixOS Wiki
imported>Fadenb
m →‎For Emacs: syntaxhighlight
imported>Fadenb
m whitespace removal
Line 4: Line 4:


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

Revision as of 16:08, 27 August 2017

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}"))
    '';
  })
])