| 7 | } | 7 | } |
| 8 | | 8 | |
| 9 | return [{ | 9 | return [{ |
| 10 | type: 'lang', | 10 | type: 'output', |
| 11 | regex: new RegExp('\\b(?<!_)_(?!_)(.*?)(?<!_)_(?!_)\\b', 'g'), | 11 | regex: new RegExp('(<code>[\\s\\S]*?<\\/code>)|(?<!\\S)_(?!_)([^_\\n]+?)(?<!_)_(?!\\w)', 'g'), |
| 12 | replace: '<em>$1</em>', | 12 | replace: function(match, codeContent, italicContent) { |
| | 13 | if (codeContent) { |
| | 14 | // If it's inside <code> tags, return unchanged |
| | 15 | return match; |
| | 16 | } else if (italicContent) { |
| | 17 | // If it's an italic group, apply the replacement |
| | 18 | return '<em>' + italicContent + '</em>'; |
| | 19 | } |
| | 20 | // If none of the conditions are met, return the original match |
| | 21 | return match; |
| | 22 | }, |
| 13 | }]; | 23 | }]; |
| 14 | } catch (e) { | 24 | } catch (e) { |
| 15 | console.error('Error in Showdown-underscore extension:', e); | 25 | console.error('Error in Showdown-underscore extension:', e); |