You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2017/10/03 10:09:22 UTC
svn commit: r1810937 - in /sling/trunk/samples/htlblog: README.md readme.md
Author: olli
Date: Tue Oct 3 10:09:21 2017
New Revision: 1810937
URL: http://svn.apache.org/viewvc?rev=1810937&view=rev
Log:
SLING-7167 Adjust READMEs
add uniform header linking to Sling project
Added:
sling/trunk/samples/htlblog/README.md
Removed:
sling/trunk/samples/htlblog/readme.md
Added: sling/trunk/samples/htlblog/README.md
URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/README.md?rev=1810937&view=auto
==============================================================================
--- sling/trunk/samples/htlblog/README.md (added)
+++ sling/trunk/samples/htlblog/README.md Tue Oct 3 10:09:21 2017
@@ -0,0 +1,66 @@
+# Apache Sling HTL Blog Sample
+
+This module is part of the [Apache Sling](https://sling.apache.org) project.
+
+## About
+This sample is designed as an introduction to Sling and HTL.
+
+## Features
+* Create, update, delete posts with featured images.
+* List posts, read posts.
+
+## Requirements
+* [Java 8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
+* [Sling 8](http://sling.apache.org/downloads.cgi)
+* [Maven 3+](http://maven.apache.org/download.cgi)
+
+## Installation
+### 1. Run Sling
+
+ java -jar org.apache.sling.launchpad-8.jar
+
+### 2. Install HTLBlog
+
+ mvn clean install -PautoInstallBundle
+
+### 3. Explore
+
+ http://localhost:8080/content/htlblog.html
+
+## Parts of the Application
+### Java
+HTL Blog uses Sling Models extensively. You can read about them [here](https://sling.apache.org/documentation/bundles/models.html).
+
+* `Author.java` - This model detects if our user is logged in or not.
+* `Edit.java` - This is used to get a query parameter from our request, find the resource associated with the param, and adapt it to our post model.
+* `List.java` - This is used to iterate through our posts, reverse their order, and adapt them to our post model.
+* `Post.java` - This model injects our post properties, finds the featured image, and lists any children (comments).
+
+### Apps (HTL)
+
+* Admin
+ * Page - The base admin page.
+ * List - Based on Page. Used to list posts.
+ * Edit - Based on Page. Used to create and edit posts.
+* Public
+ * Page - The base public page.
+ * List - Based on Page. Used to publicly list posts.
+ * Post - Based on Page. Used to view an individual post.
+* Clientlibs
+ * Mostly Bootstrap and some basic custom styles.
+
+### Content
+The content is built using a single JSON file called `htlblog.json`. It maps to the following nodes:
+
+* `/content/htlblog` - Our homepage. Currently lists our posts.
+* `/content/htlblog/admin` - Our admin home. Used to list our posts for editing or deleting.
+* `/content/htlblog/admin/edit` - Our edit page. Use to create, or if a post path is supplied, it will edit an existing post.
+* `/content/htlblog/posts` - Another post list, but also used as the parent of our posts.
+* `/content/htlblog/posts/hello-world` - Used to scaffold a placeholder post.
+* `/content/htlblog/posts/hola-mundo` - Used to scaffold a 2nd placeholder post.
+
+## Additional Reading
+
+* The [SlingPostServet](https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html) and [Sling CRUD](https://sling.apache.org/documentation/the-sling-engine/sling-api-crud-support.html) docs. Everything in this sample uses these concepts extensively.
+* The [HTL Specification](https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/SPECIFICATION.md). If you have a question about HTL, it will likely be answered here. Note: The spec and the current release in Sling can be out of sync.
+* [Sling Content Loading](https://sling.apache.org/documentation/bundles/content-loading-jcr-contentloader.html) - Understand how to create initial content and map resourceTypes.