将TIO答案转换为CMC答案


24

让我们一次做一些有用的事情。

给定来自在线试用代码提交的文本,请生成等效的“聊天迷你挑战”提交,其形式为

Language, N bytes: [`code`](URL)

或(如果提交是一个字节,TIO仅在需要时在第一行添加尾随)

Language, 1 byte: [`code`](URL)

您可以假设提交

  • 只有一行
  • 不包含反引号(`
  • 没有前导空格
  • 具有以下示例中所示的常规格式;代码行缩进了四个空格( ),而不是HTML标记(<pre><code></code></pre>),即没有尾随空格。

请注意,提交内容可能具有语法突出显示标签。请参阅最后一个示例。

您可以选择包括标题文本,即…url "Language - Try It Online"

例子

给定

# [05AB1E], 1 byte

    Ô

[Try it online!][TIO-j3v72bss]

[05AB1E]: https://github.com/Adriandmen/05AB1E
[TIO-j3v72bss]: https://tio.run/##MzBNTDJM/f//8JT//zNSgSAnJycfDAA "05AB1E – Try It Online"

返回

05AB1E, 1 byte: [`Ô`](https://tio.run/##MzBNTDJM/f//8JT//zNSgSAnJycfDAA)

要么

05AB1E, 1 byte: [`Ô`](https://tio.run/##MzBNTDJM/f//8JT//zNSgSAnJycfDAA "05AB1E – Try It Online")

给定

# [Brachylog], 4 bytes

    ḅhᵐc

[Try it online!][TIO-j3v75978]

[Brachylog]: https://github.com/JCumin/Brachylog
[TIO-j3v75978]: https://tio.run/##SypKTM6ozMlPN/r//@GO1oyHWyck//@vlJGampOTDwZK/6MA "Brachylog – Try It Online"

返回

Brachylog, 4 bytes: [`ḅhᵐc`](https://tio.run/##SypKTM6ozMlPN/r//@GO1oyHWyck//@vlJGampOTDwZK/6MA)

给定

# [APL (Dyalog Unicode)], 15 bytes

<!-- language-all: lang-apl -->

    ⍴⍨¨⍳

[Try it online!][TIO-j44jgrps]

[APL (Dyalog Unicode)]: https://www.dyalog.com/
[TIO-j44jgrps]: https://tio.run/##AScA2P9hcGwtZHlhbG9n//9m4oaQ4o204o2owqjijbP//zcxNjDijLZmIDQ "APL (Dyalog Unicode) – Try It Online"

返回

APL (Dyalog Unicode), 15 bytes: [`⍴⍨¨⍳`](https://tio.run/##AScA2P9hcGwtZHlhbG9n//9m4oaQ4o204o2owqjijbP//zcxNjDijLZmIDQ)

我们可以假设语言名称不包含]吗?
ETHproductions

2
TIO上没有语言名称]
Leaky Nun

是的,我猜。愿我们认为答案没有任何领先的空白?
ETHproductions

@ETHproductions是的,因为否则反引号将不起作用。我会编辑。
亚当

4
代码高尔夫是有用ಠ_ಠ
康纳尔奥布莱恩

Answers:


6

V37,35字节

ç^</dj
H3xf]x3Ji[`A`]Jd2/: 
xr(A)

在线尝试!


我尝试使用与V捆绑在一起的Surround插件,但是它一直在修剪空白处,我认为这是不合格的。
nmjcman101

我可以麻烦您添加对语法突出显示标签的支持吗?
亚当

@ nmjcman101嗯,我认为您可以假定尾随空白不存在。
乡下人埃里克(Erik the Outgolfer)

1
@Adám好吧,这似乎在中间改变了规范毫无意义,但我想我可以支持。
DJMcMayhem

1
@ nmjcman101是的,我的确知道ys$[和之间的区别ys$],但是由于我们用反引号方括号将它包围起来,所以将其手动放入实际上要短一些。
DJMcMayhem

4

Python 3中113个 103 98 91字节

-1字节归功于Value Ink。

如果可以的话,我可以在正则表达式上完全使用一些帮助。> <

lambda s:re.sub('(?s)# .(.*)](.*?)\n.* {4}(.*?)\n.+: (.*)',r'\1\2: [`\3`](\4)',s)
import re

在线尝试!


我可以麻烦您添加对语法突出显示标签的支持吗?
亚当

万分谢意。对于那个很抱歉。
亚当

无需使用\s匹配的代码块部分;将其替换为文字空格字符。另外,预期的输出没有该"Language - Try It Online"段,因此您需要更改最后一个组以(\S*)正确匹配,因此字节数大致相同。
Value Ink

实际上,事实证明您可以保留“在线试用”部分。在这种情况下,更改\s为空格将节省1个字节。
Value Ink

是的,我是问这个问题的人。;)
totallyhuman

3

JavaScript(ES6),73个字节

f=
s=>s.replace(/...(.*)](.*)[^]+    (.*)[^]+: (.*) ".*/,"$1$2: [`$3`]($4)")
<textarea rows=8 cols=75 oninput=o.textContent=this.value==f(this.value)?``:f(this.value)></textarea><pre id=o>


我一直在等待答案。可以做成书签吗?否则,我将其添加为书签。
亚当

alert(prompt().replace(...))如果提示将允许您以某种方式粘贴多行(regexp实际上不需要出现换行符),@Adám 可能会起作用。
尼尔

嗯,结果是我收到未修改的帖子。也许我们可以注入你的代码TIO ...
亚当

我也在研究类似的解决方案,但是我不知道[^]要匹配什么。我从您的解决方案中学到了一些新知识。谢谢!
Arjun

3

视网膜54 48 52 57 48字节

@MartinEnder节省了1个字节,@ Riley节省了1个字节

...(.+)[^@]+    (.+)[^@]+: 
$1: [`$2`](
1`]

