Это должно быть в состоянии (всегда или по крайней мере опционально) отличать "foo"и (подлежащее обрезке) от , , , и (не подлежащее обрезке). В идеале это также должно обнаруживать (для вывода'bar'''baz'''''quux'''''baz'' '''quux''''''quux''' ''baz'''''quux''' 'yadda yadda!''''quux''' бла-бла-бла!) и (для вывода"doodle doodle dee" ''baz''каракули каракули ди ''баз''). Прямо сейчас это нарушает различные применения, если меры не будут приняты в каждом конкретном случае (что большинство редакторов не заметят и не поймут), чтобы избежать этого поведения, когда цитируемый материал начинается и заканчивается полужирным или курсивным вики-разметкой. На самом деле нет причин для этого шаблона касаться или вообще касаться его, если только это специально не указано каким-либо параметром, поскольку ни одна из строк с несколькими апострофами не используется для цитирования, поэтому нам не нужно ее убирать. Я не могу вытащить Lua из бумажного пакета, поэтому кто-то, кто знает язык и его выходки с сопоставлением строк лучше меня, должен заняться этим. — SMcCandlish ☏ ¢ 😼 21:31, 30 января 2020 (UTC) {{Quote}}
'''''
|suppresstrim=1
параметр, который заставляет {{ trim quotes }} просто возвращать |s=
или |1=
, чтобы существующие шаблоны, которые его вызывают, было легче изменять. Гораздо проще передать |suppresstrim=
вам параметр, чем переписывать существующие шаблоны как большой блок if-then "если suppresstrim отсутствует, то выполните обычные действия, иначе выполните обычные действия, за исключением того, что не вызывайте {{ trim quotes }} ". Переписывание таких шаблонов может привести к блочно-скопированному коду, который будет трудно поддерживать - я знаю, я серьезно рассматривал этот вариант с сегодняшними изменениями в Template:quote . Я выбрал гораздо более простой вариант, просто добавив <nowiki />, если |notrim=
присутствовал недавно добавленный параметр. Также рассмотрите возможность внесения изменений в Module:Trim quotes . davidwr / ( talk )/( contribs ) 23:31, 30 января 2020 (UTC) '''quux''' 'yadda yadda!'
→ '''quux''' yadda yadda!
.function trim_quotes ( str ) str = mw.text.trim ( str ) local prev while true do local first = str : sub ( 1 , 1 ) if first == str : sub ( -1 , -1 ) and ( first == ' " ' or ( first == " '" and not ( str : sub ( 2 , 2 ) == " ' " or str : sub ( -2 , -2 ) == " ' " ) ) ) then str = str : sub ( 2 , -2 ) else break end prev = first end return str end
'quux' 'yadda yadda!'
. -- Gonnym ( обсуждение ) 11:02, 31 января 2020 (UTC) '''quux''' 'yadda yadda!'
: есть цитата и что-то еще. Код полагается на предположение, что параметр содержит одинарную цитату, если таковая имеется. Это паршивый черновик, недостаточно хороший для развертывания в шаблоне. — Eru · tuon 21:26, 31 января 2020 (UTC) функция trim_quotes ( str ) str = mw . ustring . gsub ( str , '"' , '' ) str = mw . ustring . gsub ( str , "%f['%w]'%f[%w](.-)%f[^%w.!?]'%f[^'%w]" , "%1" ) return str end
'This won't break'
но не 'St. James' Park'
. Последнее, я думаю, вообще невозможно разобрать. Certes ( talk ) 20:34, 31 января 2020 (UTC)