GithubHelp home page GithubHelp logo

smark's Introduction

简洁的 Markdown 编辑器 Smark

说白了只是为了自己方便使用,并没什么新奇的东西。我使用 pandoc 来转化 markdown,但是我不想在修改文件时总是在编辑器、文字终端和浏览器间换来换去,因此我写了一个简单的编辑器,它在后台调用 pandoc 将当前编辑的 markdown 内容转化为 HTML,而后将 HTMLsmark 中的浏览器中显示出来,就是这么回事。Smark 依赖于 pandocQt 4.8MathJax,在此向上述软件包开发者们致敬。请注意继承于 pandoc 的发布协议,Smark 同样遵循 GPL,如有任何疑问请联系 [email protected],我将尽快做出回复。

主要特性:

  • Windows / Linux 等主流系统跨平台支持;
  • 完美支持 LaTex 数学公式、脚注、尾注等,支持使用本地 MathJax 调用,不需要在线访问 MathJax CDN
  • 用户可配置的 Markdown 语法高亮显示,美观整洁;
  • 多种格式文件导出支持,可将当前 Markdown 文件另存为 HTMLMiscrosoft WordOpenOffice / LibreOffice ODT DocumentLatexPDFreStructured TextMedia Wiki markupepub 以及 plain txt 等格式文件输出;
  • 可通过用户指明 CSS 文件定义显示式样;
  • 简洁友好的界面布局,尽可能地凸显正在编辑的内容;
  • 系统、完备的各类快捷键,极大地提高了工作效率;

安装 Smark

对于 Win32 平台的用户,您可以直接下载当前版本的可执行程序 Smark-X.X-Win32-portable.zip。对于其它平台的用户,可以下载当前版本的 Smark 源代码 Smark-X.X-src.zip在本平台上进行编译即可,一般地您可以按照如下步骤编译 Smark

  1. 安装依赖的程序包:

    $ sudo apt-get install qtsdk
    $ sudo apt-get install pandoc
    

    如果您不使用 apt-get 作为软件包管理器,自己谷歌搜索如何安装这两个程序包

  2. 下载 Smark 源代码 Smark-X.X-src.zip,解压并编译:

    $ qmake -project
    $ qmake
    $ make
    
  3. 把编译出的可执行文件移动到您的 [bin] 路径下即可使用,此时 Smark 将使用默认的 CSS 样式表和基于 MathJax CDNMathJax 访问。如果想要得到与 Windows 平台下完全一致的体验,您还需下载 smark-2.0-resource.zip 解压倒 Smark 的安装目录下并进行设置。

运行截图



Windows 7 下的 Smark 运行截图


Windows 7 下的 Smark 配置选项对话框

FAQ

64 位 Windows 下提示无法运行 pandoc:

这是因为 Smark-X.X-Win32-portable.zip 中自带的 pandoc.exe 是 32 位系统下的,您可以通过下载安装包 pandoc-1.13.1-win64.msi 直接安装 64 位的 pandoc 而删除 Smark-X.X-Win32-portable.zip 中自带的 32 位的 pandoc.exe

谷歌输入法无法输入问题

貌似大凡使用 QTextEdit 部件的地方都存在这样的问题,这是因为您未开启 谷歌输入法的内嵌编辑模式,可通过点击 “谷歌输入法设置对话框” 中 “设置内嵌编辑模式” 按钮,后勾选 “使用内嵌编辑模式” 即可,如下图所示:


TODO

现有问题:

  • 在 Qt5 下编译的 WebView 无法完整地加载 CSS 中的设置,Qt4 下没问题;
  • 改动后的 Markdwon 语法高亮的超链接 和 加粗 的正则表达式匹配有问题;
  • 导出 PDF 和打印时的内容分页问题;

待添加功能

  • 仿照 QtCreator 3.1.xx 中编辑器的多行同时编辑实现,支持 Sublime 等软件所支持的多行同时编辑;
  • 与 百度云、Google Drive、OneDrive 内容同步,这个以后再说;

附录:Smark 的快捷键列表

全局

Esc              : 逐步隐藏所有不必要的部件,退出全屏显示
Tab              : 增加所选诸行的缩进(四个空格)
Ctrl + Tab       : 减小所选诸行的缩进(四个空格)

文件菜单

Ctrl + N         : 新建 markdown 文件
Ctrl + O         : 打开 markdown 文件
Ctrl + S         : 保存当前 markdown 文件
Ctrl + Shift + S : 将当前文件另存为支持的格式
Ctrl + W         : 关闭当前 markdown 文件
Ctrl + P         : 打印当前 markdown 文件
Ctrl + Q         : 退出 Smark 

视图菜单

F6               : 预览模式视图
F7               : 阅读模式视图
F8               : 编辑模式视图
F11              : 进入 / 退出全屏显示

编辑菜单

F5               : 刷新 HTML 显示
Ctrl + Shift + C : 查看 HTML 源代码
Ctrl + C         : 复制
Ctrl + X         : 剪切
Ctrl + P         : 粘贴
Ctrl + Z         : 撤消
Ctrl + Y         : 重做
Ctrl + F         : 查找

