summaryrefslogtreecommitdiff
path: root/public/docs
diff options
context:
space:
mode:
authorCheng-Han, Wu2016-04-20 18:03:55 +0800
committerCheng-Han, Wu2016-04-20 18:03:55 +0800
commit49b51e478fa75b8d5254662de3265edcf8906004 (patch)
tree3b09213baae129156339b5ad496924f591790e88 /public/docs
parente613aeba75aec5ceb4f10ae62881a3635183857d (diff)
Refactor server with Sequelize ORM, refactor server configs, now will show note status (created or updated) and support docs (note alias)
Diffstat (limited to 'public/docs')
-rw-r--r--public/docs/features.md505
-rw-r--r--public/docs/slide-example.md81
-rw-r--r--public/docs/yaml-metadata.md97
3 files changed, 683 insertions, 0 deletions
diff --git a/public/docs/features.md b/public/docs/features.md
new file mode 100644
index 00000000..a734f3c2
--- /dev/null
+++ b/public/docs/features.md
@@ -0,0 +1,505 @@
+Features
+===
+
+Introduction
+===
+<i class="fa fa-file-text"></i> **HackMD** is a realtime collaborate markdown note in all platforms.
+This mean you can do some notes with any other in **Desktop, Tablet or even Phone**.
+You can Sign in via **Facebook, Twitter, GitHub, Dropbox** in the **[homepage](/)**.
+
+This service still in early stage, might be buggy or crash.
+Please report issue in [GitHub](https://github.com/hackmdio/hackmd).
+If you need instant help, please use [Facebook Message](https://www.facebook.com/messages/866415986748945).
+**Thank you very much!**
+
+Workspace
+===
+## Modes
+**Desktop & Tablet**
+
+<i class="fa fa-edit fa-fw"></i> Edit: See only the editor.
+<i class="fa fa-eye fa-fw"></i> View: See only the result.
+<i class="fa fa-columns fa-fw"></i> Both: See both in split view.
+
+**Mobile**
+
+<i class="fa fa-toggle-on fa-fw"></i> View: See only the result.
+<i class="fa fa-toggle-off fa-fw"></i> Edit: See only the editor.
+
+## Upload image
+You can simply press the camera button <i class="fa fa-camera"></i>.
+Or **drag-n-drop** image in editor, even **paste** image works!
+It will automatically upload to **[imgur](http://imgur.com)**, nothing to worry :tada:
+![](http://i.imgur.com/9cgQVqD.png)
+
+## Share note
+If you want to share a **editable** note, just copy the url.
+If you want to share a **read-only** note, simply press share button <i class="fa fa-share-alt"></i> and copy the url.
+
+## Save
+Currently, you can save to **Dropbox** <i class="fa fa-dropbox"></i> or save as **.md** <i class="fa fa-file-text"></i> to local.
+
+## Import
+Like save feature, you can also import **.md** from **Dropbox** <i class="fa fa-dropbox"></i>.
+Or import from your **Clipboard** <i class="fa fa-clipboard"></i>, and that can parse some **html** which might be useful :smiley:
+
+## Permission
+There is a little button on the top right of the view.
+You can change the permission via theres options.
+It might be one of below:
+
+<i class="fa fa-leaf fa-fw"></i> Freely: Anyone can edit this note.
+<i class="fa fa-pencil fa-fw"></i> Editable: Signed user can edit this note.
+<i class="fa fa-lock fa-fw"></i> Locked: Only owner can edit this note.
+<i class="fa fa-hand-stop-o fa-fw"></i> Private: Only owner can view and edit this note.
+
+**Only the owner of the note can change the permission**
+
+## Embed
+```xml
+<iframe width="100%" height="500" src="http://hackmd.io/features" frameborder="0"></iframe>
+```
+
+## [Slide Mode](./slide-example)
+You can use some syntax to divide your note into slides.
+Then use **Slide Mode** <i class="fa fa-tv"></i> to made a presentation.
+Visit above link for detail.
+
+View
+===
+## Table of content
+You can look at bottom right place of the view area, there is a TOC button <i class="fa fa-bars"></i>.
+Press that will show current table of content and will emphasis which your section on.
+Support up to **three header levels**.
+
+## Permalink
+Every header will automatically add a permalink on the right side.
+You can hover and click <i class="fa fa-chain"></i> to anchor on it.
+
+Edit
+===
+## Shortcut keys
+Just like sublime text, which is pretty quick and convinent.
+> For more infomations, see [here](https://codemirror.net/demo/sublime.html).
+
+## Auto complete
+This editor provide full auto complete hint of markdown.
+- Emojis: type `:` to show hint.
+- Code blocks: type ` ``` ` and plus a character to show hint. <i hidden>```</i>
+- Headers: type `#` to show hint.
+- Referrals: type `[]` to show hint.
+- Externals: type `{}` to show hint.
+- Images: type `!` to show hint.
+
+## Title
+This will take the first **level 1 header** as the note title.
+
+## Tags
+Using tags like below, these will show in your **history**.
+###### tags: `features` `cool` `updated`
+
+## [YAML metadata](./yaml-metadata)
+Provide advanced note information to set the browse behavior, visit above link for detail
+- robots: set web robots meta
+- lang: set browse language
+- dir: set text direction
+- breaks: set to use line breaks or not
+- mathjax: set to parse mathjax or not
+
+## Emoji
+You can type any emoji like this :smile: :smiley: :cry: :wink:
+> See full emoji list [here](http://www.emoji-cheat-sheet.com/)
+
+## Todo List
+- [ ] Todos
+ - [x] Buy some salad
+ - [ ] Brush teeth
+ - [x] Drink some water
+
+## Code block
+We support many code languages, use the auto complete to see the list.
+```javascript=
+var s = "JavaScript syntax highlighting";
+alert(s);
+function $initHighlight(block, cls) {
+ try {
+ if (cls.search(/\bno\-highlight\b/) != -1)
+ return process(block, true, 0x0F) +
+ ' class=""';
+ } catch (e) {
+ /* handle exception */
+ }
+ for (var i = 0 / 2; i < classes.length; i++) {
+ if (checkCondition(classes[i]) === undefined)
+ return /\d+[\s/]/g;
+ }
+}
+```
+> If you want **line numbers**, type `=` after specify the code block languagues.
+> Also, you can specify the start line number.
+> Like below, the line number starts from 101:
+```javascript=101
+var s = "JavaScript syntax highlighting";
+alert(s);
+function $initHighlight(block, cls) {
+ try {
+ if (cls.search(/\bno\-highlight\b/) != -1)
+ return process(block, true, 0x0F) +
+ ' class=""';
+ } catch (e) {
+ /* handle exception */
+ }
+ for (var i = 0 / 2; i < classes.length; i++) {
+ if (checkCondition(classes[i]) === undefined)
+ return /\d+[\s/]/g;
+ }
+}
+```
+
+> Or you might want to continue the previous code block line number, use `=+`
+
+```javascript=+
+var s = "JavaScript syntax highlighting";
+alert(s);
+```
+
+### Blockquotes tags
+> Using like below to specifiy your **name, time and color** to differ the blockquotes.
+> [name=ChengHan Wu] [time=Sun, Jun 28, 2015 9:59 PM] [color=#907bf7]
+> > Even support the nest blockquotes!
+> > [name=ChengHan Wu] [time=Sun, Jun 28, 2015 10:00 PM] [color=red]
+
+## Externals
+
+### Youtube
+{%youtube 1G4isv_Fylg %}
+
+### Vimeo
+{%vimeo 124148255 %}
+
+### Gist
+{%gist schacon/4277%}
+
+### SlideShare
+{%slideshare briansolis/26-disruptive-technology-trends-2016-2018-56796196 %}
+
+### Speakerdeck
+{%speakerdeck sugarenia/xxlcss-how-to-scale-css-and-keep-your-sanity %}
+
+## MathJax
+
+You can render *LaTeX* mathematical expressions using **MathJax**, as on [math.stackexchange.com](http://math.stackexchange.com/):
+
+The *Gamma function* satisfying $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ is via the Euler integral
+
+$$
+x = {-b \pm \sqrt{b^2-4ac} \over 2a}.
+$$
+
+$$
+\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
+$$
+
+> More information about **LaTeX** mathematical expressions [here](http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference).
+
+## UML diagrams
+
+### Sequence diagrams
+
+You can render sequence diagrams like this:
+
+```sequence
+Alice->Bob: Hello Bob, how are you?
+Note right of Bob: Bob thinks
+Bob-->Alice: I am good thanks!
+Note left of Alice: Alice responds
+Alice->Bob: Where have you been?
+```
+
+### Flow charts
+
+And flow charts like this:
+```flow
+st=>start: Start
+e=>end: End
+op=>operation: My Operation
+op2=>operation: lalala
+cond=>condition: Yes or No?
+
+st->op->op2->cond
+cond(yes)->e
+cond(no)->op2
+```
+
+### Graphviz
+```graphviz
+digraph hierarchy {
+
+ nodesep=1.0 // increases the separation between nodes
+
+ node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour
+ edge [color=Blue, style=dashed] //All the lines look like this
+
+ Headteacher->{Deputy1 Deputy2 BusinessManager}
+ Deputy1->{Teacher1 Teacher2}
+ BusinessManager->ITManager
+ {rank=same;ITManager Teacher1 Teacher2} // Put them on the same level
+}
+```
+
+### Mermaid
+```mermaid
+gantt
+ title A Gantt Diagram
+
+ section Section
+ A task :a1, 2014-01-01, 30d
+ Another task :after a1 , 20d
+ section Another
+ Task in sec :2014-01-12 , 12d
+ anther task : 24d
+```
+
+> More information about **Sequence diagrams** syntax [here](http://bramp.github.io/js-sequence-diagrams/).
+> More information about **Flow charts** syntax [here](http://adrai.github.io/flowchart.js/).
+> More information about **Graphviz** syntax [here](http://www.tonyballantyne.com/graphs.html)
+> More information about **Mermaid** syntax [here](http://knsv.github.io/mermaid)
+
+Alert area
+---
+:::success
+Yes :tada:
+:::
+
+:::info
+This is a message :mega:
+:::
+
+:::warning
+Watch out :zap:
+:::
+
+:::danger
+Oh No :fire:
+:::
+
+## Typography
+
+### Headers
+
+```
+# h1 Heading
+## h2 Heading
+### h3 Heading
+#### h4 Heading
+##### h5 Heading
+###### h6 Heading
+```
+
+### Horizontal rules
+
+___
+
+---
+
+***
+
+
+### Typographic replacements
+
+Enable typographer option to see result.
+
+(c) (C) (r) (R) (tm) (TM) (p) (P) +-
+
+test.. test... test..... test?..... test!....
+
+!!!!!! ???? ,,
+
+Remarkable -- awesome
+
+"Smartypants, double quotes"
+
+'Smartypants, single quotes'
+
+### Emphasis
+
+**This is bold text**
+
+__This is bold text__
+
+*This is italic text*
+
+_This is italic text_
+
+~~Deleted text~~
+
+lu~lala~
+
+Superscript: 19^th^
+
+Subscript: H~2~O
+
+++Inserted text++
+
+==Marked text==
+
+
+### Blockquotes
+
+
+> Blockquotes can also be nested...
+>> ...by using additional greater-than signs right next to each other...
+> > > ...or with spaces between arrows.
+
+
+### Lists
+
+#### Unordered
+
++ Create a list by starting a line with `+`, `-`, or `*`
++ Sub-lists are made by indenting 2 spaces:
+ - Marker character change forces new list start:
+ * Ac tristique libero volutpat at
+ + Facilisis in pretium nisl aliquet
+ - Nulla volutpat aliquam velit
++ Very easy!
+
+#### Ordered
+
+1. Lorem ipsum dolor sit amet
+2. Consectetur adipiscing elit
+3. Integer molestie lorem at massa
+
+
+1. You can use sequential numbers...
+1. ...or keep all the numbers as `1.`
+1. feafw
+2. 332
+3. 242
+4. 2552
+1. e2
+
+Start numbering with offset:
+
+57. foo
+1. bar
+
+### Code
+
+Inline `code`
+
+Indented code
+
+ // Some comments
+ line 1 of code
+ line 2 of code
+ line 3 of code
+
+
+Block code "fences"
+
+```
+Sample text here...
+```
+
+Syntax highlighting
+
+``` js
+var foo = function (bar) {
+ return bar++;
+};
+
+console.log(foo(5));
+```
+
+### Tables
+
+| Option | Description |
+| ------ | ----------- |
+| data | path to data files to supply the data that will be passed into templates. |
+| engine | engine to be used for processing templates. Handlebars is the default. |
+| ext | extension to be used for dest files. |
+
+Right aligned columns
+
+| Option | Description |
+| ------:| -----------:|
+| data | path to data files to supply the data that will be passed into templates. |
+| engine | engine to be used for processing templates. Handlebars is the default. |
+| ext | extension to be used for dest files. |
+
+Left aligned columns
+
+| Option | Description |
+|:------ |:----------- |
+| data | path to data files to supply the data that will be passed into templates. |
+| engine | engine to be used for processing templates. Handlebars is the default. |
+| ext | extension to be used for dest files. |
+
+Center aligned columns
+
+| Option | Description |
+|:------:|:-----------:|
+| data | path to data files to supply the data that will be passed into templates. |
+| engine | engine to be used for processing templates. Handlebars is the default. |
+| ext | extension to be used for dest files. |
+
+
+### Links
+[link text](http://dev.nodeca.com)
+[link with title](http://nodeca.github.io/pica/demo/ "title text!")
+Autoconverted link https://github.com/nodeca/pica
+
+
+### Images
+![Minion](https://octodex.github.com/images/minion.png)
+![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
+Like links, Images also have a footnote style syntax
+![Alt text][id]
+With a reference later in the document defining the URL location:
+
+[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat"
+
+
+### Footnotes
+
+Footnote 1 link[^first].
+Footnote 2 link[^second].
+Inline footnote^[Text of inline footnote] definition.
+Duplicated footnote reference[^second].
+
+[^first]: Footnote **can have markup**
+ and multiple paragraphs.
+[^second]: Footnote text.
+
+### Definition lists
+
+Term 1
+
+: Definition 1
+
+with lazy continuation.
+
+Term 2 with *inline markup*
+
+: Definition 2
+
+ { some code, part of Definition 2 }
+
+ Third paragraph of definition 2.
+
+_Compact style:_
+
+Term 1
+ ~ Definition 1
+
+Term 2
+ ~ Definition 2a
+ ~ Definition 2b
+
+### Abbreviations
+
+This is HTML abbreviation example.
+It converts "HTML", but keep intact partial entries like "xxxHTMLyyy" and so on.
+
+*[HTML]: Hyper Text Markup Language \ No newline at end of file
diff --git a/public/docs/slide-example.md b/public/docs/slide-example.md
new file mode 100644
index 00000000..3d9a70c4
--- /dev/null
+++ b/public/docs/slide-example.md
@@ -0,0 +1,81 @@
+Slide example
+===
+This feature still in beta, may have some issues.
+
+For details:
+https://github.com/hakimel/reveal.js/
+
+---
+
+## First slide
+
+`---`
+
+Is the divder of slides
+
+----
+
+### First branch of fisrt slide
+
+`----`
+
+Is the divder of branches
+
+----
+
+### Second branch of first slide
+
+`<!-- .element: class="fragment" data-fragment-index="1" -->`
+
+Is the fragment syntax
+
+- Item 1<!-- .element: class="fragment" data-fragment-index="1" -->
+- Item 2<!-- .element: class="fragment" data-fragment-index="2" -->
+
+---
+
+## Second slide
+
+<!-- .slide: data-background="#1A237E" -->
+
+`<!-- .slide: data-background="#1A237E" -->`
+
+Is the background syntax
+
+---
+
+<!-- .slide: data-transition="zoom" -->
+
+`<!-- .slide: data-transition="zoom" -->`
+
+Is the transition syntax
+
+you can use:
+none/fade/slide/convex/concave/zoom
+
+---
+
+<!-- .slide: data-transition="fade-in convex-out" -->
+
+`<!-- .slide: data-transition="fade-in convex-out" -->`
+
+Also can set different in/out transition
+
+you can use:
+none/fade/slide/convex/concave/zoom
+postfix with `-in` or `-out`
+
+---
+
+<!-- .slide: data-transition-speed="fast" -->
+
+`<!-- .slide: data-transition-speed="fast" -->`
+
+Custom the transition speed!
+
+you can use:
+default/fast/slow
+
+---
+
+# The End \ No newline at end of file
diff --git a/public/docs/yaml-metadata.md b/public/docs/yaml-metadata.md
new file mode 100644
index 00000000..5fc6e1b8
--- /dev/null
+++ b/public/docs/yaml-metadata.md
@@ -0,0 +1,97 @@
+---
+robots: index, follow
+lang: en
+dir: ltr
+breaks: true
+---
+
+Supported YAML metadata
+===
+
+First you need to insert syntax like this at the **start** of the note:
+```
+---
+YAML metas
+---
+```
+
+Replace the "YAML metas" in this section with any YAML options as below.
+You can also refer to this note's source code.
+
+robots
+---
+This option will give below meta in the note head meta:
+```xml
+<meta name="robots" content="your_meta">
+```
+So you can prevent any search engine index your note by set `noindex, nofollow`.
+
+> default: not
+
+**Example**
+```xml
+robots: noindex, nofollow
+```
+
+lang
+---
+This option will set the language of the note, that might alter some typography of it.
+You can find your the language code in ISO 639-1 standard:
+https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
+
+> default: not set (which will be en)
+
+**Example**
+```xml
+langs: ja-jp
+```
+
+dir
+---
+This option provide to describe the direction of the text in this note.
+You can only use whether `rtl` or `ltr`.
+Look more at here:
+http://www.w3.org/International/questions/qa-html-dir
+
+> default: not set (which will be ltr)
+
+**Example**
+```xml
+dir: rtl
+```
+
+breaks
+---
+This option means the hardbreaks in the note will be parsed or be ignore.
+The original markdown syntax breaks only if you put space twice, but HackMD choose to breaks every time you enter a break.
+You can only use whether `true` or `false`.
+
+> default: not set (which will be true)
+
+**Example**
+```xml
+breaks: false
+```
+
+mathjax
+---
+This option let you to choose to parse mathjax syntax or not.
+
+> default: not set (which will be true)
+
+**Example**
+```xml
+mathjax: false
+```
+
+spellcheck
+---
+**Warning: Experimental feature!**
+This option let you to choose to enable spell checking feature or not.
+
+> default: not set (which will be false)
+
+**Example**
+```xml
+spellcheck: true
+``` \ No newline at end of file