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

dotty.tastydoc.mdscala.scala Maven / Gradle / Ivy

The newest version!
package dotty.tastydoc

/** Contains function to generate markdown (follows CommonMarkdown specifications)*/
object Md {
  /** Form a header
   *
   *  @param obj Label of the header, usually a String
   *  @param level Header level, 1-6
   *  @return The formed header as a String
   */
  def header(obj: Any, level: Int) : String = {
    require(level <= 6 && level >= 1, "Wrong header level")
    "#" * level + " " + obj.toString + "\n"
  }

  /** Form a header of level 1
   *
   *  @param obj Label of the header, usually a String
   *  @return The formed header as a String
   */
  def header1(obj: Any) : String = {
    header(obj, 1)
  }

  /** Form a header of level 2
   *
   *  @param obj Label of the header, usually a String
   *  @return The formed header as a String
   */
  def header2(obj: Any) : String = {
    header(obj, 2)
  }

  /** Form a header of level 3
   *
   *  @param obj Label of the header, usually a String
   *  @return The formed header as a String
   */
  def header3(obj: Any) : String = {
    header(obj, 3)
  }

  /** Form a header of level 4
   *
   *  @param obj Label of the header, usually a String
   *  @return The formed header as a String
   */
  def header4(obj: Any) : String = {
    header(obj, 4)
  }

  /** Form a header of level 5
   *
   *  @param obj Label of the header, usually a String
   *  @return The formed header as a String
   */
  def header5(obj: Any) : String = {
    header(obj, 5)
  }

  /** Form a header of level 6
   *
   *  @param obj Label of the header, usually a String
   *  @return The formed header as a String
   */
  def header6(obj: Any) : String = {
    header(obj, 6)
  }

  /** Form a fenced code block
   *
   *  @param obj The content of the code block
   *  @param language Specific language for the syntax highlight (default: no language)
   *  @return The formed code block
   */
  def codeBlock(obj: Any, language : String = "") : String = {
    "```" + language + "\n" + obj.toString + "\n```\n"
  }
  /** Transform something in bold
   *
   *  @param obj The content of the code block
   *  @return The object string in bold
   */
  def bold(obj: Any) : String = {
    "**" + obj.toString + "**"
  }

  /** Transform something in italics
   *
   *  @param obj The content of the code block
   *  @return The object string in italics
   */
  def italics(obj: Any) : String = {
    "*" + obj.toString + "*"
  }

  /** Add a link to something
   *
   * @param obj The label of the link
   * @param link The link
   *
   * @return The label linking to the desired link
   */
  def link(label: Any, link: String): String = {
    "[" + label.toString + "](" + link + ")"
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy