diff --git a/pebble-docs/WEB-INF/web.xml b/pebble-docs/WEB-INF/web.xml new file mode 100644 index 0000000..6a05efa --- /dev/null +++ b/pebble-docs/WEB-INF/web.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/pebble-docs/build.xml b/pebble-docs/build.xml new file mode 100644 index 0000000..8590af4 --- /dev/null +++ b/pebble-docs/build.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pebble-docs/content/WEB-INF/web.xml b/pebble-docs/content/WEB-INF/web.xml new file mode 100644 index 0000000..6a05efa --- /dev/null +++ b/pebble-docs/content/WEB-INF/web.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/pebble-docs/content/antblog/blogger-newpost.html b/pebble-docs/content/antblog/blogger-newpost.html new file mode 100644 index 0000000..3ef9652 --- /dev/null +++ b/pebble-docs/content/antblog/blogger-newpost.html @@ -0,0 +1,27 @@ +@header@ + + + + + + + + +
+ blogger.newPost +
+ Antblog includes a task that can post a new blog entry to any Blogger API compatible blog. The task definition is as follows. +
    <taskdef name="blogger.newPost" classname="pebble.ant.blogger.NewPostTask"/>
+The following example shows how to use it in a target. The Blogger API doesn't explicitly support titles and categories but, if specified, +they are wrapped up inside <title> and <category> tags respectively and prepended to the content. +
    <blogger.newPost
+      url="http://localhost:8080/blog/xmlrpc"
+      blogid="test"
+      username="simon"
+      password="password"
+      title="Posting with Blogger API"
+      content="${content}"
+      category="java" />
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/antblog/getting-started.html b/pebble-docs/content/antblog/getting-started.html new file mode 100644 index 0000000..21a8afb --- /dev/null +++ b/pebble-docs/content/antblog/getting-started.html @@ -0,0 +1,35 @@ +@header@ + + + + + + + + + +
+ Getting Started +
+

+ This section explains how to get started with Pebble antblog. +

+ +

+ Minimum Requirements +

    +
  1. Java 2 Platform, Standard Edition (J2SE) 1.4 +
  2. Apache Ant 1.6 +
+

+ +

+ Installation +

+ Copy the pebble-antblog.jar and xmlrpc-1.2-b1.jar files from the pebble-antblog directory of the distribution to a location on your local disk. To use + the tasks with Ant, make sure that the two JAR files are on your classpath, either by adding them explicitly or by dropping them into $ANT_HOME/lib. The + Ant tasks can then be used in the usual way. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/antblog/index.html b/pebble-docs/content/antblog/index.html new file mode 100644 index 0000000..68d9187 --- /dev/null +++ b/pebble-docs/content/antblog/index.html @@ -0,0 +1,36 @@ +@header@ + + + + + + + + + +
+ Pebble antblog +
+

+

    +
  1. Introduction
  2. +
  3. Getting Started
  4. +
  5. blogger.newPost
  6. +
  7. metaWeblog.newPost
  8. +
  9. metaWeblog.newMediaObject
  10. +
+

+
+
+
+<blogger.newPost
+      url="http://localhost:8080/blog/xmlrpc"
+      blogid="test"
+      username="simon"
+      password="password"
+      title="Build status"
+      content="${content}"
+      category="build" />
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/antblog/introduction.html b/pebble-docs/content/antblog/introduction.html new file mode 100644 index 0000000..e5ee079 --- /dev/null +++ b/pebble-docs/content/antblog/introduction.html @@ -0,0 +1,56 @@ +@header@ + + + + + + + + +
+ What is Pebble antblog? +
+

+ Pebble antblog is a set of custom Ant tasks that allow you to update a blog from within your Ant build script. For example, you might want to update a blog + with the build status as a part of a continuous integration environment. A nice side-effect of posting such information to a blog + is that you get an RSS feed from your blog (that developers can subscribe to) and the build status is archived in the same way blog entries are. Some blogs also provide a way to + search over your blog entries, making it easy to find out how often the build failed! Antblog also includes a task that lets you upload + build artifacts to your blog, via the MetaWeblog API. +

+ +

+ + + + + +
+ Features + +
    +
  • Post new blog entry via the Blogger API.
  • +
  • Post new blog entry via the MetaWeblog API.
  • +
  • Upload a file/image via the MetaWeblog API.
  • +
+
+

+
+ + + + + + + + + +
+ Minimum requirements +
+
    +
  1. Java 2 Platform, Standard Edition (J2SE) 1.4 +
  2. Apache Ant 1.6 +
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/antblog/metaweblog-newmediaobject.html b/pebble-docs/content/antblog/metaweblog-newmediaobject.html new file mode 100644 index 0000000..423f16d --- /dev/null +++ b/pebble-docs/content/antblog/metaweblog-newmediaobject.html @@ -0,0 +1,25 @@ +@header@ + + + + + + + + +
+ metaWeblog.newMediaObject +
+ Antblog includes a task that can upload a file to any MetaWeblog API compatible blog. The task definition is as follows. +
    <taskdef name="metaWeblog.newMediaObject" classname="pebble.ant.metaweblog.NewMediaObjectTask"/>
+The following example shows how to use it in a target. +
    <metaWeblog.newMediaObject
+      url="http://localhost:8080/blog/xmlrpc"
+      blogid="test"
+      username="simon"
+      password="password"
+      src="${build.dir}/${some.file}"
+      dest="files/${some.file}" />
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/antblog/metaweblog-newpost.html b/pebble-docs/content/antblog/metaweblog-newpost.html new file mode 100644 index 0000000..d9e4926 --- /dev/null +++ b/pebble-docs/content/antblog/metaweblog-newpost.html @@ -0,0 +1,26 @@ +@header@ + + + + + + + + +
+ blogger.newPost +
+ Antblog includes a task that can post a new blog entry to any MetaWeblog API compatible blog. The task definition is as follows. +
    <taskdef name="metaWeblog.newPost" classname="pebble.ant.metaweblog.NewPostTask"/>
+The following example shows how to use it in a target. +
    <metaWeblog.newPost
+      url="http://localhost:8080/blog/xmlrpc"
+      blogid="test"
+      username="simon"
+      password="password"
+      title="Posting with MetaWeblog API"
+      content="${content}"
+      category="java" />
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/deskblog/blog-entries.html b/pebble-docs/content/deskblog/blog-entries.html new file mode 100644 index 0000000..f7bb23c --- /dev/null +++ b/pebble-docs/content/deskblog/blog-entries.html @@ -0,0 +1,41 @@ +@header@ + + + + + + + + +
+ Blog Entries +
+

+ A blog entry is typically something like a short article, piece of news, insight, abstract, opinion and so on. From a technical perspective, blog entries in Pebble are just short pieces of HTML that represent the content that you wish to display. This can be anything from a simple piece of text to an elaborate collection of text, images, tables, etc. In addition to this, Pebble stores other pieces of information alongside your blog entries such as a title, the date/time of publication and author. +

+ +

+

Adding a Blog Entry
+ To add a new blog entry, choose New Blog Entry... from the File menu. In this popup window, just fill in the title and main body of the entry. When you've finished writing the entry, clicking the Preview tab will show you what your new entry will look like. If necessary, you can make further changes and preview them. +

+ +

+ When you're happy with the entry, click the OK button. + + The body of a blog entry is just a XHTML/HTML fragment, meaning that you can use any XHTML/HTML tags you like for markup and formatting. Common examples include using bold and italics. Also, you can include other elements such as hyperlinks and images. + + For convenience when posting code and HTML fragments you can enclose these within <escape> and </escape> tags. In doing so, any < or > characters will be automatically escaped to &lt; and &gt; respectively. +

+ +

+

Editing a Blog Entry
+ Blog entries can be edited at any time after they have been posted. To edit an entry, double-click the appropriate blog entry in the main table. This opens the same window used to add a new entry, and you can again edit, preview and click OK when finished. +

+ +

+

Removing a Blog Entry
+ Existing blog entries can also be removed at any time. To remove an entry, choose Delete from the File menu after highlighting the entry that you would like to delete. This will open a popup window asking you to confirm your action. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/deskblog/getting-started.html b/pebble-docs/content/deskblog/getting-started.html new file mode 100644 index 0000000..1f8a8bb --- /dev/null +++ b/pebble-docs/content/deskblog/getting-started.html @@ -0,0 +1,45 @@ +@header@ + + + + + + + + + +
+ Getting Started +
+

+ This section explains how to get started with Pebble deskblog. +

+ +

+ Minimum Requirements +

    +
  1. Java 2 Platform, Standard Edition (J2SE) 1.4 +
