Konvertieren Sie eine TIO-Antwort in eine CMC-Antwort

24

Lassen Sie uns einmal etwas Nützliches tun.

Erstellen Sie unter Berücksichtigung des Textes aus einer Try It Online-Codegolf-Einsendung die entsprechende Chat Mini Challenge-Einsendung, die der Form entspricht

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

oder (wenn die Übermittlung ein einzelnes Byte ist - TIO fügt nur bei Bedarf ein abschließendes s in die erste Zeile ein)

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

Sie können davon ausgehen, dass die Vorlage

  • hat nur eine Zeile
  • enthält keine Backticks ( `)
  • hat kein führendes Leerzeichen
  • hat ein reguläres Format wie in den Beispielen unten; Die Codezeile wird mit vier Leerzeichen ( ) eingerückt , nicht mit HTML-Tags ( <pre><code></code></pre>), dh ohne nachfolgendes Leerzeichen.

Beachten Sie, dass die Übermittlung möglicherweise ein Syntaxhervorhebungs-Tag enthält. Siehe letztes Beispiel.

Sie können optional den Titeltext einfügen, z …url "Language - Try It Online".

Beispiele

Gegeben

# [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"

Rückkehr

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

oder

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

Gegeben

# [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"

Rückkehr

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

Gegeben

# [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"

Rückkehr

APL (Dyalog Unicode), 15 bytes: [`⍴⍨¨⍳`](https://tio.run/##AScA2P9hcGwtZHlhbG9n//9m4oaQ4o204o2owqjijbP//zcxNjDijLZmIDQ)
Adam
quelle
Können wir annehmen, dass der Name der Sprache kein enthält ]?
ETHproductions
2
Kein Sprachenname auf TIO hat ]jedoch.
Undichte Nonne
Stimmt, denke ich. Dürfen wir annehmen, dass die Antwort kein führendes Leerzeichen enthält?
ETHproductions
@ETHproductions Ja, da sonst die Backticks nicht funktionieren. Ich werde bearbeiten.
Adám,
4
Code Golf ist nützlich ಠ_ಠ
Conor O'Brien

Antworten:

6

V , 37 , 35 Bytes

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

Probieren Sie es online!

DJMcMayhem
quelle
Ich habe versucht, das Surround-Plug-In zu verwenden, das mit V gebündelt ist, aber es hat die Leerzeichen am Ende abgeschnitten, was meiner Meinung nach die Qualität des Plug-Ins beeinträchtigt.
nmjcman101
Kann ich Sie bitten, Unterstützung für das Syntaxhervorhebungs-Tag hinzuzufügen?
Adám
@ nmjcman101 Umm, ich denke du kannst davon ausgehen, dass kein nachgestelltes Leerzeichen existiert.
Erik der Outgolfer
1
@ Adám Nun, das scheint irgendwie sinnlos zu sein, die Spezifikation in der Mitte zu ändern, aber ich denke, ich kann es unterstützen.
DJMcMayhem
1
@ nmjcman101 Ja, ich wusste über den Unterschied zwischen ys$[und Bescheid ys$], aber da wir es mit Backticks und Klammern umgeben, ist es tatsächlich kürzer, sie einfach manuell einzufügen .
DJMcMayhem
4

Python 3 , 113 103 98 91 Bytes

-1 Byte dank Value Ink.

Wenn Sie können, könnte ich etwas Hilfe mit dem Regex total gebrauchen. > <

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

Probieren Sie es online!

total menschlich
quelle
Kann ich Sie bitten, Unterstützung für das Syntaxhervorhebungs-Tag hinzuzufügen?
Adám
Vielen Dank. Das tut mir leid.
Adám
Es muss nicht verwendet werden \s, um den Codeblockteil abzugleichen. Ersetzen Sie es durch ein Leerzeichen. Außerdem hat die erwartete Ausgabe nicht das "Language - Try It Online"Segment, sodass Sie Ihre letzte Gruppe ändern müssen, um die (\S*)richtige Übereinstimmung zu erzielen, damit die Byteanzahl in etwa gleich ist.
Wert Tinte
Es hat sich herausgestellt, dass Sie diesen Teil von Try It Online behalten können. In diesem Fall wird durch Ändern \seines Leerzeichens 1 Byte gespart.
Wert Tinte
Ja, ich war derjenige, der diese Frage gestellt hat. ;)
totalhuman
3

JavaScript (ES6), 73 Byte

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>

Neil
quelle
Die Antwort, auf die ich gewartet habe. Kann daraus ein Lesezeichen gemacht werden? Ansonsten werde ich es einfach bookmarken.
Adám
@ Adám alert(prompt().replace(...))funktioniert möglicherweise, wenn Sie bei der Eingabeaufforderung auf irgendeine Weise mehrere Zeilen einfügen können (für den regulären Ausdruck müssen die Zeilenumbrüche nicht vorhanden sein).
Neil
Hm, ich bekomme den unmodifizierten Beitrag als Ergebnis. Vielleicht können wir Ihren Code in TIO einfügen ...
Adám
Ich arbeite auch an einer ähnlichen Lösung, aber ich wusste nicht, über [^]Übereinstimmen nichts . Ich habe aus Ihrer Lösung etwas Neues gelernt. Vielen Dank!
Arjun
3

Retina , 54 48 52 57 48 Bytes

1 Byte dank @MartinEnder gespeichert, 1 Byte dank @Riley

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

$
)

Probieren Sie es online! Dies setzt voraus, dass es keinen @Namen in der Sprache gibt, was in Ordnung sein sollte ...

ETHproductions
quelle
Sie konnte einfach ersetzen ^# \[mit ^...Ich denke
Martin Ender
@MartinEnder Danke, ich denke das funktioniert ...
ETHproductions
Können Sie das ^und überspringen $? Es sollte sowieso immer mit der gesamten Zeichenfolge übereinstimmen.
Riley
@ Riley Das würde scheitern, wenn ... oh, schieß, meins auch ...
ETHproductions
Dies funktioniert nicht, wenn der Code enthält <space>", aber ich weiß nicht, ob Sie damit umgehen müssen. Ich nehme an, Sie haben das gerade bemerkt.
Riley
3

05AB1E , 50 Bytes

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

Probieren Sie es online!

Unterstützt jetzt auch Syntax-Hervorhebungen!

нwird ersetzt durch und θwird ersetzt durch, ®èda diese noch nicht zu TIO gezogen wurden.

Ich frage mich nur, wie man verkürzt ¦¦¦...

Erik der Outgolfer
quelle
2

Ruby , 85 Bytes

->s{s[/.*/].gsub(/# .|\]/){}+": [`#{s[/(?<=  )\S.*/]}`](#{s=~/TIO-\w+.: (\S+)/;$1})"}

Probieren Sie es online!

Wert Tinte
quelle
2

MATLAB / Octave , 120 126 Bytes

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

Das sollte funktionieren. Für MATLAB funktioniert es nicht mit Unicode-Zeichen, obwohl ich nicht denke, vor allem, weil MATLAB schlecht ist, wenn es um ungerade Zeichen geht. Es wird jedoch mit Unicode für Octave funktionieren, oder zumindest scheint TIO in der Lage zu sein, damit umzugehen.

Es sollte auch Übermittlungen mit und ohne <-- -->Hervorhebung der Syntax behandeln.

Aktualisierungen :

  1. 4 Bytes hinzugefügt, da ich das @(a)beim Kopieren verpasst habe
  2. 2 Bytes hinzugefügt, um den Code in der Ausgabe wieder anzukreuzen

Probieren Sie es online!

Tom Carpenter
quelle
Kann dies auf TIO Octave ausgeführt werden ?
Adám
@Adam tut es ja. Ich habe die Antwort mit TIO Link aktualisiert.
Tom Carpenter
0

Pip , 43 39 38 Bytes

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

Probieren Sie es online!

Nimmt die Zeilen als separate Befehlszeilenargumente. Ein Beispielaufruf könnte folgendermaßen aussehen:

> 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\""

obwohl das bei mir eigentlich nicht funktioniert, weil sich Windows cmdüber das Ô... [unartikulierte Murmeln] beschwert

- Auf jeden Fall funktioniert es mit TIO. Oder verwenden Sie das -rFlag und nehmen Sie stattdessen Eingaben von stdin-Zeilen entgegen.

Nimmt an, dass der Name der Sprache nicht enthalten wird ](was den Abschlag ohnehin aufheben würde).

Erläuterung

                                        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
DLosc
quelle