Перетворіть відповідь TIO у відповідь CMC


24

Давайте хоч раз зробимо щось корисне.

З огляду на текст подання кодового гольфу «Спробуйте це онлайн», створіть еквівалентне подання Chat Mini Challenge, яке має форму

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

або (якщо подання - один байт - TIO додасть проміжні s у першому рядку лише за потреби)

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 немає .
Лина монашка

Правда, гадаю. Можемо припустити, що у відповіді немає провідних пробілів?
ETHproductions

@ETHproductions Так, тому що в іншому випадку підставки не працюватимуть. Я відредагую.
Адам

4
Код гольфу корисний ಠ_ಠ
Conor O'Brien

Відповіді:


6

V , 37 , 35 байт

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

Спробуйте в Інтернеті!


Я спробував використовувати плагін для оточення, який є в комплекті з V, але він тривав обрізки пробілів від кінця, що, на мою думку, дискваліфікує його.
nmjcman101

Чи можу я заважати вам додати підтримку тегу виділення синтаксису?
Адам

@ nmjcman101 Гм, я думаю, ви можете припустити, що пробіли пробігу не існують.
Ерік Аутгольфер

1
@ Adám Добре, що це виглядає як безглуздо міняти специфікацію в середині, але, мабуть, я можу це підтримати.
DJMcMayhem

1
@ nmjcman101 Так, я знав про різницю між ys$[і ys$], але, оскільки ми оточуємо його за допомогою задньої панелі та дужок, насправді коротше просто вставити їх вручну.
DJMcMayhem

4

Python 3 , 113 103 98 91 байт

-1 байт завдяки величині Ink.

Якщо ви можете, я б цілком міг скористатись деякою допомогою з регулярним виразом. > <

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

Спробуйте в Інтернеті!


Чи можу я заважати вам додати підтримку тегу виділення синтаксису?
Adám

Щиро дякую. Вибач за це.
Адам

Не потрібно використовувати \sдля узгодження частини кодового блоку; замініть його буквальним просторовим символом. Також очікуваний вихід не має "Language - Try It Online"сегмента, тому вам потрібно змінити свою останню групу (\S*)на відповідну коректності, щоб кількість байтів виходила приблизно однаково.
Значення чорнила

Насправді, виявляється, ви можете зберегти цю частину Try It Online. У цьому випадку перехід \sдо пробілу заощадить 1 байт.
Значення чорнила

Так, я був тим, хто задав це питання. ;)
абсолютнолюдсько

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>


Відповідь, яку я чекав. Чи можна це зробити в закладку? Інакше я просто закладаю закладки.
Адам

@ Adám alert(prompt().replace(...))може спрацювати, якщо підказка дозволить певним чином вставити кілька рядків (regexp насправді не потребує наявності нових рядків).
Ніл

Гм, в результаті я отримую немодифіковану посаду. Можливо, ми можемо ввести ваш код у TIO…
Adám

Я також працював над подібним рішенням, але я не знав, що нічого[^] відповідати . Я дізнався щось нове з вашого рішення. Спасибі!
Арджун

3

Сітківка , 54 48 52 57 48 байт

Збережено 1 байт завдяки @MartinEnder, 1 байт завдяки @Riley

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

$
)

Спробуйте в Інтернеті! Це передбачає, що @в назві мови не буде , що має бути добре ...


ви могли просто замінити ^# \[на ^...Я думаю
Мартін Ендер

@MartinEnder Спасибі, я думаю, що це працює ...
ETHproductions

Чи можете ви пропустити ^і $? Він завжди повинен відповідати цілому рядку.
Райлі

@Riley Це не вдасться, якщо ... о стріляй, моє теж ...
ETHproductions

Це не працює, якщо код містить <space>", але я не знаю, чи потрібно вам це впоратися. Я здогадуюсь, що ви це щойно помітили.
Райлі

3

05AB1E , 50 байт

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

Спробуйте в Інтернеті!

Тепер також підтримується виділення синтаксису!

нзамінюється і θзамінюється ®èтим, що вони ще не перетягнуті на TIO.

Мені просто цікаво, як скоротити ¦¦¦...



2

MATLAB / Octave , 120 126 байт

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

Це має спрацювати. Для MATLAB він не працюватиме з символами Unicode, хоча я не думаю, головним чином тому, що MATLAB смокче, коли мова заходить про непарні символи. Однак він буде працювати з Unicode для Octave, або, принаймні, 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.