rainfu

Results 7 comments of rainfu

关于插件机制,提几点建议 1. 这个自研的editor已经做了相当多的工作👍🏻,我又研究了下代码,觉得可以将marktext扩展为标记式语言编辑器支持更多文本格式,核心解析markdown,扩展支持其它格式,这样会类似codemirror 有更大的社会价值及商业价值,后续我会开个分支研究下这个支持作者 2. 现有parser代码仍有扩展上的困难,希望以marked为原型,以插件方式实现每个标记,让每个标记实现rule,renderer,activerender这样的抽象方法全局解析,这样每种标记文件仅需在配置中包括block与inline插件即可,Markdown基本标记可作为全局标记,每种标记文件可拥有私有扩展插件 3. css尽量不要全局定义,交给插件本身,这样扩展会更轻松,比如sourcecode模式,完全无需codemirror实现,在插件中修改下CSS即可 4. 插件化我不够专业,作者可以联系下minimajs的作者,我觉得他应该能提供更多建设性意见.

第1点的意思跟marked无关。我是说marktext目前仅是一个markdown编辑器,但如果规划良好(实际已经完成了80%的工作),很容易做所有mark语言的编辑器,markdown仅是mark语言的一种,其它仅github就提供reStructedText,Textile等上十种格式,在实际应用中其它行业与公司也有自用的mark语言,marktext核心可专注 markdown,但提供接口让其它人进行扩展,类似以下这种方案,因为仅是示例,载图也仓促,见谅。 ![支持新格式](https://user-images.githubusercontent.com/2120372/42802776-77181db8-89d6-11e8-8333-1addf18b3de2.gif) 编辑器为每种文件格式配置一个设置文件,比如 `{ type:'markdown',block:{block1,block2,...},inline:{inline1,inline2...}},{type:'textile',block:{....}} ` ,每个标记都按插件加载,这样子,用户就可以扩展出任何想要实现的 mark语言:)

第3点我理解的是既然每个标记都已经得到解析,那么sourcecode模式以 snabbdom 解析的话实际就是换个class的模型,比如 h2在常规模式的class类同html,在sourcecode模式下将样式变化为codemirror指定的高亮语法,因为没研究codemirror,这点不知我理解的对不对,。

@Jocs 本项目wiki页,在新建一个wiki的时候会有个编辑器其中包含一个 mark标记语言列表,实际上你不需要知道别人怎么实现他们,你只需要提供一个接口,象codemirror那样让用户有清晰的扩展动机,主版本更新也不会影响他们的代码即可。

能不能开个plugin的分支,我会做些尝试工作,因为现在合并到master不太现实,对核心代码的更攻需要与你反复的沟通与优化,目前来讲也不宜太激进 我想可以这样, 1. 定义主要扩展点与核心服务 2. 实现菜单的插件化,这个不难,但会重新定义目前menu里的所有菜单以便在插件加载完后生成所有menuitem更灵活 3. 实现文件格式的插件化,支持多种文件格式,不同文件格式加载不同的block与inline插件,这是核心内容,看能不能直接parse到h函数,rule,parse,render,sourcerender分解到每个插件

我已经提交了一部分实验代码,代码位置:https://github.com/rainfu/marktext/tree/develop 目标仍旧是希望marktext通过插件化实现多文件格式支持,插件易于第三方扩展。目前完成菜单相关部分的内容 ### 菜单相关 1. 菜单插件化 - 菜单的任意位置,包括一级菜单均可扩展 - 扩展的菜单可精确指定父菜单,同级排序,指定位置 2. 对菜单的扩展点进行初步规划 - 文件格式在菜单中的扩展 - 新文件格式在文件>新建文件建立子菜单 - 新文件格式在帮助>syntax中建立子菜单 - 新文件格式的block,inline的菜单将在切换时动态生成 - 文件来源在菜单中的扩展 - 通过第三方网盘dropbox等获得文件时在文件》打开网盘》建立子菜单 - 设置的扩展 - 插件扩展>设置中的子级菜单对设置进行完整控制 - 插件扩展>设置>通用>配置内容添加设置项...

没什么用,最后直接在android代码里改死:) > @Override protected void pluginInitialize() { super.pluginInitialize(); APP_KEY = webView.getPreferences().getString(WEBIO_APP_ID, ""); APP_KEY="xxxxxxxxxxx"; REDIRECT_URL = webView.getPreferences().getString(WEBIO_REDIRECT_URL, DEFAULT_URL); WbSdk.install(WeiboSDKPlugin.this.cordova.getActivity(),new AuthInfo(WeiboSDKPlugin.this.cordova.getActivity(), APP_KEY, REDIRECT_URL, SCOPE)); 另外,微博在ios能登录不能分享,不报错 @iVanPan 环境:cordova 7.1.0 / ios 4.5.4 /weibosdk...