博客终于开通,试一试格式是否优美

欢迎使用 Cmd Markdown 编辑阅读器

[TOCM]javascript

咱们理解您须要更便捷更高效的工具记录思想,整理笔记、知识,并将其中承载的价值传播给他人,Cmd Markdown 是咱们给出的答案 —— 咱们为记录思想和分享知识提供更专业的工具。 您可使用 Cmd Markdown:html

  • 整理知识,学习笔记
  • 发布日记,杂文,所见所想
  • 撰写发布技术文稿(代码支持)
  • 撰写发布学术论文(LaTeX 公式支持)

cmd-markdown-logo

除了您如今看到的这个 Cmd Markdown 在线版本,您还能够前往如下网址下载:java

Windows/Mac/Linux 全平台客户端

请保留此份 Cmd Markdown 的欢迎稿兼使用说明,如需撰写新稿件,点击顶部工具栏右侧的 新文稿 或者使用快捷键 Ctrl+Alt+N

什么是 Markdown

Markdown 是一种方便记忆、书写的纯文本标记语言,用户可使用这些标记符号以最小的输入代价生成极富表现力的文档:譬如您正在阅读的这份文档。它使用简单的符号标记不一样的标题,分割不一样的段落,粗体 或者 斜体 某些文字,更棒的是,它还能够python

1. 制做一份待办事宜 Todo 列表

  • [ ] 支持以 PDF 格式导出文稿
  • [ ] 改进 Cmd 渲染算法,使用局部渲染技术提升渲染效率
  • [x] 新增 Todo 列表功能
  • [x] 修复 LaTex 公式渲染问题
  • [x] 新增 LaTex 公式编号功能

2. 书写一个质能守恒公式1

单行公式显示效果ios

$$E=mc^2$$c++

行内的公式 $$E=mc^2$$ 行内的公式,行内的$$E=mc^2$$公式。算法

我也是个行内公式 $$\sum_{i}^Nmc^2=f(N)$$ 行内公式用双$符号包围.编程

$$x > y$$浏览器

$$\(\sqrt{3x-1}+(1+x)^2\)$$安全

$$\sin(\alpha)^{\theta}=\sum_{i=0}^{n}(x^i + \cos(f))$$

$$\sum\_{k=1}^n a\_k b\_k ^2$$

我是行内公式$$d\_i=\sum\_{j=1}^n \omega_{ij}$$, (⊙o⊙)

上述单行公式的写做方法:

多行公式显示效果:

\displaystyle
\left( \sum\_{k=1}^n a\_k b\_k \right)^2
\leq
\left( \sum\_{k=1}^n a\_k^2 \right)
\left( \sum\_{k=1}^n b\_k^2 \right)
\displaystyle 
    \frac{1}{
        \Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{
        \frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {
        1+\frac{e^{-6\pi}}
        {1+\frac{e^{-8\pi}}
         {1+\cdots} }
        } 
    }
f(x) = \int_{-\infty}^\infty
    \hat f(\xi)\,e^{2 \pi i \xi x}
    \,d\xi

上述多行公式的写做方法:

3. 高亮一段代码2

@requires_authorization
class SomeClass:
    pass

if __name__ == '__main__':
    # A comment
    print 'hello world'
class ArticleUpdate(LoginRequiredMixin,View):
    def get(self,request,pk):
        article = get_object_or_404(Article, pk=pk)
        if not request.user == article.user:
            return render(request,'ai-300.html')
        artform = ArticleForm(instance=article)
        artform.fields['category'] = forms.ModelMultipleChoiceField(
                                        label='我的分类',
                                        queryset=Category.objects.filter(Q(blog=request.user.myblog)),
                                        required = False,
                                        widget = forms.CheckboxSelectMultiple(attrs={"class": "form-controlx art-create-category"}))
        editor = request.GET.get('editor') or article.editor
        tempname = 'blog-article-update-%s.html' % editor
        return render(request, tempname, {'artform': artform, 'article': article})
#include <iostream>
using namespace std;
 
int main ()
{
   double* pvalue  = NULL; // 初始化为 null 的指针
   pvalue  = new double;   // 为变量请求内存
 
   *pvalue = 29494.99;     // 在分配的地址存储值
   cout << "Value of pvalue : " << *pvalue << endl;
 
   delete pvalue;         // 释放内存
 
   return 0;
}
<script type="text/javascript">
    $(".course-dtbox-keep").click(function () {
        var optbtn = this;
        var optstr = this.id.split("-");
        var optid = optstr[optstr.length-1];
        var opttype = optstr[optstr.length-2];
        var optobj = optstr[optstr.length-3];
        $.post("{% url 'course:course-keep' %}",{"optid":optid,"opttype":opttype,"optobj":optobj,"csrfmiddlewaretoken":"{{ csrf_token }}"},function(ret){
            if (ret["suc"]==1){
                $(optbtn).find("i").removeClass("fa-heart-o").addClass("fa-heart").html("&nbsp;已收藏");
            } else if (ret["suc"]==-1){
                $(optbtn).find("i").removeClass("fa-heart").addClass("fa-heart-o").html("&nbsp;收藏");
            } else if (ret["suc"]==0) {
                $(optbtn).find("i").html(ret["msg"]);
            }
        });
    });
</script>
class ThreadDemo extends Thread {
   private Thread t;
   private String threadName;
   
   ThreadDemo( String name) {
      threadName = name;
      System.out.println("Creating " +  threadName );
   }
   
   public void run() {
      System.out.println("Running " +  threadName );
      try {
         for(int i = 4; i > 0; i--) {
            System.out.println("Thread: " + threadName + ", " + i);
            // 让线程睡醒一会
            Thread.sleep(50);
         }
      }catch (InterruptedException e) {
         System.out.println("Thread " +  threadName + " interrupted.");
      }
      System.out.println("Thread " +  threadName + " exiting.");
   }
   
   public void start () {
      System.out.println("Starting " +  threadName );
      if (t == null) {
         t = new Thread (this, threadName);
         t.start ();
      }
   }
}
 
public class TestThread {
 
   public static void main(String args[]) {
      ThreadDemo T1 = new ThreadDemo( "Thread-1");
      T1.start();
      
      ThreadDemo T2 = new ThreadDemo( "Thread-2");
      T2.start();
   }   
}

4. 高效绘制 流程图

st=>start: Start
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>end

st->op->cond
cond(yes)->e
cond(no)->op

4.1 我是第四级标题

山有山的故事,水有水的故事,由于相遇,咱们也将开启一段故事! 这是一段事关写做的故事,每个字流露着美感、包含有热情、激荡着思想,这就是咱们,你,我之间的写做故事!快开始吧……

4.2 我也是第四季标题

山有山的故事,水有水的故事,由于相遇,咱们也将开启一段故事! 这是一段事关写做的故事,每个字流露着美感、包含有热情、激荡着思想,这就是咱们,你,我之间的写做故事!快开始吧……

5. 高效绘制 序列图

Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!

6. 高效绘制 甘特图

title 项目开发流程
    section 项目肯定
        需求分析       :a1, 2016-06-22, 3d
        可行性报告     :after a1, 5d
        概念验证       : 5d
    section 项目实施
        概要设计      :2016-07-05  , 5d
        详细设计      :2016-07-08, 10d
        编码          :2016-07-15, 10d
        测试          :2016-07-22, 5d
    section 发布验收
        发布: 2d
        验收: 3d

7. 绘制表格

项目 价格 数量
计算机 &dollar;1600 5
手机 &dollar;12 12
管线 &dollar;1 234

8. 更详细语法说明

想要查看更详细的语法说明,能够参考咱们准备的 Cmd Markdown 简明语法手册,进阶用户能够参考 Cmd Markdown 高阶语法手册 了解更多高级功能。

总而言之,不一样于其它 所见即所得 的编辑器:你只需使用键盘专一于书写文本内容,就能够生成印刷级的排版格式,省却在键盘和工具栏之间来回切换,调整内容和格式的麻烦。Markdown 在流畅的书写和印刷级的阅读体验之间找到了平衡。 目前它已经成为世界上最大的技术分享网站 GitHub 和 技术问答网站 StackOverFlow 的御用书写格式。


什么是 Cmd Markdown

您可使用不少工具书写 Markdown,可是 Cmd Markdown 是这个星球上咱们已知的、最好的 Markdown 工具——没有之一 :)由于深信文字的力量,因此咱们和你同样,对流畅书写,分享思想和知识,以及阅读体验有极致的追求,咱们把对于这些诉求的回应整合在 Cmd Markdown,而且一次,两次,三次,乃至无数次地提高这个工具的体验,最终将它演化成一个 编辑/发布/阅读 Markdown 的在线平台——您能够在任何地方,任何系统/设备上管理这里的文字。

1. 实时同步预览

