You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/09/21 19:37:19 UTC
struts-site git commit: Uses plugin to fetch tag parameters
Repository: struts-site
Updated Branches:
refs/heads/master 0d209d153 -> 7ccd3bea1
Uses plugin to fetch tag parameters
Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/7ccd3bea
Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/7ccd3bea
Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/7ccd3bea
Branch: refs/heads/master
Commit: 7ccd3bea115ea605b572e13d0a1dceece49bb449
Parents: 0d209d1
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Sep 21 21:37:07 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Sep 21 21:37:07 2017 +0200
----------------------------------------------------------------------
source/_plugins/tag_parameters.rb | 37 ++++++++++++++++++++++++++++++++++
source/tag-developers/a-tag.md | 22 ++++++++++----------
2 files changed, 48 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts-site/blob/7ccd3bea/source/_plugins/tag_parameters.rb
----------------------------------------------------------------------
diff --git a/source/_plugins/tag_parameters.rb b/source/_plugins/tag_parameters.rb
new file mode 100644
index 0000000..048f86c
--- /dev/null
+++ b/source/_plugins/tag_parameters.rb
@@ -0,0 +1,37 @@
+require 'net/http'
+require 'uri'
+require 'cgi'
+
+module Jekyll
+
+ class TagParameters < Liquid::Tag
+
+ def initialize(tag_name, markup, tokens)
+ url = 'https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/' + markup
+
+ puts 'Fetching content of url: ' + url
+
+ if url =~ URI::regexp
+ @content = fetchContent(url)
+ else
+ raise 'Invalid URL passed to RemoteFileContent'
+ end
+
+ super
+ end
+
+ def render(context)
+ if @content
+ @content[/#{Regexp.escape('<!-- START SNIPPET: tagattributes -->')}(.*?)#{Regexp.escape('<!-- END SNIPPET: tagattributes -->')}/m, 1]
+ else
+ raise 'Something went wrong in TagParameters'
+ end
+ end
+
+ def fetchContent(url)
+ Net::HTTP.get(URI.parse(URI.encode(url.strip)))
+ end
+ end
+end
+
+Liquid::Template.register_tag('tag_parameters', Jekyll::TagParameters)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/struts-site/blob/7ccd3bea/source/tag-developers/a-tag.md
----------------------------------------------------------------------
diff --git a/source/tag-developers/a-tag.md b/source/tag-developers/a-tag.md
index fceb87c..5aac77b 100644
--- a/source/tag-developers/a-tag.md
+++ b/source/tag-developers/a-tag.md
@@ -9,36 +9,36 @@ Please make sure you have read the [Tag Syntax](tag-syntax.html) document and un
## Description
-~~~~~~~
-{snippet:id=javadoc|javadoc=true|url=org.apache.struts2.components.Anchor}
-~~~~~~~
-
+A tag that creates a HTML `<a>.` This tag supports the same attributes as the `url` tag, including nested parameters
+using the `param` tag.
+
> While this tag can be used with the [simple theme](simple-theme.html), [xhtml theme](xhtml-theme.html), and others,
> it is really designed to work best with the [ajax theme](ajax-theme.html). We recommend reading the
> _ajax a template_ documentation for more details.
## Parameters
-~~~~~~~
-{snippet:id=tagattributes|javadoc=false|url=struts2-tags/a.html}
-~~~~~~~
+{% tag_parameters a.html %}
## Usage
To get started, use the [head](head-tag.htlm) tag and the [ajax theme](ajax-theme.html). See _ajax head template_
for more information. Then look at the usage details for the _ajax a template_ .
-If you want to use additional parameters in your s:a the best practice is to use a s:url to create your url and then
-leverage this url into your s:a tag. This is done by creating a s:url and specifying an id attribute. like "testUrlId"
-in this example. Then in the s:a tag reference this id in the href attribute via `%{testUrlId}`
+If you want to use additional parameters in your `s:a` the best practice is to use a `s:url` to create your url and then
+leverage this url into your `s:a` tag. This is done by creating a `s:url` and specifying an `var` attribute. Like `testUrlId`
+in this example. Then in the `s:a` tag reference this id in the href attribute via `%{testUrlId}`
```jsp
<s:url var="testUrlId" namespace="/subscriber" action="customField" method="delete">
<s:param name="customFieldDefinition.id" value="${id}"/>
</s:url>
+
<s:a errorText="Sorry your request had an error." preInvokeJS="confirm('Are you sure you want to delete this item?')" href="%{testUrlId}">
<img src="<s:url value="/images/delete.gif"/>" border="none"/>
</s:a>
-<img xsrc="<s:url value="/images/delete.gif"/>" border="none"/><s:a><img xsrc="<s:url value="/images/delete.gif"/>" border="none"/></s:a>
+<img xsrc="<s:url value="/images/delete.gif"/>" border="none"/>
+
+<s:a><img xsrc="<s:url value="/images/delete.gif"/>" border="none"/></s:a>
```