$
)

在线尝试!假设@语言名称中没有,这应该没问题...


您可以^# \[^...我认为的代替
Martin Ender

@MartinEnder谢谢,我认为这行得通...
ETHproductions

您可以跳过^$吗?无论如何,它应始终与整个字符串匹配。
莱利

@Riley那会如果...哦,拍,我的的确太失败......
ETHproductions

如果代码包含<space>",则此方法不起作用,但是我不知道您是否需要处理它。我猜你只是注意到了。
莱利

3

05AB1E,50个字节

']¡J¦¦¦|J|`‚ʒнðQ}`ðÛ|D`θ'"Êi\|ë\}θ#1èr"ÿ: [`ÿ`](ÿ)

在线尝试!

现在也支持语法突出显示!

н被取代θ被替换®è,因为它们没有被拉到TIO呢。

我只是想知道如何缩短¦¦¦...



2

MATLAB / 倍频程120个 126字节

@(a)strjoin(regexprep(strsplit(a,'\n'),{'\[.+\]: (.+) ".+','^[\[<].+','# \[(.+)\](.+)','^ +'},{'`]($1)','','$1$2: [`',''}),'')

这应该工作。对于MATLAB,尽管我不认为它不适用于Unicode字符,这主要是因为MATLAB在处理奇数字符时很烂。但是,它将与octave的Unicode一起使用,或者至少TIO似乎能够应付。

它也应该处理带有或不带有<-- -->语法突出显示的提交。

更新内容

  1. 添加了4个字节,因为我@(a)在复制时错过了
  2. 添加了2个字节以在输出中的代码周围添加回勾

在线尝试!


可以在TIO Octave上运行吗?
亚当

@Adám确实如此。我已经用TIO链接更新了答案。
汤姆·卡彭特



0

43 39 38字节

[a@>3DC']": [`"g@-6|>s"`]("(g@v^s1)')]

在线尝试!

将这些行作为单独的命令行参数。调用示例如下:

> pip.py -f convert.pip "# [05AB1E], 1 byte" "" "    Ô" "" "[Try it online!][TIO-j3v72bss]" "" "[05AB1E]: https://github.com/Adriandmen/05AB1E" "[TIO-j3v72bss]: https://tio.run/##MzBNTDJM/f//8JT//zNSgSAnJycfDAA \"05AB1E – Try It Online\""

尽管实际上这对我不起作用,因为Windows cmd抱怨Ô... [含糊不清的喃喃自语]

-无论如何,它适用于TIO。或者,使用-r标志并从stdin的行中获取输入。

假设语言名称将不包含](反而会破坏降价)。

说明

                                        g is list of cmdline args; a is 1st arg;
                                        s is space; v is -1 (implicit)
[                                    ]  Build a list with these elements:
 a@>3                                    1st line, sans first three characters,
     DC']                                 with the ] character deleted
         ": [`"                          This string
               g@-6                      6th line from the end (the code)
                   |>s                    with leading spaces stripped
                      "`]("              This string
                            g@v          Last line (containing the URL)
                               ^s         split on spaces
                           (     1)       get element at index 1
                                   ')    This character
                                        By default, the list is concatenated and printed
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.