@Keith:
, Что код является на самом деле неправильным и кроме меньших незначительных сбоев (template
опущенный, синтаксис специализации смотрит по-другому), частичная специализация не делает работа над шаблонами функций, только над шаблонами классов. Код однако работал бы без частичной шаблонной специализации, вместо этого с помощью простой перегрузки:
template <typename T> T sum(T a, T b) { return a + b; }
template <typename T> T sum(T* a, T* b) { return (*a) + (*b); }
Я бы посоветовал вам просто отправить и сохранить текст как Markdown. Кажется, это то, на чем вы уже остановились. IMO, сохранение текста как Markdown будет лучше, потому что вы можете безопасно удалить все теги HTML, не беспокоясь о потере форматирования - это делает ваш код более безопасным, потому что будет сложнее использовать атаку XSS (хотя это все еще возможно, хотя - Я только говорю, что эта часть будет безопасной er ).
Следует учитывать, что WMD, похоже, имеет определенные граничные случаи, отличные от некоторых реализаций Markdown на стороне сервера. Я определенно видел некоторые причуды в превью, которые проявлялись по-разному после отправки (я полагаю, что в одном из таких случаев была попытка избежать обратной кавычки, окруженной обратными кавычками). Отправляя преобразованный предварительный просмотр по сети, вы можете убедиться, что предварительный просмотр точен.
Я не говорю, что это должно повлиять на ваше решение, но это нужно учитывать.
Попробуйте Pandoc. Он немного более полный и надежный, чем Markdownify.