Commit Graph

256 Commits

Author SHA1 Message Date
pantor 466caeab63 improve documentation 2019-09-08 17:06:09 +02:00
pantor d25937a85b add test and readme 2019-09-08 16:19:50 +02:00
JP Cimalando 66196fdd6b Add whitespace control options: trim_blocks, lstrip_blocks (#116) 2019-09-08 16:03:31 +02:00
pantor ba2aa0477c Update ci.yml 2019-09-08 15:55:06 +02:00
pantor 3705e3e23a Create ci.yml 2019-09-08 15:50:38 +02:00
pantor 04b5fa4979 Merge branch 'master' of https://github.com/pantor/inja 2019-09-08 15:37:32 +02:00
pantor 68ae0cc261 remove doxygen from travis 2019-09-08 15:37:27 +02:00
pantor f06d844995 Update documentation.yml 2019-09-08 15:31:03 +02:00
pantor 5b450aa89f Update and rename main.yml to documentation.yml 2019-09-08 15:23:39 +02:00
pantor 3b083a8297 Use Github Actions for Doxygen 2019-09-08 15:20:15 +02:00
Tom 419c93c840 Throw exception if a file cannot be opened, fix travis-ci builds (#117)
* throw exception if a file cannot be opened

* Add a new function in utils.hpp: open_file_or_throw: This function
  returns an opened std::ifstream or throws by calling `inja_throw`.
* Use this function in Parser::load_file which previously returned an
  empty string if the file couldn't be opened.
* Use this function in Environment::load_json which previously threw
  a `nlohmann::detail::parse_error` if the file couldn't be opened.
* In Parser::parse_statement: When including files through `include`,
  do not attempt to (re-)parse templates from files that were already
  included. Additionally, this prevents inja from attempting to load
  in-memory templates by their name from disk.
* Add tests that check if an exception is thrown when attempting to
  open files that do not exist.

* cmake: enable C++11

* cmake: require C++11 when depending on single_inja

* code style
2019-09-08 15:05:01 +02:00
pantor 57ac9b9372 update readme 2019-07-28 14:23:50 +02:00
JD dfc87ef7a4 update the version of nlohmann/json in requirements.txt (#107)
* update the version of json in requirements.txt

* removed C++ 17 requirement
2019-05-31 19:01:50 +02:00
pantor cd70a4a079 Create FUNDING.yml 2019-05-25 19:31:53 -04:00
pantor d5532ac26a add at function 2019-04-07 16:15:12 +02:00
pantor bf071019b9 if target nlohmann_json already exists in cmake, use that library 2019-04-07 13:59:23 +02:00
pantor 85cc5ecc35 change default path to empty string 2019-04-07 13:45:27 +02:00
pantor 67699c2549 fix wrong render_file in readme 2019-04-07 13:32:59 +02:00
pantor 6698e98ea3 calculate length of strings with length function 2019-04-07 13:27:43 +02:00
Oleh 3afc7f30cd Fixed VS2015 error C2678: string_view to std::string comparison (#97)
* Fixed VS2015 error C2678: string_view to std::string comparison

* applied amalgamate.py to produce single header
2019-03-30 10:54:56 +01:00
Paul Fultz II 4c0ee3a46c Improve support for installing with cget (#88)
* Improve support for installing with cget

* add specific version, clean cmake

* fix version to "v2.1.0"
v2.1.0
2019-02-16 12:39:59 +01:00
Mark Hollomon 89652ca321 Add meson target to update single include (#86)
- You can now update the single include file in a meson build by using
the target 'amalg'.
- The meson build also now builds the single include test suite.
- cmake build updated to use the new script to update the single
include.
2019-01-28 19:29:21 +01:00
Mark Hollomon da5bbb1482 Remove unneed linking in update_loop_data (#85)
Commit a5862a0 made the linking step in update_loop_data unecessary
because the loop's copy of the data was made to come from the parent
loop's data rather than the original client's data.

While at it, also add one more nested loop test case.
2019-01-27 19:35:27 +01:00
Mark Hollomon a5862a04dc Fix for issue #82 - Nested loops (#84)
* Fix for issue #82 - Nested loops

I made the following changes in renderer.hpp
- Removed the member LoopLevel::it - it was not being used and was
causing issues.
- Added LoopLevel::loop_type with a matching enum class to mark the loop
as looping on either a Map or an Array. This was to replace the hard to
understand test for key_name.empty().
- Modified update_loop_data to get the correct data for map type loops
when copying in outer loop control data.
- Modified update_loop_data to only copy in the outer loop data during
StartLoop, it does not need to be done at EndLoop and can be expensive
since it can copy a large part of the json tree.

All the tests pass and the test cases from the issue also now work. Both
GCC and Clang will compile and run the tests with no issue. No issue is
seen with address_sanitizer in either compiler.

* Remove forgotten debugging code.
2019-01-27 10:15:40 +01:00
Guillaume Racicot 11d07f5eff Added install target and cmake package exports (#83) 2019-01-26 21:15:25 +01:00
Mark Hollomon 1dfd86fa6f Fix for issue #80 (#81)
* Fix for issue #80

When updating the `opening_chars`, line_statment was forgotten. So, a
change to any of the openers would cause line statements to start being
unrecognized.

I added a unit test to cover this case.

* fix indentation

* add update to single_include
2019-01-23 19:18:47 +01:00
Lars Berscheid 2c98adbcf7 remove appveyor test 2019-01-22 11:04:00 +01:00
pantor e63411568c fix appveyor build 2019-01-21 21:48:11 +01:00
pantor 5553ee7526 add older compilers 2019-01-21 21:42:52 +01:00
pantor dbcd5265fc add string_view polyfill 2019-01-21 21:34:34 +01:00
pantor 5d99c2b703 ignore most warnings in appveyor 2019-01-21 19:01:23 +01:00
pantor 41857c2c83 add line break 2019-01-20 09:51:53 +01:00
pantor 87ab78acf0 add link to documentation 2019-01-20 09:49:52 +01:00
pantor 3221fbef7e fix directory doxygen 2019-01-19 18:32:23 +01:00
pantor 75582236d8 finalize2 travis.yml 2019-01-19 17:56:26 +01:00
pantor fdf1c126a9 finalize travis.yml 2019-01-19 17:51:35 +01:00
pantor aa8929c5e5 update travis.yml 2019-01-19 17:44:22 +01:00
pantor 0382e61bbd update travi.yml 2019-01-19 17:40:08 +01:00
pantor 98d6854e1f update travis.yml 2019-01-19 17:26:56 +01:00
pantor cab491ae2b Merge branch 'master' of https://github.com/pantor/inja 2019-01-19 17:17:46 +01:00
pantor 4df7f9dd35 update travis 2019-01-19 17:17:14 +01:00
Tim 0bff74666e Change std::stringstream& to std::ostream& in render_to() (#76)
* Change std::stringstream& to std::ostream& in render_to()

Fixes #75

* Expose render_to

* Update readme with example of render_to
v2.0.1
2019-01-10 14:39:12 +01:00
pantor 210848bb98 Readme fix write_with_json_file 2019-01-08 17:09:11 +01:00
Lars Berscheid 02b8355081 update single include file 2019-01-07 16:46:25 +01:00
Lars Berscheid a9d4ca9a4e fix string view reference movement in bytecode 2019-01-07 16:41:16 +01:00
pantor 699c207c8c Inja v2 (#67)
* inja2

* header only

* reduce dependencies

* code cleaning

* c++17

* use stdc++

* code cleaning

* infrastructure

* header only

* add infrastructure

* fix tests

* use minimum clang 6

* code cleaning, polyfill for c++11

* fix some file tests

* fix readme

* update appveyor

* fix polyfill and ci

* fix polyfill

* fix ci?

* test msvc __cplusplus

* add doxygen

* activate all tests

* code cleaning

* add coveralls, set default to dot notation

* add html test

* add doxygen comments

* test single_include file

* change build folder in appveyor

* correct make arguments in appveyor

* fix appveyor arguments
v2.0.0
2018-12-23 16:13:15 +01:00
pantor d90f93fda0 optional benchmark 2018-12-14 19:31:40 +01:00
pantor 6bae3a7d5a update readme 2018-12-14 18:04:39 +01:00
pantor 595076ebec split dev files and amalgamate into a single header 2018-12-14 18:03:45 +01:00
pantor e44c2372e1 code cleaning 2018-11-23 18:03:51 +01:00