schumacherfm/markdown

Markdown 作为 Magento 的模块!取代了 TinyMCE 编辑器。Markdown 是一种用于网络作者的文本到 HTML 转换工具。Markdown 允许您使用易于阅读、易于书写的纯文本格式进行编写,然后将其转换为结构化的 XHTML(或 HTML)

安装: 10

依赖者: 0

建议者: 0

安全: 0

星级: 63

关注者: 8

分支: 8

开放问题: 0

语言:JavaScript

类型:magento-module

v2.2.2 2018-06-08 18:10 UTC

README

image

Markdown 是一种用于网络作者的文本到 HTML 转换工具。Markdown 允许您使用易于阅读、易于书写的纯文本格式进行编写,然后将其转换为结构化的 XHTML(或 HTML)。

  • 完全支持 Markdown Extra
  • 渲染所有 CMS 页面和所有 CMS 块(Mage_Cms_Block_Block 和 Mage_Cms_Block_Widget_Block)
  • 将所有交易性电子邮件作为 Markdown(或 MD Extra)渲染
  • 产品目录和类别的简短和长描述字段的渲染需要在 phtml 文件中自行实现。
  • 集成了 EpicEditor:分屏编辑、实时预览、自动草稿保存和离线支持。[1]
  • 支持在 textarea 字段中拖放、复制粘贴和经典文件上传图片。[自动图片上传](https://developer.mozilla .org/en-US/docs/Web/API/FileReader) 集成(>=IE10, Safari 6.0.2, FX3.6, Chrome 7, Opera 12.02)
  • 将 HTML 转换为 Markdown。客户端通过 JavaScript 实现。
  • 预览模式可以是实时渲染的 Markdown 或其 HTML,或者通过选择适当的商店视图来实时预览当前页面。
  • 在系统 -> 权限 -> 角色下为每个角色设置权限,用户可以查看 Markdown 编辑器的不同部分

Markdown 语法的完整文档可在 John 的 Markdown 页面 上找到

[1] 可能会在未来的版本中被移除

我为什么需要这个?

因为你想摆脱 TinyMCE,并强制你的客户使用简单且有限的语法。

您还可以使用外部编辑器编辑您的 markdown 文本

Mac OS X

所有平台

  • PhpStorm
  • Sublime Text
  • 基于云:StackEdit

Windows

Mashable: 78 个用于编写和预览 Markdown 的工具

配置

可以按商店视图设置所有选项。

  • 启用或禁用 Markdown 解析器
  • 启用或禁用 Markdown Extra 解析器
  • 在系统 -> 权限 -> 角色中为每个角色设置权限
  • 设置 Markdown 检测标签
  • 隐藏图片插入按钮
  • 启用/禁用电子邮件模板中的 Markdown 渲染
  • 选择 CSS 预览样式,从 ~20 个不同的主题中选择一个
  • 选择 Markdown 预览样式,从 9 个不同的主题中选择一个
  • 配置三个预览 iFrame 的 CSS 样式
  • 如果在使用交易性电子邮件时使用,请添加 CSS 文件的路径
  • 启用或禁用 Markdown EpicEditor(默认禁用)
  • 启用或禁用通过点击 textarea 字段来加载 EpicEditor
  • Markdown EpicEditor 的完整配置 - 在系统 -> 配置部分添加 JSON 对象
  • 定义自定义上传文件夹进行图片上传。此文件夹将自动创建
  • 启用或禁用 HTML 到 Markdown 转换器 reMarked.js
  • 为reMarked.js添加完整配置。在系统 -> 配置部分添加一个JSON对象
  • 通过在系统 -> 配置部分添加布局处理程序,将Markdown集成到自己的模块中

所有包含Markdown语法的字段都必须包含该检测标签,否则将无法解析。

通过拖放上传文件仅在您单击一次textarea字段时才有效。在拖动模式期间,将显示绿色边框,表示可以通过拖放上传文件。如果在拖动过程中看不到该边框,则无法上传文件。

演示内容: http://daringfireball.net/projects/markdown/syntax.text

错误

交易电子邮件中的CSS

交易电子邮件在其style标签中包含CSS。也许一些邮件服务提供商会移除该style标签或无法渲染它。因此,可能需要对CSS进行一些转换,使其添加到每个html标签的style属性中。

	<h1 style="font-size..."></h1>

开发者使用

在.phtml文件中的任何位置,您都可以通过以下方式访问渲染器

<?php echo Mage::helper('markdown')->render($_description, [array $options] ); ?>

如果您需要支持Magento变量(包括图像),则应渲染原始的Magento输出。例如,在catalog/product/view/description.phtml中,可以使用以下代码来渲染markdown,包括图像和/或其他Magento变量

<?php echo Mage::helper('markdown')->render($this->helper('catalog/output')->productAttribute($this->getProduct(), $_description, 'description')); ?>

目录产品和类别描述字段已在后端启用了Markdown功能。对于前端,您必须实现上述代码。

CMS页面(Mage_Cms_Model_Page的实例)和块(Mage_Cms_Block_Block和Mage_Cms_Block_Widget_Block的实例)将自动渲染,但前提是存在检测标签。

Magento小工具和变量将自动保留并正确渲染

{{(widget|config|media|...) ... }}

为自定义使用配置Markdown解析器

$instance = Mage::getModel('markdown/markdown_render');
$renderer = $instance=>getRenderer();
$renderer->empty_element_suffix = '>';
$renderer->tab_width = 5;
$instance->setOptions(array(
    'force'          => FALSE, // force rendering even if not markdown
    'protectMagento' => TRUE, // protect Magento widgets/variables ...
    'extra'          => FALSE, // force rendering of markdown extra if true
));
echo $instance->renderMarkdown('text goes here');

使用Markdown Extra解析交易电子邮件的技巧

  • 删除body标签
  • 使用<div markdown="1">包括在其它标签中,包含markdown=1的标签可能不会始终正常工作

如何将Markdown集成到我的模块中?

...

修改后端

您可以为Markdown观察者添加一个事件,该事件生成后端视图。

        Mage::dispatchEvent('markdown_merge_after_element_html', array(
            'instance' => $this,
        ));

待办事项

  • 对于3.0版本,用StackEdit替换EpicEditor
  • 为Magento2创建一个版本

安装说明

  1. https://github.com/colinmollenhour/modman安装modman
  2. 切换到Magento根目录
  3. modman init
  4. modman clone git://github.com/SchumacherFM/Magento-Markdown.git

请阅读Vinai的优秀文章: Composer安装

关于

历史

2.2.1

  • 修复实时预览URL(Paul)
  • 修复system.xml模块定义(Paul)
  • 修复#39 #42:隐藏的插入图像按钮始终是隐藏的。
  • 修复:自定义布局处理程序与array_flip不兼容。

2.2.0

  • 更新PHP Markdown库到版本1.4.1(2014年5月4日)。更多详细信息请见此处
  • 更新reMarked.js到最新版本
  • 更新marked.js到最新版本。修复了一些正则表达式错误。

2.1.1

  • 更新EpicEditor
  • 更新marked.js到版本v0.3.2
  • 更新reMarked.js到最新版本,修复了大量错误。
  • beautify-html.js (AMD)的小更新
  • 更新highlight.js到版本8.0 http://highlightjs.org;新主题
  • 移除缩短的数组语法(PHP 5.4功能)。感谢 Dan Gibbs
  • 错误修复:当Markdown被禁用时,在电子邮件编辑器中隐藏Markdown。感谢Paul Hachmang!

2.1.0

  • 启用/禁用电子邮件模板中的Markdown渲染。(作者:Paul Hachmang)
  • 更新marked.js
  • 错误修复:HTML预览代码标记
  • 错误修复:HTML预览按钮应移除
  • 错误修复:当内容为空时,预览和实时预览选项卡显示错误的请求
  • 功能:野外的使用反馈和想法。
  • 功能:设置以启用/禁用预览、实时预览和HTML预览选项卡(见权限 -> 角色)
  • 合并拉取请求 更原生化的样式
  • 添加新的后端文本区域字段样式选项
  • 后端重大变更:GitHub问题 #18
  • 按钮重命名
  • EpicEditor默认禁用
  • 带有外发光效果的文本区域字段样式改进
  • 除了图像拖放,还添加了图像的上传和复制粘贴功能
  • 增强预览模式

2.0.2

  • 小错误修复。GitHub问题 #17(错误的模块名称)和 #13(reMarked.js修复了空的thead)

2.0.1

  • 小错误修复。GitHub问题 #14

2.0.0

  • 重大变更
  • 移除对<= IE8的支持
  • 添加EpicEditor,内建marked.js,分割全屏编辑,实时预览,自动草稿保存和离线支持。缺点:当插入Magento小部件、图像或变量时,您必须关闭编辑器以插入该项目,然后再次打开。(文本区域和编辑器之间缺少双向同步)
  • 即使EpicEditor未加载或禁用,也可以预览HTML源代码。
  • 如果卸载EpicEditor,则可以使用HTML5 FileReader直接上传图像文件。由于EpicEditor的内容可编辑模式,FileReader无法实现,只能在文本区域字段中...
  • 添加reMarked.js以将HTML转换为Markdown。reMarked.js可以通过JSON对象完全配置。

1.4.2

  • Magento Connect
  • 兼容性:Magento >= 1.5

1.4.1

  • 修复readme
  • Magento Connect

1.4.0

  • 更新readme
  • 添加来自https://github.com/dcurtis/markdown-mark的修改过的Markdown标志
  • 由于Magento Connect指南,对名称进行微小修改为Mage Markdown
  • CMS编辑器字段中的实时预览(不适用于Markdown Extra)
  • 电子邮件模板可以具有Markdown Extra模式,而默认配置为“正常”Markdown模式
  • 实现自己的渲染器必须实现SchumacherFM_Markdown_Model_Markdown_Interface

1.3.0

  • 通过Ajax加载后端Markdown Extra预览

1.2.0

  • 在事务性电子邮件中使用Markdown
  • 错误修复

1.1.0

  • 更新Markdown解析器
  • 实现了Markdown extra

1.0.0

  • 初始版本

兼容性

  • Magento >= 1.5
  • php >= 5.2.0

此扩展可能与1.5之前的Magento版本一起工作。

支持/贡献

使用问题跟踪器报告错误或向我们发送拉取请求。

如果您真的打算开发此模块,我可以将您添加为合作者,而不是分支。只需询问即可 :-)

我们使用:一个成功的Git分支模型语义版本控制2.0.0

许可:BSD-3-Clause

Magento Markdown实现

版权(c)2014 Cyrill (at) Schumacher dot fm

版权所有。

PHP Markdown库

reMarked.js

marked.js

highlight.js

Markdown样式

beautify-html

EpicEditor

基于Markdown

版权所有 (c) 2003-2005 John Gruber

http://daringfireball.net/

版权所有。

在满足以下条件的情况下,允许重新分发和使用源代码和二进制代码,无论是否修改:

  • 源代码的重新分发必须保留上述版权声明、本许可列表和以下免责声明。

  • 二进制形式的重新分发必须在文档和/或其他与分发一起提供的材料中复制上述版权声明、本许可列表和以下免责声明。

  • 不得未经事先书面许可使用“Markdown”名称或其贡献者的名称来认可或推广源自本软件的产品。

本软件由版权所有者和贡献者“按原样”提供,并明确或隐含地放弃任何明示或暗示的保证,包括但不限于适销性和适用于特定目的的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论其造成的原因是什么,以及基于何种责任理论,无论是合同、严格责任还是侵权(包括疏忽或其他),即使已告知此类损害的可能性。

后端预览渲染通过

作者

Cyrill Schumacher - 我的pgp公钥

@SchumacherFM

澳大利亚悉尼制造 :-)

如果您考虑捐赠,请向以下链接贡献: http://www.seashepherd.org/