less4j-javascript

Less4j-javascript adds embedded/escaped JavaScript support to less4j https://github.com/SomMeri/less4j#readme compiler. It is supposed to be close enough to less.js to compile LessHat the same way.

Лицензия

Лицензия

Категории

Категории

JavaScript Языки программирования
Группа

Группа

com.github.sommeri
Идентификатор

Идентификатор

less4j-javascript
Последняя версия

Последняя версия

0.0.1
Дата

Дата

Тип

Тип

jar
Описание

Описание

less4j-javascript
Less4j-javascript adds embedded/escaped JavaScript support to less4j https://github.com/SomMeri/less4j#readme compiler. It is supposed to be close enough to less.js to compile LessHat the same way.
Ссылка на сайт

Ссылка на сайт

https://github.com/SomMeri/less4j-javascript
Система контроля версий

Система контроля версий

https://github.com/SomMeri/less4j-javascript

Скачать less4j-javascript

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.github.sommeri/less4j-javascript/ -->
<dependency>
    <groupId>com.github.sommeri</groupId>
    <artifactId>less4j-javascript</artifactId>
    <version>0.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.sommeri/less4j-javascript/
implementation 'com.github.sommeri:less4j-javascript:0.0.1'
// https://jarcasting.com/artifacts/com.github.sommeri/less4j-javascript/
implementation ("com.github.sommeri:less4j-javascript:0.0.1")
'com.github.sommeri:less4j-javascript:jar:0.0.1'
<dependency org="com.github.sommeri" name="less4j-javascript" rev="0.0.1">
  <artifact name="less4j-javascript" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.sommeri', module='less4j-javascript', version='0.0.1')
)
libraryDependencies += "com.github.sommeri" % "less4j-javascript" % "0.0.1"
[com.github.sommeri/less4j-javascript "0.0.1"]

Зависимости

compile (3)

Идентификатор библиотеки Тип Версия
junit : junit jar 4.11
com.github.sommeri : less4j jar 1.5.2
ro.isdc.wro4j : rhino jar 1.7R5-20130223-1

Модули Проекта

Данный проект не имеет модулей.

Less4j JavaScript

Less4j-javascript adds embedded/escaped JavaScript support to less4j. Embedded/escaped javascript is javascript placed inside less file and allows otherwise impossible calculations and logic. Embedded javascript is closed inside ticks `JavaScript` and escaped JavaScript is the same preceded by tilde ~ e.g. ~`JavaScript`.

Example less:

@number: 100;
@content: "less symbol is < and more symbol is >";
.logaritmic-thing {
  // escaped JavaScript - calculate logarithm
  margin: ~`Math.round(Math.log(@{number})*100)/100`; 
  // embedded JavaScript - escape < and > characters
  content: `@{content}.replace(/</g, '&lt;').replace(/>/g, '&gt;')`; 
}

compiles into:

.logaritmic-thing {
  margin: 4.61;
  content: "less symbol is &lt; and more symbol is &gt;";
}

Usage

Add maven dependency into pom.xml:

<dependency>
    <groupId>com.github.sommeri</groupId>
    <artifactId>less4j-javascript</artifactId>
    <version>0.0.1</version>
</dependency>

The configure method of Less4jJavascript configures less4j to use embedded JavaScript:

//create new less4j configuration object
Configuration configuration = new Configuration()
//add embedded javascript support into it
Less4jJavascript.configure(configuration);

//compile files with embedded javascript
LessCompiler compiler = new DefaultLessCompiler();
CompilationResult result = compiler.compile(new File(less), configuration);

Compatibility

Less4j-javascript is supposed to be close enough to less.js to compile LessHat the same way. However, it does not have to behave exactly the same way in all circumstances. Most important differences are:

  • environment,
  • less scope accessibility.

Environment: Less.js runs either on node.js or inside a browser while less4j JavaScript runs in Rhino. Global variables and functions available only in node.js or browser are not available in Rhino. Following will not work:

title: `typeof process.title`; // accessing node.js global variable

Scope: Less.js allows access to local scope using this.variablename trick. Less4j JavaScript does not support the same. Following will NOT work:

.scope {
    @foo: 42;
    var: `parseInt(this.foo.toJS())`;
}

Use interpolation instead:

.scope {
    @foo: 42;
    var: `parseInt(@{foo})`;
}

compiles into:

.scope {
  var: 42;
}

In any case, it is supposed to compile LessHat the same way as less.js.

Embedded JavaScript

TODO

Версии библиотеки

Версия
0.0.1