NubasLol, простые ошибки не выдают трейс ни в одной из библиотек по одной простой причине, трейс это медленно, ОЧЕНЬ медленно. А ошибки в го это не исключения, они могут возникать очень массово и они не должны тормозить сервис.
Артем Прохоров, не глупый, вполне логичный. Ибо у скриптовых языков в свое время сложилась практика по shared-хостингам. Но у компилируемых это немного бессмысленно. Правильно сделали, что спросили.
Daddy_Cool, в визуальных кадах типа FreeCAD, Solidworks, Fusion360 все строится на параметрике. Начинаете с чертежа (sketch), внутри чертежа указываете ограничения (constraints), это всякие размеры, углы, параллельности, итд. Каждый такой констреинт можно именовать, чтобы превратить его в переменную как в OpenSCAD и ссылаться потом на него в другом чертеже или в операции над деталью.
Например, можно сделать сложный чертеж, потом добавить в него reference constraints в нужные места и назвать их как-нибудь. Потом, например, при экструде этого чертежа можно указать величину экструда в виде формулы, использовав там переменные (которые мы получили из констрейнтов).
В итоге получится, что при изменении чертежа у вас будет меняться и экструд, все как в OpenSCAD, только нагляднее.
И так можно использовать переменные на протяжении всего создания детали, получив полную параметрику, где можно изменить что-то в самом начале и это не сломает делать.
Daddy_Cool, там же можно именовать все констрейнты, чтобы потом ссылаться на них. Просто модель изначально надо делать с учетом параметрии и не будет упс.
evgeniy_lm, в OpenSCAD несоизмеримо проще делать совсем простые вещи, а более-менее сложные все-таки на порядок легче в том же Fusion360 через параметры констрейнтов. Даже банально фаску снять — прям слабое место OpenSCAD-а.
Я бы предложил такой метод лучше: https://play.golang.org/p/-DiILsPNGdo
Использовать группы захвата в регулярках. Как видно, я тут настроил регулярку, чтобы она отрабатывала только на ссылки внутри параметра src="...", причем у которых первый элемент пути состоит только из цифр и латинских букв. Поэтому http:// не срабатывает, ибо там есть символ ":"
Регулярка выглядит так: src="(\w+/)([^"]+)"
Как видим, тут две группы (группы обозначаются скобочками и нумеруются слева-направо).
В шаблоне замены у меня используются ссылки на эти группы: src="../../$1$2"
Вместо $1 будет подставлено содержимое первых скобок, а вместо $2 вторых.
Если вам это не подходит, я предложу вариант с ReplaceFunc, где на каждое совпадение гошка будет вызывать указанную вами функцию и вы можете проанализировать, надо это совпадение заменять или нет.
Поэтому уточните, что имели ввиду под "перед вставляемым фрагментом может быть что-то"