forked from dwiel/voicecode_community_packages
-
Notifications
You must be signed in to change notification settings - Fork 0
/
markdown.coffee
152 lines (142 loc) · 3.74 KB
/
markdown.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
pack = Packages.register
name: 'atom markdown'
description: 'markdown commands'
applications: ['com.github.atom']
# Scope.register
# name: 'atom-markdown-file'
# condition: ->
# editor = _.find(@currentApplication().editors, {focused: true})
# return false unless editor?
# console.log editor.scopes
# result = _.difference ['source.gfm'], editor.scopes
# result.length isnt 1
pack.commands
enabled: false
,
"heading":
spoken: 'heading'
# scope: 'atom-markdown-file'
grammarType: "textCapture"
description: "Formats the following text as heading 1"
tags: ["domain-specific", "md"]
action: (input) ->
if input
@string "# #{input}"
@enter()
else
@string "# "
"subheading":
spoken: 'subheading'
# scope: 'atom-markdown-file'
grammarType: "textCapture"
description: "Formats the following text as heading 2"
tags: ["domain-specific", "md"]
action: (input) ->
if input
@string "## #{input}"
@enter()
else
@string "## "
"italic":
spoken: 'italic'
# scope: 'atom-markdown-file'
grammarType: "textCapture"
spaceBefore: true
autoSpacing: 'normal normal'
multiPhraseAutoSpacing: 'normal normal'
description: "Formats the following text as italic"
tags: ["domain-specific", "md"]
action: (input) ->
# todo: don't ignore input if text is selected
if contents = @getSelectedText()
input = contents
if input
@string "*#{input}*"
"bold":
spoken: 'bold'
# scope: 'atom-markdown-file'
grammarType: "textCapture"
spaceBefore: true
autoSpacing: 'normal normal'
multiPhraseAutoSpacing: 'normal normal'
description: "Formats the following text as bold"
tags: ["domain-specific", "md"]
action: (input) ->
# todo: don't ignore input if text is selected
if contents = @getSelectedText()
input = contents
if input
@string "**#{input}**"
"strike":
spoken: 'strike'
# scope: 'atom-markdown-file'
grammarType: "textCapture"
spaceBefore: true
autoSpacing: 'normal normal'
multiPhraseAutoSpacing: 'normal normal'
description: "Formats the following text as strike through"
tags: ["domain-specific", "md"]
action: (input) ->
# todo: don't ignore input if text is selected
if contents = @getSelectedText()
input = contents
if input
@string "~~#{input}~~"
# "hrule":
# spoken: ''
# description: "Insert a horizontal rule"
# tags: ["domain-specific", "md"]
# action: (input) ->
# @string "---"
# @enter()
"bullet":
spoken: 'bullet'
# scope: 'atom-markdown-file'
grammarType: "textCapture"
description: "Formats the following text as bullet"
tags: ["domain-specific", "md"]
action: (input) ->
if input
@string "* #{input}"
else
@string "* "
"list":
spoken: 'listie'
# scope: 'atom-markdown-file'
grammarType: "textCapture"
description: "Formats the following number as numbered list"
tags: ["domain-specific", "md"]
action: (input) ->
if input
@string "#{input}. "
# # Heading
#
# ## Sub-heading
#
# ### Another deeper heading
#
# Paragraphs are separated
# by a blank line.
#
# Two spaces at the end of a line leave a
# line break.
#
# Text attributes _italic_, *italic*, __bold__, **bold**, `monospace`.
#
# Horizontal rule:
#
# ---
#
# Bullet list:
#
# * apples
# * oranges
# * pears
#
# Numbered list:
#
# 1. apples
# 2. oranges
# 3. pears
#
# A [link](http://example.com).