先说下选择Markdown编辑器的原因,我们进行平台开发,需要很多的操作手册和API文档,要在网站中展示出来就需要是HTML格式的文件,但是由于内容很多,不可能全部由技术人员进行文档的编写,如果是只有文档操作经验的人来做就会出现很麻烦的情况. 最初,我们先用试着用word来写,再转换成HTML文件保存,但是这样存在几个问题:1.转换出来的文件标签和样式十分的杂乱和冗余,有太多无用的标签,后期要修改样式也十分不容易:2.图片无法保存,在word文档中插入的图片路径是固定的物理路径,或是与文档一起存…
Markdown编辑器的使用与开发入门 在部门做技术分享的时候简单整理了一下手里的资料 1 是什么 1.1 Markdown是一种轻量级标记语言 Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber).它允许人们"使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档". -- 维基百科 1.2 以纯文本形式(易读.易写.易更改)编写文档 Markdown是一种轻量级标记语言,它以纯文本形式(易读.易写.易更改)编写文档,并…
如果内容没有被<ion-content></ion-content>或者<ion-header></ion-header>标签包裹,页面过渡的时候是没有动画效果了. 但设置成"md-transition", "wp-transition"这两种动画效果, 就算没有那两个标签包裹,也会出现页面动画效果. 翻了下源码和看了下动画设置, ios效果的动画效果是加在ion-content或者ion-header的组件上的. 其…
在这篇文章中,兄弟连Linux培训会分享一些可以在 Linux 上安装使用的最好的 Markdown 编辑器.虽然你在 Linux 平台上能找到非常多的 的 Markdown 编辑器,但是在这里我们将尽可能地为您推荐那些最好用的. Markdown 是由著名的 Aaron Swartz 和 John Gruber 发明的标记语言,其最初的解析器是一个用 Perl 写的简单.轻量的同名工具.它可以将用户写的纯文本转为可用的 HTML.它实际上是一门易读,易写的纯文本语言,以及一个用于将文本转为 H…
MVC开发Markdown编辑器(2) MVC Markdown 实时预览 我希望实现一个在线实时预览的Markdown编辑器,左边是编辑处,右边是实时预览界面. 准备工作 引入相关js和css 这里我需要引入bootstrap的css 用来做基本的布局 jquery以及之前提到过的mdd的js和css <link href="~/Scripts/mdd_styles.css" rel="stylesheet" /> <script src=&qu…
MVC markdown MVC开发Markdown编辑器(1) 前言 安装 解析 结束语 前言 想在近段时间通过mvc开发个人博客,编辑器希望是markdown风格的,这样写文字会很方便.首先先解决在.net下markdown编辑器的实现,查了许多资料,有许多开源的markdown解析引擎,我暂且用的是在Nuget排名较高的Markdowndeep来解析,语法非常简单,几句代码轻松解析. PS:接下来若出现mdd即代表MarkdownDeep 安装 在Nuget中通过Install-Packa…
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/10/29/hexomd-introduction   文章目录 1. 功能列表 2. 基本markdown语法 3. 自动更新 4. 实时预览窗口 5. 样式选择与自定义 6. 云存储配置 7. 自动上传图片 8. 一键文档分享 9. emoji表情功能. 10. 导出html,pdf文件功能. 11. 目录语法 12. 备注 做这个markdown编辑器是因为自己平常用ma…
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/04/25/hexomd-04/   程序打包   文章目录 1. 打开新窗口 2. 预览功能 3. 优化体验 3.1. 滚动条随动 3.2. 样式美化 3.3. 代码块高亮 3.4. 关闭主程序前先自动关闭预览窗口 4. 总结 5. 附件 上一篇我们实现了系统模块的一些功能,对angular的使用更深入了一点. 今天这篇我们要实现实时预览的功能,将学习到如何使用nw.js打开…
原始冲动 最近一直在学习 Electron 开发桌面应用程序,目的是想做一个桌面编辑器,虽然一直在使用Typore这款神器,但无奈Typore太过国际化,在国内水土不服,无法满足我的一些需求. 比如实现本地图片上传到云端(mac版可以借助iPic),无法帮我把本地图片和文章一起发布到博客园.CSDN.SegmentFault.掘金等国内知名博客平台,要么使用一些免费或付费的图床,借助类似iPic的工具,把图片一键上传到云端. 我个人也尝试过七牛云的免费10G存储空间,但是说实话,这些免费的空间到…
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 原始冲动 最近一直在学习 Electron 开发桌面应用程序,目的是想做一个桌面编辑器,虽然一直在使用Typora这款神器,但无奈Typora太过国际化,在国内水土不服,无法满足我的一些需求. 比如实现本地图片上传到云端(mac版可以借助iPic),无法帮我把本地图片和文章一起发布到博客园.CSDN.SegmentFault…
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/05/19/hexomd-07/   文章目录 1. 准备工作 2. 目录语法 3. emojis表情语法 3.1. 准备表情素材 3.2. 实现功能 4. 编辑器语法高亮 5. 总结 6. 附件 上一篇我们实现了自动更新的功能. 在前面的6篇中,我们基本没做什么创造,都只是像玩乐高那样把零件拼接成我们想要的东西.今天这篇将对marked进行简单扩展, 增加我们的markdow…
CozyRSS开发记录1-原型图与Grid 1.使用MockPlus画出最简陋的原型图 这个界面参考了目前我最常使用的RSS阅读-傲游浏览器的内置RSS阅读器.主体框架划分为上.左下.右下三块,分别是标题栏(工具类)TitleBar.订阅列表栏RSSListFrame.订阅内容栏RSSContentFrame.订阅内容栏又划分为上.左下.右下三部分,分别是RSSContentTitle.RSSContentList.RssContentView. 2.建立CozyRSS工程,用Grid划分窗口…
Dokuwiki 二次开发记录 [转]http://www.syyong.com/other/Dokuwiki-Secondary-Development-Record.html DokuWiki 是一种在 GPLv2 下获得许可并以 PHP 编程语言编写的 wiki 应用程序. 它适用于纯文本文件,因此不需要数据库.它的语法与 MediaWiki 使用的语法类似. DokuWiki 具有丰富的插件,如Markdown.sidebar.流程图.时序图.svg.数学公式.ToDo等等这些实用的插件…
CozyRSS开发记录22-界面退化 1.问题1-HtmlTextBlock 找的这个HtmlTextBlock有很严重的bug,有时候显示不完全,有时候直接就崩了.然后看了下代码,完全是学生仔水平写的啊! 2.问题2-MaterialDesignToolkit 有严重的性能问题.Github上有一个文档可以缓解: https://github.com/ButchersBoy/MaterialDesignInXamlToolkit/wiki/Performance 然后,就算把帧数改低,把动画禁…
CozyRSS开发记录21-默认RSS源列表 1.默认列表 在第一次使用CozyRSS的情况下,我们让它内置五个RSS源吧: 2.响应RSS源的更新 先不处理RSS源列表项的点击,响应下下拉菜单里的更新: 分别通知主窗口和RSS订阅内容栏: 主窗口负责把侧滑菜单缩回去: 内容栏里更新内容: 最终效果一般般,但是能用,不过有时候会异常,后面再来看吧:…
CozyRSS开发记录20-CanResizeWithGrip 1.窗口样式 首先,WindowStyle有四种: 然后,对于窗口缩放的ResizeMode,也有四种,CanResize和CanResizeWithGrip两种都可以拖放缩放,CanResizeWithGrip右下角有网格: 2.无边框并且可缩放 如果给窗口的ResizeMode设置CanResize,那么,即使给WindowStyle设置了None,窗口照样有边框,而CozyRSS要求是无边框的. 实现无边框并且可缩放,网上也提…
CozyRSS开发记录19-窗口标题栏交互 1.谈谈对mvvm解耦的看法 在使用mvvm时,如何操作窗口,这是一个问题.这个问题的关键点是:mvvm是把view和viewmodel解耦了的,很多写法一不小心又把它们耦合起来了. 那么,view和viewmodel解耦有什么好处,不解偶又有什么坏处呢?我这里也不深入讨论了,只说一个场景:CozyRSS假使要做android版和ios版了,我的model和处理的库肯定是不用改的,那viewmodel需要改吗? 前面说到,mvvmlight是跨平台的,…
CozyRSS开发记录18-番外之Atom1.0的支持 1.对CozyRSS.Syndication批判一番 由于我工作的主要开发语言是c++,所以会看到我的c#代码写得非常朴素,很多语法糖都没有用上.Cozy的第三顺位开发MaxTan(星爷)看了CozyRSS.Syndication的代码后,觉得来一个大改造.我们来看一下星爷的改动吧! 2.利用反射自动解析xml 首先,我把rss的xml的model定义出来了,里面每一个成员变量都是对应上xml的标签的.那么,自然可以不用写标签名了,星爷的代…
CozyRSS开发记录17-Html2Xaml 1.RssContentView还需要优化 上回做了RssContentView的显示,但是对于rss返回的描述(摘要),连换行的没有,更别说里面还有html描述符了.换行比较好解决,加个限定大小,再加一个自动换行的描述就可以了: TextWrapping="Wrap"  Margin="10 12 10 10" 2.在wpf里显示html的方法 显示html,有两个方向: A.直接显示html B.将html转换成别…
CozyRSS开发记录16-RssContentView显示 1.RssContentView的布局和绑定 继续参照原型图来写xaml: 然后在RSSContentFrameViewModel里提供绑定的几个属性: 后面,这些属性会根据左侧RSSContentList里所选择的来显示. 2.RSSContentList选定项变色 为了体现当前选择项和其它项的区别,我们在xaml里来描述一下.这里处理了IsMouseOver和IsFocused两种触发器: 3.显示所选 最后,我们来控制显示的内容…
CozyRSS开发记录15-获取和显示RSS内容 1.内容列表 我们先给RSSContentFrame增加一个ViewModel,里面和RSS源列表一样,提供一个ObservableCollection.列表项的内容换成绑定到RSSContentList_ListItemViewModel: 2.更新按钮 将RSSContentTitle里的刷新按钮,绑定到UpdateContentCommand.点击更新按钮时,获取feed内容,显示标题和内容列表: 3.实际效果 打开界面时,什么内容都没有…
CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添加按钮响应时,将文本框里的字符串作为命令参数: 响应时,如果参数是string类型,就做添加源的操作: 2.读写到文件 在FeedManageService中,我们内部调用读写文件.在第一次取时读,每次修改时写: 就这样简单的几步,源管理的界面和功能就基本都完工了,接下来我们要开始真正的把RSS的内…
CozyRSS开发记录13-添加订阅的对话框 1.设计对话框 首先,还是先用MockPlus来画个原型图: 因为用了MaterialDesignToolkit,那么可以很方便的有一个蒙层的效果. 2.实现对话框 在MaterialDesignToolkit中,Dialog是以UserControl来描述的.新建一个UserControl,内容如下: 这样,对话框的大体布局就完成了,然后是绑定一下两个按钮的命令,可以用MaterialDesignToolkit内置的: 3.调起对话框 给主界面里的…
CozyRSS开发记录12-MVVM,绑定RSS源和数据 1.引入MvvmLight MVVM最近貌似在前端那块也挺火的.据说,WPF的程序如果不用MVVM,那跟MFC和winform的,也没啥区别.用上MVVM,程序瞬间高大上.MVVM的好处和介绍,网上多得是,这里也不多说,推荐一篇比较好的文章: http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial MVVM相关的库也很多,比较有名的有:Prism.R…
CozyRSS开发记录11-够用的RSS源管理 1.分析需求 先随手画个用例图来看看有哪些参与者会访问我们的源管理: 2.搞一个Controller类 根据前面分析得出的用例图,我们就可以来设计实现一个FeedManageController类了.类提供的接口参照前面的图,实现上也先不考虑太多的异常处理和线程安全. 3.增加父子关系来处理删除 Controller类的实现也没太多好说的,不过为了处理删除,给FeedCategory和FeedNode增加了一个parent成员. 增加了parent…
CozyRSS开发记录10-RSS源管理 1.RSS源树结构 做解析体力活很多,把RSS解析的优化先放放,先玩一玩RSS源的管理. 虽然在初步的设计中,RSS源是以一个列表的方式来展示,但是,我觉得如果可以对RSS源进行分类管理,那就更好了.分类又可以分成三种情况: A.单层分组 B.一个RSS源可以属于多个分类的图 C.树状结构 随便想了想,这里就用树状结构来管理RSS源吧,跟浏览器的收藏夹管理形式类似. 对RSS源树相关的定义如下: 随便写点代码,试一下构造一颗树.这里没有考虑如何方便使用,…
CozyRSS开发记录9-快速实现一个RSS解析器 1.再读RSS标准 既然需要自己实现一个RSS解析器,那自然需要仔细的读一读RSS的标准文档.在网上随便找了两份,一份英文一份中文: http://cyber.law.harvard.edu/rss/rss.html http://wangjunle23.blog.163.com/blog/static/11783817120132220851144/ 根据文档,把解析结果的Model定义好如下: 2.xml解析随便写写 RSS用System.…
CozyRSS开发记录8-解析一份RSS 1.使用Rss20FeedFormatter解析RSS 使用Rss20FeedFormatter配合XmlReader来解析RSS非常的简单,几行搞定: 来试试效果: 貌似一切顺利,爽的一笔. 2.这是一个悲伤的故事 然而,故事总是没有这么简单.我们再试一下另一个网站的RSS. 虽然可能是因为这个网站提供的RSS不规范造成的,但是这个RSS在别的RSS阅读器都没问题啊! 看看Mono里的代码: 真是呵呵啊. 3.CozyRSS.Syndication 所…
基于 Angularjs&Node.js 云编辑器架构设计及开发实践 一.产品背景 二.总体架构 1. 前端架构 a.前端层次 b.核心基础模块设计 c.业务模块设计 2. Node.js端设计 三.单元测试 四.持续集成及自动部署 五.打包 六.总结 一.产品背景 产品是一个内部项目,主要是基于语义网本体的云端编辑器,用于构建语义知识库.抛开语义网本体概念不谈 ,简单说就是一个简易的visual studio 云端编辑器.而图形显示则是在百度脑图的基础上改进的,增加了自己的形状和颜色,以及其他…
CozyRSS开发记录7-了解RSS 1.初窥RSS 多找几个RSS源就会发现,有的源是用Atom协议提供的,有的源是RSS协议提供的.RSS协议有过几个版本,0.9.1.0和2.0等,理论上支持2.0是能向前兼容1.0的.这里我们先只考虑RSS2.0. 首先,我下载了一份最新的配色网的RSS. 之前说过,RSS是XML的子集,我们先看看这份XML的DOM结构: Channel下为RSS的主要内容,我们姑且称它为RssFeed,而每一个item是一条可读的RSS内容,我们称它为RssItem.…