All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.reprezen.genflow.openapi3.doc.DocHelper.xtend Maven / Gradle / Ivy

/*******************************************************************************
 * Copyright © 2013, 2016 Modelsolv, Inc.
 * All Rights Reserved.
 * 
 * NOTICE: All information contained herein is, and remains the property
 * of ModelSolv, Inc. See the file license.html in the root directory of
 * this project for further information.
 *******************************************************************************/
package com.reprezen.genflow.openapi3.doc

import org.pegdown.Extensions
import org.pegdown.PegDownProcessor

class DocHelper implements Helper {

	extension HtmlHelper htmlHelper

	override init() {
		htmlHelper = HelperHelper.htmlHelper
	}

	var static extensions = Extensions.SMARTS + Extensions.QUOTES + Extensions.AUTOLINKS + Extensions.TABLES +
		Extensions.FENCED_CODE_BLOCKS + Extensions.STRIKETHROUGH + Extensions.ATXHEADERSPACE
	extension PegDownProcessor = new PegDownProcessor(extensions)

	def String getDocHtml(String doc) {
		doc?.nonEmpty?.toString?.processMarkdown.wrap
	}

	def getDocHtml(String summary, String doc) {
		#[summary, doc].filterNull.join("\n\n")?.processMarkdown.wrap
	}

	def nonEmpty(String text) {
		if(text.trim.isEmpty) null else text
	}

	def private String wrap(String doc) {
		'''
«doc»
''' } def private String processMarkdown(String md) { for (i : 1 .. 3) { try { return md.markdownToHtml } catch (Exception e) { } } return '''Markdown processing error; raw documentation:
«md.htmlEscape»
''' } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy