You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/07/06 17:07:20 UTC
[causeway] branch master updated: CAUSEWAY-3523: ship with prism coy css override
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/master by this push:
new 7e108d766b CAUSEWAY-3523: ship with prism coy css override
7e108d766b is described below
commit 7e108d766b0127a65fe4bcbec585e0fa5ef2a894
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jul 6 19:07:15 2023 +0200
CAUSEWAY-3523: ship with prism coy css override
---
.../causeway/viewer/commons/prism/Prism.java | 36 ++++++++++++++++------
.../resources/webjars/prismoverride/prism-coy.css | 24 +++++++++++++++
.../scalars/markup/MarkupComponent_reloadJs.java | 5 +--
.../scalars/markup/_HighlightBehaviorPrism.java | 15 +++++----
.../viewer/wicket/ui/util/PrismResourcesWkt.java | 12 +++++---
5 files changed, 70 insertions(+), 22 deletions(-)
diff --git a/viewers/commons/prism/src/main/java/org/apache/causeway/viewer/commons/prism/Prism.java b/viewers/commons/prism/src/main/java/org/apache/causeway/viewer/commons/prism/Prism.java
index 8a9f038991..9d8110f3a6 100644
--- a/viewers/commons/prism/src/main/java/org/apache/causeway/viewer/commons/prism/Prism.java
+++ b/viewers/commons/prism/src/main/java/org/apache/causeway/viewer/commons/prism/Prism.java
@@ -18,23 +18,41 @@
*/
package org.apache.causeway.viewer.commons.prism;
+import java.util.List;
+import java.util.Optional;
+
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public enum Prism {
- DEFAULT(""),
- COY("-coy"),
- DARK("-dark"),
- FUNKY("-funky"),
- OKAIDIA("-okaidia"),
- SOLARIZEDLIGHT("-solarizedlight"),
- TOMORROW("-tomorrow"),
- TWILIGHT("-twilight"),
+ DEFAULT("", false),
+ COY("-coy", true),
+ DARK("-dark", false),
+ FUNKY("-funky", false),
+ OKAIDIA("-okaidia", false),
+ SOLARIZEDLIGHT("-solarizedlight", false),
+ TOMORROW("-tomorrow", false),
+ TWILIGHT("-twilight", false),
;
final String themeSuffix;
- public String cssFile() {
+ final boolean override;
+
+ public String cssPrimaryFile() {
return "prism/themes/prism" + themeSuffix + ".min.css";
}
+
+ public Optional<String> cssOverrideFile() {
+ return override
+ ? Optional.of("prismoverride/prism" + themeSuffix + ".css")
+ : Optional.empty();
+ }
+
+ public List<String> cssFiles() {
+ return cssOverrideFile()
+ .map(cssOverride->List.of(cssPrimaryFile(), cssOverride))
+ .orElse(List.of(cssPrimaryFile()));
+ }
+
public String jsFile() {
return "prism/prism" + ".js";
}
diff --git a/viewers/commons/prism/src/main/resources/META-INF/resources/webjars/prismoverride/prism-coy.css b/viewers/commons/prism/src/main/resources/META-INF/resources/webjars/prismoverride/prism-coy.css
new file mode 100644
index 0000000000..b7d9d7280e
--- /dev/null
+++ b/viewers/commons/prism/src/main/resources/META-INF/resources/webjars/prismoverride/prism-coy.css
@@ -0,0 +1,24 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+*/
+
+/* customized Prism theme COY */
+.listingblock pre[class*="language-"]::after,
+.listingblock pre[class*="language-"]::before {
+ box-shadow: none;
+}
\ No newline at end of file
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent_reloadJs.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent_reloadJs.java
index e1ad62508f..39376c325b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent_reloadJs.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent_reloadJs.java
@@ -24,6 +24,7 @@ import java.util.UUID;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import lombok.val;
@@ -34,7 +35,7 @@ import lombok.val;
*/
public class MarkupComponent_reloadJs {
- public static CharSequence decorate(final CharSequence htmlContent, final Iterable<ResourceReference> jsRefs) {
+ public static CharSequence decorate(final CharSequence htmlContent, final Iterable<JavaScriptResourceReference> jsRefs) {
val targetId = UUID.randomUUID().toString();
val sb = new StringBuilder()
@@ -47,7 +48,7 @@ public class MarkupComponent_reloadJs {
return sb.toString();
}
- public static CharSequence decorate(final CharSequence htmlContent, final ResourceReference jsRef) {
+ public static CharSequence decorate(final CharSequence htmlContent, final JavaScriptResourceReference jsRef) {
return decorate(htmlContent, List.of(jsRef));
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehaviorPrism.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehaviorPrism.java
index b5c84d64f3..4d6bc5bd33 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehaviorPrism.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehaviorPrism.java
@@ -23,7 +23,8 @@ import java.util.List;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.causeway.viewer.commons.prism.Prism;
import org.apache.causeway.viewer.wicket.ui.util.PrismResourcesWkt;
@@ -36,16 +37,18 @@ class _HighlightBehaviorPrism implements _HighlightBehavior {
private final Prism theme;
- @Getter(lazy = true) private final ResourceReference cssResourceReference =
- PrismResourcesWkt.cssResource(theme);
+ @Getter(lazy = true) private final List<CssResourceReference> cssResourceReferences =
+ PrismResourcesWkt.cssResources(theme);
- @Getter(lazy = true) private final List<ResourceReference> jsResourceReferences =
+ @Getter(lazy = true) private final List<JavaScriptResourceReference> jsResourceReferences =
PrismResourcesWkt.jsResources(theme);
@Override
public void renderHead(final IHeaderResponse response) {
- response.render(CssHeaderItem.forReference(getCssResourceReference()));
- for(ResourceReference jsRef : getJsResourceReferences()) {
+ for(CssResourceReference cssRef : getCssResourceReferences()) {
+ response.render(CssHeaderItem.forReference(cssRef));
+ }
+ for(JavaScriptResourceReference jsRef : getJsResourceReferences()) {
response.render(JavaScriptHeaderItem.forReference(jsRef));
}
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/PrismResourcesWkt.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/PrismResourcesWkt.java
index a93f5faaa2..8e414cf65a 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/PrismResourcesWkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/PrismResourcesWkt.java
@@ -23,7 +23,7 @@ import java.util.List;
import java.util.stream.Collectors;
import org.apache.wicket.request.resource.CssResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.causeway.viewer.commons.prism.Prism;
import org.apache.causeway.viewer.commons.prism.PrismLanguage;
@@ -38,15 +38,17 @@ public final class PrismResourcesWkt{
/**
* Returns the main Prism CSS resource for selected theme
*/
- public CssResourceReference cssResource(final Prism theme) {
- return new WebjarsCssResourceReference(theme.cssFile());
+ public List<CssResourceReference> cssResources(final Prism theme) {
+ return theme.cssFiles().stream()
+ .map(WebjarsCssResourceReference::new)
+ .collect(Collectors.toList());
}
/**
* Returns the main Prism JS resources for selected theme + most common languages
*/
- public List<ResourceReference> jsResources(final Prism theme) {
- final List<ResourceReference> resources = PrismLanguage.mostCommon().stream()
+ public List<JavaScriptResourceReference> jsResources(final Prism theme) {
+ final List<JavaScriptResourceReference> resources = PrismLanguage.mostCommon().stream()
.map(PrismLanguage::jsFile)
.map(WebjarsJavaScriptResourceReference::new)
.collect(Collectors.toCollection(ArrayList::new));