File tree 3 files changed +59
-0
lines changed
packages/typo3-docs-theme 3 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 3
3
declare (strict_types=1 );
4
4
5
5
use Brotkrueml \TwigCodeHighlight \Extension as CodeHighlight ;
6
+ use phpDocumentor \Guides \Event \PostCollectFilesForParsingEvent ;
6
7
use phpDocumentor \Guides \Event \PostProjectNodeCreated ;
7
8
use phpDocumentor \Guides \Event \PostRenderProcess ;
8
9
use phpDocumentor \Guides \Event \PreParseProcess ;
20
21
21
22
use T3Docs \Typo3DocsTheme \Directives \T3FieldListTableDirective ;
22
23
use T3Docs \Typo3DocsTheme \Directives \YoutubeDirective ;
24
+ use T3Docs \Typo3DocsTheme \EventListeners \IgnoreLocalizationsFolders ;
23
25
use T3Docs \Typo3DocsTheme \EventListeners \TestingModeActivator ;
24
26
use T3Docs \Typo3DocsTheme \Inventory \Typo3InventoryRepository ;
25
27
use T3Docs \Typo3DocsTheme \Parser \ExtendedInterlinkParser ;
72
74
->tag ('twig.extension ' )
73
75
->autowire ()
74
76
77
+ // Register Event Listeners
75
78
->set (AddThemeSettingsToProjectNode::class)
76
79
->tag ('event_listener ' , ['event ' => PostProjectNodeCreated::class])
77
80
78
81
->set (CopyResources::class)
79
82
->tag ('event_listener ' , ['event ' => PostRenderProcess::class])
80
83
84
+ ->set (IgnoreLocalizationsFolders::class)
85
+ ->tag ('event_listener ' , ['event ' => PostCollectFilesForParsingEvent::class])
86
+
81
87
->set (TestingModeActivator::class)
82
88
->tag ('event_listener ' , ['event ' => PreParseProcess::class]);
83
89
};
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace T3Docs \Typo3DocsTheme \EventListeners ;
4
+
5
+ use phpDocumentor \Guides \Event \PostCollectFilesForParsingEvent ;
6
+ use phpDocumentor \Guides \Files ;
7
+
8
+ final class IgnoreLocalizationsFolder
9
+ {
10
+ /**
11
+ * @see https://regex101.com/r/zUNAFQ/1
12
+ */
13
+ private const LOCALIZATION_FOLDER_REGEX = '/^Localization \\.[a-z]+_[A-Z]+/s ' ;
14
+ public function __invoke (PostCollectFilesForParsingEvent $ event ): void
15
+ {
16
+ $ files = $ event ->getFiles ();
17
+ $ newFiles = new Files ();
18
+ foreach ($ files as $ filePath ) {
19
+ if (!preg_match (self ::LOCALIZATION_FOLDER_REGEX , $ filePath )) {
20
+ $ newFiles ->add ($ filePath );
21
+ }
22
+ }
23
+ $ event ->setFiles ($ newFiles );
24
+ }
25
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace T3Docs \Typo3DocsTheme \EventListeners ;
4
+
5
+ use phpDocumentor \Guides \Event \PostCollectFilesForParsingEvent ;
6
+ use phpDocumentor \Guides \Files ;
7
+
8
+ final class IgnoreLocalizationsFolders
9
+ {
10
+ /**
11
+ * Format as described here: https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/HowToAddTranslation/Index.html
12
+ * Currently only simplified tags of form xx_YY are supported.
13
+ * todo: change this to BCP 47 in the future? deployment actions and language/version switch have to be changed accordingly
14
+ * @see https://regex101.com/r/zUNAFQ/1
15
+ */
16
+ private const LOCALIZATION_FOLDER_REGEX = '/^Localization \\.[a-z]{2}_[A-Z]{2}/s ' ;
17
+ public function __invoke (PostCollectFilesForParsingEvent $ event ): void
18
+ {
19
+ $ files = $ event ->getFiles ();
20
+ $ newFiles = new Files ();
21
+ foreach ($ files as $ filePath ) {
22
+ if (!preg_match (self ::LOCALIZATION_FOLDER_REGEX , $ filePath )) {
23
+ $ newFiles ->add ($ filePath );
24
+ }
25
+ }
26
+ $ event ->setFiles ($ newFiles );
27
+ }
28
+ }
You can’t perform that action at this time.
0 commit comments