承接 schumacherfm/mage2-markdown 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

schumacherfm/mage2-markdown

Composer 安装命令:

composer require schumacherfm/mage2-markdown

包简介

Markdown or Parsedown for Magento2

README 文档

README

Markdown template engine for Magento2.

This template engine is meant to be used additionally to the .phtml files and does not provide any .md template file.

A use case would be to replace some simple .phtml files with Markdown or uses the Markdown template files as some kind of CMS.

You can write any PHP in the Markdown files. After PHP has been executed the template will be transformed from Markdown to HTML.

Events & Configuration

The Markdown template engine class dispatches one event which lets you modify the current parser.

Event name: markdown_init with event object: engine.

Configuration options can be found Stores -> Settings -> Configuration -> Advanced -> Developer -> Markdown.

You can choose from one of the three engines:

Default engine is the first one.

Frontend Integration

Example use case: Disable WYSIWYG editor and switch the content from the product tables to full Markdown support.

We're deactivating the WYSIWYG editor completely in the backend via the option

Stores -> Configuration -> General -> Content Management -> WYSIWYG Options with value Disable completely. As a side effect you backend loads much faster ;-(

Your template files must have the file extension .md to get automatically recognized.

In your theme change catalog_product_view.xml to

    <block template="product/view/attribute.md" class="Magento\Catalog\Block\Product\View\Description" name="product.info.overview" group="detailed_info" after="product.info.extrahint">
        <arguments>
            <argument name="at_call" xsi:type="string">getShortDescription</argument>
            <argument name="at_code" xsi:type="string">short_description</argument>
            <argument name="css_class" xsi:type="string">overview</argument>
            <argument name="at_label" translate="true" xsi:type="string">none</argument>
            <argument name="title" translate="true" xsi:type="string">Overview</argument>
            <argument name="add_attribute" xsi:type="string">itemprop="description"</argument>
        </arguments>
    </block>

Note: We are only changing the template extension.

    <block template="product/view/attribute.md" class="Magento\Catalog\Block\Product\View\Description" name="product.info.description" group="detailed_info">
        <arguments>
            <argument name="at_call" xsi:type="string">getDescription</argument>
            <argument name="at_code" xsi:type="string">description</argument>
            <argument name="css_class" xsi:type="string">description</argument>
            <argument name="at_label" xsi:type="string">none</argument>
            <argument name="title" translate="true" xsi:type="string">Details</argument>
        </arguments>
    </block>

@todo figure out best method to easily change the template name for those blocks.

These changes mean that product short description and long description will now be parsed with Markdown!

Example attribute.phtml converted to attribute.md

Click here to view the original attribute.phtml

The next excerpt is from attribute.md which only shows the last six lines:

... PHP stuff ...
<?php if ($_attributeValue): ?>
<div class="product attibute <?php echo $_className?>">
    <?php if ($_attributeLabel != 'none'): ?><strong class="type"><?php echo $_attributeLabel?></strong><?php endif; ?>
    <div markdown="1" class="value" <?php echo $_attributeAddAttribute;?>><?php echo $_attributeValue; ?></div>
</div>
<?php endif; ?>

Note that we add here markdown="1" into the div and we must change the parser to michelfextra.

That's it! All our product descriptions will now be outputted with Markdown formatting!

A hackathon project could be to replace the WYSIWYG editor with a Markdown editor in the backend.

Developers

If you wish to add any other Markdown engine simply create your own module and add a di.xml:

<type name="SchumacherFM\Markdown\Framework\View\MarkdownEngineFactory">
    <arguments>
        <argument name="engines" xsi:type="array">
            <item name="myParser" xsi:type="string">\Namespace\Module\MyAwesomeMarkdownParser</item>
        </argument>
    </arguments>
</type>

This entry will also appear in the backend configuration section.

Your MyAwesomeMarkdownParser must implement: MarkdownEngineInterface.

Tests

@todo

Installation via Composer

Add the following to the require section of your Magento 2 composer.json file

"schumacherfm/mage2-markdown": "dev-master"

additionally add the following in the repository section

    "repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/SchumacherFM/Magento2-Markdown.git"
    }
]

run composer update

add the following to app/etc/config.php

'SchumacherFM_Markdown'=>1

Compatibility

  • Magento >= 2
  • php >= 5.4.0

Support / Contribution

Report a bug using the issue tracker or send us a pull request.

Instead of forking I can add you as a Collaborator IF you really intend to develop on this module. Just ask :-)

I am using that model: A successful Git branching model

For versioning have a look at Semantic Versioning 2.0.0

History

0.1.0

  • Initial release

License

OSL-30

Author

Cyrill Schumacher

My pgp public key

统计信息

  • 总下载量: 14
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: OSL-3.0
  • 更新时间: 2018-06-08

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固