咱们将 Cmd Markdown 的主界面一分为二,左边为编辑区,右边为预览区,在编辑区的操做会实时地渲染到预览区方便查看最终的版面效果,而且若是你在其中一个区拖动滚动条,咱们有一个巧妙的算法把另外一个区的滚动条同步到等价的位置,超酷!

2. 编辑工具栏

也许您仍是一个 Markdown 语法的新手,在您彻底熟悉它以前,咱们在 编辑区 的顶部放置了一个以下图所示的工具栏,您可使用鼠标在工具栏上调整格式,不过咱们仍旧鼓励你使用键盘标记格式,提升书写的流畅度。

tool-editor

3. 编辑模式

彻底心无旁骛的方式编辑文字:点击 编辑工具栏 最右侧的拉伸按钮或者按下 Ctrl + M,将 Cmd Markdown 切换到独立的编辑模式,这是一个极度简洁的写做环境,全部可能会引发分心的元素都已经被挪除,超清爽!

4. 实时的云端文稿

为了保障数据安全,Cmd Markdown 会将您每一次击键的内容保存至云端,同时在 编辑工具栏 的最右侧提示 已保存 的字样。无需担忧浏览器崩溃,机器掉电或者地震,海啸——在编辑的过程当中随时关闭浏览器或者机器,下一次回到 Cmd Markdown 的时候继续写做。

5. 离线模式

在网络环境不稳定的状况下记录文字同样很安全!在您写做的时候,若是电脑忽然失去网络链接,Cmd Markdown 会智能切换至离线模式,将您后续键入的文字保存在本地,直到网络恢复再将他们传送至云端,即便在网络恢复前关闭浏览器或者电脑,同样没有问题,等到下次开启 Cmd Markdown 的时候,她会提醒您将离线保存的文字传送至云端。简而言之,咱们尽最大的努力保障您文字的安全。

6. 管理工具栏

为了便于管理您的文稿,在 预览区 的顶部放置了以下所示的 管理工具栏

tool-manager

经过管理工具栏能够:

发布:将当前的文稿生成固定连接,在网络上发布,分享
新建:开始撰写一篇新的文稿
删除:删除当前的文稿
导出:将当前的文稿转化为 Markdown 文本或者 Html 格式,并导出到本地
列表:全部新增和过往的文稿均可以在这里查看、操做
模式:切换 普通/Vim/Emacs 编辑模式

7. 阅读工具栏

tool-manager

经过 预览区 右上角的 阅读工具栏,能够查看当前文稿的目录并加强阅读体验。

工具栏上的五个图标依次为:

目录:快速导航当前文稿的目录结构以跳转到感兴趣的段落
视图:互换左边编辑区和右边预览区的位置
主题:内置了黑白两种模式的主题,试试 黑色主题,超炫!
阅读:心无旁骛的阅读模式提供超一流的阅读体验
全屏:简洁,简洁,再简洁,一个彻底沉浸式的写做和阅读环境

8. 阅读模式

阅读工具栏 点击 或者按下 Ctrl+Alt+M 随即进入独立的阅读模式界面,咱们在版面渲染上的每个细节:字体,字号,行间距,前背景色都倾注了大量的时间,努力提高阅读的体验和品质。

9. 标签、分类和搜索

在编辑区任意行首位置输入如下格式的文字能够标签当前文档:

标签: 未分类

标签之后的文稿在【文件列表】(Ctrl+Alt+F)里会按照标签分类,用户能够同时使用键盘或者鼠标浏览查看,或者在【文件列表】的搜索文本框内搜索标题关键字过滤文稿,以下图所示:

file-list

10. 文稿发布和分享

在您使用 Cmd Markdown 记录,创做,整理,阅读文稿的同时,咱们不只但愿它是一个有力的工具,更但愿您的思想和知识经过这个平台,连同优质的阅读体验,将他们分享给有相同志趣的人,进而鼓励更多的人来到这里记录分享他们的思想和知识,尝试点击 (Ctrl+Alt+P) 发布这份文档给好友吧!


再一次感谢您花费时间阅读这份欢迎稿,点击 (Ctrl+Alt+N) 开始撰写新的文稿吧!祝您在这里记录、阅读、分享愉快!

做者 @ghosert
2016 年 07月 07日


  1. 支持 LaTeX 编辑显示支持,例如:$$\sum_{i=1}^n a_i=0$$, 访问 MathJax 参考更多使用方法。
  2. 代码高亮功能支持包括 Java, Python, JavaScript 在内的,四十一种主流编程语言。
相关文章
相关标签/搜索