lochmueller / sourceopt

TYPO3 CMS Extension - sourceopt
http://typo3.org/extensions/repository/view/sourceopt
GNU General Public License v3.0
22 stars 21 forks source link
extension typo3 typo3-extension

EXT:sourceopt

Build Status Scrutinizer Code Quality Code Coverage

Version

>= 5.2.5

https://github.com/lochmueller/sourceopt/blob/173f7bd2a44b546844961ced1f0831371badd620/composer.json#L8-L9

<= 5.2.0 (legacy)

https://github.com/lochmueller/sourceopt/blob/6663a8a8512ba280bc7e8b8d38610146495a94ce/composer.json#L8-L9

Installation

composer require lochmueller/sourceopt

Configuration

Include the extension and go to the Constant Editor of a template where you find all options under PLUGIN

Performance

The PHP process need server performance, because there are several search/replace operations in the logic

Reference

Note: The following features are executed in reverse order

SourceOpt

TypoScript [constants] prepend config. at [setup] Property Type Description Default
sourceopt.enabled boolean Is the optimization enabled for this template 1
sourceopt.removeGenerator boolean Remove \<meta name="generator" content="TYPO3 CMS"> 1
sourceopt.removeComments boolean Remove HTML-Comments 1
sourceopt.removeComments.keep array Spare these listed comments: Regular expressions that match comments that should not be removed. Very useful e.g. to keep the TYPO3SEARCH-Comments so indexed_search can work properly .10
sourceopt.removeComments.keep.10 string Spare TYPO3SEARCH-Comments from removal /^TYPO3SEARCH_/usi
sourceopt.headerComment string Your additional (appended) header comment [empty]
sourceopt.formatHtml integer Formats the code beautiful and easy readable. New lines and tabs are used in the usual way of illustrating the structure of an XML code.
Optionshttps://github.com/lochmueller/sourceopt/blob/2346673ee51d2b64308e1ddb1433cea2f37eafcb/Classes/Service/CleanHtmlService.php#L156-L161
4
sourceopt.formatHtml.tabSize integer Defines the size of the tabs used for formating. If blank one tab is used. If a number is specified the specified number of blank spaces is used instead. This will only work together with formatHtml [empty]
sourceopt.formatHtml.debugComment boolean Includes a comment at the end of the html source code that points the numbers of open html tags. This will only work together with formatHtml [empty]

RegEx Replace

TypoScript [setup] incl. stdWrap

config.replacer {
  search {
    1 = /(?<="|')\/?(fileadmin|typo3temp|uploads)/

    give-me-cherries = /fruit/

    wrapBoldly < tmp.find
    wrapBoldly.wrap = /|/
  }
  replace {
    1 = //cdn.tld/$1

    give-me-cherries = cherry

    wrapBoldly < tmp.repl
    wrapBoldly.wrap = <b>|</b>
  }
}

Note: both arrays will be ksort'ed in "natural order"

#### HowTo migrate
##### from [jweiland/replacer](https://github.com/jweiland-net/replacer) : `1.4 - 2.x` - regex replace `config\.tx_(?:\w*replace\w*)` to `config.replacer` - remove `config.tx_replacer.enable_regex = 1`
##### from [maxserv/replacecontent](https://github.com/MaxServ/t3ext-replacecontent) 2013 - 2017 - regex replace `config\.tx_(?:\w*replace\w*)` to `config.replacer`
##### from [typo3-ter/ja_replacer](https://extensions.typo3.org/extension/ja_replacer) 2009 - 2013 || [phorax/ja-replacer](https://github.com/phorax/ja-replacer/) 2016 ```bash composer install jweiland/replacer ``` & replace `config.tx_ja_replacer` to `config.tx_replacer`
##### from [typo3-ter/n84_contentreplacer](https://extensions.typo3.org/extension/n84_contentreplacer) 2016 - regex replace `config\.tx_(?:\w*replace\w*)` to `config.replacer`
##### from [typo3-ter/fereplace](https://extensions.typo3.org/extension/fereplace) 2011 ```bash composer install jweiland/replacer ``` & replace `plugin.fereplace.pairs` to `config.tx_replacer` .. ah .. and one regex - search `(\n\s*)(\d+)(?:{\s+|\.)old\s*=\s*([^\n]+).+?new\s*=\s*([^\n]+)` - replace `$1search.$2 = $3\n$1replace.$2 = $4`
##### from [typo3-ter/regex](https://extensions.typo3.org/extension/regex) 2009 - regex replace `config\.regex` to `config.replacer` - regex replace `(?:\s)(\w+)\s*=\s*` to `search.$1 = ` - regex replace `(\w+)\.replacement\s*=\s*` to `replace.$1 = `
##### from any other tool or just for regex - regex replace `(?:config|plugin)\.tx_any_other_tool` to `config.replacer` - inside block `search` - regex replace `\/` to `\\/` (carefully) - regex replace `\s*=\s*(.+)` to ` = /$1/` - inside block `replace` - regex replace `\s*=\s*(.+)` to ` = $1` - consider a PR for conversion specifics

SVGstore

TypoScript [constants] prepend config. at [setup] Property Type Description Default
svgstore.enabled boolean Is the SVG extract & merge enabled for this template 1
svgstore.fileSize integer Maximum file size of a SVG to include (in [byte]) 50000

ToDo: