Hi,

I also think flexmark might be a better choice. I think the developer is
more contributor friendly.

Regards,

[1] https://github.com/vsch/flexmark-java/issues/236


On 10.08.2018 02:02, Chris Millar wrote:
> It might be worth looking at flexmark [0], too. This is what jbake uses for
> its markdown parser.
>
> Chris
>
> [0] https://github.com/vsch/flexmark-java
>
>
> On Thu, Aug 9, 2018 at 12:06 PM, Daniel Klco <[email protected]> wrote:
>
>> Unfortunately, I'm not going to be at adapt.to :-( wrong side of the pond.
>>
>> So for commonmark, I'm assuming you're referring to this one here:
>>
>> https://github.com/atlassian/commonmark-java
>>
>> We could embed the JAR into a bundle to provide markdown support and the
>> implementation of the Sling Models and any other services. Let me take a
>> look at it in my copious free time ;-)
>>
>> On Thu, Aug 9, 2018 at 12:05 PM Ioan Eugen Stan <[email protected]>
>> wrote:
>>
>>> Hello Daniel,
>>>
>>> I'm very happy to hear you have a use case for it and I hope we can get
>> it
>>> included soon.
>>>
>>> Are you coming to Adapt.to? We might do some work there.
>>>
>>> I'm swamped with other work and can't work on this until then. If you
>> need
>>> it sooner, I can't help you much.
>>>
>>> Regarding markdown support, I failed to convince commonmark developer to
>>> merge my osgi PR's. Maybe you can push a bit and make it happen. If not
>> we
>>> could try to push for flexmark. The developer might be more open to
>>> contributions. This is for longer term.
>>>
>>> Short term you can use the versions I published.
>>>
>>> I saw another discussion about sling and markdown and I saw nice features
>>> being eiscussed (copy front matter properties to jcr properties, caching,
>>> etc) .
>>>
>>> https://github.com/vsch/flexmark-java
>>>
>>>
>>> *De la:* [email protected]
>>> *Trimis:* 9 august 2018 17:59
>>> *Către:* [email protected]
>>> *Cc:* [email protected]
>>> *Subiect:* Re: [DISCUSSION] markdown support for Sling CMS
>>>
>>> Hey Eugen,
>>>
>>> Now that Sling CMS 0.9.0 is out I was thinking adding markdown support to
>>> Sling CMS would be a great addition (in part because I have a use case
>> for
>>> it for filtered user generated content)
>>>
>>> I've created an issue for it:
>>>
>>> https://issues.apache.org/jira/browse/SLING-7819
>>>
>>> Do you want to create a PR for integrating this? How can I help?
>>>
>>> Thanks,
>>> Dan
>>>
>>> On Wed, Jun 20, 2018 at 10:16 PM Daniel Klco <[email protected]> wrote:
>>>
>>>>
>>>> On Sun, Jun 17, 2018, 9:26 PM Eugen Stan <[email protected]> wrote:
>>>>
>>>>> Hello Daniel and all,
>>>>>
>>>>> I've been working to deliver a piece of functionality that leverages
>>>>> Markdown support and I think it can be a great addition for managing
>>>>> content inside a Sling, more specifically Sling CMS.
>>>>>
>>>>> My work is by no means ready to be released into the open but I would
>>>>> like to share some ideas and get some feedback. I think it could make a
>>>>> great adition to Sling CMS.
>>>>>
>>>>> I've started from commonsmark-java [1] and I have made some PR's to add
>>>>> proper osgi support and Karaf features. Until they are upstreamed, I've
>>>>> published them to my public repository on bintray so you can test it
>> out
>>>>> [2].
>>>>>
>>>>> I'm currenlty using this functionality to manage terms of use and
>>>>> privacy policy files for our web platform. We have a requirement that
>>>>> they need to be translated and I believe that a text based format has
>>>>> many advantages in this situation than an office document. Most of them
>>>>> are related to the that:
>>>>>
>>>>> - content can be easily version controlled
>>>>>
>>>>> - content can be transformed easily into multiple output formats: html,
>>>>> text, pdf
>>>>>
>>>>> - content is easy to view/edit
>>>>>
>>>>> - rich text editors exist for markdown that can be added
>>>>>
>>>>>
>>>>> The way I am using it in my application is to register a Sling Model
>>>>> that allows me to convert from Markdown content to html on the fly
>>>>> (caching can be added).
>>>>
>>>>> I've also defined a script "page/markdown" via sling:resourceType so I
>>>>> can leverage that functionality. My implementation is based on fling
>>>>> sample and uses thymeleaf.
>>>>>
>>>>> Bellow are some code snippets that I use. My implementation needs to
>>>>> handle content into multiple languages and we use a fallback mechanism:
>>>>> If requested language is not available, then we fallback to the default
>>>>> version - which is English version for most cases.
>>>>>
>>>>> ----
>>>>>
>>>>> @Model(adaptables = {Resource.class, SlingHttpServletRequest.class})
>>>>> @FieldDefaults(level = AccessLevel.PROTECTED)
>>>>> public class Page {
>>>>>
>>>>>   @SlingObject Resource resource;
>>>>>
>>>>>   @SlingObject(injectionStrategy = OPTIONAL)
>>>>>   SlingHttpServletRequest request;
>>>>>
>>>>>   @OSGiService HtmlRenderer htmlRenderer;
>>>>>   @OSGiService Parser parser;
>>>>>
>>>>>   List<PageTranslation> translations;
>>>>>
>>>>>   PageTranslation requestedTranslation;
>>>>>
>>>>>   @PostConstruct
>>>>>   protected void resolveContent() {
>>>>>     Locale lang = requestedLanguage();
>>>>>     translations = getPageTranslations();
>>>>>
>>>>>     log.warn("Parsing translation for resources {}", translations);
>>>>>     try {
>>>>>       requestedTranslation = findRequestedTranslationOrUseDefault();
>>>>>     } catch (Exception e) {
>>>>>       log.warn("Exception getting content ", e);
>>>>>     }
>>>>>   }
>>>>>
>>>>>   private List<PageTranslation> getPageTranslations() {
>>>>>     List<PageTranslation> translations = new ArrayList<>();
>>>>>
>>>>>     resource
>>>>>         .getChild("lang")
>>>>>         .getChildren()
>>>>>         .forEach(
>>>>>             resource1 -> {
>>>>>               PageTranslation translation =
>>>>> resource1.adaptTo(PageTranslation.class);
>>>>>               if (translation != null) {
>>>>>                 translations.add(translation);
>>>>>               }
>>>>>             });
>>>>>     return translations;
>>>>>   }
>>>>>
>>>>>   public String getTitle() {
>>>>>     return requestedTranslation.getTitle();
>>>>>   }
>>>>>
>>>>>   public String getLanguage() {
>>>>>     return requestedTranslation.getLanguage();
>>>>>   }
>>>>>
>>>>>   public String getContent() {
>>>>>     String content = requestedTranslation.getContent();
>>>>>     Node doc = parser.parse(content);
>>>>>     return htmlRenderer.render(doc);
>>>>>   }
>>>>>
>>>>> ----
>>>>>
>>>>> I'm hoping this can be added to Sling CMS, pending the markdown changes
>>>>> are upstreamed.
>>>>>
>>>>> I believe text based formats are cool and they solve some problems in
>> an
>>>>> interesting way.
>>>>>
>>>> I've used markdown a fair bit and agree for text heavy use cases.
>>>>
>>>>
>>>>> What do you think? Daniel, would you help me shape this so it can be
>>>>> included in Sling CMS ?
>>>>
>>>> Totally. It'd seem like we'd need to include a markdown editor, script
>>>> and model to render the markdown content. That way we could show a HTML
>>>> editor and a markdown editor which might be nice from anyone coming
>> from a
>>>> markdown too such as Jekyll.
>>>>
>>>> Not related: I haven't seen a Sling CMS feature
>>>>> in Sling Karaf features. I would like to add one in the near future.
>>>>>
>>>> That'd be great!
>>>>
>>>>
>>>>> Other notes: I've targeted asciidoc via asciidoctor but there are
>> issues
>>>>> with running asciidoctorj in osgi.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Eugen
>>>>>
>>>>> [1] https://github.com/atlassian/commonmark-java/pulls
>>>>>
>>>>> [2] https://bintray.com/netdava/maven/commonmark-java
>>>>>
>>>>>


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to