From b45cd636e0ca7a01d66a775cb469cd75fca4c01b Mon Sep 17 00:00:00 2001 From: billy1380 Date: Fri, 7 Aug 2015 12:56:07 +0100 Subject: [PATCH] added ability to link to youtube videos as part of enhancement #9 --- .../blogwt/client/markdown/Processor.java | 6 +- .../client/markdown/plugin/YoutubePlugin.java | 102 ++++++++++++++++++ 2 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/willshex/blogwt/client/markdown/plugin/YoutubePlugin.java diff --git a/src/main/java/com/willshex/blogwt/client/markdown/Processor.java b/src/main/java/com/willshex/blogwt/client/markdown/Processor.java index 55903b2e..5038fb55 100644 --- a/src/main/java/com/willshex/blogwt/client/markdown/Processor.java +++ b/src/main/java/com/willshex/blogwt/client/markdown/Processor.java @@ -22,6 +22,7 @@ import com.willshex.blogwt.client.markdown.plugin.CachedIncludePlugin; import com.willshex.blogwt.client.markdown.plugin.GalleryPlugin; import com.willshex.blogwt.client.markdown.plugin.MapPlugin; +import com.willshex.blogwt.client.markdown.plugin.YoutubePlugin; import com.willshex.blogwt.shared.helper.PropertyHelper; import emoji.gwt.emoji.Emoji; @@ -110,7 +111,7 @@ protected void registerPlugins () { registerPlugins(new WebSequencePlugin(ensureManager()), includePlugin, new GalleryPlugin(), mapsApiKey == null ? null : new MapPlugin( - mapsApiKey, ensureManager())); + mapsApiKey, ensureManager()), new YoutubePlugin()); } public Processor () { @@ -127,7 +128,8 @@ public Processor () { @Override public void openImage (StringBuilder out, String link, String title) { super.openImage(out, link, title); - out.append(" class=\"img-responsive " + Resources.RES.styles().image() + "\" "); + out.append(" class=\"img-responsive " + + Resources.RES.styles().image() + "\" "); } /* (non-Javadoc) diff --git a/src/main/java/com/willshex/blogwt/client/markdown/plugin/YoutubePlugin.java b/src/main/java/com/willshex/blogwt/client/markdown/plugin/YoutubePlugin.java new file mode 100644 index 00000000..2a7dae2b --- /dev/null +++ b/src/main/java/com/willshex/blogwt/client/markdown/plugin/YoutubePlugin.java @@ -0,0 +1,102 @@ +// +// YoutubePlugin.java +// blogwt +// +// Created by William Shakour (billy1380) on 7 Aug 2015. +// Copyright © 2015 WillShex Limited. All rights reserved. +// +package com.willshex.blogwt.client.markdown.plugin; + +import java.util.List; +import java.util.Map; + +import org.markdown4j.Plugin; + +/** + * @author William Shakour (billy1380) + * + */ +public class YoutubePlugin extends Plugin { + + public static final String ASPECT_16_9 = "16by9"; + public static final String ASPECT_4_3 = "4by3"; + + public static final String RESPONSIVE_CLASS = "embed-responsive"; + public static final String RESPONSIVE_ITEM_CLASS = "embed-responsive-item"; + + public YoutubePlugin () { + super("youtube"); + } + + @Override + public void emit (StringBuilder out, List lines, + Map params) { + + boolean hasAllowFullscreen = params.containsKey("allowfullscreen"), hasResponsive = params + .containsKey("responsive"), hasWidth = params + .containsKey("width"), hasHeight = params.containsKey("height"), hasSrc = params + .containsKey("src"), hasFrameBorder = params + .containsKey("frameborder"); + + if (hasResponsive) { + String aspect = ASPECT_16_9; + + if (params.containsKey("aspectratio")) { + switch (params.get("aspectratio")) { + case ASPECT_4_3: + aspect = ASPECT_4_3; + break; + } + } + + out.append("
"); + } else { + out.append("
"); + } + + out.append("
"); + + } +}