TIO yanıtını CMC yanıtına dönüştürme


24

Bir kere işe yarar bir şey yapalım.

Çevrimiçi Deneyin kod yazarı gönderiminden verilen metin göz önüne alındığında, formdaki eşdeğer Chat Mini Challenge gönderimini oluşturun.

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

veya (eğer gönderim bir bayt ise - TIO sadece gerektiğinde ilk satıra bir iz ekleyecektir)

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

Gönderim olduğunu varsayabilirsin

  • sadece bir satır var
  • backticks içermiyor ( `)
  • önde gelen boşluk yok
  • aşağıdaki örneklerde olduğu gibi düzenli bir biçime sahiptir; kod satırı dört boşlukla ( ) girilir , HTML etiketleriyle ( <pre><code></code></pre>) değil, izleyen boşluk yoktur.

Gönderinin bir sözdizimi vurgulama etiketine sahip olabileceğini unutmayın. Son örneğe bakınız.

İsteğe bağlı olarak başlık metnini ekleyebilirsiniz …url "Language - Try It Online".

Örnekler

verilmiş

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

dönüş

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

veya

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

verilmiş

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

dönüş

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

verilmiş

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

dönüş

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

Dil adının bir içermediğini varsayabilir miyiz ]?
ETHproductions

2
TIO'da hiçbir dil adı yoktu ].
Sızdıran Rahibe

Doğru sanırım. Cevabın önde gelen bir boşluk olmadığı varsayılabilir mi?
ETHProductions

@ETHproductions Evet, çünkü aksi takdirde geri tepmeler işe yaramaz. Düzenleyeceğim.
Adám

4
Kod golf faydalıdır ಠ_ಠ
Conor O'Brien

Yanıtlar:


6

V , 37 , 35 bayt

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

Çevrimiçi deneyin!


V ile birlikte gelen surround eklentisini kullanmaya çalıştım, ancak diskalifiye olduğunu düşünüyorum.
nmjcman101

Sözdizimi vurgulama etiketi için destek eklemek için sizi rahatsız edebilir miyim?
Adám

@ nmjcman101 Umm, arkadaki boşlukların olmadığını varsayabilirsin.
Outgolfer Erik

1
@ Adám Eh, bu tür ortada belirtmeden anlamsızca değiştirme gibi görünüyor, ama sanırım destekleyebilirim.
DJMcMayhem

1
@ nmjcman101 Evet, ys$[ve arasındaki farkı biliyordum ys$], ancak onu geri tepme ve desteklerle çevrelediğimizden , aslında onları elle yerleştirmek daha kısa.
DJMcMayhem

4

Python 3 , 113 103 98 91 bayt

Value Ink sayesinde -1 bayt.

Mümkünse, regex ile tamamen yardım kullanabilirim. > <

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

Çevrimiçi deneyin!


Sözdizimi vurgulama etiketi için destek eklemek için sizi rahatsız edebilir miyim?
Adám

Çok teşekkürler. Bunun için üzgünüm.
Adám

\sKod bloğu kısmını eşleştirmek için kullanmanıza gerek yoktur ; değişmez bir boşluk karakteri ile değiştirin. Ayrıca beklenen çıktının "Language - Try It Online"segmenti yoktur, bu nedenle son grubunuzu doğru bir (\S*)şekilde eşleşecek şekilde değiştirmeniz gerekir , bu yüzden byte sayısı aynı şekilde ortaya çıkar.
Value Ink

Aslında, Çevrimiçi Deneyin bölümünü kullanmaya devam edebileceğinizi gösteriyor. Bu durumda, \sbir boşluğa değiştirmek 1 bayttan tasarruf sağlar.
Value Ink

Evet, bu soruyu soran bendim. ;)
totallyhuman 21

3

JavaScript (ES6), 73 bayt

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>


Cevap bekliyorum. Bu bir kitapçık haline getirilebilir mi? Aksi takdirde, sadece yer imlerine koyacağım.
Adám

@ Adám alert(prompt().replace(...))çalışabilir, eğer istem bir şekilde birden fazla satır yapıştırmanıza izin verirse (regexp aslında mevcut olan yeni satırlara ihtiyaç duymaz).
Neil

Sonuç olarak değiştirilmemiş postaları alıyorum. Belki de kodunuzu
TIO’ya

Ben de benzer bir çözüm üzerinde çalışıyordum, ama hiçbir şeyi[^] eşleştirmeyi bilmiyordum . Çözümünüzden yeni bir şey öğrendim. Teşekkürler!
Arjun

3

Retina , 54 48 52 57 48 bayt

@MartinEnder sayesinde 1 byte, @Riley sayesinde 1 byte kaydedildi

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

$
)

Çevrimiçi deneyin! Bu @, dilde bir isim olmayacağını varsayar , ki bu iyi olmalı ...


bence ^# \[onunla değiştirebilirsin^...
Martin Ender

@MartinEnder Teşekkürler, bence işe yarıyor ...
ETHproductions

Eğer atlamak Can ^ve $? Yine de her zaman tüm dizeyle eşleşmelidir.
Riley,

@Riley Bu başarısız olur ... oh ateş, benimki de yapar ...
ETHproductions

Bu kod içeriyorsa işe yaramaz <space>", ancak bununla başa çıkmanız gerekip gerekmediğini bilmiyorum. Sanırım bunu farkettin.
Riley,

3

05AB1E , 50 bayt

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

Çevrimiçi deneyin!

Şimdi de sözdizimi vurgulayarak destekliyor!

нile değiştirilir ve θyerine ®èo henüz TIO çektiği değil çünkü.

Sadece nasıl kısaltılacağını merak ediyorum ¦¦¦...



2

MATLAB / Octave , 120 126 bayt

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

Bu çalışmalı. MATLAB için sanmıyorum ama Unicode karakterlerle çalışmaz, çünkü çoğunlukla MATLAB garip karakterler söz konusu olduğunda berbattır. Ancak Octave için Unicode ile çalışacak veya en azından TIO başa çıkabiliyor gibi görünüyor.

Ayrıca, <-- -->sözdizimi vurgulamasıyla ve sözdizimi olmadan gönderimleri işlemelidir.

Güncellemeler :

  1. @(a)Kopyalarken kaçırdığım 4 bayt eklendi
  2. Çıktıdaki kodun etrafına keneler eklemek için 2 bayt eklendi

Çevrimiçi deneyin!


Bu TIO Octave'da çalıştırılabilir mi?
Adem

@ Adám gerçekten de öyle. Yanıtı TIO bağlantısıyla güncelledim.
Tom Carpenter,



0

Pip , 43 39 38 bayt

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

Çevrimiçi deneyin!

Satırları ayrı komut satırı argümanları olarak alır. Örnek bir çağrı şöyle olabilir:

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

Aslında bu benim için işe yaramıyor çünkü Windows cmdhakkında şikayette bulundu Ô...

- Her halükarda, TIO üzerinde çalışır. Veya -rbayrağı kullanın ve bunun yerine stdin satırlarından girdi alın.

Dil adının içermeyeceğini varsayar ](ki bu yine de işaretlemeyi bozar).

açıklama

                                        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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.