twig-drupal-string

0.3.1 • Public • Published

Twig Drupal String

Add support for the Drupal Twig t and trans filters in combination with the String module and Twig.js.

Installation

Add the package to your dependencies:

npm install --save-dev twig twig-drupal-string

Example

Crate a file called strings.yaml with the following content:

welcome:
  default: Hello world

Then create render-template.mjs:

import Twig from "twig";
import { twigDrupalString } from "twig-drupal-string";

twigDrupalString({
  Twig,
  files: ["strings.yaml"],
});

const data = `<h1>{{ 'welcome'|t }}</h1>`;
const template = Twig.twig({ data });
const output = template.render();

console.log(output);

Run the example with:

node render-template.mjs

# The output is:
# <h1>Welcome</h1>

Placeholders

The filter also supports placeholders inside the strings that will be replaced with dynamic data during template rendering.

Add the following to strings.yaml:

greeting:
  default: Hello @name

Then adjust the template inside render-template.mjs:

const data = `<h1>{{ 'greeting'|t({'@name': 'world'}) }}</h1>`;
const template = Twig.twig({ data });
const output = template.render();

// Output will be:
// <h1>Hello world</h1>

Watch mode

For development purposes, a watch mode can be enabled that reloads the translation strings from disk if any of the referenced files change.

Set the watch options:

twigDrupalString({
  Twig,
  files: ["strings.yaml"],
  watch: true,
});

Options

The twigDrupalString method receives an options object with the following properties:

Property Type Description
Twig Twig Twig.js engine instance
files string[] Array of paths to translation srings
watch boolean Enable or disable watch mode, default false

Contributing

See contributing documentation for more information.

Sponsored by

Factorial

Package Sidebar

Install

npm i twig-drupal-string

Weekly Downloads

386

Version

0.3.1

License

MIT

Unpacked Size

11.2 kB

Total Files

7

Last publish

Collaborators

  • mvsde