+

+ +

+ Installation +

+ Pebble deskblog doesn't need to be installed, just copy the pebble-deskblog directory from the Pebble distribution to a directory on your disk. For Mac OS X users, there is a specific Mac package that provides greater integration with the Dock. +

+ +

+ Starting deskblog +

+ To start deskblog, navigate to the directory on your disk containing deskblog and double-click on the pebble-deskblog.jar file. Alternatively, from the command line, type java -jar pebble-deskblog.jar. Mac OS X users can run the Mac OS X specific package. +

+ +

+ By default, deskblog stores all of the blog data in the ${user.home}/blog directory. To change this, just provide an alternative path as an argument when starting deskblog. After the splash screen you will + be presented with the main window as follows. +

+

That's it - you've now installed Pebble and are ready to start adding blog entries. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/deskblog/index.html b/pebble-docs/content/deskblog/index.html new file mode 100644 index 0000000..109328f --- /dev/null +++ b/pebble-docs/content/deskblog/index.html @@ -0,0 +1,33 @@ +@header@ + + + + + + + + + +
+ Pebble deskblog +
+

+ Pebble deskblog is still under development - the version referenced here and included in the distribution is an alpha version. +

    +
  1. Introduction
  2. +
  3. Getting Started
  4. +
  5. Blog Entries
  6. +
  7. Images
  8. +
  9. Files
  10. +
  11. Migrating to Pebble weblog
  12. +
+

+ +

+ Start deskblog from here using Java Web Start. +

+
+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/deskblog/introduction.html b/pebble-docs/content/deskblog/introduction.html new file mode 100644 index 0000000..58e7a82 --- /dev/null +++ b/pebble-docs/content/deskblog/introduction.html @@ -0,0 +1,69 @@ +@header@ + + + + + + + + +
+ What is Pebble deskblog? +
+

+ Pebble deskblog is a desktop blogging tool written in 100% pure Java. Essentially it's a GUI wrapper over the + same code used in Pebble weblog, meaning that blog entries are stored as XML files on the local disk. Deskblog + is ideal for keeping an offline diary and because of this commonality, provides an easy upgrade + path should you want to start publishing your thoughts on the web with Pebble weblog. +

+ +

+ + + + + + + + + +
+ Features + +
    +
  • Recent blog entry view.
  • +
  • Month at a time view.
  • +
  • Add and delete blog entries.
  • +
  • Blog entry preview.
  • +
  • Full support for UTF-8 and international character sets.
  • +
  • Localization of dates and times.
  • +
  • Blog entry search.
  • +
+
+ Features coming soon + +
    +
  • Categorisation of blog entries.
  • +
  • Filter views by category.
  • +
+
+

+
+ + + + + + + + + +
+ Minimum requirements +
+
    +
  1. Java 2 Platform, Standard Edition (J2SE) 1.4 +
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/deskblog/migration.html b/pebble-docs/content/deskblog/migration.html new file mode 100644 index 0000000..d99f6d4 --- /dev/null +++ b/pebble-docs/content/deskblog/migration.html @@ -0,0 +1,20 @@ +@header@ + + + + + + + + + +
+ Migrating to Pebble weblog +
+

+ Because deskblog is a thin GUI wrapper over the top of the core Pebble code, migrating to a weblog is easy. Just install Pebble weblog and + point it to the directory containing your blog data by setting the blog.dir property in the /WEB-INF/classes/pebble.properties file. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/footer.html b/pebble-docs/content/footer.html new file mode 100644 index 0000000..88edfeb --- /dev/null +++ b/pebble-docs/content/footer.html @@ -0,0 +1,18 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/pebble-docs/content/header.html b/pebble-docs/content/header.html new file mode 100644 index 0000000..9283314 --- /dev/null +++ b/pebble-docs/content/header.html @@ -0,0 +1,22 @@ + + + + Pebble - blogging tools written in Java + + + + + + + + + +
+ Pebble +
+ Blogging tools written in Java +
+ + + +
diff --git a/pebble-docs/content/index.html b/pebble-docs/content/index.html new file mode 100644 index 0000000..2e95e3b --- /dev/null +++ b/pebble-docs/content/index.html @@ -0,0 +1,140 @@ + + + + Pebble - blogging tools written in Java + + + + + + + + + +
+ Pebble +
+ Blogging tools written in Java +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ Pebble web blogging + + + + Pebble desktop blogging +
+ Pebble weblog +   + Pebble deskblog +
+ Pebble mobile blogging + + + + Post to your Blogger/MetaWeblog API compatible blog from Ant. +
+
+<blogger.newPost
+  url="http://localhost:8080/blog/xmlrpc"
+  blogid="test"
+  username="simon"
+  password="password"
+  title="Build status"
+  content="${content}"
+  category="build" />
+
+ Pebble moblog +   + Pebble antblog +
+ Project page | + Download | + Changelog | + Bugs and Issues | + Powered by Pebble +
+ +
+ + + + + + + + + + + + +
+ What is Pebble? +
+

+ Pebble provides lightweight, open source, blogging tools that are written in Java. +

    +
  • Pebble weblog is a server-side web application that lets you easily publish your thoughts on the Internet. It is written to run inside any JSP 1.2/Servlet 2.3 compatible web container + using standards-based technologies such as JSP, servlets, filters, JSP custom tags, JSTL and JAXP.

  • +
  • Pebble deskblog is a desktop blogging application that's ideal for keeping an offline diary, with an easy upgrade path to publishing your blog on the Internet with Pebble weblog.

  • +
  • Pebble moblog is a J2ME/MIDP application that lets you publish textual content to your blog on the move.

  • +
  • Pebble antblog is a set of Ant tasks that let you update a blog from within Ant, for example to update a project blog with information in a continuous build environment.
  • +
+

+ +

+ This is the documentation set for Pebble 1.6-beta1 - please see the Pebble website for updates. +

+
+ Forged on SourceForge +    + Issues tracked by JIRA +    + Code Coverage by Clover +
+ +
+ + + + + + + + \ No newline at end of file diff --git a/pebble-docs/content/license.html b/pebble-docs/content/license.html new file mode 100644 index 0000000..7ce27da --- /dev/null +++ b/pebble-docs/content/license.html @@ -0,0 +1,82 @@ + + + + Pebble - blogging tools written in Java + + + + + + + + + +
+ Pebble +
+ Blogging tools written in Java +
+ + + + + +
+ + + + + + + + +
+ License Details +
+
Copyright (c) 2003-2004, Simon Brown
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+  - Neither the name of Pebble nor the names of its contributors may
+    be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+ +
+ + + + + + + + \ No newline at end of file diff --git a/pebble-docs/content/moblog/blog-entries.html b/pebble-docs/content/moblog/blog-entries.html new file mode 100644 index 0000000..3cb2238 --- /dev/null +++ b/pebble-docs/content/moblog/blog-entries.html @@ -0,0 +1,39 @@ +@header@ + + + + + + + + +
+ Blog Entries +
+

+ A blog entry is typically something like a short article, piece of news, insight, abstract, opinion and so on. From a technical perspective, blog entries in Pebble are just short pieces of HTML that represent the content that you wish to display. This can be anything from a simple piece of text to an elaborate collection of text, images, tables, etc. In addition to this, Pebble stores other pieces of information alongside your blog entries such as a title, the date/time of publication and author. +

+ +

+

Adding a Blog Entry
+ To add a new blog entry, choose the New Entry option from the menu. In this screen you can fill in the title and main body of the entry, along with the category if your blog supports it. When you've finished writing the entry, choosing the Post option will post the entry to your weblog. +

+ +

+ The body of a blog entry is just a XHTML/HTML fragment, meaning that you can use any XHTML/HTML tags you like for markup and formatting. Common examples include using bold and italics. Also, you can include other elements such as hyperlinks and images. + + For convenience when posting code and HTML fragments you can enclose these within <escape> and </escape> tags. In doing so, any < or > characters will be automatically escaped to &lt; and &gt; respectively. +

+ +

+

Editing a Recent Blog Entry
+ Blog entries can be edited at any time after they have been posted. First, choose the Entries option to display a list of the most recent entries. To edit an entry, highlight it in the list and choose the Edit option. This opens the same screen used to add a new entry, and you can again edit and choose Post option. +

+ +

+

Removing a Blog Entry
+ Existing blog entries can also be removed at any time. To remove an entry, choose the Delete option after highlighting an entry from the list of recent blog entries. This will ask for a confirmation. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/moblog/configuration.html b/pebble-docs/content/moblog/configuration.html new file mode 100644 index 0000000..b754cd6 --- /dev/null +++ b/pebble-docs/content/moblog/configuration.html @@ -0,0 +1,27 @@ +@header@ + + + + + + + + + +
+ Configuration +
+

+ To use moblog, you need to configure the details of your blog. The first time that you start up moblog, you will + be presented with a screen where you can enter the following details about your blog. +

    +
  • XML-RPC URL
  • +
  • XML-RPC username
  • +
  • XML-RPC password
  • +
  • Blog ID
  • +
+ Choose the Save option to save the configuration. If you need to go back and edit the configuration, simply select the Preferenes option to return to this screen. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/moblog/getting-started.html b/pebble-docs/content/moblog/getting-started.html new file mode 100644 index 0000000..0f2457a --- /dev/null +++ b/pebble-docs/content/moblog/getting-started.html @@ -0,0 +1,33 @@ +@header@ + + + + + + + + + +
+ Getting Started +
+

+ This section explains how to get started with Pebble moblog. +

+ +

+ Minimum Requirements +

    +
  1. J2ME MIDP 1.0 compatible device +
+

+ +

+ Installation +

+ Copy the pebble-moblog.jar file from the pebble-moblog directory of the distribution to your device. Typically, this is done using a serial cable, infrared or Bluetooth. + On receiving the JAR file, and depending on your device, moblog will be installed automatically. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/moblog/index.html b/pebble-docs/content/moblog/index.html new file mode 100644 index 0000000..51bdc6e --- /dev/null +++ b/pebble-docs/content/moblog/index.html @@ -0,0 +1,27 @@ +@header@ + + + + + + + + + +
+ Pebble moblog +
+

+ Pebble moblog is still under development - the version referenced here and included in the distribution is an alpha version. +

    +
  1. Introduction
  2. +
  3. Getting Started
  4. +
  5. Configuration
  6. +
  7. Blog Entries
  8. +
+

+
+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/moblog/introduction.html b/pebble-docs/content/moblog/introduction.html new file mode 100644 index 0000000..fbe4167 --- /dev/null +++ b/pebble-docs/content/moblog/introduction.html @@ -0,0 +1,52 @@ +@header@ + + + + + + + + +
+ What is Pebble moblog? +
+

+ Pebble moblog is a J2ME/MIDP mobile blogging client written in Java and allows you to post new blog entries to a Blogger API + compatible blog while on the move. +

+ +

+ + + + + +
+ Features + +
    +
  • View/edit recent blog entries.
  • +
  • Post new blog entry.
  • +
  • Delete recent blog entry.
  • +
+
+

+
+ + + + + + + + + +
+ Minimum requirements +
+
    +
  1. J2ME MIDP 1.0 compatible device +
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/blog-entries.html b/pebble-docs/content/weblog/blog-entries.html new file mode 100644 index 0000000..6c465db --- /dev/null +++ b/pebble-docs/content/weblog/blog-entries.html @@ -0,0 +1,70 @@ +@header@ + + + + + + + + +
+ Blog Entries +
+

+ Now that you have the properties and categories configured, it's time to add some blog entries. A blog entry is typically something like a short article, piece of news, insight, abstract, opinion and so on. From a technical perspective, blog entries in Pebble are just short pieces of HTML that represent the content that you wish to display. This can be anything from a simple piece of text to an elaborate collection of text, images, tables, etc. In addition to this, Pebble stores other pieces of information alongside your blog entries such as a title, the date/time of publication and author. +

+ +

+

Adding a Blog Entry
+ To add a new blog entry, click the New blog entry link after logging in. In this popup window, just fill in the title and main body of the entry. In addition to the title and body, a blog entry can be associated with one or more categories that you've previously defined. To do this, just tick the appropriate categories. Ignore the other fields for now - they are discussed later. When you've finished writing the entry, clicking the Preview button will show you what your new entry will look like. If necessary, you can make further changes and preview them. +

+ +

+ When you're happy with the entry, click the Post to Blog button to publish the new entry to your blog. After a new entry has been posted, it will show up on the main page of your blog. + + The body of a blog entry is just a XHTML/HTML fragment, meaning that you can use any XHTML/HTML tags you like for markup and formatting. Common examples include using bold and italics. Also, you can include other elements such as hyperlinks and images. + + For convenience when posting code and HTML fragments you can enclose these within <escape> and </escape> tags. In doing so, any < or > characters will be automatically escaped to &lt; and &gt; respectively. +

+ +

+ For long entries, you may not want the full content showing up on the summary (home, month or day view) pages, although still be visible via the permalinked page. For this reason, Pebble blog entries can be given excerpts. Typically these are shorter than blog entry bodies and, if populated, are displayed on the summary pages with a link to "read the full content" via the permalink. +

+ +

+

Editing a Blog Entry
+ Blog entries can be edited at any time after they have been posted. To edit an entry, once you have logged in, click the Edit link underneath the appropriate blog entry. This opens the same window used to add a new entry, and you can again edit, preview and post when finished. +

+ +

+

Removing a Blog Entry
+ Existing blog entries can also be removed at any time. To remove an entry, click the Remove link underneath the appropriate blog entry. This will open a popup window asking you to confirm your action. +

+ +

+

Draft Blog Entries
+ At any time while editing a blog entry, you can save it as a draft and come back to it later. To do this, just click the Save as Draft button. To edit the draft at a later date, after logging in, click the Drafts link to open a window containing a list of all drafts that have been saved. Clicking on an entry will allow you to edit it once more where you can again save it as a draft or post it to your blog. +

+ +

+

Templates
+ To help you write blog entries that are similar in some way, Pebble supports the notion of blog entry templates. By default, a blog entry contains opening and closing HTML paragraph tags and is a good starting point for simple blog entries. For more complex entries such as entries containing images, bulleted lists, book reviews and so on, you can save time by creating a template that can serve as a starting point. +

+ +

+ To edit your templates, click the Templates link after logging in and a popup window will open where you can add, edit and remove templates. To use a template, just click on it to open the normal blog entry window. +

+ +

+

Aggregating Content
+ If you also write content for an existing blog, you may want to publish/mirror that content on your Pebble blog, but still refer readers back to the original version. Pebble provides a simple way to achieve this by allowing you to store the original permalink alongside your blog content. By doing this, any content will show up on your Pebble blog, but the permalink will point always to the original content. When adding a new blog entry, simply enter the existing permalink into the Original permalink field. +
Please note : The value you enter in this field will become the permalink for your blog entry. This means that when the entry shows up in a news aggregator, readers will be directed to the original version rather than the copy you have entered into Pebble.
+

+ +

+

Disabling Comments and TrackBacks
+ Another useful feature, related to aggregated content is that you can choose to turn off comments and TrackBacks so that you can direct responses to another location, such as the original article/content or an online forum. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/blogger-api.html b/pebble-docs/content/weblog/blogger-api.html new file mode 100644 index 0000000..f9e6a8c --- /dev/null +++ b/pebble-docs/content/weblog/blogger-api.html @@ -0,0 +1,32 @@ +@header@ + + + + + + + + +
+ Blogger API +
+

+ Although Pebble has a comprehensive web-based administration interface, it also supports the Blogger API for managing your blog content via compatible blogging clients. Examples here include NetNewsWire, ecto, w.bloggar and (in the future) the J2ME Pebble moblog client. +

+ +

+ To enable this, click the Blog properties link after logging in. Towards the bottom of this page is a section entitled Blogger and MetaWeblog APIs where you can enable or disable the feature. +

+ +

+ To ensure that only authorized people post to your blog, you need to define a username and password. When using a blogging client, you will be asked for this username and password to authenticate yourself. In addition to this, you will need to specify the XML-RPC API, XML-RPC URL for your blog and a blog ID. These values are displayed in the window, underneath the authentication information. +

+ +

+

Titles and Categories
+ Because the Blogger API is fairly simplistic, by default it has no support for things like blog entry titles and categories. However, with Pebble, it possible to specify these attributes for your blog entry. To do this, simply prepend your blog entry body with <title>Your title here</title> and/or <category>categoryId1,categoryId2</category>. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/categories.html b/pebble-docs/content/weblog/categories.html new file mode 100644 index 0000000..835359e --- /dev/null +++ b/pebble-docs/content/weblog/categories.html @@ -0,0 +1,33 @@ +@header@ + + + + + + + + +
+ Categories +
+

+ Each blog entry can be organized into one or more categories. To edit the categories defined for your blog, click the Categories link after logging in. This will open a window in which you can edit the categories. +

+ +

+

+ +

+ To add a new category, just fill out the form and click the Save Category button. +

+ +

+ To edit a category once it has been added, click the Edit link next to the appropriate category. +

+ +

+ To remove a category, click the Remove link and click OK when prompted for confirmation. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/comments.html b/pebble-docs/content/weblog/comments.html new file mode 100644 index 0000000..372436e --- /dev/null +++ b/pebble-docs/content/weblog/comments.html @@ -0,0 +1,30 @@ +@header@ + + + + + + + + +
+ Comments +
+

+ Pebble allows visitors to your website to leave comments on your blog entries. Comments are enabled for new blog entries by default, and can be disabled so that visitors can't leave comments. +

+ +

+ In the default theme, the number of comments for any blog entry is shown underneath the blog entry itself along with a Comments[x] link that opens a popup window displaying all of the comments for that entry. +

+ +

+ If for any reason you wish to remove a comment, just click the Remove link underneath the appropriate comment and click OK when asked for confirmation. Like the other admin features, this link will only show up if you have logged in. +

+ +

+ Pebble supports nested comments for threads of conversation and allows readers to preview their comments before posting them to your blog. If comment notifications have been enabled in the blog properties, e-mails will be sent out when new comments are added to the blog owner and anybody that has left their e-mail address. Readers can opt out of this on a per blog entry basis by entering their e-mail address in the form at the bottom of the comments window. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/configuration.html b/pebble-docs/content/weblog/configuration.html new file mode 100644 index 0000000..3f24d2a --- /dev/null +++ b/pebble-docs/content/weblog/configuration.html @@ -0,0 +1,107 @@ +@header@ + + + + + + + + +
+ Configuring your Blog +
+

+ With your blog up and running, the next thing to do is configure and customize its properties, categories and so on. This is performed through your web browser, but before doing this you will need to login. To do this, click the Login link at the bottom of the page and you will be presented with a login form. + Enter the username and password you defined earlier in your server security realm. If successful, new Blog administration links will appear towards the top of the page. +

+ +
+

+ +

+ There are various properties and characteristics that can be customized for your blog. These include the name of your blog, setting your time zone, etc. To edit these properties, click the Blog properties link. This will open a new window in which the blog properties can be edited. +

+ +
+

+ +

+ To edit the properties, just change the values and click the Save Properties button when done. The following table describes each of the properties. +

+ +

+

General blog properties
+ + + + + + + + + +
NameDescriptionDefault Value
NameThe name of your blog.My blog
DescriptionThe description of your blog.My blog description
ImageA URL pointing to an image for your blog, typically used by news readers and aggregators.http://pebble.sourceforge.net/common/images/powered-by-pebble.gif
AuthorYour name.Blog Owner
ThemeThe name of the theme to be used.default
Days on home pageThe number of days worth of blog entries to show on the home page.3
Recent comments/TrackBacksThe number of recent comments/TrackBacks to show on all pages.0
+

+ +

+

Internationalization and localization
+ + + + + + + +
NameDescriptionDefault Value
CountryThe country in which you reside, as a two letter ISO code.GB
LanguageThe language of your blog, as a two letter ISO code.en
Time zoneThe time zone in which you reside. After changing this value, please click on the Reload blog link in the main window.Europe/London
Character encodingThe character encoding that your pages are displayed in.UTF-8
Lucene AnalyzerThe name of the class used for indexing and searching your blog. If your blog content is written with non-latin character sets, you may get better search results by editing this property. See the Lucene website for more information about analyzers.org.apache.lucene.analysis.standard.StandardAnalyzer
+

+ +

+

Security
+ + + + +
NameDescriptionDefault Value
Blog ownersA comma separated list of usernames for those users that are blog owners for this blog. This is used when Pebble runs in multi-user mode.
Blog contributorsA comma separated list of usernames for those users that are blog contributors for this blog. This is used when Pebble runs in multi-user mode.
+

+ +

+

E-mail notifications
+ + + + + + +
NameDescriptionDefault Value
Comments and TrackBacksEnables or disables e-mail notifications on the addition of new comments and TrackBacks.Disabled
Blog EntriesEnables or disables e-mail notifications on the addition of new blog entries.Disabled
E-mail addressA comma separated list of e-mail addresses that will receive notifications when new blog entries/comments/TrackBacks are posted.blog@yourdomain.com
SMTP hostThe name/IP address of the server through which e-mail is sent, or a JNDI name starting java:/comp/env pointing to a preconfigured javax.mail.Session instance.
+

+ +

+

XML-RPC update notification pings
+ + + + +
NameDescriptionDefault Value
Update notification pingsEnables or disables the pinging of websites via XML-RPC upon new posts.Disabled
Websites to pingA comma separated list of those websites that should be pinged if notifications are enabled.
+

+ +

+

XML-RPC API (Blogger API)
+ + + + + +
NameDescriptionDefault Value
Posting to blog via XML-RPC APIEnables or disables posting of blog entries via the Blogger API.Disabled
UsernameThe username that should be used for authentication of XML-RPC requests.
PasswordThe password that should be used for authentication of XML-RPC requests.
+

+ +

+

Multi-user properties (available in multi-user mode only)
+ + + +
NameDescriptionDefault Value
Public/Private blogEnables or disables aggregation of this blog in both the multi-user home page and feeds.Public
+

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/files.html b/pebble-docs/content/weblog/files.html new file mode 100644 index 0000000..e1e18b8 --- /dev/null +++ b/pebble-docs/content/weblog/files.html @@ -0,0 +1,16 @@ +@header@ + + + + + + + + +
+ Files +
+ In the same way that images can be uploaded and linked to, Pebble allows arbitrary files to be uploaded to your blog for download by your readers. To do this, just click the Files link after logging in. The resulting popup window works in the same way as described in Images. +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/getting-started.html b/pebble-docs/content/weblog/getting-started.html new file mode 100644 index 0000000..aeee24a --- /dev/null +++ b/pebble-docs/content/weblog/getting-started.html @@ -0,0 +1,57 @@ +@header@ + + + + + + + + + +
+ Getting Started +
+

+ This section explains how to get started with Pebble weblog. +

+ +

+ Minimum Requirements +

    +
  1. Java 2 Platform, Standard Edition (J2SE) 1.4 +
  2. A JSP 1.2/Servlet 2.3 compatible web/application server such as Tomcat, Jetty or Resin, with access to setup new users and roles. +
+

+ +

+ Deploying Pebble +

+ Deploying Pebble is a simple process of extracting the WAR file and editing some configuration information. The following explanation illustrates this process on a UNIX-based platform with Jakarta Tomcat 4, installed in $TOMCAT_HOME. Installation on a Windows platform is pretty much identical. +

    +
  1. Extract the WAR File : After downloading Pebble, extract the pebble.war file from the Pebble distribution into your Tomcat installation, in a directory such as $TOMCAT_HOME/webapps/blog.

  2. +
  3. Configure the Web Application : Next, you need to tell Pebble some basic information about your blog. To do this, open up the $TOMCAT_HOME/webapps/blog/WEB-INF/classes/pebble.properties file. There are 3 parameters that need modifying. +
      +
      +
    • The first of these is called blog.dir and this tells Pebble where on the filing system you would like to store your blog entries, the directory being created if necessary (the default is ${user.home}/blog).

    • +
    • The next parameter is called blog.url and this tells Pebble the URL from which you will be hosting your blog. Examples of this include http://localhost:8080/blog/ or http://www.simongbrown.com/blog/. If left unset, Pebble will try to figure out the value of this, but explicitly setting this is recommended.

    • +
    • The final parameter is called blog.multiUser and this tells Pebble you will be hosting a single user or multi-user blog (discussed later). The values for this parameter are true or false (the default).

    • +
    +
  4. +
  5. Configure Web Application Security : Pebble makes use of the standard Java Servlet security model in order that only blog owners and blog contributors can login and access the maintenance features. Atleast one user must be defined that is a member of the following roles: +

    • blog-owner
    • blog-contributor
    +
    + The first of these roles allows users to configure many aspects of the blog, while the latter allows users to add, edit and delete blog entries. To set up this information with Tomcat using the default security realm, open the $TOMCAT_HOME/conf/tomcat-users.xml file and add in the following line. +
    +
      <user username="someuser" password="password" roles="blog-owner,blog-contributor"/>
    + + This example defines a user called someuser that is both a blog-owner and blog-contributor. + + In addition to these roles, there is another role called pebble-admin that is used when administering a Pebble multi-user installation. Details of this are discussed later. +

  6. +
  7. Testing the Installation : With these steps complete, start the server and point your web browser to the URL where the web application has been deployed. If everything has worked, you should see a page like the following. +

    +

    That's it - you've now installed Pebble and are ready to start customizing your blog and adding blog entries. +

    +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/images.html b/pebble-docs/content/weblog/images.html new file mode 100644 index 0000000..7d6a910 --- /dev/null +++ b/pebble-docs/content/weblog/images.html @@ -0,0 +1,44 @@ +@header@ + + + + + + + + +
