benjaminhoegh/parsedown-extended

v1.4.0 2024-11-07 22:19 UTC

README

ParsedownExtended

Parsedown Extended

Explore Documentation »

Report bug · Request feature · Discussions


GitHub Release Packagist Downloads GitHub License

Table of contents

Introduction

ParsedownExtended is an extention for Parsedown, offering additional features and functionalities. It is designed to provide an easy-to-use Markdown parsing solution while extending the capabilities of the base Parsedown library.

Stand alone versions of the extended features are also available as separate libraries:

Features

ParsedownExtended includes a variety of features to enhance your Markdown parsing experience:

  • Task Lists: Create simple task lists in Markdown.
  • Smartypants: Automatically convert straight quotes to curly, dashes to en-dash and em-dash, etc.
  • Emojis: Support for rendering emojis.
  • Heading Permalinks: Generate permalinks for your headings.
  • Table of Contents: Automatically generate a table of contents based on headings.
  • Keystrokes: Render keystroke combinations.
  • Marking: Mark text within your documents for emphasis or distinction.
  • Superscript and Subscript: Render text as superscript or subscript.
  • Diagrams Syntax Support: Recognizes diagram syntax for integration with libraries like mermaid.js and chart.js.
  • LaTeX Syntax Support: Detects LaTeX syntax, suitable for mathematical expressions, to be rendered with libraries like KaTeX.js.
  • Predefined Abbreviations: Define and use abbreviations easily.
  • GFM Alerts: Create alerts using GitHub Flavored Markdown Alert syntax there can be customized into your own language, or even create your own.
  • Customizable Options: Extensive options for customizing each Markdown element.
  • Additional Features: ParsedownExtended continuously evolves, adding more features over time.

Getting started

Manual

Download the source code from the latest release You must include parsedown.php 1.7+ Include ParsedownExtended.php

require 'Parsedown.php';
require 'ParsedownExtra.php'; // optional
require 'ParsedownExtended.php';

use BenjaminHoegh\ParsedownExtended\ParsedownExtended;

$ParsedownExtended = new ParsedownExtended();

echo $ParsedownExtended->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>
// you can also parse inline markdown only
echo $ParsedownExtended->line('Hello _Parsedown_!'); # prints: Hello <em>Parsedown</em>!

Using composer

From the command line interface, navigate to your project folder then run this command:

composer require benjaminhoegh/parsedown-extended

Then require the auto-loader file:

require 'vendor/autoload.php';

use BenjaminHoegh\ParsedownExtended\ParsedownExtended;

$ParsedownExtended = new ParsedownExtended();

echo $ParsedownExtended->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>
// you can also parse inline markdown only
echo $ParsedownExtended->line('Hello _Parsedown_!'); # prints: Hello <em>Parsedown</em>!

Bugs and feature requests

Have a bug or a feature request? Please first read the issue guidelines and search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

Contributing

Please read through our contributing guidelines. Included are directions for opening issues, coding standards, and notes on development.

All PHP should conform to the Code Guide.

Community

Get updates on ParsedownExtended's development and chat with the project maintainers and community members.

Copyright and license

Code and documentation copyright 2024 the ParsedownExtended Authors. Code released under the MIT License. Docs released under Creative Commons.