- SourceOpt : reformatting the (x)HTML output & removal of new-lines, comments and generator-info
- RegExRep : search and replace strings using your regular expressions ; embrace regex and migrate now
- SVGstore : combines all SVG selected within elements into one <symbol> file and replaces <img> by <use>
Lines 8 to 9 in 173f7bd
Lines 8 to 9 in 6663a8a
composer require lochmueller/sourceopt
-
via TypoScript
[constants]
@import 'EXT:sourceopt/Configuration/TypoScript/constants'
[setup]
@import 'EXT:sourceopt/Configuration/TypoScript/setup'
-
via input device
- add
[EXT:sourceopt/Configuration/TypoScript]
intoInclude static
atIncludes
inTemplate
- add
Include the extension and go to the Constant Editor
of a template where you find all options under PLUGIN
The PHP process need server performance, because there are several search/replace operations in the logic
Note: The following features are executed in reverse order
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. Optionssourceopt/Classes/Service/CleanHtmlService.php Lines 156 to 161 in 2346673 |
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] |
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"
from jweiland/replacer : 1.4 - 2.x
from jweiland/replacer : 1.4 - 2.x
- regex replace
config\.tx_(?:\w*replace\w*)
toconfig.replacer
- remove
config.tx_replacer.enable_regex = 1
from maxserv/replacecontent 2013 - 2017
from maxserv/replacecontent 2013 - 2017
- regex replace
config\.tx_(?:\w*replace\w*)
toconfig.replacer
from typo3-ter/ja_replacer 2009 - 2013 || phorax/ja-replacer 2016
from typo3-ter/ja_replacer 2009 - 2013 || phorax/ja-replacer 2016
composer install jweiland/replacer
& replace config.tx_ja_replacer
to config.tx_replacer
from typo3-ter/n84_contentreplacer 2016
from typo3-ter/n84_contentreplacer 2016
- regex replace
config\.tx_(?:\w*replace\w*)
toconfig.replacer
from typo3-ter/fereplace 2011
from typo3-ter/fereplace 2011
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 2009
from typo3-ter/regex 2009
- regex replace
config\.regex
toconfig.replacer
- regex replace
(?:\s)(\w+)\s*=\s*
tosearch.$1 =
- regex replace
(\w+)\.replacement\s*=\s*
toreplace.$1 =
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 |
- Try external packages like https://github.com/ArjanSchouten/HtmlMinifier