Skip to content
Snippets Groups Projects
Commit 9426a41a authored by Andreas Gohr's avatar Andreas Gohr
Browse files

make typography option three staged FS#1142

Because correct smart quote parsing with regular expressions is nearly
impossible, especially when dealing with quote usage in languages different
from english, the typography configuration option was changed.

0 means to completely disable any typography replacements
1 will only handle the multiply entitity and double quotes, this should
  nearly always work without problems and is the new default
2 will add singlequote parsing. This might break because single quotes and
  apostrophes are not always easily distinguishable. Especially in languages
  where single quote openings and apostrophes are different characters you
  might experience problems. For english it should nearly always work.

darcs-hash:20070613184015-7ad00-0cebc3f807f54467d54458075c5c9f651355c5ba.gz
parent f43b6d3a
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,7 @@ $conf['fullpath'] = 0; //show full path of the document or re
$conf['recent'] = 20; //how many entries to show in recent
$conf['breadcrumbs'] = 10; //how many recent visited pages to show
$conf['youarehere'] = 0; //show "You are here" navigation? 0|1
$conf['typography'] = 1; //convert quotes, dashes and stuff to typographic equivalents? 0|1
$conf['typography'] = 1; //smartquote conversion 0=off, 1=doublequotes, 2=all quotes
$conf['htmlok'] = 0; //may raw HTML be embedded? This may break layout and XHTML validity 0|1
$conf['phpok'] = 0; //may PHP code be embedded? Never do this on the internet! 0|1
$conf['dformat'] = 'Y/m/d H:i'; //dateformat accepted by PHPs date() function
......
......@@ -702,9 +702,6 @@ class Doku_Parser_Mode_wordblock extends Doku_Parser_Mode {
}
//-------------------------------------------------------------------
/**
* @TODO Quotes and 640x480 are not supported - just straight replacements here
*/
class Doku_Parser_Mode_entity extends Doku_Parser_Mode {
// A list
var $entities = array();
......@@ -758,18 +755,23 @@ class Doku_Parser_Mode_multiplyentity extends Doku_Parser_Mode {
class Doku_Parser_Mode_quotes extends Doku_Parser_Mode {
function connectTo($mode) {
global $conf;
$ws = '[\s/\#~:+=&%@\-;,\x28\x29\]\[{}><"\']'; // whitespace
$nws = '[^\s/\#~:+=&%@\-;,\x28\x29\]\[{}><"\']'; // non whitespace
$this->Lexer->addSpecialPattern(
"(?<=^|$ws)'(?=$nws)",$mode,'singlequoteopening'
);
$this->Lexer->addSpecialPattern(
"(?<=^|$nws)'(?=$|$ws)",$mode,'singlequoteclosing'
);
$this->Lexer->addSpecialPattern(
"(?<=^|$nws)'(?=$|$nws)",$mode,'apostrophe'
);
if($conf['typography'] == 2){
$this->Lexer->addSpecialPattern(
"(?<=^|$ws)'(?=$nws)",$mode,'singlequoteopening'
);
$this->Lexer->addSpecialPattern(
"(?<=^|$nws)'(?=$|$ws)",$mode,'singlequoteclosing'
);
$this->Lexer->addSpecialPattern(
"(?<=^|$nws)'(?=$|$nws)",$mode,'apostrophe'
);
}
$this->Lexer->addSpecialPattern(
"(?<=^|$ws)\"(?=$nws)",$mode,'doublequoteopening'
);
......
......@@ -154,6 +154,11 @@ $lang['ftp____user'] = 'FTP user name for safemode hack';
$lang['ftp____pass'] = 'FTP password for safemode hack';
$lang['ftp____root'] = 'FTP root directory for safemode hack';
/* typography options */
$lang['typography_o_0'] = 'none';
$lang['typography_o_1'] = 'Double quotes only';
$lang['typography_o_2'] = 'All quotes (might not always work)';
/* userewrite options */
$lang['userewrite_o_0'] = 'none';
$lang['userewrite_o_1'] = '.htaccess';
......
......@@ -92,7 +92,7 @@ $meta['recent'] = array('numeric');
$meta['breadcrumbs'] = array('numeric');
$meta['youarehere'] = array('onoff');
$meta['fullpath'] = array('onoff');
$meta['typography'] = array('onoff');
$meta['typography'] = array('multichoice','_choices' => array(0,1,2));
$meta['dformat'] = array('string');
$meta['signature'] = array('string');
$meta['toptoclevel'] = array('multichoice','_choices' => array(1,2,3,4,5)); // 5 toc levels
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment