From ecaf43da354b259a9ac6693feb7249049566205c Mon Sep 17 00:00:00 2001 From: shadz3rg Date: Sat, 18 Nov 2023 12:49:13 +0300 Subject: [PATCH] Update README --- README.md | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b336e35..92a0b06 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,20 @@ PHPStamp ========= -Your donations are always appreciated! -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=6L3DRXVG67Z2N¤cy_code=EUR&amount=2&source=url) -PHPStamp is a simple PHP templating engine for XML-based Microsoft Word documents. -Library aims to provide native XML-way of templating for DOCX documents as an altenative to treating its content as a string for regex replacing, which has a lot of downsides. +PHPStamp is a simple templating engine for [XML-based Microsoft Word documents](https://learn.microsoft.com/en-us/office/open-xml/word/structure-of-a-wordprocessingml-document?tabs=cs). +Library aims to provide native XML-way of templating for DOCX documents as an alternative to treating its content as a plain text for regex replacing, which has a lot of downsides. Instead it tries to clean messy WYSIWYG-generated code and create reusable XSL stylesheet from document. Some additional information: (EN) https://redd.it/30conp -(RU) http://habrahabr.ru/post/244421/ +(RU) https://habr.com/ru/articles/244421/ Features ---- - Caching XSL template to filesystem for fast document render. - Track document mode - generate and cache new template if original document was updated. - Configurable brackets for placeholder tags. - - Basic extension system, which helps generating content blocks such as Cells or ListItems. + - Basic extension system, which helps to generate content blocks such as Cells or ListItems. Known issues ---- @@ -24,21 +22,21 @@ Values inserted into placeholder tags may be highlighted as incorrect by spellch Requirements ---- -Library requires PHP 5.3+ with DOM, XSL and Zip extensions. -Also depends on ```doctrine2/Lexer``` package. +Library requires PHP 7.4+ with DOM, XSL, Zip extensions. Installation ---- -Install with Composer. +Install with Composer: `composer require shadz3rg/php-stamp` Usage ---- -##### Template. +##### Template: + +![alt tag](https://habrastorage.org/files/0bf/dbf/f89/0bfdbff896ba45e1ac966c54abd050aa.png) -![alt tag](https://habrastorage.org/files/0bf/dbf/f89/0bfdbff896ba45e1ac966c54abd050aa.png) ```php debug = true; // Enable track mode to generate template with every original document change. @@ -58,26 +56,26 @@ Usage $documentPath = 'path/to/document.docx'; $document = new WordDocument($documentPath); - $values = array( + $values = [ 'library' => 'PHPStamp 0.1', 'simpleValue' => 'I am simple value', - 'nested' => array( + 'nested' => [ 'firstValue' => 'First child value', 'secondValue' => 'Second child value' - ), + ], 'header' => 'test of a table row', - 'students' => array( - array('id' => 1, 'name' => 'Student 1', 'mark' => '10'), - array('id' => 2, 'name' => 'Student 2', 'mark' => '4'), - array('id' => 3, 'name' => 'Student 3', 'mark' => '7') - ), + 'students' => [ + ['id' => 1, 'name' => 'Student 1', 'mark' => '10'], + ['id' => 2, 'name' => 'Student 2', 'mark' => '4'], + ['id' => 3, 'name' => 'Student 3', 'mark' => '7'] + ], 'maxMark' => 10, - 'todo' => array( + 'todo' => [ 'TODO 1', 'TODO 2', 'TODO 3' - ) - ); + ] + ]; $result = $templator->render($document, $values); // Now you can get template result. @@ -96,6 +94,6 @@ Usage // echo $result->output(); ``` -##### Result. +##### Result: ![alt tag](https://habrastorage.org/files/290/6aa/6e6/2906aa6e6cba4fa08655b1f58463a4d8.png)