+ Images +
+

+ Since blog entries are just short HTML fragments, the HTML <img> tag can be used to reference and include images. For convenience, Pebble provides a mechanism for you to upload images to your blog so that they can be included in your blog entries. Typically images are placed somewhere underneath the root of the web application from which they are referenced. However, Pebble provides a facility whereby you can store your images in the same location that your blog entries are stored on disk. This helps to maintain the separation between your data and the Pebble web application and allows you to easily upgrade the Pebble web application independently of your blog content. +

+ +

+

Uploading Images
+ To upload the images to your blog directory, you have a couple of options. One of these is to simply copy or FTP the images to the server where your blog entries are stored, placing them in a directory called images underneath the blog.dir directory. While this is quick and easy, it is often not possible if you are frequently behind a firewall that blocks FTP access. For this reason, Pebble provides a mechanism for you to upload images to your blog through your web browser. To do this, after logging in, click the Images link. +

+ +

+ To upload an image, choose the file that you would like to upload and click the Upload File button. The Save As field represents tells Pebble what the file should be called when being saved on the server and this defaults to the same name as the local file. When the file has been uploaded, the window will be refreshed confirming that the file has been uploaded. +

+ +

+

Using Images
+ To use this image in a blog entry and help ensure that your blog content is unaffected if you choose to move your blog, it's recommended that you access the image using a relative URI as follows. +
  <img src="./images/about-this-mac-panther.jpg" />
+

+ +

+

Managing Images
+ Other links in the images window allow you to copy, rename, delete and view files. Also, directories can be created and the entire contents of the current directory can be exported (downloaded) as a ZIP file. +

+ +

+

Quotas
+ Although more relevant to team and multi-user blogs, quotas can be enforced to restrict how much disk space each blog has to store images and arbitrary files. By default, the maximum size of file that can be uploaded is 2048KB and quotas are not enabled. + To modify these values, open the /WEB-INF/classes/pebble.properties file and edit the blog.uploadFileSize and blog.uploadFileQuota properties. You will need to restart Pebble for these changes to take effect. When quotas are enabled, all of the stored images, files and files in your theme count toward this. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/index.html b/pebble-docs/content/weblog/index.html new file mode 100644 index 0000000..42ab7d9 --- /dev/null +++ b/pebble-docs/content/weblog/index.html @@ -0,0 +1,43 @@ +@header@ + + + + + + + + + +
+ Pebble weblog +
+

+

    +
  1. Introduction
  2. +
  3. Quick Start with Tomcat
  4. +
  5. Getting Started
  6. +
  7. Configuring your Blog
  8. +
  9. Categories
  10. +
  11. Blog Entries
  12. +
  13. Images
  14. +
  15. Files
  16. +
  17. Comments
  18. +
  19. TrackBacks
  20. +
  21. Static Pages
  22. +
  23. Referers
  24. +
  25. XML-RPC Update Pings
  26. +
  27. Blogger API
  28. +
  29. MetaWeblog API
  30. +
  31. Themes
  32. +
  33. Multi-contributor and Team Blogs
  34. +
  35. Multi-user Blogs
  36. +
  37. Private Blogs
  38. +
  39. Server Specific Installation Details
  40. +
  41. Writing blog entry decorators
  42. +
+

+
+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/installation.html b/pebble-docs/content/weblog/installation.html new file mode 100644 index 0000000..975c2b0 --- /dev/null +++ b/pebble-docs/content/weblog/installation.html @@ -0,0 +1,133 @@ +@header@ + + + + + + + + +
+ Specific Server Installation Details +
+ +

+ Pebble has been tested on a variety of web/application servers and some of these require additional/alternative installation steps. If you have successfully deployed Pebble on other servers, please send us an e-mail and we'll update this page. +

+ +

+

Tomcat 4.1.x and 5.0.x
+ Please see the getting started instructions that are written with Tomcat in mind. +

+ +

+

JBoss 3.x/Tomcat 4.1.x
+ Here's a summary of the steps required to get Pebble working, based on a default installation and assuming that you are deploying the web application to a web context called /blog. +
    +
  • Copy the expanded WAR file to the $JBOSS_HOME/server/default/deploy directory, in a subdirectory called blog.
  • +
  • Edit the $JBOSS_HOME/server/default/conf/login-config.xml file to specify which login-module to use by adding the following section.
  • +
    <application-policy name="blog">
    +         <authentication>
    +           <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required" />
    +         </authentication>
    +      </application-policy>
    +
  • Create a users.properties file underneath the WEB-INF/classes directory to specify the users for this webapp.
  • +
    # users.properties file has user=password pairs
    +      simon=password
    +
  • Create a roles.properties file underneath the WEB-INF/classes directory to map users to roles for this webapp.
  • +
    # roles.properties has user=role,role2,roleN pairs
    +      simon=blog-owner,blog-contributor
    +
  • Create a jboss-web.xml file underneath the WEB-INF directory to specify the security domain. +
    <jboss-web>
    +        <security-domain>java:/jaas/blog</security-domain>
    +      </jboss-web>
  • +
+ All that these additional steps do is specify which authentication mechanism you want to use so that navigating to a protected page results in an authentication request. +

+ +

+

Resin 2.1.x
+ Here's a summary of the steps required to get Pebble working on a default installation of Resin 2.1.x, assuming that you plan to install it to a web context of /blog. +
    +
  • As with Tomcat, you can either extract the Pebble WAR file underneath the $RESIN_HOME/webapps directory, or anywhere on your disk.
  • +
  • Assuming that you've extracted Pebble somewhere other than the webapps directory, open up the $RESIN_HOME/conf/resin.conf file and insert the following XML before the closing host tag, changing the id and app-dir attributes as necessary. In addition to this, you can set up the users that you need for your blog. In the example below is a single user that is both a blog-owner and blog-contributor. +
    +      <web-app id='blog' app-dir='/Users/simon/pebble'>
    +        <authenticator>
    +          <class-name>com.caucho.http.security.XmlAuthenticator</class-name>
    +          <init-param user='simon:password:blog-owner,blog-contributor'/>
    +        </authenticator>
    +      </web-app>
  • +
+

+ +

+

Resin 3.0.x
+ Here's a summary of the steps required to get Pebble working on a default installation of Resin 3.0.x, assuming that you plan to install it to a web context of /blog. Essentially, deploying a webapp on Resin 3.0.x is the same as deploying to Resin 2.1.x although it uses a slightly different syntax. +
    +
  • As with Tomcat, you can either extract the Pebble WAR file underneath the $RESIN_HOME/webapps directory, or anywhere on your disk.
  • +
  • Assuming that you've extracted Pebble somewhere other than the webapps directory, open up the $RESIN_HOME/conf/resin.conf file and insert the following XML before the closing host tag, changing the id and document-directory attributes as necessary. In addition to this, you can set up the users that you need for your blog. In the example below is a single user that is both a blog-owner and blog-contributor. +
    +      <web-app id='blog'
    +        document-directory='/Users/simon/pebble'>
    +        <authenticator>
    +          <type>com.caucho.server.security.XmlAuthenticator</type>
    +          <init>
    +            <user>simon:password:blog-owner,blog-contributor</user>
    +            <password-digest>none</password-digest>
    +          </init>
    +        </authenticator>
    +      </web-app>
  • +
+ At the time of writing, Pebble runs on Resin 3.0.6 but not 3.0.7 or 3.0.8. +

+ +

+

Jetty 4.2.x
+ Here's a summary of the steps required to get Pebble working on a default installation of Jetty 4.2.x. +
    +
  • Extract the WAR file to the $JETTY_HOME/webapps directory.
  • +
  • Define the security realm in the $JETTY_HOME/etc/jetty.xml file (the example below uses a simple username/password pair in plain text). +
    +      <Call name="addRealm">
    +        <Arg>
    +          <New class="org.mortbay.http.HashUserRealm">
    +            <Arg>Pebble Realm</Arg>
    +            <Put name="simon">password</Put>
    +            <Call name="addUserToRole">
    +              <Arg>simon</Arg>
    +              <Arg>blog-owner</Arg>
    +            </Call>
    +            <Call name="addUserToRole">
    +              <Arg>simon</Arg>
    +              <Arg>blog-contributor</Arg>
    +            </Call>
    +          </New>
    +        </Arg>
    +      </Call>
  • +
