从剪贴板中获取代码并为MongoDB幻灯片格式化。

moncode的Python项目详细描述


蒙古德

Moncode是一个小型的CLI工具,它从剪贴板获取源代码, 使用MongoDB演示配色方案和代码字体对其进行格式化, 然后把结果放回剪贴板。在

结果看起来有点像这样:

A Python slide with lovely syntax-highlighted code.

安装它

我建议您使用pipx 将moncode安装为命令行工具。 如果您有pipx,可以这样安装:

pipx install moncode

如果你不想安装pipx,你可以用pip安装它, 但并不推荐:

^{pr2}$

使用它

Moncode有完整的文档记录。 您可能最常使用的命令是format,如下所示:

moncode格式

我是这样使用它的:

  1. 从我的IDE复制一些Python代码
  2. 在终端窗口中运行moncode format -l python。 现在,剪贴板中的Python代码已经被语法高亮显示的Python代码替换了。在
  3. 将结果粘贴到Google幻灯片(或Powerpoint或其他任何东西)

有很多其他方法可以使用这个工具, 从stdin或磁盘上的文件中获取输入, 并将结果发送到stdout或磁盘上的文件。 命令选项有完整的文档记录:

# Copy code from the clipboard, format it as RTF and then copy the result to the clipboard.
moncode format

# Specify the language if the guess is wrong:
moncode format --language ruby

# Read code from stdin and copy result to clipboard:
cat sample_inputs/sample.js | moncode format

# Read from sample.py and write to output.rtf:
moncode format -i sample.py -o output.rtf

# Read from the clipboard, and write to stdout:
moncode format -o -

# Format the code from the clipboard as HTML and write to output.html
moncode format -o output.html -f html
Options:
  -l, --language TEXT      The programming language to be formatted. If not
                           supplied, this will be guessed from the file name
                           or content. It's better to supply it if you can.
                           Run `moncode languages` to see a list of supported
                           input languages.

  -i, --input FILENAME     The path to a code file to be formatted. If not
                           supplied, either code will be read from stdin, or
                           else copied from the clipboard.

  -o, --output FILENAME    The path to write output to.
  -f, --format [html|rtf]  The output format. Defaults to 'rtf' (which is good
                           for copy-pasting).

  -q, --quiet              Run quietly.
  -v, --verbose            Run loudly.
  --help                   Show this message and exit.

运行moncode format时,我建议您传递-l标志, 指定输入代码的编程语言。 如果你不这样做,moncode会猜到它的语言,而且很可能会弄错。 支持哪些语言? 很高兴你问。。。在

蒙科语言

要获取所有支持的输入语言的列表,请运行moncode languages。 结果会像这样。。。在

$ moncode languages
abap, abnf, ada, adl, agda, aheui, ahk, alloy, ampl, antlr, antlr-as, antlr-cpp, antlr-csharp, antlr-java, antlr-objc, antlr-perl, antlr-python, antlr-ruby, apacheconf, apl, applescript, arduino, as, as3, aspectj, aspx-cs, aspx-vb, asy, at, augeas, autoit, awk
basemake, bash, bat, bbcbasic, bbcode, bc, befunge, bib, blitzbasic, blitzmax, bnf, boa, boo, boogie, brainfuck, bst, bugs
c, c-objdump, ca65, cadl, camkes, capdl, capnp, cbmbas, ceylon, cfc, cfengine3, cfm, cfs, chai, chapel, charmci, cheetah, cirru, clay, clean, clojure, clojurescript, cmake, cobol, cobolfree, coffee-script, common-lisp, componentpascal, console, control, coq, cpp, cpp-objdump, cpsa, cr, crmsh, croc, cryptol, csharp, csound, csound-document, csound-score, css, css+django, css+erb, css+genshitext, css+lasso, css+mako, css+mozpreproc, css+myghty, css+php, css+smarty, cucumber, cuda, cypher, cython
d, d-objdump, dart, dasm16, delphi, dg, diff, django, docker, doscon, dpatch, dtd, duel, dylan, dylan-console, dylan-lid
earl-grey, easytrieve, ebnf, ec, ecl, eiffel, elixir, elm, emacs, email, erb, erl, erlang, evoque, extempore, ezhil
factor, fan, fancy, felix, fennel, fish, flatline, floscript, forth, fortran, fortranfixed, foxpro, freefem, fsharp
gap, gas, genshi, genshitext, glsl, gnuplot, go, golo, gooddata-cl, gosu, groff, groovy, gst
haml, handlebars, haskell, haxeml, hexdump, hlsl, hsail, hspec, html, html+cheetah, html+django, html+evoque, html+genshi, html+handlebars, html+lasso, html+mako, html+myghty, html+ng2, html+php, html+smarty, html+twig, html+velocity, http, hx, hybris, hylang
i6t, icon, idl, idris, iex, igor, inform6, inform7, ini, io, ioke, irc, isabelle
j, jags, jasmin, java, javascript+mozpreproc, jcl, jlcon, js, js+cheetah, js+django, js+erb, js+genshitext, js+lasso, js+mako, js+myghty, js+php, js+smarty, jsgf, json, json-object, jsonld, jsp, julia, juttle
kal, kconfig, kmsg, koka, kotlin
lagda, lasso, lcry, lean, less, lhs, lidr, lighty, limbo, liquid, live-script, llvm, llvm-mir, llvm-mir-body, logos, logtalk, lsl, lua
make, mako, maql, mask, mason, mathematica, matlab, matlabsession, md, mime, minid, modelica, modula2, monkey, monte, moocode, moon, mosel, mozhashpreproc, mozpercentpreproc, mql, ms, mscgen, mupad, mxml, myghty, mysql
nasm, ncl, nemerle, nesc, newlisp, newspeak, ng2, nginx, nim, nit, nixos, notmuch, nsis, numpy, nusmv
objdump, objdump-nasm, objective-c, objective-c++, objective-j, ocaml, octave, odin, ooc, opa, openedge
pacmanconf, pan, parasail, pawn, peg, perl, perl6, php, pig, pike, pkgconfig, plpgsql, pony, postgresql, postscript, pot, pov, powershell, praat, prolog, properties, protobuf, ps1con, psql, pug, puppet, py2tb, pycon, pypylog, pytb, python, python2
qbasic, qml, qvto
racket, ragel, ragel-c, ragel-cpp, ragel-d, ragel-em, ragel-java, ragel-objc, ragel-ruby, raw, rb, rbcon, rconsole, rd, reason, rebol, red, redcode, registry, resource, rexx, rhtml, ride, rnc, roboconf-graph, roboconf-instances, robotframework, rql, rsl, rst, rts, rust
sarl, sas, sass, sc, scala, scaml, scdoc, scheme, scilab, scss, sgf, shen, shexc, sieve, silver, slash, slim, slurm, smali, smalltalk, smarty, sml, snobol, snowball, solidity, sourceslist, sp, sparql, spec, splus, sql, sqlite3, squidconf, ssp, stan, stata, swift, swig, systemverilog
tads3, tap, tasm, tcl, tcsh, tcshcon, tea, termcap, terminfo, terraform, tex, text, thrift, todotxt, toml, trac-wiki, treetop, ts, tsql, ttl, turtle, twig, typoscript, typoscriptcssdata, typoscripthtmldata
ucode, unicon, urbiscript, usd
vala, vb.net, vbscript, vcl, vclsnippets, vctreestatus, velocity, verilog, vgl, vhdl, vim
wdiff, webidl, whiley
x10, xml, xml+cheetah, xml+django, xml+erb, xml+evoque, xml+lasso, xml+mako, xml+myghty, xml+php, xml+smarty, xml+velocity, xorg.conf, xquery, xslt, xtend, xul+mozpreproc
yaml, yaml+jinja
zeek, zephir, zig

嘘!有很多种语言,不是吗? 这些值中的任何一个都受-l选项的支持moncode format

发展

运行以下命令将项目(和开发依赖项)安装到活动virtualenv中:

pip install -e .[dev]

使用以下内容运行测试:

make test

在不同版本的Python下运行测试:

tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓如何在java字符串中获取RATE的值   java ANT在哪里输出编译器错误?   在java中,while循环在何处启动对象   javacom。谷歌。格森。内部的LinkedTreeMap无法强制转换到我的类   java单选按钮。isSelected()方法未返回正确的响应   嵌入式系统中applet中的java相对码基字段   如何在eclipse中将Java应用程序附加到jvm探查器?   java为什么Android应用程序崩溃?   在java中拖放上传后保持文件夹结构   爪哇多领导人选举问题   java Springs RestTemplate如何处理postForEntity()中的错误响应   Java如何用前导零递增整数字符串?   java Android将文本作为图像共享给其他应用程序   Java搜索替换   java isDirectory()不适用于UNIX目录   java我们可以得到显示测试类是否通过或失败的TestNG报告吗   Java类对象排序和分组   简单Java幂递归   java在处理MethodArgumentNotValidException时如何访问请求对象?