You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by Daniel Klco <dk...@apache.org> on 2018/02/09 05:38:05 UTC

Re: [DISCUSSION] Make Sling shiny - Basic CMS

I went back to the drawing board on this and came up with a much better
version. There's still some areas to polish, but a lot of the basic stuff
is there. This new CMS extensively uses Sling concepts and tools including:

   - Sling Post Servlet
   - Sling Mappings
   - Sling Resource Merger
   - Sling Rewriter
   - Sling i18n Support
   - Composum

It's available as a Sling Application runnable JAR and a docker image. You
can build the docker image pretty easily by:

   1. Adding the following entries into your /etc/hosts:
      - [docker-machine-ip] cms.sling.apache.org
      -

      [docker-machine-ip] sling2.apache.org

      2. Checking out the Whiteboard project:
   https://github.com/apache/sling-whiteboard/
   3. Navigating to cms/docker
   4. Running the command: docker build -t org.apache.sling.cms .
   5. Running the command: docker run -d -p 80:80 org.apache.sling.cms
   6. You can then open your browser to cms.sling.apache.org and in a few
   moments, Sling CMS will be available.
   7. With the provided /etc/hosts configuration, if you create a site
   called sling-apache-org it will be available at the url sling2.apache.org

I put together a short video showing the process:
https://youtu.be/n1MUQDn0jLU

WDYT?

On Thu, Mar 30, 2017 at 5:06 PM, Daniel Klco <dk...@apache.org> wrote:

> All,
>
> It seems like creating a Basic Sling CMS is an exciting topic for a lot of
> people and something a lot of people are interested in. I've also been
> working on something on the side as well for this, and I was wondering if
> others would see this potentially as a good base to start with.
>
> The idea here is to be somewhat more developer focused (at least in the
> initial version) and somewhat limited in functionality, but to provide
> basic functionality for managing web content. It was based on Publick
> initially, but I found that was more single-blog focused than I wanted so
> it's significantly diverged.
>
> If you have a sec, I'd appreciate feedback and thoughts on the project. I
> haven't had a chance to really document much about how it should work and
> it's not 100% functional (aka don't try to edit a page) but a lot of the
> core functionality is there.
>
> https://github.com/klcodanr/sling-cms
>
> Thanks,
> Dan
>
> On Thu, Mar 30, 2017 at 3:45 PM, Chris Millar (JIRA) <ji...@apache.org>
> wrote:
>
>>
>>     [ https://issues.apache.org/jira/browse/SLING-6666?page=com.
>> atlassian.jira.plugin.system.issuetabpanels:comment-tabpane
>> l&focusedCommentId=15949678#comment-15949678 ]
>>
>> Chris Millar commented on SLING-6666:
>> -------------------------------------
>>
>> I'm probably speaking out of turn, but I have many thoughts on this.
>>
>> First, I agree with what everyone is saying. Sling needs some
>> presentation and branding love. I would break this down into the following
>> buckets:
>>
>> # Docs - The information architecture of sling.apache.org needs to be
>> addressed... Raise your hand if you need quick access to Sling 5 docs in
>> the sidebar.
>> # Marketing and Polish - Basic things like the site not being responsive
>> or the logo being woefully out of date.
>> # Better On-boarding for Developers - Someone who wants to run java -jar
>> org.apache.sling.jar and start building something. How do you get from 8080
>> to 443?
>> # Better On-boarding for Contributors - Someone who wants to start
>> working with the guts of the project.
>> # Better On-boarding for Users - A basic CMS...
>>
>> I really like the idea of everyone rallying around some _basic_ CMS for
>> Sling. I would argue it should be a pure SlingPostServlet / UserManager
>> solution over trying to make a tool like Composum or Slick bend to this
>> purpose. Composum is more of a CRX/DE Lite replacement and Slick is _way_
>> too opinionated about its UX.
>>
>> I'll start adding some more thoughts to the wiki and will attach the logo
>> I updated for Sling a while ago. I'll also subscribe to the dev channel as
>> [~bdelacretaz] suggested.
>>
>> > Make Sling shiny
>> > ----------------
>> >
>> >                 Key: SLING-6666
>> >                 URL: https://issues.apache.org/jira/browse/SLING-6666
>> >             Project: Sling
>> >          Issue Type: Task
>> >          Components: General
>> >            Reporter: Oliver Lietz
>> >
>> > https://cwiki.apache.org/confluence/display/SLING/Make+Sling+shiny
>>
>>
>>
>> --
>> This message was sent by Atlassian JIRA
>> (v6.3.15#6346)
>>
>
>

Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Ioan Eugen Stan <ie...@netdava.com>.
Hello Daniel,

I love the new updates. I downloaded the builder and played around with
it for far too little but I love the progress you have made. 

Once we settle things with GDPR at my day job I will be able to test it
out more and give some feedback, maybe integrated.

We have a use-case where I would like to use something like this. We
need to build personalized, international websites for our channel
partners (distribution network). Each partner (we have around 12-15
global so far) should be able to manage their own website and post some
news and some pages regarding their activity, in their own language. The
site group + sites features seems to match perfectly.

If I can get that + integration with Keycloak and authorize users to
edit just the pages the should access I'll be very happy :).

I can't wait to try things out :).

Regards,

Eugen


On 04.05.2018 01:00, Daniel Klco wrote:
> I've been refining the Sling CMS example over the last couple months.
> Recently, I switched it over to use CA Configs rather than the /etc based
> configurations, made some minor UI tweaks and drastically improved
> reordering sibling resources.
>
> I also added some more reference components (RTE, lists, rss, sitemap,
> containers, column control, image block, etc:
> https://github.com/apache/sling-whiteboard/tree/master/cms/reference/src/main/resources/jcr_root/apps/reference/components/general)
> and added a default configuration, so you can immediately start using the
> tool to create something like sling.apache.org. You can see how easy it is
> to get started with your first page here:
>
> https://www.danklco.com/images/Sling-CMS.gif
>
> And speaking of which, I re-wrote my personal site to run on Sling CMS.
> It's running on a very underpowered Google Computer Engine F1-Micro
> instance, so please be nice to it. I suspect it would run pretty well on a
> g1-small or equivalent server, but I have not had a chance to validate.
>
> You can find the code for my site application here:
>
> https://github.com/klcodanr/danklco.com-site/tree/sling-cms
>
> Right now Sling CMS is using a number of unreleased dependencies, so the
> easiest route to check it out is to download the JAR from the Apache
> Snapshots Repo:
>
> https://repository.apache.org/content/repositories/snapshots/org/apache/sling/org.apache.sling.cms.builder/1.0.0-SNAPSHOT/org.apache.sling.cms.builder-1.0.0-20180503.214823-11.jar
>
> I'm thinking that I'd like to get this moved into the Sling Samples repo or
> potentially a separate repo shortly. The only one additional thing I'd like
> to figure out is getting a HTML5 rewriting pipeline. Is anyone aware of a
> HTML5 Rewriting pipeline implementation? It seems like the default one is
> HTML4.
>
> Regards,
> Dan
>
> On Fri, Mar 2, 2018 at 4:33 PM, Daniel Klco <dk...@apache.org> wrote:
>
>>
>> On Fri, Mar 2, 2018 at 7:26 AM, Ioan Eugen Stan <ie...@netdava.com>
>> wrote:
>>
>>> Hi,
>>>
>>>> Yep, indeed. Currently I'm working on building out some reference
>>>> components like search, lists, column controls, text editors, etc.
>>> That would be awesome. We would like to use such components in our setup
>>> and we might help with some development and maintenance along the way.
>>> That would take some time dough.
>>>
>> Yep. I've made some of these, but it's still pretty basic and some are a
>> bit clunky.
>>
>>
>>> IMO we should be able to make the artifacts available as part of a
>>> release process.
>>>
>> Absolutely. I'm thinking that these could be a standalone related project
>> so it can be versioned separately from the CMS as a whole.
>>
>>
>>> Is this part of the apache project or a you private project. I'm asking
>>> because I would like to do some work in that direction (release as often
>>> as possible).
>>>
>> It's in the Sling Whiteboard:
>> https://github.com/apache/sling-whiteboard/tree/master/cms
>>
>>
>>>>> - is there any relationship between sling-cms and Composum? It seems to
>>>>> me like both projects are heading in a similar direction and a
>>>>> colaboration might be beneficial. Composum provides Composum assests,
>>>>> Composum Pages, etc. That functionality could be reused.
>>>>>
>>>> Not at the moment, I did add in Compsum for the package and node
>>> explorer
>>>> capabilities, but I didn't realize Compsum Pages and Assets were so far
>>>> along.
>>>>
>>> Have you had time to check them out? Can Sling CMS use those compnents?
>>> Will they be used instead of internal/custom ones?
>>>
>>  I've looked through the documentation for Composum Pages / Assets. It
>> looks like they have taken a different approach, but the assets in
>> particular is really nice. I'll try to download it soon and check it out.
>>
>>



Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Bertrand Delacretaz <bd...@apache.org>.
On Fri, May 4, 2018 at 12:00 AM, Daniel Klco <dk...@apache.org> wrote:
> ...I'm thinking that I'd like to get this moved into the Sling Samples repo or
> potentially a separate repo shortly....

+1, cool stuff!

-Bertrand

Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Daniel Klco <dk...@apache.org>.
I've been refining the Sling CMS example over the last couple months.
Recently, I switched it over to use CA Configs rather than the /etc based
configurations, made some minor UI tweaks and drastically improved
reordering sibling resources.

I also added some more reference components (RTE, lists, rss, sitemap,
containers, column control, image block, etc:
https://github.com/apache/sling-whiteboard/tree/master/cms/reference/src/main/resources/jcr_root/apps/reference/components/general)
and added a default configuration, so you can immediately start using the
tool to create something like sling.apache.org. You can see how easy it is
to get started with your first page here:

https://www.danklco.com/images/Sling-CMS.gif

And speaking of which, I re-wrote my personal site to run on Sling CMS.
It's running on a very underpowered Google Computer Engine F1-Micro
instance, so please be nice to it. I suspect it would run pretty well on a
g1-small or equivalent server, but I have not had a chance to validate.

You can find the code for my site application here:

https://github.com/klcodanr/danklco.com-site/tree/sling-cms

Right now Sling CMS is using a number of unreleased dependencies, so the
easiest route to check it out is to download the JAR from the Apache
Snapshots Repo:

https://repository.apache.org/content/repositories/snapshots/org/apache/sling/org.apache.sling.cms.builder/1.0.0-SNAPSHOT/org.apache.sling.cms.builder-1.0.0-20180503.214823-11.jar

I'm thinking that I'd like to get this moved into the Sling Samples repo or
potentially a separate repo shortly. The only one additional thing I'd like
to figure out is getting a HTML5 rewriting pipeline. Is anyone aware of a
HTML5 Rewriting pipeline implementation? It seems like the default one is
HTML4.

Regards,
Dan

On Fri, Mar 2, 2018 at 4:33 PM, Daniel Klco <dk...@apache.org> wrote:

>
>
> On Fri, Mar 2, 2018 at 7:26 AM, Ioan Eugen Stan <ie...@netdava.com>
> wrote:
>
>> Hi,
>>
>> > Yep, indeed. Currently I'm working on building out some reference
>> > components like search, lists, column controls, text editors, etc.
>> That would be awesome. We would like to use such components in our setup
>> and we might help with some development and maintenance along the way.
>> That would take some time dough.
>>
>
> Yep. I've made some of these, but it's still pretty basic and some are a
> bit clunky.
>
>
>>
>> IMO we should be able to make the artifacts available as part of a
>> release process.
>>
>
> Absolutely. I'm thinking that these could be a standalone related project
> so it can be versioned separately from the CMS as a whole.
>
>
>> Is this part of the apache project or a you private project. I'm asking
>> because I would like to do some work in that direction (release as often
>> as possible).
>>
>
> It's in the Sling Whiteboard:
> https://github.com/apache/sling-whiteboard/tree/master/cms
>
>
>> >> - is there any relationship between sling-cms and Composum? It seems to
>> >> me like both projects are heading in a similar direction and a
>> >> colaboration might be beneficial. Composum provides Composum assests,
>> >> Composum Pages, etc. That functionality could be reused.
>> >>
>> > Not at the moment, I did add in Compsum for the package and node
>> explorer
>> > capabilities, but I didn't realize Compsum Pages and Assets were so far
>> > along.
>> >
>> Have you had time to check them out? Can Sling CMS use those compnents?
>> Will they be used instead of internal/custom ones?
>>
>
>  I've looked through the documentation for Composum Pages / Assets. It
> looks like they have taken a different approach, but the assets in
> particular is really nice. I'll try to download it soon and check it out.
>
>

Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Daniel Klco <dk...@apache.org>.
On Fri, Mar 2, 2018 at 7:26 AM, Ioan Eugen Stan <ie...@netdava.com> wrote:

> Hi,
>
> > Yep, indeed. Currently I'm working on building out some reference
> > components like search, lists, column controls, text editors, etc.
> That would be awesome. We would like to use such components in our setup
> and we might help with some development and maintenance along the way.
> That would take some time dough.
>

Yep. I've made some of these, but it's still pretty basic and some are a
bit clunky.


>
> IMO we should be able to make the artifacts available as part of a
> release process.
>

Absolutely. I'm thinking that these could be a standalone related project
so it can be versioned separately from the CMS as a whole.


> Is this part of the apache project or a you private project. I'm asking
> because I would like to do some work in that direction (release as often
> as possible).
>

It's in the Sling Whiteboard:
https://github.com/apache/sling-whiteboard/tree/master/cms


> >> - is there any relationship between sling-cms and Composum? It seems to
> >> me like both projects are heading in a similar direction and a
> >> colaboration might be beneficial. Composum provides Composum assests,
> >> Composum Pages, etc. That functionality could be reused.
> >>
> > Not at the moment, I did add in Compsum for the package and node explorer
> > capabilities, but I didn't realize Compsum Pages and Assets were so far
> > along.
> >
> Have you had time to check them out? Can Sling CMS use those compnents?
> Will they be used instead of internal/custom ones?
>

 I've looked through the documentation for Composum Pages / Assets. It
looks like they have taken a different approach, but the assets in
particular is really nice. I'll try to download it soon and check it out.

Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Ioan Eugen Stan <ie...@netdava.com>.
Hi,

> Yep, indeed. Currently I'm working on building out some reference
> components like search, lists, column controls, text editors, etc.
That would be awesome. We would like to use such components in our setup
and we might help with some development and maintenance along the way.
That would take some time dough.

IMO we should be able to make the artifacts available as part of a
release process.
Is this part of the apache project or a you private project. I'm asking
because I would like to do some work in that direction (release as often
as possible).
>> - is there any relationship between sling-cms and Composum? It seems to
>> me like both projects are heading in a similar direction and a
>> colaboration might be beneficial. Composum provides Composum assests,
>> Composum Pages, etc. That functionality could be reused.
>>
> Not at the moment, I did add in Compsum for the package and node explorer
> capabilities, but I didn't realize Compsum Pages and Assets were so far
> along.
>
Have you had time to check them out? Can Sling CMS use those compnents?
Will they be used instead of internal/custom ones?



Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Daniel Klco <dk...@apache.org>.
On Fri, Feb 16, 2018 at 5:57 AM, Ioan Eugen Stan <ie...@netdava.com> wrote:

> Hi Daniel,
>
> I've gone through the steps and I love it. I think a CMS can boost Sling
> and the ecosystem a lot.
>
> Congratulations on your results!
>

Thanks!


>
> Some feedback:
>
> - the process of creating a website should be streamlined to hide
> details for the end user
>

Sure, I'm thinking that this should probably have a reference site
available out of the box which dould have a pre-configured site config.
Since the configurations can be shared between sites, this should
signfiicantly ease the process of configuring sites.


>
> - a base set of page templates like wordpress ones (Post and Page) would
> be a great next step
>

Yep, indeed. Currently I'm working on building out some reference
components like search, lists, column controls, text editors, etc.

>
> - the configuration files could be moved to /etc/sling-cms/configs to
> namespace things in case other apps need to access /etc
>

Good point, probably the same for most of the other stuff as well,
currently I have i18n and taxonomy under there as well.


>
> - is there any relationship between sling-cms and Composum? It seems to
> me like both projects are heading in a similar direction and a
> colaboration might be beneficial. Composum provides Composum assests,
> Composum Pages, etc. That functionality could be reused.
>

Not at the moment, I did add in Compsum for the package and node explorer
capabilities, but I didn't realize Compsum Pages and Assets were so far
along.


>
> Regards,
>
>
> On 10.02.2018 02:52, Daniel Klco wrote:
> > Thanks Jason! Obviously tested only with a Mac. I just pushed in an
> update
> > to resolve the issue and updating the docker image to fix some UI issues.
> >
> > On Fri, Feb 9, 2018 at 11:51 AM, Jason E Bailey <je...@apache.org> wrote:
> >
> >> If you're not familiar with this. A colon is an illegal character in a
> >> windows file name. When windows uses it as part of a file descriptor
> when
> >> opening/creating a file it's to specify a side channel where extra data
> is
> >> stored.
> >>
> >> So in the case of the jcr:content files git uses jcr:content as the file
> >> descriptor and ends up creating a file called jcr that appears empty but
> >> will still be the same size as the corresponding jcr:content.
> >>
> >> Eclipse is the actual creator of that error message as it rightly
> >> recognized that this is most likely not what was intended. I'm assuming
> >> that we can rename the files _jcr_content.json and still have them work.
> >>
> >> - Jason
> >>
> >> On Fri, Feb 9, 2018, at 8:47 AM, Jason E Bailey wrote:
> >>> I'm pretty excited about this.  Did run into a slight problem. I use
> >>> windows at work and your CMS commit actually breaks git for me. cms/ui/
> >>> src/main/resources/jcr_root/etc/fileeditors/jcr:content.json is not
> >>> considered a valid file.
> >>>
> >>> - Jason
>
>
>

Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Ioan Eugen Stan <ie...@netdava.com>.
Hi Daniel,

I've gone through the steps and I love it. I think a CMS can boost Sling
and the ecosystem a lot.

Congratulations on your results!

Some feedback:

- the process of creating a website should be streamlined to hide
details for the end user

- a base set of page templates like wordpress ones (Post and Page) would
be a great next step

- the configuration files could be moved to /etc/sling-cms/configs to
namespace things in case other apps need to access /etc

- is there any relationship between sling-cms and Composum? It seems to
me like both projects are heading in a similar direction and a
colaboration might be beneficial. Composum provides Composum assests,
Composum Pages, etc. That functionality could be reused.

Regards,


On 10.02.2018 02:52, Daniel Klco wrote:
> Thanks Jason! Obviously tested only with a Mac. I just pushed in an update
> to resolve the issue and updating the docker image to fix some UI issues.
>
> On Fri, Feb 9, 2018 at 11:51 AM, Jason E Bailey <je...@apache.org> wrote:
>
>> If you're not familiar with this. A colon is an illegal character in a
>> windows file name. When windows uses it as part of a file descriptor when
>> opening/creating a file it's to specify a side channel where extra data is
>> stored.
>>
>> So in the case of the jcr:content files git uses jcr:content as the file
>> descriptor and ends up creating a file called jcr that appears empty but
>> will still be the same size as the corresponding jcr:content.
>>
>> Eclipse is the actual creator of that error message as it rightly
>> recognized that this is most likely not what was intended. I'm assuming
>> that we can rename the files _jcr_content.json and still have them work.
>>
>> - Jason
>>
>> On Fri, Feb 9, 2018, at 8:47 AM, Jason E Bailey wrote:
>>> I'm pretty excited about this.  Did run into a slight problem. I use
>>> windows at work and your CMS commit actually breaks git for me. cms/ui/
>>> src/main/resources/jcr_root/etc/fileeditors/jcr:content.json is not
>>> considered a valid file.
>>>
>>> - Jason



Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Daniel Klco <dk...@apache.org>.
Thanks Jason! Obviously tested only with a Mac. I just pushed in an update
to resolve the issue and updating the docker image to fix some UI issues.

On Fri, Feb 9, 2018 at 11:51 AM, Jason E Bailey <je...@apache.org> wrote:

> If you're not familiar with this. A colon is an illegal character in a
> windows file name. When windows uses it as part of a file descriptor when
> opening/creating a file it's to specify a side channel where extra data is
> stored.
>
> So in the case of the jcr:content files git uses jcr:content as the file
> descriptor and ends up creating a file called jcr that appears empty but
> will still be the same size as the corresponding jcr:content.
>
> Eclipse is the actual creator of that error message as it rightly
> recognized that this is most likely not what was intended. I'm assuming
> that we can rename the files _jcr_content.json and still have them work.
>
> - Jason
>
> On Fri, Feb 9, 2018, at 8:47 AM, Jason E Bailey wrote:
> > I'm pretty excited about this.  Did run into a slight problem. I use
> > windows at work and your CMS commit actually breaks git for me. cms/ui/
> > src/main/resources/jcr_root/etc/fileeditors/jcr:content.json is not
> > considered a valid file.
> >
> > - Jason
>

Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Jason E Bailey <je...@apache.org>.
If you're not familiar with this. A colon is an illegal character in a windows file name. When windows uses it as part of a file descriptor when opening/creating a file it's to specify a side channel where extra data is stored.

So in the case of the jcr:content files git uses jcr:content as the file descriptor and ends up creating a file called jcr that appears empty but will still be the same size as the corresponding jcr:content. 

Eclipse is the actual creator of that error message as it rightly recognized that this is most likely not what was intended. I'm assuming that we can rename the files _jcr_content.json and still have them work. 

- Jason

On Fri, Feb 9, 2018, at 8:47 AM, Jason E Bailey wrote:
> I'm pretty excited about this.  Did run into a slight problem. I use 
> windows at work and your CMS commit actually breaks git for me. cms/ui/
> src/main/resources/jcr_root/etc/fileeditors/jcr:content.json is not 
> considered a valid file. 
> 
> - Jason

Re: [DISCUSSION] Make Sling shiny - Basic CMS

Posted by Jason E Bailey <je...@apache.org>.
I'm pretty excited about this.  Did run into a slight problem. I use windows at work and your CMS commit actually breaks git for me. cms/ui/src/main/resources/jcr_root/etc/fileeditors/jcr:content.json is not considered a valid file. 

- Jason

On Fri, Feb 9, 2018, at 12:38 AM, Daniel Klco wrote:
> I went back to the drawing board on this and came up with a much better
> version. There's still some areas to polish, but a lot of the basic stuff
> is there. This new CMS extensively uses Sling concepts and tools including:
> 
>    - Sling Post Servlet
>    - Sling Mappings
>    - Sling Resource Merger
>    - Sling Rewriter
>    - Sling i18n Support
>    - Composum
> 
> It's available as a Sling Application runnable JAR and a docker image. You
> can build the docker image pretty easily by:
> 
>    1. Adding the following entries into your /etc/hosts:
>       - [docker-machine-ip] cms.sling.apache.org
>       -
> 
>       [docker-machine-ip] sling2.apache.org
> 
>       2. Checking out the Whiteboard project:
>    https://github.com/apache/sling-whiteboard/
>    3. Navigating to cms/docker
>    4. Running the command: docker build -t org.apache.sling.cms .
>    5. Running the command: docker run -d -p 80:80 org.apache.sling.cms
>    6. You can then open your browser to cms.sling.apache.org and in a few
>    moments, Sling CMS will be available.
>    7. With the provided /etc/hosts configuration, if you create a site
>    called sling-apache-org it will be available at the url sling2.apache.org
> 
> I put together a short video showing the process:
> https://youtu.be/n1MUQDn0jLU
> 
> WDYT?
> 
> On Thu, Mar 30, 2017 at 5:06 PM, Daniel Klco <dk...@apache.org> wrote:
>