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)

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!


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!


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>


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 ...


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 ¦¦¦...



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!


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



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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.