Oznámení

Provoz fóra byl ukončen

dilema s rss

před 14 lety

juneau
Člen | 166

Ve svem systemu ukladam texty jak v Texy! syntaxi (pro pozdejsi editace), tak ve vygenerovanem html.

A mam dilema s tim, ktery z techto textu zahrnout do rss exportu. Nechce se mi exportovat syntaxi, ale i v html kodu zustane po strip_tags() spousta html entit… ktere bych taky rad odstranil, ale nevim, co vsechno je prevadeno.

Mohl by jsi mi napsat svuj nazor? Pripadne poradit, jak nahradit vsechny ty &xyz; entity? (Spise co vsechno texy! generuje)

před 14 lety

David Grudl
Nette Core | 6806

generují se v TexyLongWordsModule: ­ a   (lze nahradit za nekonfliktní ­ a  ).

v TexyQuickCorrectModule: – ‚ ‘ „ “ (podle nastavení $doubleQuotes apod.), dále ™, ®, ©. Ostatní entity jsou bezpečné.

Všechny slovní entity asi změním na &#x .. ; bude to bez problému.

No a pak ještě všechny entity, které zadá pisatel ručně :-)

Ale k otázce: posílal bych rozhodně vygenerovaný kód.

(pozn.: platí pouze pro Texy 1.x)

před 14 lety

David Grudl
Nette Core | 6806

doplnění: tak z Texy jsem pojmenované entity odstranil, teď generuje jen číselné &#xxx;. (download). Ale stejně musíš vytvořit strtr() filtr, který převede entity zadané uživatelem na číselné obdoby, viz příklad níže:

čisté XML zná totiž jen < > & " '. A protože apostrof ' nezná IE, je dobré převést i jej na '

function numericEntities($s) { // by dgx
  return strtr(
    $s,
    array (
  '§'=>'§',
  '©'=>'©',
  '¬'=>'¬',
  '­'=>'­',
  '®'=>'®',
  '™'=>'™',
  '°'=>'°',
  'µ'=>'µ',
  '–'=>'–',
  '—'=>'—',
  '‚'=>'‚',
  '‘'=>'‘',
  '„'=>'„',
  '“'=>'“',
  '…'=>'…',
  '‰'=>'‰',
  '€'=>'€',
  ' '=>' ',
  '¡'=>'¡',
  '¢'=>'¢',
  '£'=>'£',
  '¤'=>'¤',
  '¥'=>'¥',
  '¦'=>'¦',
  '§'=>'§',
  '¨'=>'¨',
  '©'=>'©',
  'ª'=>'ª',
  '«'=>'«',
  '¬'=>'¬',
  '­'=>'­',
  '®'=>'®',
  '¯'=>'¯',
  '°'=>'°',
  '±'=>'±',
  '²'=>'²',
  '³'=>'³',
  '´'=>'´',
  'µ'=>'µ',
  '¶'=>'¶',
  '·'=>'·',
  '¸'=>'¸',
  '¹'=>'¹',
  'º'=>'º',
  '»'=>'»',
  '¼'=>'¼',
  '½'=>'½',
  '¾'=>'¾',
  '¿'=>'¿',
  'À'=>'À',
  'Á'=>'Á',
  'Â'=>'Â',
  'Ã'=>'Ã',
  'Ä'=>'Ä',
  'Å'=>'Å',
  'Æ'=>'Æ',
  'Ç'=>'Ç',
  'È'=>'È',
  'É'=>'É',
  'Ê'=>'Ê',
  'Ë'=>'Ë',
  'Ì'=>'Ì',
  'Í'=>'Í',
  'Î'=>'Î',
  'Ï'=>'Ï',
  'Ð'=>'Ð',
  'Ñ'=>'Ñ',
  'Ò'=>'Ò',
  'Ó'=>'Ó',
  'Ô'=>'Ô',
  'Õ'=>'Õ',
  'Ö'=>'Ö',
  '×'=>'×',
  'Ø'=>'Ø',
  'Ù'=>'Ù',
  'Ú'=>'Ú',
  'Û'=>'Û',
  'Ü'=>'Ü',
  'Ý'=>'Ý',
  'Þ'=>'Þ',
  'ß'=>'ß',
  'à'=>'à',
  'á'=>'á',
  'â'=>'â',
  'ã'=>'ã',
  'ä'=>'ä',
  'å'=>'å',
  'æ'=>'æ',
  'ç'=>'ç',
  'è'=>'è',
  'é'=>'é',
  'ê'=>'ê',
  'ë'=>'ë',
  'ì'=>'ì',
  'í'=>'í',
  'î'=>'î',
  'ï'=>'ï',
  'ð'=>'ð',
  'ñ'=>'ñ',
  'ò'=>'ò',
  'ó'=>'ó',
  'ô'=>'ô',
  'õ'=>'õ',
  'ö'=>'ö',
  '÷'=>'÷',
  'ø'=>'ø',
  'ù'=>'ù',
  'ú'=>'ú',
  'û'=>'û',
  'ü'=>'ü',
  'ý'=>'ý',
  'þ'=>'þ',
  'ÿ'=>'ÿ',
  ));
}

Někdy je dobré (kvůli čitelnosti ve slabších čtečkách) změnit typografické uvozovky na normální, pevnou mezeru na obyčejnou a pomlčky na spojovníky, např:

...
  ' ' => ' ',
  '„'=> '"',
  '“'=> '"',
  '‚'=> '\'',
  '‘'=> '\'',
  '–'=> '-',
  '—'=> '-',
...