+ If you are deploying Pebble to Jetty, it is important that you do define a security role before starting up the server. If you don't, you'll get the error page (indicating that "something has gone wrong") when you try to access a secure page. +

+ +

+

Jetty 5.0.x
+ Follow the steps for Jettey 4.2.x and then, before starting, remove the following files from /WEB-INF/lib. +
    +
  • commons-logging-api.jar
  • +
  • commons-logging.jar
  • +
  • log4j.jar
  • +
+

+ +

+

BEA WebLogic 8.1
+ The normal installation instructions should be followed, with the exception that all security role names shouldn't contain the hyphen character. The easiest way to do this is open the web.xml file and search/replace blog-owner for blog_owner and blog-contributor for blog_contributor. These new role names should then be used when setting up users in the security realm. +

+ +

+

Orion 1.x and 2.x
+ Unfortunately, at the time of writing, deployment to Orion is not supported due to a number of bugs in their implementation of the Servlet specification. +

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/introduction.html b/pebble-docs/content/weblog/introduction.html new file mode 100644 index 0000000..666ae6f --- /dev/null +++ b/pebble-docs/content/weblog/introduction.html @@ -0,0 +1,145 @@ +@header@ + + + + + + + + +
+ What is Pebble weblog? +
+

+ Pebble weblog is a lightweight, open source, blogger + that is written as a web application to run inside any JSP 1.2/Servlet 2.3 compatible web container + using standards-based technologies such as JSP, servlets, filters, JSP custom tags, JSTL and JAXP. + Pebble maintains blog entries as XML files and serves up blog content dynamically. All maintenance + of blog entries, blog properties, themes and so on is performed through your web browser, + negating the need to telnet/ssh to the host and making Pebble ideal for anybody who is + constantly on the move, or accesses the Internet through a firewall/proxy server. A summary of the features is as follows. +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Blog Entries + +
    +
  • Blog entries can be categorised into one or more categories. +
  • Preview before posting.
  • +
  • Templates allow common blog entry settings to be saved.
  • +
  • Draft blog entries can be saved at any time.
  • +
  • E-mail notifications when new blog entries are left.
  • +
  • XML-RPC pings supported.
  • +
  • Blog entries can be posted via the XML-RPC Blogger and MetaWeblog APIs
  • +
+
+ Comments and TrackBacks + +
    +
  • Comments may contain a subset of HTML tags.
  • +
  • Comments can be threaded (i.e. readers can reply to a specific comment).
  • +
  • E-mail notifications when new comments are left.
  • +
  • Support for MovableType TrackBacks.
  • +
  • E-mail notifications when new TrackBacks are left.
  • +
  • Comments and/or TrackBacks can be disabled on a per blog entry basis.
  • +
+
+ Adminstration and Maintenance + +
    +
  • Administration is performed through your web browser.
  • +
  • Images and files can be uploaded through your web browser (no FTP access needed).
  • +
  • Export of blog and theme data as a ZIP file for backup.
  • +
  • Export of blog as RSS/RDF/Atom.
  • +
+
+ Newsfeeds + +
    +
  • Newsfeeds available in RSS 2.0, RDF and Atom formats.
  • +
  • Newsfeeds available on a per category basis.
  • +
  • RSS 2.0 feed including comments and TrackBacks.
  • +
+
+ Navigation + +
    +
  • Single blog entry view with comments and TrackBacks.
  • +
  • Day at a time view.
  • +
  • Month at a time view.
  • +
  • Calendar control with links to days containing entries and previous/next month.
  • +
+
+ Team and Multi-user + +
    +
  • Support for multi-contributor/team blogs.
  • +
  • Support for full multi-user blogs (i.e. a single Pebble instance can serve more than a single blog).
  • +
+
+ Other + +
    +
  • Support for "static" pages (i.e. basic content management).
  • +
  • Full support for UTF-8 and international character sets (blog and newsfeeds).
  • +
  • Localization of dates and times and customizable timezone.
  • +
  • Searchable blog entries, static pages and comments.
  • +
  • Logging of referers and visited pages (with regular expression based referer filters for filtering out referer spam).
  • +
  • Look and feel customizable via themes, with the ability to edit the current theme via your web browser.
  • +
+
+

+ +

+ There are many sites that are Powered by Pebble, but if it isn't quite what you're looking for, why not take a look at some of the other Java blogging tools such as The Roller Weblogger, blojsom or Blogmento. +

+
+ + + + + + + + + +
+ Minimum requirements +
+
    +
  1. Java 2 Platform, Standard Edition (J2SE) 1.4 +
  2. A JSP 1.2/Servlet 2.3 compatible web/application server such as Tomcat, Jetty or Resin, with access to setup new users and roles. +
+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/metaweblog-api.html b/pebble-docs/content/weblog/metaweblog-api.html new file mode 100644 index 0000000..13cf79a --- /dev/null +++ b/pebble-docs/content/weblog/metaweblog-api.html @@ -0,0 +1,34 @@ +@header@ + + + + + + + + +
+ MetaWeblog API +
+ +

+ Although Pebble has a comprehensive web-based administration interface, it also supports the MetaWeblog API for managing your blog content via compatible blogging clients. Examples here include NetNewsWire, ecto, w.bloggar and (in the future) the J2ME Pebble moblog client. +

+ +

+ To enable this, click the Blog properties link after logging in. Towards the bottom of this page is a section entitled Blogger and MetaWeblog APIs where you can enable or disable the feature. +

+ +

+ To ensure that only authorized people post to your blog, you need to define a username and password. When using a blogging client, you will be asked for this username and password to authenticate yourself. In addition to this, you will need to specify the XML-RPC API, XML-RPC URL for your blog and a blog ID. These values are displayed in the window, underneath the authentication information. +

+ +

+

Uploading images and files
+ With the MetaWeblog API you can upload images and other files to your blog. By default, any files you upload will be stored underneath the blog.dir/images directory which is assessible through Pebble via the Images link that appears after logging in. + To explicitly specify where the file should be uploaded to, prefix the filename with images/ or files/ to store the file under the blog.dir/images or blog.dir/files respectively. If required, you can also specify a directory structure in the filename such as images/2004/someimage.jpg. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/multiuser-blogs.html b/pebble-docs/content/weblog/multiuser-blogs.html new file mode 100644 index 0000000..f15e642 --- /dev/null +++ b/pebble-docs/content/weblog/multiuser-blogs.html @@ -0,0 +1,63 @@ +@header@ + + + + + + + + +
+ Multi-user Blogs +
+ +

+ By default, a single Pebble instance hosts a single blog meaning that you will need to run an additional instances to host additional blogs. The benefit of this is that blogs are isolated from one another, although having multiple web applications will use more resources. + Pebble has the ability to be able to run more than a single blog from a single instance of the Pebble web application. This is Pebble's "multi-user" mode. +

+ +

+ There are several differences to the default installation required to support this. + In multi-user mode, the blog.dir represents the directory under which all blogs will be contained and before starting Pebble, a subdirectory for each blog that you would to host should be created. Also, to tell Pebble to run in multi-user mode, you need to set the blog.multiUser parameter to true. As with the single user mode, users will have to be defined with the roles blog-owner and blog-contributor as appropriate. With Pebble configured for multi-user mode and, for example, three blog directories created under blog.dir called blog1, blog2 and blog3, you should see the following in your browser when it is pointed at Pebble. +

+ +
+

+ +

+ This page shows summary information for all blogs running on Pebble and links to the blogs themselves and the last three blog entries (if applicable). Clicking on any of the blog names will take you to the home page of that blog. + Each individual blog works in the same way that blogs do in the single user mode, with the exception that the URLs are slightly different. Instead of http://localhost:8080/blog/ (in single user mode), each blog can be accessing through a slightly longer URL such as http://localhost:8080/blog/blog1/. +

+ +

+

Security
+ An important point to mention about multi-user blogs is security. Defining a number of users with the same roles (i.e. blog-owner and blog-contributor) means that anybody with the appropriate role can access the corresponding functions on any blog. For example, if you create a unique user for each of the blog1, blog2 and blog3 blogs, the blog1 user will be able to access all of the blog owner and blog contributor functionality of blog2 and blog3. Ideally, you probably want the blog1 user to only be able to access the functions of blog1. +

+ +

