แปลงคำตอบ TIO เป็นคำตอบ CMC


24

มาทำสิ่งที่มีประโยชน์กันเถอะ

รับข้อความจากการส่ง codegolf ของ Try It Online สร้างการส่ง Chat Chat Challenge ที่เทียบเท่าซึ่งเป็นรูปแบบ

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

หรือ (หากการส่งเป็นไบต์เดียว - TIO จะเพิ่มการติดตามในบรรทัดแรกเฉพาะในกรณีที่จำเป็น)

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

คุณอาจคิดว่าการส่ง

  • มีเพียงหนึ่งบรรทัด
  • ไม่มี backticks ( `)
  • ไม่มีช่องว่างชั้นนำ
  • มีรูปแบบปกติเช่นในตัวอย่างด้านล่าง บรรทัดโค้ดมีการเว้นวรรคสี่ช่องว่าง ( ) ไม่ใช่แท็ก 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 มี]แต่
Leun Nun

จริงฉันเดา เราขอสมมติว่าคำตอบนั้นไม่มีช่องว่างนำหน้าหรือไม่?
ETHproductions

@ETHproductions ใช่เพราะมิฉะนั้น backticks จะไม่ทำงาน ฉันจะแก้ไข
Adám

4
Code golf มีประโยชน์ಠ_ಠ
Conor O'Brien

คำตอบ:


6

V , 37 , 35 ไบต์

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

ลองออนไลน์!


ฉันพยายามใช้ปลั๊กอินเสียงเซอร์ราวด์ที่มาพร้อมกับ V แต่มันยังคงตัดช่องว่างออกจากท้ายซึ่งฉันคิดว่าตัดสิทธิ์มัน
nmjcman101

ฉันจะรบกวนคุณเพิ่มการสนับสนุนสำหรับแท็กการเน้นไวยากรณ์ได้หรือไม่
Adám

@ nmjcman101 อืมฉันคิดว่าคุณคงไม่มีช่องว่างต่อท้ายได้
Erik the Outgolfer

1
@ Adámก็ดูเหมือนว่าจะเปลี่ยนสเป็คตรงกลาง แต่ฉันคิดว่าฉันสามารถรองรับได้
DJMcMayhem

1
@ nmjcman101 ใช่ฉันรู้เกี่ยวกับความแตกต่างระหว่างys$[และys$]แต่เนื่องจากเราถูกล้อมรอบด้วย backticks และวงเล็บมันสั้นกว่าจริง ๆ เพียงแค่ใส่พวกเขาด้วยตนเอง
DJMcMayhem

4

Python 3 , 113 103 98 91 ไบต์

-1 ไบต์ด้วย Value Ink

หากทำได้ฉันสามารถใช้ความช่วยเหลือทั้งหมดกับ regex > <

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

ลองออนไลน์!


ฉันจะรบกวนคุณเพิ่มการสนับสนุนสำหรับแท็กการเน้นไวยากรณ์ได้หรือไม่
Adám

เยี่ยมมากขอบคุณ ขอโทษสำหรับเรื่องนั้น.
Adám

ไม่จำเป็นต้องใช้\sเพื่อจับคู่ส่วนรหัสบล็อก แทนที่ด้วยอักขระช่องว่างที่แท้จริง เอาท์พุทที่คาดหวังยังไม่มี"Language - Try It Online"ส่วนดังนั้นคุณต้องเปลี่ยนกลุ่มสุดท้ายของคุณเพื่อ(\S*)ให้ตรงกับอย่างถูกต้องดังนั้นการนับไบต์ออกมาเหมือนกัน
มูลค่าหมึก

จริงๆแล้วมันกลับกลายเป็นว่าคุณสามารถใช้ส่วนลองอิทออนไลน์ได้ ในกรณีนั้นการเปลี่ยน\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>


คำตอบที่ฉันรอ สามารถสร้างเป็น bookmarklet ได้หรือไม่? ไม่งั้นฉันก็จะคั่นหน้ามันไว้
Adám

@ Adám alert(prompt().replace(...))อาจใช้งานได้หากพรอมต์จะให้คุณวางหลายบรรทัดในบางวิธี (regexp ไม่ต้องการให้มีการขึ้นบรรทัดใหม่)
Neil

หืมฉันได้รับโพสต์ที่ไม่ได้แก้ไข บางทีเราสามารถฉีดรหัสของคุณลงใน TIO ...
อดัม

ผมก็ยังทำงานในการแก้ปัญหาที่คล้ายกัน แต่ผมไม่ทราบว่าเกี่ยวกับ[^]เพื่อให้ตรงกับอะไร ฉันได้เรียนรู้สิ่งใหม่จากโซลูชันของคุณ ขอบคุณ!
Arjun

3

เรติน่า , 54 48 52 57 48 ไบต์

บันทึก 1 ไบต์ขอบคุณ @MartinEnder, 1 ไบต์ขอบคุณ @Riley

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

$
)

ลองออนไลน์! สิ่งนี้ถือว่าไม่มี@ชื่อภาษาซึ่งควรจะเป็น ...


คุณสามารถแทนที่^# \[ด้วย^...ฉันคิดว่า
Martin Ender

@ มาร์ตินเดอร์ขอบคุณฉันคิดว่ามันใช้ได้ ...
ETHproductions

คุณสามารถข้าม^และ$? ควรตรงกับสตริงทั้งหมดเสมอ
Riley

@Riley ที่จะล้มเหลวถ้า ... โอ้ยิงของฉันก็เช่นกัน ...
ETHproductions

วิธีนี้ใช้ไม่ได้หากมีรหัส<space>"แต่ฉันไม่รู้ว่าคุณต้องจัดการกับมันหรือไม่ ฉันเดาว่าคุณเพิ่งสังเกตเห็นว่า
Riley

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 ได้หรือไม่
อดัม

@ Adam มันไม่แน่นอน ฉันได้อัพเดตคำตอบด้วยลิงก์ TIO
ทอมคาร์เพนเตอร์



0

Pip , 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บ่นเกี่ยวกับÔ... [inarticulate muttering]

- อัตราใด ๆ ก็ใช้งานได้กับ TIO หรือใช้-rแฟล็กและรับอินพุตจากบรรทัดของ stdin แทน

สมมติว่าชื่อภาษาจะไม่ประกอบด้วย](ซึ่งจะทำลาย markdown ต่อไป)

คำอธิบาย

                                        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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.