Convertir une réponse TIO en réponse CMC

24

Faisons pour une fois quelque chose d'utile.

Étant donné le texte d'une soumission de golf de code Try It Online, produisez la soumission de Chat Mini Challenge équivalente, qui est de la forme

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

ou (si la soumission est un seul octet - TIO ajoutera un s de fin sur la première ligne uniquement si nécessaire)

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

Vous pouvez supposer que la soumission

  • n'a qu'une seule ligne
  • ne contient pas de backticks ( `)
  • n'a pas d'espace blanc de premier plan
  • a un format régulier comme dans les exemples ci-dessous; la ligne de code est en retrait avec quatre espaces ( ), pas avec des balises HTML ( <pre><code></code></pre>), c'est-à-dire sans espace de fin.

Notez que la soumission peut avoir une balise de coloration syntaxique. Voir le dernier exemple.

Vous pouvez éventuellement inclure le texte du titre, c'est-à-dire …url "Language - Try It Online".

Exemples

Donné

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

revenir

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

ou

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

Donné

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

revenir

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

Donné

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

revenir

APL (Dyalog Unicode), 15 bytes: [`⍴⍨¨⍳`](https://tio.run/##AScA2P9hcGwtZHlhbG9n//9m4oaQ4o204o2owqjijbP//zcxNjDijLZmIDQ)
Adam
la source
Pouvons-nous supposer que le nom de la langue ne contient pas de ]?
ETHproductions
2
Aucun nom de langue sur TIO n'a ]cependant.
Leaky Nun
C'est vrai, je suppose. Pouvons-nous supposer que la réponse n'a pas d' espace blanc de premier plan ?
ETHproductions
@ETHproductions Oui, car sinon les backticks ne fonctionneront pas. Je vais éditer.
Adám
4
Le golf de code est utile ಠ_ಠ
Conor O'Brien

Réponses:

6

V , 37 , 35 octets

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

Essayez-le en ligne!

DJMcMayhem
la source
J'ai essayé d'utiliser le plugin surround qui est en quelque sorte fourni avec V, mais il a gardé le blanc à la fin, ce qui, je pense, le disqualifie.
nmjcman101
Puis-je vous déranger pour ajouter la prise en charge de la balise de coloration syntaxique?
Adám
@ nmjcman101 Umm, je pense que vous pouvez supposer que les espaces de fin n'existent pas.
Erik the Outgolfer
1
@ Adám Eh bien, cela semble changer un peu la spécification au milieu, mais je suppose que je peux la supporter.
DJMcMayhem
1
@ nmjcman101 Oui, je connaissais la différence entre ys$[et ys$], mais comme nous l'entourons de crochets et de crochets, il est en fait plus court de les mettre manuellement.
DJMcMayhem
4

Python 3 , 113 103 103 98 91 octets

-1 octet grâce à Value Ink.

Si vous le pouvez, je pourrais totalement utiliser l'aide avec l'expression régulière. > <

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

Essayez-le en ligne!

totalement humain
la source
Puis-je vous déranger pour ajouter la prise en charge de la balise de coloration syntaxique?
Adám
Grand merci. Désolé pour ça.
Adám
Pas besoin d'utiliser \spour faire correspondre la partie du bloc de code; remplacez-le par un caractère d'espace littéral. De plus, la sortie attendue n'a pas le "Language - Try It Online"segment, vous devez donc changer votre dernier groupe pour (\S*)qu'il corresponde correctement, de sorte que le nombre d'octets soit le même.
Value Ink
En fait, il s'avère que vous pouvez conserver cette partie Try It Online. Dans ce cas, le passage \sà un espace économisera 1 octet.
Value Ink
Ouais, c'est moi qui ai posé cette question. ;)
totalement humain le
3

JavaScript (ES6), 73 octets

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
la source
La réponse que j'attendais. Peut-on en faire un bookmarklet? Sinon, je vais juste le mettre en signet.
Adám
@ Adám alert(prompt().replace(...))pourrait fonctionner, si l'invite vous permet de coller plusieurs lignes d'une manière ou d'une autre (l'expression rationnelle n'a pas réellement besoin que les nouvelles lignes soient présentes).
Neil
Hm, je reçois le message non modifié en conséquence. Peut-être que nous pouvons injecter votre code dans TIO…
Adám
Je travaillais aussi sur une solution similaire, mais je ne savais pas [^]pour correspondre à quoi que ce soit . J'ai appris quelque chose de nouveau grâce à votre solution. Merci!
Arjun
3

Rétine , 54 48 52 57 48 octets

1 octet enregistré grâce à @MartinEnder, 1 octet grâce à @Riley

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

$
)

Essayez-le en ligne! Cela suppose qu'il n'y aura pas de @nom dans la langue, ce qui devrait être bien ...

ETHproductions
la source
vous pourriez simplement remplacer ^# \[par ^...je pense
Martin Ender
@MartinEnder Merci, je pense que ça marche ...
ETHproductions
Pouvez-vous sauter le ^et $? Il doit toujours correspondre à la chaîne entière de toute façon.
Riley
@Riley Cela échouerait si ... oh shoot, le mien aussi ...
ETHproductions
Cela ne fonctionne pas si le code contient <space>", mais je ne sais pas si vous devez gérer cela. Je suppose que vous venez de le remarquer.
Riley
3

05AB1E , 50 octets

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

Essayez-le en ligne!

Prend désormais également en charge la coloration syntaxique!

нest remplacé par et θest remplacé par ®ècar ceux-ci ne sont pas encore tirés vers TIO.

Je me demande juste comment raccourcir ¦¦¦...

Erik le Outgolfer
la source
2

Rubis , 85 octets

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

Essayez-le en ligne!

Encre de valeur
la source
2

Matlab / Octave , 120 126 octets

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

Cela devrait fonctionner. Pour MATLAB, cela ne fonctionnera pas avec les caractères Unicode, bien que je ne pense pas, principalement parce que MATLAB craint quand il s'agit de caractères étranges. Cependant, cela fonctionnera avec Unicode pour Octave, ou au moins TIO semble être en mesure de faire face.

Il doit également gérer les soumissions avec et sans <-- -->mise en évidence de la syntaxe.

Mises à jour :

  1. Ajout de 4 octets car j'ai raté le @(a)lors de la copie
  2. Ajout de 2 octets pour ajouter des graduations autour du code dans la sortie

Essayez-le en ligne!

Tom Carpenter
la source
Peut-il être exécuté sur TIO Octave ?
Adám
@ Adám c'est vrai. J'ai mis à jour la réponse avec le lien TIO.
Tom Carpenter
1

PHP , 92 octets

<?=preg_filter("<...(.+)\](, \d+ \w+).* {4}(\S+).*: (\S+).*>s","$1$2: [`$3`]($4)",$_GET[0]);

Essayez-le en ligne!

Jörg Hülsermann
la source
0

Pip , 43 39 38 octets

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

Essayez-le en ligne!

Prend les lignes comme des arguments de ligne de commande distincts. Un exemple d'invocation pourrait ressembler à ceci:

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

mais en fait cela ne fonctionne pas pour moi car Windows se cmdplaint du Ô... [murmure inarticulé]

- En tout cas, cela fonctionne sur TIO. Ou utilisez le-r drapeau et prenez à la place les entrées des lignes de stdin.

Suppose que le nom de la langue ne contiendra pas ] (ce qui casserait le démarque de toute façon).

Explication

                                        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
la source