+ To achieve this, login, navigate to blog1 and click the Blog properties link. Towards the middle of the page is a Security section with two textfields. In the Blog owners textfield, simply enter a comma separated list of usernames for all those users that you would like to access the blog owner features for this blog. Similarly, enter a comma separated list of usernames for blog contributors in the Blog contributors field. + In doing this, you restrict the users that can access the protected features of the blog. So, although all three users are members of the same role, only the blog1 user will be able to access the protected features of this blog. +

+ +

+

Privacy
+ In multi-user mode, all blogs will automatically show up on the multi-user front page and their content will appear in the combined news feeds. To stop this from occurring you can mark your blog to be private in the blog properties. In effect, this hides your blog and readers can still navigate directly to your blog. For a truely private, password protected blog, see Private Blogs. +

+ +

+

Themes
+ Themes work in the same way as when Pebble is running in single user mode. To summarise, each blog has it's own private theme that can be customized and only this theme can be edited by blog owners through the web interface. The reason behind this is to prevent changes to themes being reflected in other blogs unknowingly. + The only real difference between themes in single and multi-user modes is in the name of the custom, editable theme. In single user mode this is called custom, whereas in multi-user mode, the editable theme is named the same as the blog. For example, if the blog is accessed by the URL .../blog1/, the name of the editable theme is called blog1. +

+ +

+

Pebble Administration
+ In addition to the blog-owner and blog-contributor security roles, in multi-user mode, an additional role called pebble-admin can be granted to one or more users. Users in this role will be able to perform some higher level administration tasks as follows. +
    +
  • Pebble properties : Edit the some of the details of the blog that appear on the multi-user summary page and in the RSS combined feeds.
  • +
  • Add blog : Add new blogs at runtime.
  • +
+

+
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/private-blogs.html b/pebble-docs/content/weblog/private-blogs.html new file mode 100644 index 0000000..94d905d --- /dev/null +++ b/pebble-docs/content/weblog/private-blogs.html @@ -0,0 +1,52 @@ +@header@ + + + + + + + + +
+ Private Blogs +
+ +

+ Although weblogs are generally a public way of sharing ideas and opinions, there may be times when you want to set up a private blog - perhaps a dedicated project blog or a blog that only family members can access. Since Pebble uses the standard Java Servlet security model, setting up a private blog is straightforward. +

+ +

+ The web.xml file inside the Pebble WAR file contains a block of text like the following that can serve as a starting point. +