插入菜单

Ctrl + Shift + P : 插入图片
Ctrl + Shift + L : 插入链接
Ctrl + Shift + M : 插入数学公式

格式菜单

Ctrl + B         : 加粗
Ctrl + I         : 倾斜
Ctrl + U         : 下划线
Ctrl + ]         : 加大字号
Ctrl + [         : 减小字号
Ctrl + Down      : 下标
Ctrl + Up        : 上标
Ctrl + `         : 代码
Ctrl + '         : 引用
Ctrl + L         : 内容左对齐
Ctrl + R         : 内容右对齐
Ctrl + E         : 内容居中

smark's People

Contributors

elerao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smark's Issues

布局 怎么导出pdf

请教
问题1
我的预览是上下布局的,怎么切换成左右布局
问题2
怎么导出pdf

在QT5无法编译

QT5改了很多头文件导致头文件找不到不能编译,为何不做成一个deb包?

关于 MathJax 的几个Bugs

  1. 新建文件保存为md文件前无法自动加载MathJax,需要保存为.md文件以后才行。
  2. 引用 MathJax 代码(如下)和文件内公式冲突,比如下列文件不但不能显示代码本身,且会导致整个文件无法预览
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js   ?config=TeX->AMS_HTML"></script>

$$\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt.$$

文档末尾多出一个<p></p>

markdown文档不管有没有内容,在文档最后都会解析出一个<p></p>里面的内容是10个转义符,好像一般显示不出来,我是在换字体的时候显示出来的。后来用Big5编码格式发现这十个符号是\u2029

关于行内公式的bug

好像用$$没问题,用()时显示会有错误,尤其是公式开头是 \Gamma \Theta 的时候,比如(\Theta<0) 预览时只能显示<0,或者是行内公式只有一个字母时,比如 (S)。

无法输入中文

ubuntu 12.04
qt 4.8.1编译

修改源码:

  • tmp目录为 /tmp
  • #include <QWebView>

编译之后的运行中,可以正常输入英文、字符,但是不能输入中文,切换输入法没有任何反映。

一些建议

  1. 支持中文界面,字体华文黑体
  2. 顶部的菜单栏和工具栏弄大一些,字体换成Helvetica或者Arial
  3. Ctrl + Tab : 减小所选诸行的缩进(四个空格)建议改为 Shift + Tab
  4. 修改代码后自动刷新预览

快捷键是不是错了

文件菜单

Ctrl + P : 打印当前 markdown 文件

编辑菜单

Ctrl + P : 粘贴

这里的应该改成 Ctrl + V

where is pandoc

win64,我下载并安装好了pandoc,但是不知道去哪里打开这软件

make编译错误

./Smark/SmkConfig.h:10:21: fatal error: QtWidgets: 没有那个文件或目录

上面的问题通过在makefile中添加include已经解决,但是出现了新的问题:
./Smark/SmkConfig.h:11:27: 致命错误:QtWebKitWidgets:没有那个文件或目录
而且我也确实找不到qtwebkitwidgets

qt是用官方run包安装的,5.9.1,全部安装,包括src

关于程序代码的语法高亮

您好,我觉得您的软件非常好用,各方面都是我想要的,除了插入的程序代码没有语法高亮,不知道是否可以在后面的版本中加入这个功能

Compile error in OS X.

When I Compile it in OS X, it raised an error like:

usr/local/Cellar/qt/4.8.7_1/bin/uic Smark/SmkMainWindow.ui -o ui_SmkMainWindow.h
Smark/SmkMainWindow.ui: Warning: Z-order assignment: 'horizontalSpacer' is not a valid widget.
clang++ -c -pipe -stdlib=libc++ -mmacosx-version-min=10.7 -O2 -arch x86_64 -Wall -W -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Cellar/qt/4.8.7_1/mkspecs/unsupported/macx-clang-libc++ -I. -I/usr/local/Cellar/qt/4.8.7_1/lib/QtCore.framework/Versions/4/Headers -I/usr/local/Cellar/qt/4.8.7_1/lib/QtCore.framework/Versions/4/Headers -I/usr/local/Cellar/qt/4.8.7_1/lib/QtGui.framework/Versions/4/Headers -I/usr/local/Cellar/qt/4.8.7_1/lib/QtGui.framework/Versions/4/Headers -I/usr/local/Cellar/qt/4.8.7_1/include -I. -ISmark -I. -I. -F/usr/local/Cellar/qt/4.8.7_1/lib -o SmkHtmlWidget.o Smark/SmkHtmlWidget.cpp
In file included from Smark/SmkHtmlWidget.cpp:3:
./Smark/SmkHtmlWidget.h:4:10: fatal error: 'QWebView' file not found
#include 
         ^
1 error generated.
make: *** [SmkHtmlWidget.o] Error 1

And the qmake is installed by homebrew, the version is 4.8.7. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.