├── Notepad++
├── autoCompletion
│ ├── Clojure.xml
│ └── lisp.xml
├── config.xml
├── functionList
│ ├── Clojure.xml
│ ├── Lisp.xml
│ ├── Markdown_Monokai.xml
│ └── overrideMap.xml
├── langs.xml
├── plugins
│ ├── Config
│ │ ├── AutoSave.ini
│ │ ├── BetterMultiSelection.ini
│ │ ├── ColumnTools.ini
│ │ ├── ComparePlugin.ini
│ │ ├── CustomizeToolbar.btn
│ │ ├── CustomizeToolbar.dat
│ │ ├── ExtSettings.ini
│ │ ├── Graphviz.ini
│ │ ├── ImgTag.ini
│ │ ├── LanguageHelp.ini
│ │ ├── MarkdownViewerPlusPlus.ini
│ │ ├── NppCCompletionPlugin.ini
│ │ ├── NppExec.ini
│ │ ├── NppGTags.cfg
│ │ ├── NppSnippets.ini
│ │ ├── NppSnippets.sqlite
│ │ ├── NppTextFX.ini
│ │ ├── PreviewHTML
│ │ │ ├── Filters.ini
│ │ │ └── Settings.ini
│ │ ├── SQLPrettyPrinter.ini
│ │ ├── SurroundSelection.ini
│ │ ├── TopMost.ini
│ │ ├── XBrackets.ini
│ │ ├── npes_saved.txt
│ │ ├── npes_temp.txt
│ │ ├── pork2Sausage.ini
│ │ ├── template1.dat
│ │ └── template2.dat
│ └── PythonScript
│ │ └── scripts
│ │ ├── BracketHighlighter.py
│ │ ├── Markdown_Literary_Programming_viewer.py
│ │ └── startup.py
├── stylers.xml
├── themes
│ ├── Monokai.xml
│ ├── TwoDark.xml
│ └── VS2012-Dark.xml
├── tools
│ ├── CuteMarked
│ │ └── readme.md
│ ├── Graphviz
│ │ └── readme.md
│ ├── LanguageHelp
│ │ ├── Clojure.chm
│ │ └── PostgreSQL.chm
│ ├── MarkdownLiteraryProgramming
│ │ ├── MLP_Clojure_Example.clj
│ │ ├── MLP_Clojure_Example.clj.multimarkdown.html
│ │ ├── MLP_Clojure_Example.clj.multimarkdown.md
│ │ ├── MLP_Clojure_Example.clj.multimarkdown.pdf
│ │ ├── MLP_Clojure_Example_CuteMarked01.png
│ │ ├── MLP_Clojure_Example_CuteMarked02.png
│ │ ├── MLP_Clojure_Example_CuteMarked03.png
│ │ ├── MLP_common_head.md
│ │ ├── MLP_common_head_gfm.md
│ │ ├── MLP_common_head_mmd.md
│ │ ├── Markdown_Literary_Programming_viewer.py.LibreOffice.pdf
│ │ ├── Markdown_Literary_Programming_viewer.py.chrome.pdf
│ │ ├── Markdown_Literary_Programming_viewer.py.html
│ │ ├── Markdown_Literary_Programming_viewer.py.md
│ │ ├── Npp_MLP_readme.md
│ │ ├── css
│ │ │ └── github-markdown.css
│ │ ├── image
│ │ │ └── cowplot.png
│ │ └── js
│ │ │ ├── mermaidjs
│ │ │ ├── mermaid.css
│ │ │ └── mermaid.min.js
│ │ │ ├── prismjs
│ │ │ ├── prism.css
│ │ │ └── prism.js
│ │ │ └── sci_script_tag
│ │ │ └── sci_script_tag.js
│ ├── MultiMarkdown
│ │ └── readme.md
│ ├── clj
│ │ ├── hiccup2html.clj
│ │ ├── mlp.clj
│ │ ├── npp_convert.clj
│ │ └── readme.md
│ ├── cmark_gfm
│ │ ├── cmark-gfm-extensions.dll
│ │ ├── cmark-gfm.dll
│ │ ├── cmark-gfm.exe
│ │ ├── help.txt
│ │ ├── x.html
│ │ └── x.md
│ ├── ctags
│ │ ├── .ctags
│ │ ├── .ctags.bk
│ │ ├── Clojure.ctags
│ │ ├── Lisp.ctags
│ │ └── ctags.exe
│ └── marp_cli
│ │ └── readme.md
└── userDefineLangs
│ ├── Clojure.xml
│ ├── Excel.Formula.xml
│ ├── Excel_Formula.xml
│ ├── asciidoc.xml
│ ├── graphviz.dart.xml
│ ├── markdown_monokai.xml
│ ├── org.mode.xml
│ ├── reStructuredText.xml
│ └── reStructuredText_dracula.xml
├── Screenshots
├── ClojureBoxNpp.jpg
├── edit_hiccup_with_live_preview.png
├── md_outline.png
├── mlp_clj.png
├── mlp_image.png
├── mlp_mermaid.png
├── mlp_ui_cljs.png
├── nppBracketHighlighter.png
├── setting_LanguageHelp_plugin.jpg
├── setting_MultiEditing.jpg
├── setting_XBrackets_plugin.jpg
├── setting_autocomplete.jpg
├── setting_defalang.jpg
├── setting_delimiter.jpg
└── setting_tab_space.jpg
└── readme.md
/Notepad++/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
', r'', html_text, 0, re.M)
198 | # html_text = re.sub('[\r\n\f]{2,}','\r\n', html_text, 0, re.M)
199 | # html_text = html_text.replace("\r\n\r\n","\r\n")
200 | r.close()
201 | f = open(html_full_path, "w")
202 | f.write(html_text)
203 | f.close()
204 | cmd = chrome_path + " " + html_full_path
205 | os.popen(cmd)
206 | if is_delete_generate_file:
207 | time.sleep(15)
208 | os.remove(md_full_path)
209 | os.remove(html_full_path)
210 |
211 | #```
212 |
213 |
214 | ##### MultiMarkdown+Chrome
215 |
216 | #```python
217 |
218 | elif viewer == 2:
219 | # Method 2: MultiMarkdown+Chrome
220 | if not os.path.exists(multimarkdown_path):
221 | multimarkdown_url = "https://github.com/fletcher/MultiMarkdown-6"
222 | msg = "multimarkdown.exe does not exists! \r\nvar multimarkdown_path: " + multimarkdown_path + "\r\nIt can be download from " + multimarkdown_url
223 | notepad.messageBox(msg, "Warning", 0)
224 | if not os.path.exists(chrome_path):
225 | chrome_url = "https://portableapps.com/apps/internet/google_chrome_portable"
226 | msg = "Chrome.exe(or GoogleChromePortable.exe) does not exists! \r\nvar chrome_path: " + chrome_path + "\r\nIt can be download from " + chrome_url
227 | notepad.messageBox(msg, "Warning", 0)
228 | md_full_path = mlt_out_dir + "\\" + current_filename + ".md"
229 | f= open(md_full_path,'w')
230 | f.write(dest_text)
231 | f.close()
232 | html_full_path = mlt_out_dir + "\\" + current_filename + ".html"
233 | cmd = multimarkdown_path + " --full --to=html --output=" + html_full_path + " " + md_full_path
234 | # cmd = multimarkdown_path + " --full " + md_full_path
235 | os.popen(cmd)
236 | f= open(html_full_path,'r')
237 | html_txt = f.read()
238 | f.close()
239 | html_txt = re.sub(r'', r'', html_txt, 0, re.M)
241 | html_txt = html_txt.replace("\r\n\r\n","\r\n")
242 | f= open(html_full_path,'w')
243 | f.write(html_txt)
244 | f.close()
245 | cmd = chrome_path + " " + html_full_path
246 | os.popen(cmd)
247 | if is_delete_generate_file:
248 | time.sleep(15)
249 | os.remove(md_full_path)
250 | os.remove(html_full_path)
251 |
252 | #```
253 |
254 | ##### MarkdownViewer++Chrome
255 |
256 | #```python
257 |
258 | else:
259 | # Method 3: MarkdownViewer++Chrome
260 | editor2= notepad.new()
261 | editor.setText(dest_text)
262 | # dest_full_path = mlt_out_dir + current_filename + ".md"
263 | # notepad.saveAs(dest_full_path)
264 | notepad.runPluginCommand('MarkdownViewer++','MarkdownViewer++')
265 |
266 | #```
267 |
268 | #### Clean mlt_out_dir
269 |
270 | #```python
271 |
272 |
273 | def del_file(path):
274 | ls = os.listdir(path)
275 | for i in ls:
276 | c_path = os.path.join(path, i)
277 | if os.path.isdir(c_path):
278 | del_file(c_path)
279 | else:
280 | os.remove(c_path)
281 |
282 | if is_clean_mlt_out_dir:
283 | if viewer == 2:
284 | time.sleep(15)
285 | del_file(mlt_out_dir)
286 |
287 | #```
288 |
289 | ### End Code
--------------------------------------------------------------------------------
/Notepad++/plugins/PythonScript/scripts/startup.py:
--------------------------------------------------------------------------------
1 | # The lines up to and including sys.stderr should always come first
2 | # Then any errors that occur later get reported to the console
3 | # If you'd prefer to report errors to a file, you can do that instead here.
4 | import sys
5 | from Npp import *
6 |
7 | # Set the stderr to the normal console as early as possible, in case of early errors
8 | sys.stderr = console
9 |
10 | # Define a class for writing to the console in red
11 | class ConsoleError:
12 | def __init__(self):
13 | global console
14 | self._console = console;
15 |
16 | def write(self, text):
17 | self._console.writeError(text);
18 |
19 | # Set the stderr to write errors in red
20 | sys.stderr = ConsoleError()
21 |
22 | # This imports the "normal" functions, including "help"
23 | import site
24 |
25 | sys.stdout = console
26 |
27 | # In order to set the stdout to the current active document, uncomment the following line
28 | # sys.stdout = editor
29 | # So print "hello world", will insert "hello world" at the current cursor position
30 |
31 | import BracketHighlighter
--------------------------------------------------------------------------------
/Notepad++/tools/CuteMarked/readme.md:
--------------------------------------------------------------------------------
1 | # CuteMarkEd
2 |
3 | A Qt-based, free and open source
4 | markdown editor with live HTML preview,
5 | math expressions, code syntax highlighting
6 | and syntax highlighting of markdown document.
7 |
8 | https://github.com/cloose/CuteMarkEd
--------------------------------------------------------------------------------
/Notepad++/tools/Graphviz/readme.md:
--------------------------------------------------------------------------------
1 | # Graphviz
2 |
3 | Graphviz is open source graph visualization software.
4 | Graph visualization is a way of representing
5 | structural information as diagrams of abstract
6 | graphs and networks. It has important applications
7 | in networking, bioinformatics, software engineering,
8 | database and web design, machine learning,
9 | and in visual interfaces for other technical domains.
10 |
11 | http://www.graphviz.org/download/
--------------------------------------------------------------------------------
/Notepad++/tools/LanguageHelp/Clojure.chm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/LanguageHelp/Clojure.chm
--------------------------------------------------------------------------------
/Notepad++/tools/LanguageHelp/PostgreSQL.chm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/LanguageHelp/PostgreSQL.chm
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example.clj:
--------------------------------------------------------------------------------
1 | ;# Markdown Literary Programming's Example
2 |
3 | ; Author: Lin Pengcheng
4 |
5 | ; My Blog: [The Grand Unified Programming Theory: The Pure Function Pipeline Data Flow with Principle-based Warehouse/Workshop Model](https://github.com/linpengcheng/PurefunctionPipelineDataflow)
6 |
7 | ; Reference: [Markdown Literary programming that don't break the syntax of any programming language](https://github.com/linpengcheng/PurefunctionPipelineDataflow/blob/master/doc/markdown_literary_programming.md)
8 |
9 | ;## example01: Code with syntax highlighting.
10 |
11 | (defn f [[evens odds total amax amin] x]
12 | (let [[evens odds] (cond
13 | (even? x) [(inc evens ) odds]
14 | (odd? x) [evens (inc odds)]
15 | :else [evens odds])
16 | total (+ total x)
17 | amax (max amax x)
18 | amin (min amin x)]
19 | [evens odds total amax amin]))
20 | ;;The comment of the code requires at least two line comment characters
21 | (reduce f [0 0 0 ##-Inf ##Inf] [5 6 8 -3 -9 11 156 6 7])
22 |
23 | ;return `[4 5 187 156 -9]`
24 |
25 | ;## example02: Mermaid flow chart
26 |
27 | ; - Notepad++ preview HTML plugin (IE 11) don't display letter,
28 | ; - It can display letter using chrome open saved html
29 | ; if set save html in config.
30 |
31 | ;```mermaid
32 | ;graph LR
33 | ; A-->B
34 | ; B-->C
35 | ; C-->A
36 | ; D-->C
37 | ;```
38 |
39 | ;## example03: Image
40 |
41 | ;
42 |
43 | ;## example04: UI + javascript/Clojurescript(sci)
44 |
45 | ; Reference: [sci-script-tag](https://borkdude.github.io/sci-script-tag/)
46 |
47 | ; - Notepad++ preview HTML plugin (IE 11) don't run UI script,
48 | ; - It can run UI script using chrome open saved html
49 | ; if set save html in config.
50 |
51 | ;
53 |
54 | ;
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example.clj.multimarkdown.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
34 |
35 |
36 | Table of Contents
37 |
38 |
39 |
40 |
41 | - Table of Contents
42 | - Markdown literary programming Example
43 |
44 | - example01: Code with syntax highlighting.
45 | - example02: Mermaid flow chart
46 | - example03: Image
47 |
48 |
49 |
50 |
51 |
52 | Markdown literary programming Example
53 |
54 | example01: Code with syntax highlighting.
55 |
56 |
57 | (defn f [[evens odds total amax amin] x]
58 | (let [[evens odds] (cond
59 | (even? x) [(inc evens ) odds]
60 | (odd? x) [evens (inc odds)]
61 | :else [evens odds])
62 | total (+ total x)
63 | amax (max amax x)
64 | amin (min amin x)]
65 | [evens odds total amax amin]))
66 | ;The comment of the code requires at least two line comment characters
67 | (reduce f [0 0 0 ##-Inf ##Inf] [5 6 8 -3 -9 11 156 6 7])
68 |
69 |
70 | return [4 5 187 156 -9]
71 |
72 | example02: Mermaid flow chart
73 |
74 |
75 | graph LR
76 | A-->B
77 | B-->C
78 | C-->A
79 | D-->C
80 |
81 |
82 | example03: Image
83 |
84 |
85 |
86 | cowplot
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example.clj.multimarkdown.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
25 |
26 |
27 |
28 |
29 |
30 | # Table of Contents
31 |
32 | {{TOC}}
33 |
34 | # Markdown literary programming Example
35 |
36 | ## example01: Code with syntax highlighting.
37 |
38 | ```clojure
39 | (defn f [[evens odds total amax amin] x]
40 | (let [[evens odds] (cond
41 | (even? x) [(inc evens ) odds]
42 | (odd? x) [evens (inc odds)]
43 | :else [evens odds])
44 | total (+ total x)
45 | amax (max amax x)
46 | amin (min amin x)]
47 | [evens odds total amax amin]))
48 | ;The comment of the code requires at least two line comment characters
49 | (reduce f [0 0 0 ##-Inf ##Inf] [5 6 8 -3 -9 11 156 6 7])
50 | ```
51 |
52 | return `[4 5 187 156 -9]`
53 |
54 | ## example02: Mermaid flow chart
55 |
56 | ```mermaid
57 | graph LR
58 | A-->B
59 | B-->C
60 | C-->A
61 | D-->C
62 | ```
63 |
64 | ## example03: Image
65 |
66 | 
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example.clj.multimarkdown.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example.clj.multimarkdown.pdf
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example_CuteMarked01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example_CuteMarked01.png
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example_CuteMarked02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example_CuteMarked02.png
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example_CuteMarked03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/MarkdownLiteraryProgramming/MLP_Clojure_Example_CuteMarked03.png
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_common_head.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | {{TOC}}
35 |
36 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_common_head_gfm.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/MLP_common_head_mmd.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
38 |
39 |
40 |
41 |
42 |
43 | Table of Contents
44 |
45 | {{TOC}}
46 |
47 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/Markdown_Literary_Programming_viewer.py.LibreOffice.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/MarkdownLiteraryProgramming/Markdown_Literary_Programming_viewer.py.LibreOffice.pdf
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/Markdown_Literary_Programming_viewer.py.chrome.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/MarkdownLiteraryProgramming/Markdown_Literary_Programming_viewer.py.chrome.pdf
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/Markdown_Literary_Programming_viewer.py.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
25 |
26 |
27 |
28 |
29 |
30 | # Table of Contents
31 |
32 | {{TOC}}
33 |
34 | -*- coding:utf-8 -*-
35 |
36 | # Markdown Literary Programming
37 |
38 | Author: Lin Pengcheng
39 |
40 | Blog: [Markdown Literary Programming](https://github.com/linpengcheng/PurefunctionPipelineDataflow/blob/master/doc/markdown_literary_programming.md)
41 |
42 | ## Note
43 |
44 | ### Subdirectorys and file of mlt_base_dir
45 |
46 | - out (Changeable)
47 | - js
48 | - image
49 | - css
50 | - MultiMarkdown (Optional)
51 | - CuteMarked (Optional)
52 | - ChromePortable (Optional)
53 | - MLT_common_head.md
54 |
55 | out_dir can be separated from mlt_base_dir(public resource directory),
56 | but must be on the same disk, in "mlt_common_head.md" file,
57 | the path starts with the root path, for example:
58 | `/path_to/mlt_base_dir/js/prismjs/prism.js`
59 | ### Python lib:
60 | markdown or mistune does not support mermaid
61 |
62 | ### Viewer
63 |
64 | #### Cutemarked (viewer = 1)
65 |
66 | - it is the only native Markdown viewer that supports JS, image, HTML.
67 | - it has an outline view of Markdown.
68 | - It exports HTML in chrome is not good to display.
69 |
70 | #### MultiMarkdown + Chrome (viewer = 2)
71 |
72 | - MultiMarkdown support TOC.
73 | - MultiMarkdown does not support the GitHub style
74 | code block block and Mermaid charts,
75 | I made a correction in py.
76 | - Multimarkdown faster and lighter than pandoc.
77 | - When converted to HTML, it is automatically open with Chrome,
78 | and the display works well.
79 |
80 | #### Markdownviewer++ (viewer = 3)
81 |
82 | - It exports HTML in chrome is displayed very well
83 | - fast, Its viewer is only supported by plain text markdown LivePreview.
84 | - its viewer no syntax highlighted, no mermaid, no image displayed
85 |
86 | ## Config
87 |
88 | ```python
89 |
90 | viewer = 2
91 | is_clean_mlt_out_dir = False
92 | is_delete_generate_file = False
93 | mlt_base_dir = notepad.getNppDir() + "\\MarkdownLiteraryProgramming"
94 | # mlt_out_dir = mlt_base_dir + "\\out"
95 | mlt_out_dir = mlt_base_dir
96 | cutemarked_path = mlt_base_dir + "\\cutemarked\\cutemarked.exe"
97 | multimarkdown_path = mlt_base_dir + "\\MultiMarkdown\\bin\\multimarkdown.exe"
98 | chrome_path = "D:\\PortableApps\\GoogleChromePortable\\GoogleChromePortable.exe"
99 |
100 | ```
101 |
102 | ## End Config
103 |
104 | ## Code
105 |
106 | ### Init
107 |
108 | ```python
109 |
110 | import os
111 | import re
112 | import time
113 |
114 | notepad.save()
115 | current_full_path = notepad.getCurrentFilename()
116 | (current_dir, current_filename) = os.path.split(current_full_path)
117 |
118 | if not os.path.exists(mlt_out_dir):
119 | os.makedirs(mlt_out_dir)
120 |
121 | ```
122 |
123 | ### get Common Head Text
124 |
125 | ```python
126 |
127 | common_head_txt = ""
128 | common_head_file = mlt_base_dir + "\\MLP_common_head.md"
129 | if os.path.exists(common_head_file):
130 | f= open(common_head_file,'r')
131 | common_head_txt = f.read()
132 | f.close()
133 | replace_txt = ""
134 | if mlt_out_dir == mlt_base_dir + "\\out":
135 | replace_txt = ".."
136 | elif mlt_out_dir == mlt_base_dir:
137 | replace_txt = "."
138 | else: # remove disk, unix style
139 | replace_txt = re.sub('[a-z,A-Z]{1}:', "", mlt_base_dir)
140 | replace_txt = replace_txt.replace('\\','/')
141 | common_head_txt = re.sub('%mlt_base_dir%', replace_txt, common_head_txt,0,re.M)
142 |
143 | ```
144 |
145 | ### Convert Markdown Literary Programming to Markdown
146 |
147 | ```python
148 |
149 | dest_text = editor.getText()
150 | # lisp or null (default as lisp)
151 | if editor.getLexerLanguage() == 'lisp' or editor.getLexerLanguage() == 'null':
152 | dest_text = re.sub(r'^;', "", dest_text,0,re.M)
153 | elif editor.getLexerLanguage() == 'python' or editor.getLexerLanguage() == 'r':
154 | dest_text = re.sub(r'^#', "", dest_text,0,re.M)
155 | elif editor.getLexerLanguage() == 'cpp':
156 | dest_text = re.sub(r'//', "", dest_text,0,re.M)
157 | else:
158 | dest_text = dest_text
159 | # dest_text = common_head_txt + markdown.markdown(dest_text)
160 | # dest_text = common_head_txt + mistune.markdown(dest_text)
161 |
162 | ```
163 |
164 | ### merge Common Head Text and Markdown
165 |
166 | ```python
167 |
168 | md_body_begin = '\r\n\r\n\r\n\r\n'
169 | md_body_end = '\r\n\r\n '
170 | TOC = "# Table of Contents \r\n\r\n{{TOC}}\r\n\r\n"
171 | if viewer == 2:
172 | dest_text = common_head_txt + md_body_begin + TOC + dest_text +md_body_end
173 | else:
174 | dest_text = common_head_txt + md_body_begin + dest_text + md_body_end
175 |
176 | ```
177 |
178 | ### View
179 |
180 | #### CuteMarked
181 |
182 | ```python
183 |
184 | if viewer == 1:
185 | # Method 1: create a md file, to open by cutemarked.
186 | if not os.path.exists(cutemarked_path):
187 | cutemarked_url = "https://github.com/cloose/CuteMarkEd"
188 | msg = "CuteMarked.exe does not exists! \r\nvar cutemarked_path: " + cutemarked_path + "\r\nIt can be download from " + cutemarked_url
189 | notepad.messageBox(msg, "Warning", 0)
190 | dest_full_path = mlt_out_dir + "\\" + current_filename + ".md"
191 | f= open(dest_full_path,'w')
192 | f.write(dest_text)
193 | f.close()
194 | cmd = cutemarked_path + " " + dest_full_path
195 | # os.system(cmd)
196 | os.popen(cmd)
197 | if is_delete_generate_file:
198 | os.remove(dest_full_path)
199 |
200 | ```
201 |
202 | #### MultiMarkdown+Chrome
203 |
204 | ```python
205 |
206 | elif viewer == 2:
207 | # Method 2: MultiMarkdown+Chrome
208 | if not os.path.exists(multimarkdown_path):
209 | multimarkdown_url = "https://github.com/fletcher/MultiMarkdown-6"
210 | msg = "multimarkdown.exe does not exists! \r\nvar multimarkdown_path: " + multimarkdown_path + "\r\nIt can be download from " + multimarkdown_url
211 | notepad.messageBox(msg, "Warning", 0)
212 | if not os.path.exists(chrome_path):
213 | chrome_url = "https://portableapps.com/apps/internet/google_chrome_portable"
214 | msg = "Chrome.exe(or GoogleChromePortable.exe) does not exists! \r\nvar chrome_path: " + chrome_path + "\r\nIt can be download from " + chrome_url
215 | notepad.messageBox(msg, "Warning", 0)
216 | md_full_path = mlt_out_dir + "\\" + current_filename + ".md"
217 | f= open(md_full_path,'w')
218 | f.write(dest_text)
219 | f.close()
220 | html_full_path = mlt_out_dir + "\\" + current_filename + ".html"
221 | cmd = multimarkdown_path + " --full --to=html --output=" + html_full_path + " " + md_full_path
222 | # cmd = multimarkdown_path + " --full " + md_full_path
223 | os.popen(cmd)
224 | f= open(html_full_path,'r')
225 | html_txt = f.read()
226 | f.close()
227 | html_txt = re.sub(r'', r'', html_txt, 0, re.M)
229 | html_txt = html_txt.replace("\r\n\r\n","\r\n")
230 | f= open(html_full_path,'w')
231 | f.write(html_txt)
232 | f.close()
233 | cmd = chrome_path + " " + html_full_path
234 | os.popen(cmd)
235 | if is_delete_generate_file:
236 | time.sleep(15)
237 | os.remove(md_full_path)
238 | os.remove(html_full_path)
239 |
240 | ```
241 |
242 | #### MarkdownViewer++Chrome
243 |
244 | ```python
245 |
246 | else:
247 | # Method 3: MarkdownViewer++Chrome
248 | editor2= notepad.new()
249 | editor.setText(dest_text)
250 | # dest_full_path = mlt_out_dir + current_filename + ".md"
251 | # notepad.saveAs(dest_full_path)
252 | notepad.runPluginCommand('MarkdownViewer++','MarkdownViewer++')
253 |
254 | ```
255 |
256 | ### Clean mlt_out_dir
257 |
258 | ```python
259 |
260 |
261 | def del_file(path):
262 | ls = os.listdir(path)
263 | for i in ls:
264 | c_path = os.path.join(path, i)
265 | if os.path.isdir(c_path):
266 | del_file(c_path)
267 | else:
268 | os.remove(c_path)
269 |
270 | if is_clean_mlt_out_dir:
271 | if viewer == 2:
272 | time.sleep(15)
273 | del_file(mlt_out_dir)
274 |
275 | ```
276 |
277 | ## End Code
278 |
279 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/Npp_MLP_readme.md:
--------------------------------------------------------------------------------
1 | ## Usage
2 |
3 | You can put pythonscript on toolbar.
4 | You can choose from the config area of Pythonscript:
5 |
6 | - viewer
7 | - out_path: Out directory
8 | - mlt_base_path: resource directory
9 | (js,image,tools,css,mlt_common_head.md, etc)
10 | - is auto-clean out directory or file?
11 | - tools path: CuteMarked, MultiMarkdown, Chrome.
12 |
13 | ### subdirectorys and file of mlt_base_dir
14 |
15 | 1. out (Changeable)
16 | 2. js
17 | 3. image
18 | 4. css
19 | 5. MultiMarkdown (Optional)
20 | 6. CuteMarked (Optional)
21 | 7. ChromePortable (Optional)
22 | 8. MLT_common_head.md
23 |
24 | out_dir can be separated from mlt_base_dir(public resource directory),
25 | but must be on the same disk, in "mlt_common_head.md" file,
26 | the path starts with the root path, for example:
27 | "/path_to/mlt_base_dir/js/prismjs/prism.js"
28 |
29 | ### Viewer
30 | #### CuteMarked (viewer = 1, default)
31 | - Cutemarked supports sidebar outlines,
32 | which is helpful for reading code.
33 | - Cutemarked is the only one markdown viewer (editor):
34 | - native
35 | - It supports all features of the browser, support:
36 | - js
37 | - image
38 | - css
39 | - syntax highlighting
40 | - Mermaid charts
41 | - Math
42 | - Cutemarked exported HTML has problems
43 | displaying syntax highlighting and Mermaid charts.
44 |
45 | #### MultiMarkdown + Chrome (viewer = 2)
46 | - MultiMarkdown support TOC.
47 | - MultiMarkdown does not support the GitHub style
48 | code block block and Mermaid charts,
49 | I made a correction in py.
50 | - Multimarkdown faster and lighter than pandoc.
51 | - When converted to HTML, it is automatically open with Chrome,
52 | and the display works well.
53 |
54 | #### MarkdownViewer++ plugin + Chrome (viewer = 3)
55 | - MarkdownViewer++ viewer is fast, only support displaying markdown text.
56 | - MarkdownViewer++ viewer don't support syntax highlighting, image, js.
57 | - MarkdownViewer++ viewer only displaying Mermaid text.
58 | - MarkdownViewer++ export as html, chrome displaying is ok :
59 | - syntax highlighting
60 | - Mermaid charts
61 | - image
62 | - js
63 |
64 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/image/cowplot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/MarkdownLiteraryProgramming/image/cowplot.png
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/js/mermaidjs/mermaid.css:
--------------------------------------------------------------------------------
1 | /* Flowchart variables */
2 | /* Sequence Diagram variables */
3 | /* Gantt chart variables */
4 | .mermaid .label {
5 | color: #333;
6 | }
7 | .node rect,
8 | .node circle,
9 | .node ellipse,
10 | .node polygon {
11 | fill: #ECECFF;
12 | stroke: #CCCCFF;
13 | stroke-width: 1px;
14 | }
15 | .edgePath .path {
16 | stroke: #333333;
17 | }
18 | .edgeLabel {
19 | background-color: #e8e8e8;
20 | }
21 | .cluster rect {
22 | fill: #ffffde !important;
23 | rx: 4 !important;
24 | stroke: #aaaa33 !important;
25 | stroke-width: 1px !important;
26 | }
27 | .cluster text {
28 | fill: #333;
29 | }
30 | .actor {
31 | stroke: #CCCCFF;
32 | fill: #ECECFF;
33 | }
34 | text.actor {
35 | fill: black;
36 | stroke: none;
37 | }
38 | .actor-line {
39 | stroke: grey;
40 | }
41 | .messageLine0 {
42 | stroke-width: 1.5;
43 | stroke-dasharray: "2 2";
44 | marker-end: "url(#arrowhead)";
45 | stroke: #333;
46 | }
47 | .messageLine1 {
48 | stroke-width: 1.5;
49 | stroke-dasharray: "2 2";
50 | stroke: #333;
51 | }
52 | #arrowhead {
53 | fill: #333;
54 | }
55 | #crosshead path {
56 | fill: #333 !important;
57 | stroke: #333 !important;
58 | }
59 | .messageText {
60 | fill: #333;
61 | stroke: none;
62 | }
63 | .labelBox {
64 | stroke: #CCCCFF;
65 | fill: #ECECFF;
66 | }
67 | .labelText {
68 | fill: black;
69 | stroke: none;
70 | }
71 | .loopText {
72 | fill: black;
73 | stroke: none;
74 | }
75 | .loopLine {
76 | stroke-width: 2;
77 | stroke-dasharray: "2 2";
78 | marker-end: "url(#arrowhead)";
79 | stroke: #CCCCFF;
80 | }
81 | .note {
82 | stroke: #aaaa33;
83 | fill: #fff5ad;
84 | }
85 | .noteText {
86 | fill: black;
87 | stroke: none;
88 | font-family: 'trebuchet ms', verdana, arial;
89 | font-size: 14px;
90 | }
91 | /** Section styling */
92 | .section {
93 | stroke: none;
94 | opacity: 0.2;
95 | }
96 | .section0 {
97 | fill: rgba(102, 102, 255, 0.49);
98 | }
99 | .section2 {
100 | fill: #fff400;
101 | }
102 | .section1,
103 | .section3 {
104 | fill: white;
105 | opacity: 0.2;
106 | }
107 | .sectionTitle0 {
108 | fill: #333;
109 | }
110 | .sectionTitle1 {
111 | fill: #333;
112 | }
113 | .sectionTitle2 {
114 | fill: #333;
115 | }
116 | .sectionTitle3 {
117 | fill: #333;
118 | }
119 | .sectionTitle {
120 | text-anchor: start;
121 | font-size: 11px;
122 | text-height: 14px;
123 | }
124 | /* Grid and axis */
125 | .grid .tick {
126 | stroke: lightgrey;
127 | opacity: 0.3;
128 | shape-rendering: crispEdges;
129 | }
130 | .grid path {
131 | stroke-width: 0;
132 | }
133 | /* Today line */
134 | .today {
135 | fill: none;
136 | stroke: red;
137 | stroke-width: 2px;
138 | }
139 | /* Task styling */
140 | /* Default task */
141 | .task {
142 | stroke-width: 2;
143 | }
144 | .taskText {
145 | text-anchor: middle;
146 | font-size: 11px;
147 | }
148 | .taskTextOutsideRight {
149 | fill: black;
150 | text-anchor: start;
151 | font-size: 11px;
152 | }
153 | .taskTextOutsideLeft {
154 | fill: black;
155 | text-anchor: end;
156 | font-size: 11px;
157 | }
158 | /* Specific task settings for the sections*/
159 | .taskText0,
160 | .taskText1,
161 | .taskText2,
162 | .taskText3 {
163 | fill: white;
164 | }
165 | .task0,
166 | .task1,
167 | .task2,
168 | .task3 {
169 | fill: #8a90dd;
170 | stroke: #534fbc;
171 | }
172 | .taskTextOutside0,
173 | .taskTextOutside2 {
174 | fill: black;
175 | }
176 | .taskTextOutside1,
177 | .taskTextOutside3 {
178 | fill: black;
179 | }
180 | /* Active task */
181 | .active0,
182 | .active1,
183 | .active2,
184 | .active3 {
185 | fill: #bfc7ff;
186 | stroke: #534fbc;
187 | }
188 | .activeText0,
189 | .activeText1,
190 | .activeText2,
191 | .activeText3 {
192 | fill: black !important;
193 | }
194 | /* Completed task */
195 | .done0,
196 | .done1,
197 | .done2,
198 | .done3 {
199 | stroke: grey;
200 | fill: lightgrey;
201 | stroke-width: 2;
202 | }
203 | .doneText0,
204 | .doneText1,
205 | .doneText2,
206 | .doneText3 {
207 | fill: black !important;
208 | }
209 | /* Tasks on the critical line */
210 | .crit0,
211 | .crit1,
212 | .crit2,
213 | .crit3 {
214 | stroke: #ff8888;
215 | fill: red;
216 | stroke-width: 2;
217 | }
218 | .activeCrit0,
219 | .activeCrit1,
220 | .activeCrit2,
221 | .activeCrit3 {
222 | stroke: #ff8888;
223 | fill: #bfc7ff;
224 | stroke-width: 2;
225 | }
226 | .doneCrit0,
227 | .doneCrit1,
228 | .doneCrit2,
229 | .doneCrit3 {
230 | stroke: #ff8888;
231 | fill: lightgrey;
232 | stroke-width: 2;
233 | cursor: pointer;
234 | shape-rendering: crispEdges;
235 | }
236 | .doneCritText0,
237 | .doneCritText1,
238 | .doneCritText2,
239 | .doneCritText3 {
240 | fill: black !important;
241 | }
242 | .activeCritText0,
243 | .activeCritText1,
244 | .activeCritText2,
245 | .activeCritText3 {
246 | fill: black !important;
247 | }
248 | .titleText {
249 | text-anchor: middle;
250 | font-size: 18px;
251 | fill: black;
252 | }
253 | /*
254 |
255 |
256 | */
257 | .node text {
258 | font-family: 'trebuchet ms', verdana, arial;
259 | font-size: 14px;
260 | }
261 | div.mermaidTooltip {
262 | position: absolute;
263 | text-align: center;
264 | max-width: 200px;
265 | padding: 2px;
266 | font-family: 'trebuchet ms', verdana, arial;
267 | font-size: 12px;
268 | background: #ffffde;
269 | border: 1px solid #aaaa33;
270 | border-radius: 2px;
271 | pointer-events: none;
272 | z-index: 100;
273 | }
274 |
--------------------------------------------------------------------------------
/Notepad++/tools/MarkdownLiteraryProgramming/js/prismjs/prism.css:
--------------------------------------------------------------------------------
1 | /* PrismJS 1.15.0
2 | https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+c+asciidoc+csharp+bash+basic+batch+cpp+clojure+css-extras+fsharp+go+graphql+ini+java+json+julia+markdown+lisp+makefile+pascal+sql+powershell+processing+prolog+python+r+typescript+rest+textile+scheme+plsql+toml+vbnet+visual-basic+wasm+wiki+xquery */
3 | /**
4 | * prism.js default theme for JavaScript, CSS and HTML
5 | * Based on dabblet (http://dabblet.com)
6 | * @author Lea Verou
7 | */
8 |
9 | code[class*="language-"],
10 | pre[class*="language-"] {
11 | color: black;
12 | background: none;
13 | text-shadow: 0 1px white;
14 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
15 | text-align: left;
16 | white-space: pre;
17 | word-spacing: normal;
18 | word-break: normal;
19 | word-wrap: normal;
20 | line-height: 1.5;
21 |
22 | -moz-tab-size: 4;
23 | -o-tab-size: 4;
24 | tab-size: 4;
25 |
26 | -webkit-hyphens: none;
27 | -moz-hyphens: none;
28 | -ms-hyphens: none;
29 | hyphens: none;
30 | }
31 |
32 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
33 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
34 | text-shadow: none;
35 | background: #b3d4fc;
36 | }
37 |
38 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
39 | code[class*="language-"]::selection, code[class*="language-"] ::selection {
40 | text-shadow: none;
41 | background: #b3d4fc;
42 | }
43 |
44 | @media print {
45 | code[class*="language-"],
46 | pre[class*="language-"] {
47 | text-shadow: none;
48 | }
49 | }
50 |
51 | /* Code blocks */
52 | pre[class*="language-"] {
53 | padding: 1em;
54 | margin: .5em 0;
55 | overflow: auto;
56 | }
57 |
58 | :not(pre) > code[class*="language-"],
59 | pre[class*="language-"] {
60 | background: #f5f2f0;
61 | }
62 |
63 | /* Inline code */
64 | :not(pre) > code[class*="language-"] {
65 | padding: .1em;
66 | border-radius: .3em;
67 | white-space: normal;
68 | }
69 |
70 | .token.comment,
71 | .token.prolog,
72 | .token.doctype,
73 | .token.cdata {
74 | color: slategray;
75 | }
76 |
77 | .token.punctuation {
78 | color: #999;
79 | }
80 |
81 | .namespace {
82 | opacity: .7;
83 | }
84 |
85 | .token.property,
86 | .token.tag,
87 | .token.boolean,
88 | .token.number,
89 | .token.constant,
90 | .token.symbol,
91 | .token.deleted {
92 | color: #905;
93 | }
94 |
95 | .token.selector,
96 | .token.attr-name,
97 | .token.string,
98 | .token.char,
99 | .token.builtin,
100 | .token.inserted {
101 | color: #690;
102 | }
103 |
104 | .token.operator,
105 | .token.entity,
106 | .token.url,
107 | .language-css .token.string,
108 | .style .token.string {
109 | color: #9a6e3a;
110 | background: hsla(0, 0%, 100%, .5);
111 | }
112 |
113 | .token.atrule,
114 | .token.attr-value,
115 | .token.keyword {
116 | color: #07a;
117 | }
118 |
119 | .token.function,
120 | .token.class-name {
121 | color: #DD4A68;
122 | }
123 |
124 | .token.regex,
125 | .token.important,
126 | .token.variable {
127 | color: #e90;
128 | }
129 |
130 | .token.important,
131 | .token.bold {
132 | font-weight: bold;
133 | }
134 | .token.italic {
135 | font-style: italic;
136 | }
137 |
138 | .token.entity {
139 | cursor: help;
140 | }
141 |
142 |
--------------------------------------------------------------------------------
/Notepad++/tools/MultiMarkdown/readme.md:
--------------------------------------------------------------------------------
1 | # MultiMarkdown
2 |
3 | Lightweight markup processor to produce HTML, LaTeX, and more.
4 |
5 | https://fletcher.github.io/MultiMarkdown-6/
6 |
7 | https://github.com/fletcher/MultiMarkdown-6
--------------------------------------------------------------------------------
/Notepad++/tools/clj/hiccup2html.clj:
--------------------------------------------------------------------------------
1 | ; Author: Lin Pengcheng
2 | ; My Blog: [The Grand Unified Programming Theory: The Pure Function Pipeline Data Flow with Principle-based Warehouse/Workshop Model](https://github.com/linpengcheng/PurefunctionPipelineDataflow)
3 |
4 | (use 'hiccup.core)
5 | (->> *command-line-args*
6 | first
7 | slurp
8 | read-string
9 | eval
10 | html
11 | print)
12 |
--------------------------------------------------------------------------------
/Notepad++/tools/clj/mlp.clj:
--------------------------------------------------------------------------------
1 | ; # Markdown literary programming for Clojure
2 |
3 | ; Author: Lin Pengcheng
4 |
5 | ; My Blog: [The Grand Unified Programming Theory: The Pure Function Pipeline Data Flow with Principle-based Warehouse/Workshop Model](https://github.com/linpengcheng/PurefunctionPipelineDataflow)
6 |
7 | ; Reference: [Markdown Literary programming that don't break the syntax of any programming language](https://github.com/linpengcheng/PurefunctionPipelineDataflow/blob/master/doc/markdown_literary_programming.md)
8 |
9 | ; ## Config
10 |
11 | (def npp-tools "C:/Notepad++/tools")
12 |
13 | ; md2html-method:
14 | ; - :cmark-gfm (support button, don't support TOC)
15 | ; - :MultiMarkdown (support TOC, button display fail)
16 | ; - :pandoc (Don't use, Notepad++ preview HTML plugin don't support)
17 | ; - :bootleg (don't recommended)
18 |
19 | (def md2html-method :cmark-gfm)
20 | (def save-md-file? false)
21 | (def save-html-file? false)
22 |
23 | ; ## Deps
24 |
25 | (use 'babashka.fs
26 | 'clojure.java.shell
27 | 'clojure.string)
28 |
29 | ; ## Var
30 |
31 | (def src-path-txt (first *command-line-args*))
32 | (def md-path-txt (str src-path-txt ".md"))
33 | (def html-path-txt (str src-path-txt ".html"))
34 |
35 | (def npp_mlp_dir (str npp-tools "/MarkdownLiteraryProgramming"))
36 |
37 | (def re-blank-line #"(?m)^(\s*)[\r\n]+")
38 | (def re-code-blocks #"(?m)^\s*[^;]([.\s\S\w\r\n]*?)\r\n;") ;"
39 | (def re-line-comment #"(?m)^\s*;[ ]?") ;"
40 |
41 | ; ## md2html Method
42 |
43 | ; ### bootleg (don't recommended)
44 | ; ```
45 | ;; (use 'babashka.pods)
46 | ;; (load-pod "bootleg")
47 | ;; (use 'pod.retrogradeorbit.bootleg.markdown)
48 | ;; (defn bootleg2html [md-txt]
49 | ;; (let [html-txt (markdown md-txt :data :html)]
50 | ;; (if save-md-file?
51 | ;; (spit md-path-txt md-txt :encoding "utf-8")
52 | ;; (delete-if-exists md-path-txt))
53 | ;; (if save-html-file?
54 | ;; (spit html-path-txt html-txt :encoding "utf-8")
55 | ;; (delete-if-exists html-path-txt))
56 | ;; html-txt))
57 | ; ```
58 |
59 | ; ### MultiMarkdown (option methon)
60 |
61 | (defn mmd-fenced-code-blocks [x]
62 | (-> x
63 | first
64 | (#(str "\r\n```language-clojure\r\n" % "\r\n```\r\n; "))))
65 |
66 | (defn mmd2html [md-txt]
67 | (let [mmdexe (str npp-tools "/MultiMarkdown/bin/multimarkdown.exe")
68 | _ (spit md-path-txt md-txt :encoding "utf-8")
69 | _ (sh mmdexe "--to=html"
70 | (str "--output=" html-path-txt)
71 | md-path-txt)
72 | html-txt (slurp html-path-txt :encoding "utf-8")]
73 | (when-not save-md-file?
74 | (delete-if-exists md-path-txt))
75 | (when-not save-html-file?
76 | (delete-if-exists html-path-txt))
77 | html-txt))
78 |
79 | (def mmd-head-txt
80 | (-> npp_mlp_dir
81 | (str , "/MLP_common_head_mmd.md")
82 | (slurp , :encoding "utf-8")
83 | (clojure.string/replace , #"%npp_mlp_dir%" npp_mlp_dir)))
84 |
85 |
86 | ; ### cmark_gfm (recommended method)
87 |
88 | (defn gfm-fenced-code-blocks [x]
89 | (-> x
90 | first
91 | (#(str "\r\n```clojure\r\n" % "\r\n```\r\n; "))))
92 |
93 | (defn gfm2html [md-txt]
94 | (let [gfmexe (str npp-tools "/cmark_gfm/cmark-gfm.exe")
95 | _ (spit md-path-txt md-txt :encoding "utf-8")
96 | html-txt (-> (sh gfmexe "--to" "html" md-path-txt)
97 | :out
98 | (clojure.string/replace ,
99 | #"class=\"language-mermaid\"" ;"
100 | "class=\"mermaid\""))]
101 | (when-not save-md-file?
102 | (delete-if-exists md-path-txt))
103 | (if save-html-file?
104 | (spit html-path-txt html-txt :encoding "utf-8")
105 | (delete-if-exists html-path-txt))
106 | html-txt))
107 |
108 | (def gfm-head-txt
109 | (-> npp_mlp_dir
110 | (str , "/MLP_common_head_gfm.md")
111 | (slurp , :encoding "utf-8")
112 | (clojure.string/replace , #"%npp_mlp_dir%" npp_mlp_dir)))
113 |
114 | ; ### pandoc (Don't use, Notepad++ preview HTML plugin don't support)
115 | ;```
116 | ;;(defn pandoc2html [md-txt]
117 | ;; (let [pandocexe (str npp-tools "/pandoc64/pandoc.exe")
118 | ;; _ (spit md-path-txt md-txt :encoding "utf-8")
119 | ;; _ (sh pandocexe "--from=markdown"
120 | ;; "--to=html"
121 | ;; "-o" html-path-txt
122 | ;; "--toc"
123 | ;; md-path-txt)
124 | ;; html-txt (slurp html-path-txt :encoding "utf-8")]
125 | ;; (when-not save-md-file?
126 | ;; (delete-if-exists md-path-txt))
127 | ;; (when-not save-html-file?
128 | ;; (delete-if-exists html-path-txt))
129 | ;; html-txt))
130 | ;```
131 |
132 | ; ### United md2html-method API
133 |
134 | ;; add Fenced code blocks
135 | (defn fenced-code-blocks [txt md2html-method]
136 | (case md2html-method
137 | :cmark-gfm
138 | (clojure.string/replace txt re-code-blocks gfm-fenced-code-blocks)
139 | :MultiMarkdown
140 | (clojure.string/replace txt re-code-blocks mmd-fenced-code-blocks)
141 | ;; :pandoc
142 | ;; (clojure.string/replace txt re-code-blocks mmd-fenced-code-blocks)
143 | ;; :bootleg
144 | ;; (clojure.string/replace , re-code-blocks mmd-fenced-code-blocks)
145 | (clojure.string/replace txt re-code-blocks gfm-fenced-code-blocks)))
146 |
147 | (defn common-head-tail [txt md2html-method]
148 | (let [md-tail-txt "\r\n\r\n\r\n\r\n"]
149 | (case md2html-method
150 | :cmark-gfm
151 | (str gfm-head-txt txt md-tail-txt)
152 | :MultiMarkdown
153 | (str mmd-head-txt txt md-tail-txt)
154 | ;; :pandoc
155 | ;; (str gfm-head-txt txt md-tail-txt)
156 | ;; :bootleg
157 | ;; (str gfm-head-txt txt md-tail-txt)
158 | (str gfm-head-txt txt md-tail-txt))))
159 |
160 | (defn md2html [txt md2html-method]
161 | (case md2html-method
162 | :cmark-gfm
163 | (gfm2html txt)
164 | :MultiMarkdown
165 | (mmd2html txt)
166 | ;; :pandoc
167 | ;; (pandoc2html txt)
168 | ;; :bootleg
169 | ;; (bootleg2html txt)
170 | (gfm2html txt)))
171 |
172 | ; ## Main
173 |
174 | (-> src-path-txt
175 | (slurp , :encoding "utf-8")
176 | (clojure.string/replace , re-blank-line ";\r\n") ;line comment let blank line to md blank line
177 | (fenced-code-blocks , md2html-method)
178 | (clojure.string/replace , re-line-comment "") ;remove all first line comment chars at line ahead
179 | (common-head-tail , md2html-method)
180 | (md2html , md2html-method)
181 | println)
182 |
183 | ; ## End
184 |
--------------------------------------------------------------------------------
/Notepad++/tools/clj/npp_convert.clj:
--------------------------------------------------------------------------------
1 | ; Author: Lin Pengcheng
2 | ; My Blog: [The Grand Unified Programming Theory: The Pure Function Pipeline Data Flow with Principle-based Warehouse/Workshop Model](https://github.com/linpengcheng/PurefunctionPipelineDataflow)
3 |
4 | (ns npp-convert)
5 |
6 | (defn convert []
7 | (->> *command-line-args*
8 | (apply str ,)
9 | (#(str "Hello " % "! "))
10 | ;class
11 | print))
12 |
13 | (convert)
14 |
--------------------------------------------------------------------------------
/Notepad++/tools/clj/readme.md:
--------------------------------------------------------------------------------
1 | # babashka
2 |
3 | Babashka is a native Clojure interpreter for
4 | scripting with fast startup. Its main goal is
5 | to leverage Clojure in places where you would
6 | be using bash otherwise.
7 |
8 | https://github.com/babashka/babashka
9 |
10 | # Clj-kondo
11 |
12 | Clj-kondo performs static analysis on Clojure,
13 | ClojureScript and EDN, without the need of a
14 | running REPL. It informs you about potential
15 | errors while you are typing.
16 |
17 | https://github.com/clj-kondo/clj-kondo
18 |
19 | # Hiccup-cli
20 |
21 | Command line tool / Emacs plugin to convert HTML to Hiccup syntax.
22 |
23 | https://github.com/kwrooijen/hiccup-cli
24 |
--------------------------------------------------------------------------------
/Notepad++/tools/cmark_gfm/cmark-gfm-extensions.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/cmark_gfm/cmark-gfm-extensions.dll
--------------------------------------------------------------------------------
/Notepad++/tools/cmark_gfm/cmark-gfm.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/cmark_gfm/cmark-gfm.dll
--------------------------------------------------------------------------------
/Notepad++/tools/cmark_gfm/cmark-gfm.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/cmark_gfm/cmark-gfm.exe
--------------------------------------------------------------------------------
/Notepad++/tools/cmark_gfm/help.txt:
--------------------------------------------------------------------------------
1 | cmark-gfm-0.28.3.gfm.15
2 |
3 | Usage: cmark-gfm [FILE*]
4 | Options:
5 | --to, -t FORMAT Specify output format (html, xml, man, commonmark, plaintext, latex)
6 | 指定输出格式
7 | --width WIDTH Specify wrap width (default 0 = nowrap)
8 | 指定换行宽度
9 | --sourcepos Include source position attribute
10 | 源位置属性
11 | --hardbreaks Treat newlines as hard line breaks
12 | 将新行视为硬回车
13 | --nobreaks Render soft line breaks as spaces
14 | 软回车视为空格渲染
15 | --safe Suppress raw HTML and dangerous URLs
16 | 抑制原始 HTML 和危险 Url
17 | --smart Use smart punctuation
18 | 使用智能标点符号
19 | --validate-utf8 Replace UTF-8 invalid sequences with U+FFFD
20 | 将utf8无效序列替换为 U+FFFD
21 | --github-pre-lang Use GitHub-style for code blocks
22 | 对于代码块使用GitHub-style
23 | --footnotes Parse footnotes
24 | 解析脚注
25 | --extension, -e EXTENSION_NAME Specify an extension name to use
26 | 指定要使用的扩展名称
27 | --list-extensions List available extensions and quit
28 | 列出可用扩展列表并退出
29 | --strikethrough-double-tilde Only parse strikethrough (if enabled)
30 | with two tildes
31 | 仅使用两个倾斜法分析删除线 (如果启用)。
32 | --table-prefer-style-attributes Use style attributes to align table cells
33 | instead of align attributes.
34 | 使用样式属性对齐表格单元格, 而不是对齐属性。
35 |
36 | --full-info-string Include remainder of code block info
37 | string in a separate attribute.
38 | 在单独的属性中包含代码块信息字符串的其余部分。
39 | --help, -h Print usage information
40 |
41 | --version Print version
42 |
--------------------------------------------------------------------------------
/Notepad++/tools/cmark_gfm/x.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
23 |
24 | -- coding:utf-8 --
25 | Markdown Literary Programming
26 | Author: Lin Pengcheng
27 | Blog: Markdown Literary Programming
28 | Note
29 | Subdirectorys and file of mlt_base_dir
30 |
31 | -
32 |
out (Changeable)
33 |
34 | -
35 |
js
36 |
37 | -
38 |
image
39 |
40 | -
41 |
css
42 |
43 | -
44 |
MultiMarkdown (Optional)
45 |
46 | -
47 |
CuteMarked (Optional)
48 |
49 | -
50 |
ChromePortable (Optional)
51 |
52 | -
53 |
MLT_common_head.md
54 |
55 |
56 | out_dir can be separated from mlt_base_dir(public resource directory),
57 | but must be on the same disk, in "mlt_common_head.md" file,
58 | the path starts with the root path, for example:
59 | /path_to/mlt_base_dir/js/prismjs/prism.js
60 | Python lib
61 | markdown or mistune does not support mermaid
62 | Viewer
63 | Cutemarked (viewer = 1)
64 |
65 | -
66 |
it is the only native Markdown viewer that supports JS, image, HTML.
67 |
68 | -
69 |
it has an outline view of Markdown.
70 |
71 | -
72 |
It exports HTML in chrome is not good to display.
73 |
74 |
75 | MultiMarkdown + Chrome (viewer = 2)
76 |
77 | -
78 |
MultiMarkdown support TOC.
79 |
80 | -
81 |
MultiMarkdown does not support the GitHub style
82 | code block block and Mermaid charts,
83 | I made a correction in py.
84 |
85 | -
86 |
Multimarkdown faster and lighter than pandoc.
87 |
88 | -
89 |
When converted to HTML, it is automatically open with Chrome,
90 | and the display works well.
91 |
92 |
93 | Markdownviewer++ (viewer = 3)
94 |
95 | -
96 |
It exports HTML in chrome is displayed very well
97 |
98 | -
99 |
fast, Its viewer is only supported by plain text markdown LivePreview.
100 |
101 | -
102 |
its viewer no syntax highlighted, no mermaid, no image displayed
103 |
104 |
105 | cmark_gfm (viewer = 4)
106 | Config
107 |
108 |
109 |
110 | viewer = 4
111 |
112 | is_clean_mlt_out_dir = False
113 |
114 | is_delete_generate_file = False
115 |
116 | mlt_base_dir = notepad.getNppDir() + "\\MarkdownLiteraryProgramming"
117 |
118 | mlt_out_dir = mlt_base_dir + "\\out"
119 |
120 | # mlt_out_dir = mlt_base_dir
121 |
122 | cutemarked_path = mlt_base_dir + "\\cutemarked\\cutemarked.exe"
123 |
124 | multimarkdown_path = mlt_base_dir + "\\MultiMarkdown\\bin\\multimarkdown.exe"
125 |
126 | chrome_path = "D:\\PortableApps\\GoogleChromePortable\\GoogleChromePortable.exe"
127 |
128 | cmark_gfm_path = mlt_base_dir + "\\cmark_gfm\\cmark-gfm.exe"
129 |
130 |
131 |
132 |
133 | End Config
134 | Code
135 | Init
136 |
137 |
138 |
139 | import os
140 |
141 | import re
142 |
143 | import time
144 |
145 |
146 |
147 | notepad.save()
148 |
149 | current_full_path = notepad.getCurrentFilename()
150 |
151 | (current_dir, current_filename) = os.path.split(current_full_path)
152 |
153 |
154 |
155 | if not os.path.exists(mlt_out_dir):
156 |
157 | os.makedirs(mlt_out_dir)
158 |
159 |
160 |
161 |
162 | get Common Head Text
163 |
164 |
165 |
166 | common_head_txt = ""
167 |
168 | common_head_file = mlt_base_dir + "\\MLP_common_head.md"
169 |
170 | if os.path.exists(common_head_file):
171 |
172 | f= open(common_head_file,'r')
173 |
174 | common_head_txt = f.read()
175 |
176 | f.close()
177 |
178 | replace_txt = ""
179 |
180 | if mlt_out_dir == mlt_base_dir + "\\out":
181 |
182 | replace_txt = ".."
183 |
184 | elif mlt_out_dir == mlt_base_dir:
185 |
186 | replace_txt = "."
187 |
188 | else: # remove disk, unix style
189 |
190 | replace_txt = re.sub('[a-z,A-Z]{1}:', "", mlt_base_dir)
191 |
192 | replace_txt = replace_txt.replace('\\','/')
193 |
194 | common_head_txt = re.sub('%mlt_base_dir%', replace_txt, common_head_txt,0,re.M)
195 |
196 |
197 |
198 |
199 | Convert Markdown Literary Programming to Markdown
200 |
201 |
202 |
203 | dest_text = editor.getText()
204 |
205 | # lisp or null (default as lisp)
206 |
207 | if editor.getLexerLanguage() == 'lisp' or editor.getLexerLanguage() == 'null':
208 |
209 | dest_text = re.sub(r'^;', "", dest_text,0,re.M)
210 |
211 | elif editor.getLexerLanguage() == 'python' or editor.getLexerLanguage() == 'r':
212 |
213 | dest_text = re.sub(r'^#', "", dest_text,0,re.M)
214 |
215 | elif editor.getLexerLanguage() == 'cpp':
216 |
217 | dest_text = re.sub(r'//', "", dest_text,0,re.M)
218 |
219 | else:
220 |
221 | dest_text = dest_text
222 |
223 | # dest_text = common_head_txt + markdown.markdown(dest_text)
224 |
225 | # dest_text = common_head_txt + mistune.markdown(dest_text)
226 |
227 |
228 |
229 |
230 | merge Common Head Text and Markdown
231 |
232 |
233 |
234 | md_body_begin = '\r\n\r\n<article class="markdown-body">\r\n\r\n'
235 |
236 | md_body_end = '\r\n\r\n</article>'
237 |
238 | TOC = "# Table of Contents \r\n\r\n{{TOC}}\r\n\r\n"
239 |
240 | if viewer == 2:
241 |
242 | dest_text = common_head_txt + md_body_begin + TOC + dest_text +md_body_end
243 |
244 | else:
245 |
246 | dest_text = common_head_txt + md_body_begin + dest_text + md_body_end
247 |
248 |
249 |
250 |
251 | View
252 | CuteMarked
253 |
254 |
255 |
256 | if viewer == 1:
257 |
258 | # Method 1: create a md file, to open by cutemarked.
259 |
260 | if not os.path.exists(cutemarked_path):
261 |
262 | cutemarked_url = "https://github.com/cloose/CuteMarkEd"
263 |
264 | msg = "CuteMarked.exe does not exists! \r\nvar cutemarked_path: " + cutemarked_path + "\r\nIt can be download from " + cutemarked_url
265 |
266 | notepad.messageBox(msg, "Warning", 0)
267 |
268 | dest_full_path = mlt_out_dir + "\\" + current_filename + ".md"
269 |
270 | f= open(dest_full_path,'w')
271 |
272 | f.write(dest_text)
273 |
274 | f.close()
275 |
276 | cmd = cutemarked_path + " " + dest_full_path
277 |
278 | # os.system(cmd)
279 |
280 | os.popen(cmd)
281 |
282 | if is_delete_generate_file:
283 |
284 | os.remove(dest_full_path)
285 |
286 |
287 |
288 |
289 | cmark_gfm_path
290 |
291 |
292 |
293 | if viewer == 4:
294 |
295 | if not os.path.exists(cmark_gfm_path):
296 |
297 | cmark_gfm_url = "https://github.com/github/cmark-gfm"
298 |
299 | msg = "cmark_gfm.exe does not exists! \r\nvar cmark_gfm_path: " + cmark_gfm_path + "\r\nIt can be download from " + cmark_gfm_url
300 |
301 | notepad.messageBox(msg, "Warning", 0)
302 |
303 | if not os.path.exists(chrome_path):
304 |
305 | chrome_url = "https://portableapps.com/apps/internet/google_chrome_portable"
306 |
307 | msg = "Chrome.exe(or GoogleChromePortable.exe) does not exists! \r\nvar chrome_path: " + chrome_path + "\r\nIt can be download from " + chrome_url
308 |
309 | notepad.messageBox(msg, "Warning", 0)
310 |
311 | md_full_path = mlt_out_dir + "\\" + current_filename + ".md"
312 |
313 | f= open(md_full_path,'w')
314 |
315 | f.write(dest_text)
316 |
317 | f.close()
318 |
319 | html_full_path = mlt_out_dir + "\\" + current_filename + ".html"
320 |
321 | cmd = cmark_gfm_path + " --github-pre-lang --footnotes --to=html " + md_full_path # + " " + html_full_path
322 |
323 | os.popen(cmd)
324 |
325 | cmd = chrome_path + " " + html_full_path
326 |
327 | os.popen(cmd)
328 |
329 | if is_delete_generate_file:
330 |
331 | time.sleep(15)
332 |
333 | os.remove(md_full_path)
334 |
335 | os.remove(html_full_path)
336 |
337 |
338 |
339 |
340 | MultiMarkdown+Chrome
341 |
342 |
343 |
344 | elif viewer == 2:
345 |
346 | # Method 2: MultiMarkdown+Chrome
347 |
348 | if not os.path.exists(multimarkdown_path):
349 |
350 | multimarkdown_url = "https://github.com/fletcher/MultiMarkdown-6"
351 |
352 | msg = "multimarkdown.exe does not exists! \r\nvar multimarkdown_path: " + multimarkdown_path + "\r\nIt can be download from " + multimarkdown_url
353 |
354 | notepad.messageBox(msg, "Warning", 0)
355 |
356 | if not os.path.exists(chrome_path):
357 |
358 | chrome_url = "https://portableapps.com/apps/internet/google_chrome_portable"
359 |
360 | msg = "Chrome.exe(or GoogleChromePortable.exe) does not exists! \r\nvar chrome_path: " + chrome_path + "\r\nIt can be download from " + chrome_url
361 |
362 | notepad.messageBox(msg, "Warning", 0)
363 |
364 | md_full_path = mlt_out_dir + "\\" + current_filename + ".md"
365 |
366 | f= open(md_full_path,'w')
367 |
368 | f.write(dest_text)
369 |
370 | f.close()
371 |
372 | html_full_path = mlt_out_dir + "\\" + current_filename + ".html"
373 |
374 | cmd = multimarkdown_path + " --full --to=html --output=" + html_full_path + " " + md_full_path
375 |
376 | # cmd = multimarkdown_path + " --full " + md_full_path
377 |
378 | os.popen(cmd)
379 |
380 | f= open(html_full_path,'r')
381 |
382 | html_txt = f.read()
383 |
384 | f.close()
385 |
386 | html_txt = re.sub(r'<pre><code class="', r'<pre><code class="language-', html_txt, 0, re.M)
387 |
388 | html_txt = re.sub(r'<pre><code class="language-mermaid">', r'<pre><code class="mermaid">', html_txt, 0, re.M)
389 |
390 | html_txt = html_txt.replace("\r\n\r\n","\r\n")
391 |
392 | f= open(html_full_path,'w')
393 |
394 | f.write(html_txt)
395 |
396 | f.close()
397 |
398 | cmd = chrome_path + " " + html_full_path
399 |
400 | os.popen(cmd)
401 |
402 | if is_delete_generate_file:
403 |
404 | time.sleep(15)
405 |
406 | os.remove(md_full_path)
407 |
408 | os.remove(html_full_path)
409 |
410 |
411 |
412 |
413 | MarkdownViewer++Chrome
414 |
415 |
416 |
417 | else:
418 |
419 | # Method 3: MarkdownViewer++Chrome
420 |
421 | editor2= notepad.new()
422 |
423 | editor.setText(dest_text)
424 |
425 | # dest_full_path = mlt_out_dir + current_filename + ".md"
426 |
427 | # notepad.saveAs(dest_full_path)
428 |
429 | notepad.runPluginCommand('MarkdownViewer++','MarkdownViewer++')
430 |
431 |
432 |
433 |
434 | Clean mlt_out_dir
435 |
436 |
437 |
438 |
439 |
440 | def del_file(path):
441 |
442 | ls = os.listdir(path)
443 |
444 | for i in ls:
445 |
446 | c_path = os.path.join(path, i)
447 |
448 | if os.path.isdir(c_path):
449 |
450 | del_file(c_path)
451 |
452 | else:
453 |
454 | os.remove(c_path)
455 |
456 |
457 |
458 | if is_clean_mlt_out_dir:
459 |
460 | if viewer == 2:
461 |
462 | time.sleep(15)
463 |
464 | del_file(mlt_out_dir)
465 |
466 |
467 |
468 |
469 | End Code
470 |
471 |
--------------------------------------------------------------------------------
/Notepad++/tools/cmark_gfm/x.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
25 |
26 |
27 |
28 |
29 | -*- coding:utf-8 -*-
30 |
31 | # Markdown Literary Programming
32 |
33 | Author: Lin Pengcheng
34 |
35 | Blog: [Markdown Literary Programming](https://github.com/linpengcheng/PurefunctionPipelineDataflow/blob/master/doc/markdown_literary_programming.md)
36 |
37 | ## Note
38 |
39 | ### Subdirectorys and file of mlt_base_dir
40 |
41 | - out (Changeable)
42 | - js
43 | - image
44 | - css
45 | - MultiMarkdown (Optional)
46 | - CuteMarked (Optional)
47 | - ChromePortable (Optional)
48 | - MLT_common_head.md
49 |
50 | out_dir can be separated from mlt_base_dir(public resource directory),
51 | but must be on the same disk, in "mlt_common_head.md" file,
52 | the path starts with the root path, for example:
53 | `/path_to/mlt_base_dir/js/prismjs/prism.js`
54 |
55 | ### Python lib
56 |
57 | markdown or mistune does not support mermaid
58 |
59 | ### Viewer
60 |
61 | #### Cutemarked (viewer = 1)
62 |
63 | - it is the only native Markdown viewer that supports JS, image, HTML.
64 | - it has an outline view of Markdown.
65 | - It exports HTML in chrome is not good to display.
66 |
67 | #### MultiMarkdown + Chrome (viewer = 2)
68 |
69 | - MultiMarkdown support TOC.
70 | - MultiMarkdown does not support the GitHub style
71 | code block block and Mermaid charts,
72 | I made a correction in py.
73 | - Multimarkdown faster and lighter than pandoc.
74 | - When converted to HTML, it is automatically open with Chrome,
75 | and the display works well.
76 |
77 | #### Markdownviewer++ (viewer = 3)
78 |
79 | - It exports HTML in chrome is displayed very well
80 | - fast, Its viewer is only supported by plain text markdown LivePreview.
81 | - its viewer no syntax highlighted, no mermaid, no image displayed
82 |
83 | #### cmark_gfm (viewer = 4)
84 |
85 | ## Config
86 |
87 | ```python
88 |
89 | viewer = 4
90 | is_clean_mlt_out_dir = False
91 | is_delete_generate_file = False
92 | mlt_base_dir = notepad.getNppDir() + "\\MarkdownLiteraryProgramming"
93 | mlt_out_dir = mlt_base_dir + "\\out"
94 | # mlt_out_dir = mlt_base_dir
95 | cutemarked_path = mlt_base_dir + "\\cutemarked\\cutemarked.exe"
96 | multimarkdown_path = mlt_base_dir + "\\MultiMarkdown\\bin\\multimarkdown.exe"
97 | chrome_path = "D:\\PortableApps\\GoogleChromePortable\\GoogleChromePortable.exe"
98 | cmark_gfm_path = mlt_base_dir + "\\cmark_gfm\\cmark-gfm.exe"
99 |
100 | ```
101 |
102 | ## End Config
103 |
104 | ## Code
105 |
106 | ### Init
107 |
108 | ```python
109 |
110 | import os
111 | import re
112 | import time
113 |
114 | notepad.save()
115 | current_full_path = notepad.getCurrentFilename()
116 | (current_dir, current_filename) = os.path.split(current_full_path)
117 |
118 | if not os.path.exists(mlt_out_dir):
119 | os.makedirs(mlt_out_dir)
120 |
121 | ```
122 |
123 | ### get Common Head Text
124 |
125 | ```python
126 |
127 | common_head_txt = ""
128 | common_head_file = mlt_base_dir + "\\MLP_common_head.md"
129 | if os.path.exists(common_head_file):
130 | f= open(common_head_file,'r')
131 | common_head_txt = f.read()
132 | f.close()
133 | replace_txt = ""
134 | if mlt_out_dir == mlt_base_dir + "\\out":
135 | replace_txt = ".."
136 | elif mlt_out_dir == mlt_base_dir:
137 | replace_txt = "."
138 | else: # remove disk, unix style
139 | replace_txt = re.sub('[a-z,A-Z]{1}:', "", mlt_base_dir)
140 | replace_txt = replace_txt.replace('\\','/')
141 | common_head_txt = re.sub('%mlt_base_dir%', replace_txt, common_head_txt,0,re.M)
142 |
143 | ```
144 |
145 | ### Convert Markdown Literary Programming to Markdown
146 |
147 | ```python
148 |
149 | dest_text = editor.getText()
150 | # lisp or null (default as lisp)
151 | if editor.getLexerLanguage() == 'lisp' or editor.getLexerLanguage() == 'null':
152 | dest_text = re.sub(r'^;', "", dest_text,0,re.M)
153 | elif editor.getLexerLanguage() == 'python' or editor.getLexerLanguage() == 'r':
154 | dest_text = re.sub(r'^#', "", dest_text,0,re.M)
155 | elif editor.getLexerLanguage() == 'cpp':
156 | dest_text = re.sub(r'//', "", dest_text,0,re.M)
157 | else:
158 | dest_text = dest_text
159 | # dest_text = common_head_txt + markdown.markdown(dest_text)
160 | # dest_text = common_head_txt + mistune.markdown(dest_text)
161 |
162 | ```
163 |
164 | ### merge Common Head Text and Markdown
165 |
166 | ```python
167 |
168 | md_body_begin = '\r\n\r\n\r\n\r\n'
169 | md_body_end = '\r\n\r\n '
170 | TOC = "# Table of Contents \r\n\r\n{{TOC}}\r\n\r\n"
171 | if viewer == 2:
172 | dest_text = common_head_txt + md_body_begin + TOC + dest_text +md_body_end
173 | else:
174 | dest_text = common_head_txt + md_body_begin + dest_text + md_body_end
175 |
176 | ```
177 |
178 | ### View
179 |
180 | #### CuteMarked
181 |
182 | ```python
183 |
184 | if viewer == 1:
185 | # Method 1: create a md file, to open by cutemarked.
186 | if not os.path.exists(cutemarked_path):
187 | cutemarked_url = "https://github.com/cloose/CuteMarkEd"
188 | msg = "CuteMarked.exe does not exists! \r\nvar cutemarked_path: " + cutemarked_path + "\r\nIt can be download from " + cutemarked_url
189 | notepad.messageBox(msg, "Warning", 0)
190 | dest_full_path = mlt_out_dir + "\\" + current_filename + ".md"
191 | f= open(dest_full_path,'w')
192 | f.write(dest_text)
193 | f.close()
194 | cmd = cutemarked_path + " " + dest_full_path
195 | # os.system(cmd)
196 | os.popen(cmd)
197 | if is_delete_generate_file:
198 | os.remove(dest_full_path)
199 |
200 | ```
201 |
202 | #### cmark_gfm_path
203 |
204 | ```python
205 |
206 | if viewer == 4:
207 | if not os.path.exists(cmark_gfm_path):
208 | cmark_gfm_url = "https://github.com/github/cmark-gfm"
209 | msg = "cmark_gfm.exe does not exists! \r\nvar cmark_gfm_path: " + cmark_gfm_path + "\r\nIt can be download from " + cmark_gfm_url
210 | notepad.messageBox(msg, "Warning", 0)
211 | if not os.path.exists(chrome_path):
212 | chrome_url = "https://portableapps.com/apps/internet/google_chrome_portable"
213 | msg = "Chrome.exe(or GoogleChromePortable.exe) does not exists! \r\nvar chrome_path: " + chrome_path + "\r\nIt can be download from " + chrome_url
214 | notepad.messageBox(msg, "Warning", 0)
215 | md_full_path = mlt_out_dir + "\\" + current_filename + ".md"
216 | f= open(md_full_path,'w')
217 | f.write(dest_text)
218 | f.close()
219 | html_full_path = mlt_out_dir + "\\" + current_filename + ".html"
220 | cmd = cmark_gfm_path + " --github-pre-lang --footnotes --to=html " + md_full_path # + " " + html_full_path
221 | os.popen(cmd)
222 | cmd = chrome_path + " " + html_full_path
223 | os.popen(cmd)
224 | if is_delete_generate_file:
225 | time.sleep(15)
226 | os.remove(md_full_path)
227 | os.remove(html_full_path)
228 |
229 | ```
230 |
231 |
232 | #### MultiMarkdown+Chrome
233 |
234 | ```python
235 |
236 | elif viewer == 2:
237 | # Method 2: MultiMarkdown+Chrome
238 | if not os.path.exists(multimarkdown_path):
239 | multimarkdown_url = "https://github.com/fletcher/MultiMarkdown-6"
240 | msg = "multimarkdown.exe does not exists! \r\nvar multimarkdown_path: " + multimarkdown_path + "\r\nIt can be download from " + multimarkdown_url
241 | notepad.messageBox(msg, "Warning", 0)
242 | if not os.path.exists(chrome_path):
243 | chrome_url = "https://portableapps.com/apps/internet/google_chrome_portable"
244 | msg = "Chrome.exe(or GoogleChromePortable.exe) does not exists! \r\nvar chrome_path: " + chrome_path + "\r\nIt can be download from " + chrome_url
245 | notepad.messageBox(msg, "Warning", 0)
246 | md_full_path = mlt_out_dir + "\\" + current_filename + ".md"
247 | f= open(md_full_path,'w')
248 | f.write(dest_text)
249 | f.close()
250 | html_full_path = mlt_out_dir + "\\" + current_filename + ".html"
251 | cmd = multimarkdown_path + " --full --to=html --output=" + html_full_path + " " + md_full_path
252 | # cmd = multimarkdown_path + " --full " + md_full_path
253 | os.popen(cmd)
254 | f= open(html_full_path,'r')
255 | html_txt = f.read()
256 | f.close()
257 | html_txt = re.sub(r'', r'', html_txt, 0, re.M)
259 | html_txt = html_txt.replace("\r\n\r\n","\r\n")
260 | f= open(html_full_path,'w')
261 | f.write(html_txt)
262 | f.close()
263 | cmd = chrome_path + " " + html_full_path
264 | os.popen(cmd)
265 | if is_delete_generate_file:
266 | time.sleep(15)
267 | os.remove(md_full_path)
268 | os.remove(html_full_path)
269 |
270 | ```
271 |
272 | #### MarkdownViewer++Chrome
273 |
274 | ```python
275 |
276 | else:
277 | # Method 3: MarkdownViewer++Chrome
278 | editor2= notepad.new()
279 | editor.setText(dest_text)
280 | # dest_full_path = mlt_out_dir + current_filename + ".md"
281 | # notepad.saveAs(dest_full_path)
282 | notepad.runPluginCommand('MarkdownViewer++','MarkdownViewer++')
283 |
284 | ```
285 |
286 | ### Clean mlt_out_dir
287 |
288 | ```python
289 |
290 |
291 | def del_file(path):
292 | ls = os.listdir(path)
293 | for i in ls:
294 | c_path = os.path.join(path, i)
295 | if os.path.isdir(c_path):
296 | del_file(c_path)
297 | else:
298 | os.remove(c_path)
299 |
300 | if is_clean_mlt_out_dir:
301 | if viewer == 2:
302 | time.sleep(15)
303 | del_file(mlt_out_dir)
304 |
305 | ```
306 |
307 | ## End Code
308 |
309 |
--------------------------------------------------------------------------------
/Notepad++/tools/ctags/.ctags:
--------------------------------------------------------------------------------
1 | --langdef=Clojure
2 | --langmap=Clojure:.clj.cljs.cljc.cljr.cljx
3 | --regex-clojure=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
4 | --regex-clojure=/\([ \t]*def[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,definition/
5 | --regex-clojure=/\([ \t]*defn[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/f,function/
6 | --regex-clojure=/\([ \t]*defn-[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/p,private function/
7 | --regex-clojure=/\([ \t]*defmacro[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/m,macro/
8 | --regex-clojure=/\([ \t]*definline[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/i,inline/
9 | --regex-clojure=/\([ \t]*defmulti[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/a,multimethod definition/
10 | --regex-clojure=/\([ \t]*defmethod[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/b,multimethod instance/
11 | --regex-clojure=/\([ \t]*defonce[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/c,definition (once)/
12 | --regex-clojure=/\([ \t]*defstruct[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,struct/
13 | --regex-clojure=/\([ \t]*defrecord[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,struct/
14 | --regex-clojure=/\([ \t]*intern[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/v,intern/
15 | --regex-clojure=/\([ \t]*ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
16 | --exclude=target
17 | --exclude=out
18 | --exclude=.git
19 |
--------------------------------------------------------------------------------
/Notepad++/tools/ctags/.ctags.bk:
--------------------------------------------------------------------------------
1 | --langdef=Clojure
2 | --langmap=Clojure:.clj.cljs.cljc.cljr.cljx
3 | --regex-clojure=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
4 | --regex-clojure=/\([ \t]*def[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,definition/
5 | --regex-clojure=/\([ \t]*defn[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/f,function/
6 | --regex-clojure=/\([ \t]*defn-[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/p,private function/
7 | --regex-clojure=/\([ \t]*defmacro[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/m,macro/
8 | --regex-clojure=/\([ \t]*definline[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/i,inline/
9 | --regex-clojure=/\([ \t]*defmulti[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/a,multimethod definition/
10 | --regex-clojure=/\([ \t]*defmethod[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/b,multimethod instance/
11 | --regex-clojure=/\([ \t]*defonce[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/c,definition (once)/
12 | --regex-clojure=/\([ \t]*defstruct[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,struct/
13 | --regex-clojure=/\([ \t]*intern[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/v,intern/
14 | --regex-clojure=/\([ \t]*ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
15 | --exclude=target
16 | --exclude=out
17 | --exclude=.git
18 |
19 | --langdef=Lisp
20 | --langmap=Lisp:.clj
21 | --langmap=Lisp:+.cljs
22 | --langmap=Lisp:+.cljc
23 | --langmap=Lisp:+.cljr
24 | --langmap=Lisp:+.cljx
25 | --regex-lisp=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
26 | --regex-lisp=/\([ \t]*def[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,definition/
27 | --regex-lisp=/\([ \t]*defn[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/f,function/
28 | --regex-lisp=/\([ \t]*defn-[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/p,private function/
29 | --regex-lisp=/\([ \t]*defmacro[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/m,macro/
30 | --regex-lisp=/\([ \t]*definline[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/i,inline/
31 | --regex-lisp=/\([ \t]*defmulti[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/a,multimethod definition/
32 | --regex-lisp=/\([ \t]*defmethod[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/b,multimethod instance/
33 | --regex-lisp=/\([ \t]*defonce[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/c,definition (once)/
34 | --regex-lisp=/\([ \t]*defstruct[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,struct/
35 | --regex-lisp=/\([ \t]*intern[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/v,intern/
36 | --regex-lisp=/\([ \t]*ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
--------------------------------------------------------------------------------
/Notepad++/tools/ctags/Clojure.ctags:
--------------------------------------------------------------------------------
1 | --langdef=Clojure
2 | --langmap=Clojure:.clj.cljs.cljc.cljr.cljx
3 | --regex-clojure=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
4 | --regex-clojure=/\([ \t]*def[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,definition/
5 | --regex-clojure=/\([ \t]*defn[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/f,function/
6 | --regex-clojure=/\([ \t]*defn-[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/p,private function/
7 | --regex-clojure=/\([ \t]*defmacro[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/m,macro/
8 | --regex-clojure=/\([ \t]*definline[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/i,inline/
9 | --regex-clojure=/\([ \t]*defmulti[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/a,multimethod definition/
10 | --regex-clojure=/\([ \t]*defmethod[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/b,multimethod instance/
11 | --regex-clojure=/\([ \t]*defonce[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/c,definition (once)/
12 | --regex-clojure=/\([ \t]*defstruct[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,struct/
13 | --regex-clojure=/\([ \t]*intern[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/v,intern/
14 | --regex-clojure=/\([ \t]*ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
15 | --exclude=target
16 | --exclude=out
17 | --exclude=.git
18 |
--------------------------------------------------------------------------------
/Notepad++/tools/ctags/Lisp.ctags:
--------------------------------------------------------------------------------
1 | --langdef=Lisp
2 | --langmap=Lisp:.clj
3 | --langmap=Lisp:+.cljs
4 | --langmap=Lisp:+.cljc
5 | --langmap=Lisp:+.cljr
6 | --langmap=Lisp:+.cljx
7 | --regex-lisp=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
8 | --regex-lisp=/\([ \t]*def[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,definition/
9 | --regex-lisp=/\([ \t]*defn[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/f,function/
10 | --regex-lisp=/\([ \t]*defn-[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/p,private function/
11 | --regex-lisp=/\([ \t]*defmacro[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/m,macro/
12 | --regex-lisp=/\([ \t]*definline[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/i,inline/
13 | --regex-lisp=/\([ \t]*defmulti[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/a,multimethod definition/
14 | --regex-lisp=/\([ \t]*defmethod[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/b,multimethod instance/
15 | --regex-lisp=/\([ \t]*defonce[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/c,definition (once)/
16 | --regex-lisp=/\([ \t]*defstruct[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,struct/
17 | --regex-lisp=/\([ \t]*intern[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/v,intern/
18 | --regex-lisp=/\([ \t]*ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Notepad++/tools/ctags/ctags.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Notepad++/tools/ctags/ctags.exe
--------------------------------------------------------------------------------
/Notepad++/tools/marp_cli/readme.md:
--------------------------------------------------------------------------------
1 | # marp-cli
2 |
3 | A CLI interface, for Marp (using @marp-team/marp-core) and any slide deck converter based on Marpit framework.
4 |
5 | It can convert Marp / Marpit Markdown files into static HTML / CSS, PDF, PowerPoint document, and image(s) easily.
6 |
7 | https://github.com/marp-team/marp-cli
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/Clojure.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 00; 01 02 03(comment 04)
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | ( ) [ ] { }
17 |
18 | (
19 |
20 | )
21 |
22 |
23 |
24 |
25 |
26 |
27 | :
28 | declare def definline defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype fn
29 | if do let quote var loop recur throw try monitor-enter . * *' *1 *2 *3 *agent* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *e *err* *file* *flush-on-newline* *in* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *unchecked-math* *warn-on-reflection* + +' - -' -> ->> ->ArrayChunk ->Vec ->VecNode ->VecSeq .. / < <= = == > >= accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map ArrayChunk aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? default-data-readers delay delay? deliver denominator deref derive descendants disj disj! dissoc dissoc! distinct distinct? doall dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-keyword find-ns find-var first flatten float float-array float? floats flush fn fn? fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc inc' init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta methods min min-key mod name namespace namespace-munge neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers print print-str printf println println-str prn prn-str promise proxy proxy-mappings proxy-super push-thread-bindings pvalues quot rand rand-int rand-nth range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string realized? reduce reduce-kv reductions ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off seq seq? seque sequence sequential? set set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents slurp some some-fn sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive update-in update-proxy use val vals var-get var-set var? vary-meta vec Vec VecNode VecSeq vector vector-of vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap true false
30 | \
31 |
32 |
33 |
34 |
35 | 00" 01 02" 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/Excel.Formula.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | [00]00
10 | ABS(
ACCRINT(
ACCRINTM(
ACOS(
ACOSH(
ADDRESS(
AGGREGATE(
AMORDEGRC(
AMORLINC(
AND(
AREAS(
ASC(
ASIN(
ASINH(
ATAN(
ATAN2(
ATANH(
AVEDEV(
AVERAGE(
AVERAGEA(
AVERAGEIF(
AVERAGEIFS(
BAHTTEXT(
BESSELI(
BESSELJ(
BESSELK(
BESSELY(
BETA.DIST(
BETA.INV(
BETADIST(
BETAINV(
BIN2DEC(
BIN2HEX(
BIN2OCT(
BINOM.DIST(
BINOM.INV(
BINOMDIST(
CEILING(
CEILING.PRECISE(
CELL(
CHAR(
CHIDIST(
CHIINV(
CHISQ.DIST(
CHISQ.DIST.RT(
CHISQ.INV(
CHISQ.INV.RT(
CHISQ.TEST(
CHITEST(
CHOOSE(
CLEAN(
CODE(
COLUMN(
COLUMNS(
COMBIN(
COMPLEX(
CONCATENATE(
CONFIDENCE(
CONFIDENCE.NORM(
CONFIDENCE.T(
CONVERT(
CORREL(
COS(
COSH(
COUNT(
COUNTA(
COUNTBLANK(
COUNTIF(
COUNTIFS(
COUPDAYBS(
COUPDAYS(
COUPDAYSNC(
COUPNCD(
COUPNUM(
COUPPCD(
COVAR(
COVARIANCE.P(
COVARIANCE.S(
CRITBINOM(
CUBEKPIMEMBER(
CUBEMEMBER(
CUBEMEMBERPROPERTY(
CUBERANKEDMEMBER(
CUBESET(
CUBESETCOUNT(
CUBEVALUE(
CUMIPMT(
CUMPRINC(
DATE(
DATEDIF(
DATEVALUE(
DAVERAGE(
DAY(
DAYS360(
DB(
DCOUNT(
DCOUNTA(
DDB(
DEC2BIN(
DEC2HEX(
DEC2OCT(
DEGREES(
DELTA(
DEVSQ(
DGET(
DISC(
DMAX(
DMIN(
DOLLAR(
DOLLARDE(
DOLLARFR(
DPRODUCT(
DSTDEV(
DSTDEVP(
DSUM(
DURATION(
DVAR(
DVARP(
EDATE(
EFFECT(
EOMONTH(
ERF(
ERFC(
ERROR.TYPE(
EUROCONVERT(
EVEN(
EXACT(
EXP(
EXPON.DIST(
EXPONDIST(
F.DIST(
F.DIST.RT(
F.INV(
F.INV.RT(
F.TEST(
FACT(
FACTDOUBLE(
FALSE(
FDIST(
FIND(
FINDB(
FINV(
FISHER(
FISHERINV(
FIXED(
FLOOR(
FORECAST(
FREQUENCY(
FTEST(
FV(
FVSCHEDULE(
GAMMA.DIST(
GAMMA.INV(
GAMMADIST(
GAMMAINV(
GAMMALN(
GCD(
GEOMEAN(
GESTEP(
GETPIVOTDATA(
GROWTH(
HARMEAN(
HEX2BIN(
HEX2DEC(
HEX2OCT(
HLOOKUP(
HOUR(
HYPERLINK(
HYPGEOM.DIST(
HYPGEOMDIST(
IF(
IFERROR(
IMABS(
IMAGINARY(
IMARGUMENT(
IMCONJUGATE(
IMCOS(
IMDIV(
IMEXP(
IMLN(
IMLOG10(
IMLOG2(
IMPOWER(
IMPRODUCT(
IMREAL(
IMSIN(
IMSQRT(
IMSUB(
IMSUM(
INDEX(
INDIRECT(
INFO(
INT(
INTERCEPT(
INTRATE(
IPMT(
IRR(
ISBLANK(
ISERR(
ISERROR(
ISEVEN(
ISLOGICAL(
ISNA(
ISNONTEXT(
ISNUMBER(
ISODD(
ISPMT(
ISREF(
ISTEXT(
KURT(
LARGE(
LCM(
LEFT(
LEFTB(
LEN(
LENB(
LINEST(
LN(
LOG(
LOG10(
LOGEST(
LOGINV(
LOGNORM.DIST(
LOGNORM.INV(
LOGNORMDIST(
LOOKUP(
LOWER(
MATCH(
MAX(
MAXA(
MDETERM(
MDURATION(
MEDIAN(
MID(
MIDB(
MIN(
MINA(
MINUTE(
MINVERSE(
MIRR(
MMULT(
MOD(
MODE(
MODE.MULT(
MODE.SNGL(
MONTH(
MROUND(
MULTINOMIAL(
N(
NA(
NEGBINOM.DIST(
NEGBINOMDIST(
NETWORKDAYS(
NETWORKDAYS.INTL(
NOMINAL(
NORM.DIST(
NORM.INV(
NORM.S.DIST(
NORM.S.INV(
NORMDIST(
NORMINV(
NORMSDIST(
NORMSINV(
NOT(
NOW(
NPER(
NPV(
OCT2BIN(
OCT2DEC(
OCT2HEX(
ODD(
ODDFPRICE(
ODDFYIELD(
ODDLPRICE(
ODDLYIELD(
OFFSET(
OR(
PEARSON(
PERCENTILE(
PERCENTILE.EXC(
PERCENTILE.INC(
PERCENTRANK(
PERCENTRANK.EXC(
PERCENTRANK.INC(
PERMUT(
PHONETIC(
PI(
PMT(
POISSON(
POISSON.DIST(
POWER(
PPMT(
PRICE(
PRICEDISC(
PRICEMAT(
PROB(
PRODUCT(
PROPER(
PV(
QUARTILE(
QUARTILE.EXC(
QUARTILE.EXC(
QUARTILE.INC(
QUARTILE.INC(
QUOTIENT(
RADIANS(
RAND(
RANDBETWEEN(
RANK(
RANK.AVG(
RANK.EQ(
RATE(
RECEIVED(
REPLACE,(
REPT(
RIGHT,(
ROMAN(
ROUND(
ROUNDDOWN(
ROUNDUP(
ROW(
ROWS(
RSQ(
RTD(
SEARCH,(
SEARCHB(
SECOND(
SERIESSUM(
SIGN(
SIN(
SINH(
SKEW(
SLN(
SLOPE(
SMALL(
SQL.REQUEST(
SQRT(
SQRTPI(
STANDARDIZE(
STDEV(
STDEV.P(
STDEV.S(
STDEVA(
STDEVP(
STDEVPA(
STEYX(
SUBSTITUTE(
SUBTOTAL(
SUM(
SUMIF(
SUMIFS(
SUMIFS(
SUMPRODUCT(
SUMSQ(
SUMX2MY2(
SUMX2PY2(
SUMXMY2(
SYD(
T(
T.DIST(
T.DIST.2T(
T.DIST.RT(
T.INV(
T.INV.2T(
T.TEST(
TAN(
TANH(
TBILLEQ(
TBILLPRICE(
TBILLYIELD(
TDIST(
TEXT(
TIME(
TIMEVALUE(
TINV(
TODAY(
TRANSPOSE(
TREND(
TRIM(
TRIMMEAN(
TRUE(
TRUNC(
TTEST(
TYPE(
UPPER(
VALUE(
VAR(
VAR.P(
VAR.S(
VARA(
VARP(
VARPA(
VDB(
VLOOKUP(
WEEKDAY(
WEEKNUM(
WEIBULL(
WEIBULL.DIST(
WEIBULL.DIST(
WORKDAY(
WORKDAY.INTL(
WORKDAY.INTL(
XIRR(
XNPV(
YEAR(
YEARFRAC(
YIELD(
YIELDDISC(
YIELDMAT(
Z.TEST(
ZTEST(
11 | )
12 | - " % & , / ^ { } + < = >
13 | 1' 2' 0'
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/Excel_Formula.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | [00]00
10 | ABS(
ACCRINT(
ACCRINTM(
ACOS(
ACOSH(
ADDRESS(
AGGREGATE(
AMORDEGRC(
AMORLINC(
AND(
AREAS(
ASC(
ASIN(
ASINH(
ATAN(
ATAN2(
ATANH(
AVEDEV(
AVERAGE(
AVERAGEA(
AVERAGEIF(
AVERAGEIFS(
BAHTTEXT(
BESSELI(
BESSELJ(
BESSELK(
BESSELY(
BETA.DIST(
BETA.INV(
BETADIST(
BETAINV(
BIN2DEC(
BIN2HEX(
BIN2OCT(
BINOM.DIST(
BINOM.INV(
BINOMDIST(
CEILING(
CEILING.PRECISE(
CELL(
CHAR(
CHIDIST(
CHIINV(
CHISQ.DIST(
CHISQ.DIST.RT(
CHISQ.INV(
CHISQ.INV.RT(
CHISQ.TEST(
CHITEST(
CHOOSE(
CLEAN(
CODE(
COLUMN(
COLUMNS(
COMBIN(
COMPLEX(
CONCATENATE(
CONFIDENCE(
CONFIDENCE.NORM(
CONFIDENCE.T(
CONVERT(
CORREL(
COS(
COSH(
COUNT(
COUNTA(
COUNTBLANK(
COUNTIF(
COUNTIFS(
COUPDAYBS(
COUPDAYS(
COUPDAYSNC(
COUPNCD(
COUPNUM(
COUPPCD(
COVAR(
COVARIANCE.P(
COVARIANCE.S(
CRITBINOM(
CUBEKPIMEMBER(
CUBEMEMBER(
CUBEMEMBERPROPERTY(
CUBERANKEDMEMBER(
CUBESET(
CUBESETCOUNT(
CUBEVALUE(
CUMIPMT(
CUMPRINC(
DATE(
DATEDIF(
DATEVALUE(
DAVERAGE(
DAY(
DAYS360(
DB(
DCOUNT(
DCOUNTA(
DDB(
DEC2BIN(
DEC2HEX(
DEC2OCT(
DEGREES(
DELTA(
DEVSQ(
DGET(
DISC(
DMAX(
DMIN(
DOLLAR(
DOLLARDE(
DOLLARFR(
DPRODUCT(
DSTDEV(
DSTDEVP(
DSUM(
DURATION(
DVAR(
DVARP(
EDATE(
EFFECT(
EOMONTH(
ERF(
ERFC(
ERROR.TYPE(
EUROCONVERT(
EVEN(
EXACT(
EXP(
EXPON.DIST(
EXPONDIST(
F.DIST(
F.DIST.RT(
F.INV(
F.INV.RT(
F.TEST(
FACT(
FACTDOUBLE(
FALSE(
FDIST(
FIND(
FINDB(
FINV(
FISHER(
FISHERINV(
FIXED(
FLOOR(
FORECAST(
FREQUENCY(
FTEST(
FV(
FVSCHEDULE(
GAMMA.DIST(
GAMMA.INV(
GAMMADIST(
GAMMAINV(
GAMMALN(
GCD(
GEOMEAN(
GESTEP(
GETPIVOTDATA(
GROWTH(
HARMEAN(
HEX2BIN(
HEX2DEC(
HEX2OCT(
HLOOKUP(
HOUR(
HYPERLINK(
HYPGEOM.DIST(
HYPGEOMDIST(
IF(
IFERROR(
IMABS(
IMAGINARY(
IMARGUMENT(
IMCONJUGATE(
IMCOS(
IMDIV(
IMEXP(
IMLN(
IMLOG10(
IMLOG2(
IMPOWER(
IMPRODUCT(
IMREAL(
IMSIN(
IMSQRT(
IMSUB(
IMSUM(
INDEX(
INDIRECT(
INFO(
INT(
INTERCEPT(
INTRATE(
IPMT(
IRR(
ISBLANK(
ISERR(
ISERROR(
ISEVEN(
ISLOGICAL(
ISNA(
ISNONTEXT(
ISNUMBER(
ISODD(
ISPMT(
ISREF(
ISTEXT(
KURT(
LARGE(
LCM(
LEFT(
LEFTB(
LEN(
LENB(
LINEST(
LN(
LOG(
LOG10(
LOGEST(
LOGINV(
LOGNORM.DIST(
LOGNORM.INV(
LOGNORMDIST(
LOOKUP(
LOWER(
MATCH(
MAX(
MAXA(
MDETERM(
MDURATION(
MEDIAN(
MID(
MIDB(
MIN(
MINA(
MINUTE(
MINVERSE(
MIRR(
MMULT(
MOD(
MODE(
MODE.MULT(
MODE.SNGL(
MONTH(
MROUND(
MULTINOMIAL(
N(
NA(
NEGBINOM.DIST(
NEGBINOMDIST(
NETWORKDAYS(
NETWORKDAYS.INTL(
NOMINAL(
NORM.DIST(
NORM.INV(
NORM.S.DIST(
NORM.S.INV(
NORMDIST(
NORMINV(
NORMSDIST(
NORMSINV(
NOT(
NOW(
NPER(
NPV(
OCT2BIN(
OCT2DEC(
OCT2HEX(
ODD(
ODDFPRICE(
ODDFYIELD(
ODDLPRICE(
ODDLYIELD(
OFFSET(
OR(
PEARSON(
PERCENTILE(
PERCENTILE.EXC(
PERCENTILE.INC(
PERCENTRANK(
PERCENTRANK.EXC(
PERCENTRANK.INC(
PERMUT(
PHONETIC(
PI(
PMT(
POISSON(
POISSON.DIST(
POWER(
PPMT(
PRICE(
PRICEDISC(
PRICEMAT(
PROB(
PRODUCT(
PROPER(
PV(
QUARTILE(
QUARTILE.EXC(
QUARTILE.EXC(
QUARTILE.INC(
QUARTILE.INC(
QUOTIENT(
RADIANS(
RAND(
RANDBETWEEN(
RANK(
RANK.AVG(
RANK.EQ(
RATE(
RECEIVED(
REPLACE,(
REPT(
RIGHT,(
ROMAN(
ROUND(
ROUNDDOWN(
ROUNDUP(
ROW(
ROWS(
RSQ(
RTD(
SEARCH,(
SEARCHB(
SECOND(
SERIESSUM(
SIGN(
SIN(
SINH(
SKEW(
SLN(
SLOPE(
SMALL(
SQL.REQUEST(
SQRT(
SQRTPI(
STANDARDIZE(
STDEV(
STDEV.P(
STDEV.S(
STDEVA(
STDEVP(
STDEVPA(
STEYX(
SUBSTITUTE(
SUBTOTAL(
SUM(
SUMIF(
SUMIFS(
SUMIFS(
SUMPRODUCT(
SUMSQ(
SUMX2MY2(
SUMX2PY2(
SUMXMY2(
SYD(
T(
T.DIST(
T.DIST.2T(
T.DIST.RT(
T.INV(
T.INV.2T(
T.TEST(
TAN(
TANH(
TBILLEQ(
TBILLPRICE(
TBILLYIELD(
TDIST(
TEXT(
TIME(
TIMEVALUE(
TINV(
TODAY(
TRANSPOSE(
TREND(
TRIM(
TRIMMEAN(
TRUE(
TRUNC(
TTEST(
TYPE(
UPPER(
VALUE(
VAR(
VAR.P(
VAR.S(
VARA(
VARP(
VARPA(
VDB(
VLOOKUP(
WEEKDAY(
WEEKNUM(
WEIBULL(
WEIBULL.DIST(
WEIBULL.DIST(
WORKDAY(
WORKDAY.INTL(
WORKDAY.INTL(
XIRR(
XNPV(
YEAR(
YEARFRAC(
YIELD(
YIELDDISC(
YIELDMAT(
Z.TEST(
ZTEST(
11 | )
12 | - " % & , / ^ { } + < = >
13 | 1' 2' 0'
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/asciidoc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 00// 01 02 03//// 04////
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | - " * : ^ ` | ~ + < = > image ( ) _
17 | '
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | NOTE IMPORTANT WARNING TIP CAUTION TESTME
30 |
31 |
32 |
33 |
34 |
35 | 00" 01 02" 03[ 04 05] 06` 07 08` 09` 10 11' 12_ 13 14_ 15 16 17 18 19 20 21 22 23
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 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/graphviz.dart.xml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | 00// 01 02 03/* 04*/
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | = -> [ ]
26 |
27 | {
28 |
29 | }
30 |
31 |
32 |
33 |
34 |
35 |
36 | node edge graph digraph subgraph strict
37 | area arrowhead arrowsize arrowtail aspect bb bgcolor center charset clusterrank color colorscheme comment compound concentrate constraint Damping decorate defaultdist dim dimen dir diredgeconstraints distortion dpi edgehref edgetarget edgetooltip edgeURL epsilon esep fillcolor fixedsize fontcolor fontname fontnames fontpath fontsize forcelabels gradientangle group head_lp headclip headhref headlabel headport headtarget headtooltip headURL height href id image imagepath imagescale K label label_scheme labelangle labeldistance labelfloat labelfontcolor labelfontname labelfontsize labelhref labeljust labelloc labeltarget labeltooltip labelURL landscape layer layerlistsep layers layerselect layersep layout len levels levelsgap lhead lheight lp ltail lwidth margin maxiter mclimit mindist minlen mode model mosek nodesep nojustify normalize nslimit nslimit1 ordering orientation orientation outputorder overlap overlap_scaling pack packmode pad page pagedir pencolor penwidth peripheries pin pos quadtree quantum rank rankdir ranksep ratio rects regular remincross repulsiveforce resolution root rotate rotation samehead sametail samplepoints scale searchsize sep shape shapefile showboxes sides size skew smoothing sortv splines start style stylesheet tail_lp tailclip tailhref taillabel tailport tailtarget tailtooltip tailURL target tooltip truecolor URL vertices viewport voro_margin weight width xlabel xlp z
38 | n ne e se s sw w nw c _
39 | cluster
40 | _
41 |
42 |
43 |
44 | 00" 01 02" 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/markdown_monokai.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 00# 01 02 03<!-- 04-->
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | http:// https://
28 | ==== ----
29 |
30 |
31 |
32 |
33 |
34 |
35 | 00[ 01 02] 03` 04 05` 06** 07 08** 09* 10 11* 12_ 13 14_ 15( 16 17) 18 19 20 21 22 23
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 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/org.mode.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 00 01 02 03 04
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | *
25 |
26 | ____
27 | TODO
28 | WIP
29 | DONE
30 | PB
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 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/reStructuredText.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 00 01 02 03 04
9 |
10 |
11 |
12 |
13 | .
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | > :a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v :w :x :y :z
28 | http <http ftp:// ftps:// <ftp
29 | admonition:: attention:: caution:: class:: code:: compound:: container:: contents:: csv-table:: danger:: date:: default-role:: epigraph:: error:: figure:: footer:: header:: highlights:: hint:: image:: important:: include:: line-block:: list-table:: math:: meta:: note:: parsed-literal:: pull-quote:: raw:: replace:: role:: rubric:: section-autonumbering:: sectnum:: sidebar:: table:: target-notes:: tip:: title:: toctree:: topic:: unicode:: warning::
30 | #. - +
31 | == -- ^^ ~~ +== +--
32 | _
33 |
34 |
35 | 00[ 00`` 00` 00| 01 02] 02`` 02` 02((| EOL)) 03_` 04 05` 06** 06* 07 08((** EOL)) 08((* EOL)) 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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 |
--------------------------------------------------------------------------------
/Notepad++/userDefineLangs/reStructuredText_dracula.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 00 01 02 03 04
9 |
10 |
11 |
12 |
13 | .
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | > :a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v :w :x :y :z
28 | http <http ftp:// ftps:// <ftp
29 | admonition:: attention:: caution:: class:: code:: compound:: container:: contents:: csv-table:: danger:: date:: default-role:: epigraph:: error:: figure:: footer:: header:: highlights:: hint:: image:: important:: include:: line-block:: list-table:: math:: meta:: note:: parsed-literal:: pull-quote:: raw:: replace:: role:: rubric:: section-autonumbering:: sectnum:: sidebar:: table:: target-notes:: tip:: title:: toctree:: topic:: unicode:: warning::
30 | #. - +
31 | == -- ^^ ~~ +== +--
32 | _
33 |
34 |
35 | 00[ 00`` 00` 00| 01 02] 02`` 02` 02((| EOL)) 03_` 04 05` 06** 06* 07 08((** EOL)) 08((* EOL)) 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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 |
--------------------------------------------------------------------------------
/Screenshots/ClojureBoxNpp.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/ClojureBoxNpp.jpg
--------------------------------------------------------------------------------
/Screenshots/edit_hiccup_with_live_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/edit_hiccup_with_live_preview.png
--------------------------------------------------------------------------------
/Screenshots/md_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/md_outline.png
--------------------------------------------------------------------------------
/Screenshots/mlp_clj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/mlp_clj.png
--------------------------------------------------------------------------------
/Screenshots/mlp_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/mlp_image.png
--------------------------------------------------------------------------------
/Screenshots/mlp_mermaid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/mlp_mermaid.png
--------------------------------------------------------------------------------
/Screenshots/mlp_ui_cljs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/mlp_ui_cljs.png
--------------------------------------------------------------------------------
/Screenshots/nppBracketHighlighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/nppBracketHighlighter.png
--------------------------------------------------------------------------------
/Screenshots/setting_LanguageHelp_plugin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/setting_LanguageHelp_plugin.jpg
--------------------------------------------------------------------------------
/Screenshots/setting_MultiEditing.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/setting_MultiEditing.jpg
--------------------------------------------------------------------------------
/Screenshots/setting_XBrackets_plugin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/setting_XBrackets_plugin.jpg
--------------------------------------------------------------------------------
/Screenshots/setting_autocomplete.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/setting_autocomplete.jpg
--------------------------------------------------------------------------------
/Screenshots/setting_defalang.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/setting_defalang.jpg
--------------------------------------------------------------------------------
/Screenshots/setting_delimiter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/setting_delimiter.jpg
--------------------------------------------------------------------------------
/Screenshots/setting_tab_space.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linpengcheng/ClojureBoxNpp/f1faec68a6efe4fa14ec62dbec9230f5a6c72f92/Screenshots/setting_tab_space.jpg
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | **ClojureBoxNpp**
2 |
3 | Notepad++ patch for Clojure by:
4 | - Methord 01: modifying config files of Lisp.
5 | - Methord 02: userDefineLangs: Clojure
6 |
7 | ### Screenshots:
8 |
9 | 
10 |
11 | BracketHighlighter:
12 |
13 | 
14 |
15 | Markdown outline:
16 |
17 | 
18 |
19 | Markdown Literary Programming 01: Code with syntax highlighting
20 |
21 | 
22 |
23 | Markdown Literary Programming 02: Mermaid flow chart
24 |
25 | 
26 |
27 | Markdown Literary Programming 03: Image
28 |
29 | 
30 |
31 | Markdown Literary Programming 04: UI + Javascript/Clojurescript (sci)
32 |
33 | 
34 |
35 | Edit Clojure hiccup (HTML DSL) with live preview:
36 |
37 | 
38 |
39 | LSP
40 |
41 | - Notepad++ LSP client plugin: [Ekopalypse/NppLspClient](https://github.com/Ekopalypse/NppLspClient)
42 |
43 | - Clojure & ClojureScript Language Server: [clojure-lsp](https://github.com/clojure-lsp/clojure-lsp)
44 |
45 | Solutions to clojure-lsp startup bug: If the folder of the Clojure project (or Clojure source files) isn't
46 | on the same disk as the Notepad++ Home folder, create (or open) a temporary Clojure source code file
47 | on the same disk as the Notepad++ Home folder to start the Clojure language server.
48 |
49 | - SQL Language Server: [lighttiger2505/sqls](https://github.com/lighttiger2505/sqls)
50 |
51 | 
52 |
53 | ### Patch edition Method:
54 |
55 | 1. copy all files of notepad++ directory to notepad++ home directory.
56 |
57 | 2. copy Notepad++/tools/ctags/.ctags file to user home directory (c:\user\xxx).
58 |
59 | ### Config files of Clojure (userDefineLangs Clojure is Clojure, Lisp is also Clojure.)
60 |
61 | - Methord 01: Modify Lisp as Clojure, Lisp is also Clojure.
62 |
63 | * notepad++\langs.xml
64 |
65 | * notepad++\stylers.xml
66 |
67 | * notepad++\autoCompletion\lisp.xml
68 |
69 | * notepad++\functionList\Lisp.xml
70 |
71 | - Methord 02: userDefineLangs: Clojure, Clojure is Clojure
72 |
73 | * notepad++\autoCompletion\Clojure.xml
74 |
75 | * notepad++\userDefineLangs\Clojure.xml
76 |
77 | * notepad++\functionList\Clojure.xml
78 |
79 | - functionList
80 |
81 | * notepad++\functionList\overrideMap.xml
82 |
83 | - notepad++\tools\ctags\ .ctag (clojure config of ctags.exe and NppCCompletionPlugin.dll, copy to user home directory c:\user\xxx)
84 |
85 | - Other: Markdown (userDefineLangs)
86 |
87 | * notepad++\functionList\Markdown_Monokai.xml
88 |
89 | * notepad++\userDefineLangs\markdown_monokai.xml
90 |
91 | * Notepad++/plugins/PythonScript/scripts/Markdown_Literary_Programming_viewer.py
92 |
93 | ### Note
94 |
95 | .ctags : clojure config of ctags.exe and NppCCompletionPlugin.dll, copy to ~ (c:\user\xxx)
96 |
97 | ### Notepad++
98 |
99 | https://notepad-plus-plus.org/
100 |
101 | https://github.com/notepad-plus-plus/notepad-plus-plus
102 |
103 | ### Notepad++ plugins
104 |
105 | https://sourceforge.net/projects/npp-plugins/files/
106 |
107 | - Clojure
108 |
109 | - BracketHighlighter (Only Python 2.x):
110 |
111 | Author: Scott Sumner,
112 |
113 | Notepad++/plugins/PythonScript/scripts/BracketHighlighter.py
114 |
115 | https://notepad-plus-plus.org/community/topic/14501/has-a-plugin-like-sublime-plugin-brackethighlighter/7
116 |
117 | - PythonScript(Python 2.x):
118 | https://github.com/bruderstein/PythonScript
119 |
120 | - XBrackets Lite:
121 | https://sourceforge.net/projects/npp-plugins/files/XBrackets%20Lite/
122 |
123 | - BracketsCheck: https://github.com/niccord/BracketsCheck
124 |
125 | - cli tools
126 |
127 | - NppExec: https://github.com/d0vgan/nppexec
128 | - notepad++\tools\clj\clj-kondo.exe --lint current-file
129 | - notepad++\tools\clj\babashka --file current-file
130 | - notepad++\tools\clj\babashka --eval selectquotedtext
131 |
132 | - pork2Sausage: https://github.com/npp-plugins/pork2sausage
133 | - notepad++\tools\clj\hiccup-cli (convert selectd HTML to Hiccup)
134 | - notepad++\tools\clj\babashka
135 | - notepad++\tools\clj\npp_convert.clj (convert selected text to ?)
136 |
137 | - Edit hiccup with live preview
138 | * Babashka
139 | * Notepad++/tools/clj/hiccup2html.clj
140 | * Preview HTML plugin
141 | * Notepad++/plugins/Config/PreviewHTML/Settings.ini
142 | * Notepad++/plugins/Config/PreviewHTML/Filters.ini
143 |
144 | - Markdown Literary Programming with live preview for Clojure
145 | * Babashka + sci-script-tag.js
146 | * Notepad++/tools/clj/mlp.clj
147 | * Preview HTML plugin
148 | * Notepad++/plugins/Config/PreviewHTML/Settings.ini
149 | * Notepad++/plugins/Config/PreviewHTML/Filters.ini
150 |
151 | - Develop
152 |
153 | - Languages: https://github.com/MAPJe71/Languages
154 |
155 | - nppTagLEET: https://github.com/vinsworldcom/nppTagLEET
156 |
157 | - NppGTags: https://github.com/pnedev/nppgtags
158 |
159 | - LanguageHelp:
160 | https://github.com/francostellari/NppPlugins
161 |
162 | - NppChomeDebugPlugin:
163 | https://github.com/jdubbeldam/NppChomeDebugPlugin
164 |
165 | - JavaScript Map Parse:
166 | https://github.com/megaboich/js-map-parser/
167 |
168 | - JSTool:
169 | https://github.com/sunjw/jstoolnpp
170 |
171 | - JSON-Viewer:
172 | https://github.com/kapilratnani/JSON-Viewer
173 |
174 | - sql: http://www.scout-soft.com/sql/
175 |
176 | - SQLPrettyPrinter:
177 | https://github.com/twentyTwo/Npp.Plugins-SQLPrettyPrinter
178 |
179 | - npp.connections:
180 | https://github.com/vladk1973/npp.connections
181 |
182 | - nppxmltreeview:
183 | https://github.com/joaoasrosa/nppxmltreeview
184 |
185 | - PlantUmlViewer: https://github.com/Fruchtzwerg94/PlantUmlViewer
186 |
187 | - PlantUML_Notepad-_UDL: https://github.com/brianmaher84/PlantUML_Notepad-_UDL
188 |
189 | - NppGraphViz: https://github.com/jrebacz/NppGraphViz
190 |
191 | - graphviz-syntax-highlighting:
192 | https://github.com/signmotion/graphviz-syntax-highlighting
193 |
194 | - Excel formula:
195 | http://dailydoseofexcel.com/archives/2010/09/29/formula-editor-in-notepad/
196 |
197 | - Compare
198 |
199 | - NppCCompletion
200 |
201 | - Markdown & html & asciidoc
202 |
203 | - MarkdownText:
204 | https://github.com/NotMad-Text-Editor-Plugins/MarkdownText
205 |
206 | - MarkdownViewerPlusPlus:
207 | https://github.com/nea/MarkdownViewerPlusPlus
208 |
209 | - imgtag: http://sourceforge.net/projects/imgtag/
210 |
211 | - HtmlTag: https://fossil.2of4.net/npp_htmltag/
212 |
213 | - WebEdit: http://downloads.sourceforge.net/project/npp-plugins/WebEdit
214 |
215 | - html preview: http://fossil.2of4.net/npp_preview/
216 |
217 | - asciidoc-highlight:
218 | https://github.com/edusantana/asciidoc-highlight
219 |
220 | - NppSnippets
221 |
222 | - Edit
223 |
224 | - CodeExpress (Snippets):
225 |
226 | https://code.google.com/archive/p/code-express/downloads
227 |
228 | - ElasticTabstops: https://github.com/dail8859/ElasticTabstops
229 |
230 | - SurroundSelection:
231 | https://github.com/dail8859/SurroundSelection
232 |
233 | - BetterMultiSelection:
234 | https://github.com/dail8859/BetterMultiSelection
235 |
236 | - selectquotedtext:
237 | https://www.fesevur.com/selectquotedtext/
238 |
239 | - NavigateTo: https://github.com/young-developer/nppNavigateTo
240 |
241 | - NewFileBrowser: https://sourceforge.net/projects/locationnav/
242 |
243 | - ColumnTools:
244 | https://github.com/vinsworldcom/nppColumnTools
245 |
246 | - ViSimulator: https://github.com/bycn82/visimulator
247 |
248 | - Search
249 |
250 | - NppQuickSearchPanel: https://github.com/nex3z/NppQuickSearchPanel
251 |
252 | - Regex Trainer:
253 | https://github.com/ahmoylaw/RegexTrainer-Descriptions
254 |
255 | - Sys
256 |
257 | - explorer: https://github.com/prekageo/npp-explorer
258 |
259 | - Themes
260 |
261 | - VS2012-Dark: https://github.com/SeanCline/Npp-VS2012-Dark
262 |
263 | - TwoDark: https://github.com/RobU23/NotepadPlusPlus
264 |
265 | - Others
266 |
267 | - CustomizeToolbar:
268 |
269 | - TextFX: https://sourceforge.net/projects/npp-plugins/files/TextFX/
270 |
271 | - QrCode: https://github.com/vladk1973/NppQrCode
272 |
273 | - MathPad
274 |
275 | - anmX: http://www.semelinanno.com/downloads/anmxnpp/anmXNpp_Page.html
276 |
277 | - calc: http://sourceforge.net/projects/nppcalc/
278 |
279 | - ToolBucket: https://github.com/phdesign/NppToolBucket/
280 |
281 | - TopMost: https://sites.google.com/site/fstellari/nppplugins
282 |
283 | - translate: https://sourceforge.net/projects/npptranslate/
284 |
285 |
--------------------------------------------------------------------------------