+        <!--
+          this is an example of how to setup a private blog
+          (1) set the url-pattern to include the blog(s) you wish to make private
+          (2) set the role-name (this can be anything)
+          (3) configure users in your security realm (app server specific)
+          (4) add the role to the auth-constraint section in the above security constraint
+        -->
+        <security-constraint>
+          <web-resource-collection>
+            <web-resource-name>Private Blog Realm</web-resource-name>
+            <url-pattern>/privateblog/*</url-pattern>
+            <http-method>GET</http-method>
+            <http-method>HEAD</http-method>
+            <http-method>POST</http-method>
+          </web-resource-collection>
+          <auth-constraint>
+            <role-name>privateblog-user</role-name>
+          </auth-constraint>
+        </security-constraint>
+

+ +

+ To define a private blog, you need to modify the url-pattern element. Examples for the value of this element are /* to secure an entire blog in single user mode or all blogs in multi-user mode, or /someblog/* to secure a single blog in multi-user mode. Next, set the value of the role-name element to specify which group of users can access the secured resource and this can be any value. Finally you'll need to define the appropriate users in your application/web server security realm. For Tomcat, users are added to the $TOMCAT_HOME/conf/tomcat-users.xml file. After restarting the server, any attempt to access the URL specified in the url-pattern element will require authentication. If you need to have more than one secure blog, copy this security-constraint section and edit the url-pattern and role-name as appropriate. +

+ +

+

Note : In multi-user mode, all blogs will automatically show up on the multi-user front page and their content will appear in the combined news feeds. To stop this from occurring you can mark your blog to be private in the blog properties.
+

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/referers.html b/pebble-docs/content/weblog/referers.html new file mode 100644 index 0000000..21ec801 --- /dev/null +++ b/pebble-docs/content/weblog/referers.html @@ -0,0 +1,37 @@ +@header@ + + + + + + + + +
+ Referers +
+ +

+ Pebble keeps track of your blog referrers - those websites that have links to your blog. Typically, when a user clicks on a link to your blog from another website, the URL of that website is included in the underlying http request and Pebble keeps a note of it. + +

+

Viewing Referers
+ To see your referrers for the current day, just click the Statistics image on the right side of the page. In addition to this, it is possible to see the number of referrers that you have had for any specific month or year. To do this, just click on the appropriate links on the subsequent page(s). +

+ +

+

Referer Filters
+

+ +

+ Referers can be very useful indicators, but it is possible for them to be spoofed as any arbitrary URL. The reasons for doing this include companies trying to get free advertising by getting their URLs onto your website or trying to get better rankings in the search engines. After all, the more pages that reference their websites, the higher up the ranks their websites will appear in places like Google. + While this is generally harmless, it can be annoying and can skew your statistics. In addition to this, the links are often of an adult nature or simply unrelated to your blog. For this reason, Pebble allows you to filter specific referrers from showing in your list. To do this, click the Referer filters link once you have logged in. This opens a popup window in which filters can be defined. +

+ +

+ The filters are just regular expressions. For example, to stop all Google searches from showing up in your referrer list would require a filter of .*google.*. To add a filter, enter the regular expression in the textfield and click the Add Filter button. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/static-pages.html b/pebble-docs/content/weblog/static-pages.html new file mode 100644 index 0000000..e04c646 --- /dev/null +++ b/pebble-docs/content/weblog/static-pages.html @@ -0,0 +1,33 @@ +@header@ + + + + + + + + +
+ Static Pages +
+ +

+ Although most of the content on a blog consists of blog entries, there may be times where you'd like to include some static content as a part of your website. For example, you might want to have an "About me" page, or a page containing links to other sites that you find useful. Although you could have a separate web application serving up this content, Pebble provides a simple way to manage small amounts of content with the following benefits. +

    +
  • Pages can be categorized.
  • +
  • Pages are included in the search feature.
  • +
  • Pages are included in your referrers/visited pages statistics.
  • +
  • Pages and blog entries have a consistent look and feel.
  • +
+ Effectively, a static page is just a blog entry that doesn't have comments/TrackBacks and has a memorable permalink such as http://.../blog/pages/AboutMe.html. +

+ +

+

Adding a Static Page
+ To add a static page, click the Static pages link after logging in. This will open a window showing a list of all static pages that currently exist, with links to edit and delete them. In addition to this is a link allowing you to add a new static page and clicking this will open a window similar to the blog entry window. + The only real difference between this and the blog entry window is the Name field at the top. This makes up the memorable permalink to the page and the name you give a page must only contain alphanumeric characters, numbers, '-', '_' or /'. Examples include AboutMe, articles/SomeArticleName, and so on. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/team-blogs.html b/pebble-docs/content/weblog/team-blogs.html new file mode 100644 index 0000000..2a5a7f4 --- /dev/null +++ b/pebble-docs/content/weblog/team-blogs.html @@ -0,0 +1,55 @@ +@header@ + + + + + + + + +
+ Multi-contributor and Team Blogs +
+ +

+ Pebble uses the standard security model as defined in the Java Servlet 2.3 specification and it's because of this that you need to define at least a single user in both the blog-owner and blog-contributor roles when you first set up Pebble. The separation that these roles provide give the ability to easily set up multi-contributor blogs. For example, you may want to run a team blog for a project and have more than one person contributing to the blog content. +

+ +

+ To do this, simply define one or more users in the blog-owner role that will be responsible for configuring and customizing the blog and one or more users in the blog-contributor role that will be responsible for posting and editing blog content. +

+ +

+ The full list of privileges is as follows. +

+ + + + + + + + + + + + + + + + + + + + +
FeatureBlog OwnerBlog Contributor
Add/edit/remove blog entryYes
Add/edit/remove draft blog entryYes
Add/edit/remove blog entry templateYes
Add/edit/remove static pageYes
Add/edit/remove categoryYes
Add/edit/remove templateYes
Remove commentYes
Remove TrackBackYes
Send TrackBackYes
Manage images in blogYes
Manage files in blogYes
Edit blog propertiesYes
Add/remove referer filterYes
Rebuild search indexYes
Reload blogYes
Export blogYes
View installed themesYes
Manage files in themeYes
+

+ +

+

E-mail Notifications
+ With more than one person contributing to a blog, you may want to know when new entries are added. To do this, you can enable the e-mail notification for blog entries in the blog properties window, specifying a single or comma separated list of e-mail addresses. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/themes.html b/pebble-docs/content/weblog/themes.html new file mode 100644 index 0000000..26b3492 --- /dev/null +++ b/pebble-docs/content/weblog/themes.html @@ -0,0 +1,49 @@ +@header@ + + + + + + + + +
+ Themes +
+ +

+ Pebble supports the notion of themes so that you can personalize the look and feel of your blog. The following images show examples of how Pebble can be made to look different without a great deal of effort. +

+ +   + +
+

+ + +

+

Selecting a Theme
+ By default, your blog will use the standard Pebble theme called default. To change this, click the Blog properties link after logging in and choose an alternative theme from the dropdown list. All the themes shipped with Pebble can be found in the themes sub-directory of the web application. +

+ +

+

Editing your own Theme
+ Although Pebble is distributed with some pre-built themes, you may want to create your own. The way that Pebble allows you to do this is by providing a theme called custom (in single user mode) that you can edit via your web browser. This theme is created automatically by Pebble the first time that it is started. To edit your custom theme, click the Theme (custom) link after logging in. +

+ +

+ From this page you can edit any of the resources (e.g. JSP, HTML or CSS) that your theme contains. To edit a particular resource, just navigate to it from the list and click the Edit link. When you have made the relevant changes, click the Save File button. The changes should be reflected immediately on your blog. +

+ +

+ You can also upload new files and delete existing files from your theme. To upload an image, the procedure is the same as for uploading images and files to your blog. In your theme pages, The <pebble:theme/> tag can be used to represent the URI of the current theme and this is used for referencing images and other resources (see included themes for examples). +

+ +

+

Storage of your Theme
+ When Pebble starts up, it restores your theme from the blog.dir/theme directory to the themes/custom directory of the webapp and when Pebble is running, any changes to your theme are also made to the blog.dir/theme directory. The benefit of this is that you don't have to copy your custom theme between web applications when upgrading Pebble. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/tomcat-quick-start.html b/pebble-docs/content/weblog/tomcat-quick-start.html new file mode 100644 index 0000000..cdafa1f --- /dev/null +++ b/pebble-docs/content/weblog/tomcat-quick-start.html @@ -0,0 +1,35 @@ +@header@ + + + + + + + + +
+ Quick Start with Tomcat +
+ +

+ If you want to get started quickly and have a Tomcat installation up and running, Pebble can be deployed in a couple of minutes by following some simple steps. +

    +
  1. Download Pebble from here.
  2. +
  3. Copy pebble.war from pebble-weblog into $TOMCAT_HOME/webapps.
  4. +
  5. Add the followng line into the $TOMCAT_HOME/conf/tomcat-users.xml file, before the final closing tag. +
    +      <user username="someuser" password="password" roles="blog-owner,blog-contributor"/>
  6. +
  7. Restart Tomcat and (assuming a default local installation) point your browser to http://localhost:8080/pebble/.
  8. +
  9. Pebble should now be running and you can login via the Login link at the bottom of the page.
  10. +
+

+ +

+

+ +
+

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/trackbacks.html b/pebble-docs/content/weblog/trackbacks.html new file mode 100644 index 0000000..3f8c058 --- /dev/null +++ b/pebble-docs/content/weblog/trackbacks.html @@ -0,0 +1,39 @@ +@header@ + + + + + + + + +
+ TrackBacks +
+ +

+ TrackBacks (definition) are another mechanism for visitors to leave feedback on your blog. Where comments are responses that are left on your blog, TrackBacks are effectively links back to responses that somebody has written on their website. +

+ +

+ As with comments, the number of TrackBacks that have been received for a particular blog entry is shown underneath the entry. Clicking the TrackBacks[x] link will open a popup window to display all TrackBacks for that blog entry. +

+ +

+ If for any reason you wish to remove a TrackBack, just click the Remove link underneath the appropriate TrackBack and click OK when asked for confirmation. Like the other admin features, this link will only show up if you have logged in. +

+ + +

+

Sending TrackBacks
+ In addition to receiving TrackBacks, Pebble can also send a TrackBack to another TrackBack-enabled blog. To send a TrackBack, locate the blog entry that you wish to send the TrackBack from and open the TrackBacks window for that blog entry. If you are logged in, you will additionally see a form from which you can send a TrackBack to another blog. +

+ + +

+ If a blog supports TrackBacks, it will provide you with a URL to which they should be sent. When you have this URL for the particular entry you wish to send the TrackBack to, just type it into the TrackBack URL textfield. In addition to a link back to your blog entry, a short excerpt describing/summarizing your blog entry is sent and can be edited as necessary before being sent. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/update-pings.html b/pebble-docs/content/weblog/update-pings.html new file mode 100644 index 0000000..5bd9364 --- /dev/null +++ b/pebble-docs/content/weblog/update-pings.html @@ -0,0 +1,24 @@ +@header@ + + + + + + + + +
+ XML-RPC Update Pings +
+ +

+ Many blog aggregators support the notion of XML-RPC update notification pings that a blog can send when it has been updated. Examples of sites supporting this feature are weblogs.com and javablogs.com. To enable this in Pebble, click the Blog properties link after logging in. Towards the bottom of this page is a section entitled XML-RPC update notification pings where you can enable or disable the feature and specify a comma separated list of sites that should be pinged when you add/edit a blog entry. +

+ +

+ If this feature is enabled, an XML-RPC ping is automatically sent to each website you specified whenever a blog entry is added or edited. +

+ +
+ +@footer@ \ No newline at end of file diff --git a/pebble-docs/content/weblog/writing-decorators.html b/pebble-docs/content/weblog/writing-decorators.html new file mode 100644 index 0000000..46141f7 --- /dev/null +++ b/pebble-docs/content/weblog/writing-decorators.html @@ -0,0 +1,89 @@ +@header@ + + + + + + + + +
+ Writing blog entry decorators +
+

+ Blog entry decorators are a type of Pebble plugin that allow you to extend the way that + blog entries are displayed in the HTML pages of your blog and the XML newsfeeds that are + generated. The following features have been externalized into decorators and are included + in the distribution. +

    +
  • EscapeMarkupDecorator - escapes HTML markup between <escape> tags (like this except that the tags are maintained and simply decorated out at runtime)
  • +
  • RelativeUriDecorator - replaces relative URIs with absolute URLs so that they are rendered properly in browsers and newsreaders (Pebble currently does this but it's hardcoded)
  • +
  • DisableResponseDecorator - disables comments and TrackBacks for the blog entry (useful if you are worried about spam when you don't have access to your blog, such as on holiday)
  • +
+

+ +

+ To write your own custom decorator, you need to write a Java class that implements the pebble.decorator.BlogEntryDecorator interface. A + default implementation is also available to subclass from called pebble.decorator.BlogEntryDecoratorSupport. +

+ +

+ The code for the DisableResponseDecorator is shown here as an example. +

  package pebble.decorator;
+
+  import pebble.blog.BlogEntry;
+
+  /**
+   * Disables comments and TrackBacks for the blog entry.
+   *
+   * @author Simon Brown
+   */
+  public class DisableResponseDecorator extends BlogEntryDecoratorSupport {
+
+    /**
+     * Executes the logic associated with this decorator.
+     *
+     * @param blogEntry   the BlogEntry to run against
+     * @param context     the context in which the decoration is running
+     * @throws BlogEntryDecoratorException
+     *          if something goes wrong when running the decorator
+     */
+    public void decorate(BlogEntry blogEntry, BlogEntryDecoratorContext context)
+        throws BlogEntryDecoratorException {
+      blogEntry.setCommentsEnabled(false);
+      blogEntry.setTrackBacksEnabled(false);
+    }
+
+    /**
+     * Gets the name of this decorator.
+     *
+     * @return the name of this decorator as a String
+     */
+    public String getName() {
+      return "Disable response decorator";
+    }
+
+  }
+

+ +

+ To use your decorator, you must add your compiled class to the classpath of the Pebble web application. To do this, + either place the class file(s) underneath the /WEB-INF/classes directory or inside a JAR file + placed underneath the /WEB-INF/lib directory. Next, log in to your blog, click the Blog properties + and enter the fully qualified class name in the Blog entry decorators section towards the bottom of the page. +

+ +

+

+ +
+

+ +

+ After saving the blog properties, click the Reload blog link so that the new plugin is started. If you've added + new classes to the web application classpath, you'll need to restart the web application so that they are + picked up by the servlet container. +

+
+ +@footer@ \ No newline at end of file