Ubah jawaban TIO menjadi jawaban CMC

24

Mari kita sekali saja melakukan sesuatu yang bermanfaat.

Diberikan teks dari pengajuan kodegolf Try It Online, menghasilkan pengajuan Obrolan Tantangan Mini yang setara, yang berbentuk formulir

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

atau (jika pengiriman adalah satu byte - TIO akan menambahkan trailing s pada baris pertama hanya jika diperlukan)

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

Anda dapat mengasumsikan bahwa pengajuan

  • hanya memiliki satu baris
  • tidak mengandung backticks ( `)
  • tidak memiliki spasi putih terkemuka
  • memiliki format reguler seperti pada contoh di bawah ini; baris kode indentasi dengan empat spasi ( ), bukan dengan tag HTML ( <pre><code>... </code></pre>), yaitu tanpa spasi spasi tambahan.

Perhatikan bahwa kiriman mungkin memiliki tag penyorotan sintaksis. Lihat contoh terakhir.

Anda dapat memasukkan teks judul, misalnya …url "Language - Try It Online".

Contohnya

Diberikan

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

kembali

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

atau

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

Diberikan

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

kembali

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

Diberikan

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

kembali

APL (Dyalog Unicode), 15 bytes: [`⍴⍨¨⍳`](https://tio.run/##AScA2P9hcGwtZHlhbG9n//9m4oaQ4o204o2owqjijbP//zcxNjDijLZmIDQ)
Adm
sumber
Bisakah kita menganggap nama bahasa tidak mengandung ]?
ETHproduk
2
Tidak ada nama bahasa di TIO ].
Leaky Nun
Benar, kurasa. Bolehkah kita menganggap jawabannya tidak memiliki spasi putih terkemuka ?
ETHproduk
@ ETHproductions Ya, karena jika tidak, backticks tidak akan berfungsi. Saya akan mengedit.
Adám
4
Golf kode berguna ಠ_ಠ
Conor O'Brien

Jawaban:

6

V , 37 , 35 byte

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

Cobalah online!

DJMcMayhem
sumber
Saya mencoba menggunakan plugin surround yang dibundel dengan V, tetapi tetap memangkas spasi putih, yang saya pikir mendiskualifikasi itu.
nmjcman101
Dapatkah saya mengganggu Anda untuk menambahkan dukungan untuk tag penyorotan sintaksis?
Adám
@ nmjcman101 Umm, saya pikir Anda dapat mengasumsikan spasi spasi tidak ada.
Erik the Outgolfer
1
@ Adám Yah, sepertinya agak sia-sia mengubah spec di tengah, tapi saya rasa saya bisa mendukungnya.
DJMcMayhem
1
@ nmjcman101 Ya, saya memang tahu tentang perbedaan antara ys$[dan ys$], tapi karena kita mengelilinginya dengan backtick dan kurung, sebenarnya lebih pendek untuk menempatkannya secara manual.
DJMcMayhem
4

Python 3 , 113 103 98 91 byte

-1 byte berkat Value Ink.

Jika Anda bisa, saya benar-benar bisa menggunakan bantuan dengan regex. > <

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

Cobalah online!

benar-benar manusiawi
sumber
Dapatkah saya mengganggu Anda untuk menambahkan dukungan untuk tag penyorotan sintaksis?
Adám
Terima kasih banyak. Maaf soal itu.
Adám
Tidak perlu digunakan \suntuk mencocokkan bagian blok kode; gantilah dengan karakter ruang literal. Juga output yang diharapkan tidak memiliki "Language - Try It Online"segmen, jadi Anda perlu mengubah grup terakhir Anda (\S*)agar cocok dengan benar, sehingga jumlah byte keluar sama.
Value Ink
Sebenarnya, ternyata Anda dapat mempertahankan bagian Try It Online. Dalam hal ini, mengubah \ske spasi akan menghemat 1 byte.
Nilai Tinta
Yup, akulah yang mengajukan pertanyaan itu. ;)
totallyhuman
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
sumber
Jawaban yang saya tunggu-tunggu. Bisakah ini dijadikan bookmarklet? Kalau tidak, saya hanya akan bookmark itu.
Adám
@ Adám alert(prompt().replace(...))mungkin berfungsi, jika prompt akan membiarkan Anda menempelkan beberapa baris dengan cara tertentu (regexp sebenarnya tidak memerlukan baris baru untuk hadir).
Neil
Hm, saya mendapatkan postingan yang belum dimodifikasi sebagai hasilnya. Mungkin kami dapat menyuntikkan kode Anda ke TIO ...
Adám
Saya juga sedang mengerjakan solusi yang serupa, tetapi saya tidak tahu tentang [^]mencocokkan apa pun . Saya telah belajar sesuatu yang baru dari solusi Anda. Terima kasih!
Arjun
3

Retina , 54 48 52 57 48 byte

Disimpan 1 byte berkat @MartinEnder, 1 byte terima kasih ke @Riley

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

$
)

Cobalah online! Ini mengasumsikan tidak akan ada @dalam nama bahasa, yang seharusnya baik-baik saja ...

Produksi ETH
sumber
Anda hanya bisa mengganti ^# \[dengan ^...saya pikir
Martin Ender
@ MartinEnder Terima kasih, saya pikir itu berhasil ...
ETHproduksi
Bisakah Anda melewati ^dan $? Itu harus selalu cocok dengan seluruh string.
Riley
@Riley Itu akan gagal jika ... oh menembak, milikku juga ...
ETHproduksi
Ini tidak berfungsi jika kodenya berisi <space>", tetapi saya tidak tahu apakah Anda perlu mengatasinya. Saya kira Anda baru saja menyadarinya.
Riley
3

05AB1E , 50 byte

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

Cobalah online!

Sekarang mendukung penyorotan sintaks juga!

нdiganti oleh dan θdigantikan oleh ®èkarena itu belum ditarik ke TIO.

Saya hanya ingin tahu bagaimana mempersingkat ¦¦¦...

Erik the Outgolfer
sumber
2

Ruby , 85 byte

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

Cobalah online!

Nilai Tinta
sumber
2

MATLAB / Oktaf , 120 126 byte

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

Ini seharusnya bekerja. Untuk MATLAB itu tidak akan bekerja dengan karakter Unicode meskipun saya tidak berpikir, terutama karena MATLAB menyebalkan ketika datang ke karakter aneh. Namun itu akan bekerja dengan Unicode untuk Oktaf, atau setidaknya TIO tampaknya dapat mengatasinya.

Itu juga harus menangani pengiriman baik dengan dan tanpa <-- -->penyorotan sintaksis.

Pembaruan :

  1. Menambahkan 4 byte ketika saya melewatkan @(a)saat menyalin
  2. Menambahkan 2 byte untuk menambahkan kembali kutu di sekitar kode dalam output

Cobalah online!

Tom Carpenter
sumber
Bisakah ini dijalankan di TIO Octave ?
Adám
@ Adm memang. Saya telah memperbarui jawabannya dengan tautan TIO.
Tom Carpenter
1

PHP , 92 byte

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

Cobalah online!

Jörg Hülsermann
sumber
0

Pip , 43 39 38 byte

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

Cobalah online!

Mengambil baris sebagai argumen baris perintah yang terpisah. Contoh doa dapat terlihat seperti:

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

meskipun sebenarnya ini tidak bekerja untuk saya karena Windows cmdmengeluh tentang Ô... [tidak jelas bergumam]

--Pada tingkat apapun, ini bekerja pada TIO. Atau, gunakan -rflag dan ambil input dari garis stdin sebagai gantinya.

Diasumsikan bahwa nama bahasa tidak akan mengandung ](yang akan memecah markdown).

Penjelasan

                                        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
sumber