1# -*- coding: iso-8859-1 -*-
2"""
3    MoinMoin - site-wide configuration defaults (NOT per single wiki!)
4
5    @copyright: 2005-2006 MoinMoin:ThomasWaldmann
6    @license: GNU GPL, see COPYING for details.
7"""
8import re
9from MoinMoin import version
10
11# unicode: set the char types (upper, lower, digits, spaces)
12from MoinMoin.util.chartypes import *
13
14# List of image types for which browsers usually have native support
15browser_supported_images = ('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg+xml')
16
17# Parser to use mimetype text
18parser_text_mimetype = ('plain', 'csv', 'rst', 'docbook', 'latex', 'tex', 'html', 'css',
19                       'xml', 'python', 'perl', 'php', 'ruby', 'javascript',
20                       'cplusplus', 'java', 'pascal', 'diff', 'gettext', 'xslt', 'creole', )
21
22# When creating files, we use e.g. 0666 & config.umask for the mode:
23umask = 0770
24
25# list of acceptable password hashing schemes for cfg.password_scheme,
26# here we only give reasonably good schemes, which is passlib (if we
27# have passlib) and ssha (if we only have builtin stuff):
28password_schemes_configurable = ['{PASSLIB}', '{SSHA}', ]
29
30# ordered list of supported password hashing schemes, best (passlib) should be
31# first, best builtin one should be second. this is what we support if we
32# encounter it in user profiles:
33password_schemes_supported = password_schemes_configurable + ['{SHA}', '{APR1}', '{MD5}', '{DES}', ]
34
35# Default value for the static stuff URL prefix (css, img, js).
36# Caution:
37# * do NOT use this directly, it is only the DEFAULT value to be used by
38#   server Config classes and by multiconfig.py for request.cfg.
39# * must NOT end with '/'!
40# * some servers expect '/' at beginning and only 1 level deep.
41url_prefix_static = '/moin_static' + version.release_short
42
43# Threads flag - if you write a moin server that use threads, import
44# config in the server and set this flag to True.
45use_threads = False
46
47# Charset - we support only 'utf-8'. While older encodings might work,
48# we don't have the resources to test them, and there is no real
49# benefit for the user. IMPORTANT: use only lowercase 'utf-8'!
50charset = 'utf-8'
51
52# Regex to find lower->upper transitions (word boundaries in WikiNames), used by split_title
53split_regex = re.compile('([%s])([%s])' % (chars_lower, chars_upper), re.UNICODE)
54
55# Invalid characters - invisible characters that should not be in page
56# names. Prevent user confusion and wiki abuse, e.g u'\u202aFrontPage'.
57page_invalid_chars_regex = re.compile(
58    ur"""
59    \u0000 | # NULL
60
61    # Bidi control characters
62    \u202A | # LRE
63    \u202B | # RLE
64    \u202C | # PDF
65    \u202D | # LRM
66    \u202E   # RLM
67    """,
68    re.UNICODE | re.VERBOSE
69    )
70
71# used for wikiutil.clean_input
72clean_input_translation_map = {
73    # these chars will be replaced by blanks
74    ord(u'\t'): u' ',
75    ord(u'\r'): u' ',
76    ord(u'\n'): u' ',
77}
78for c in u'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f' \
79          '\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f':
80    # these chars will be removed
81    clean_input_translation_map[ord(c)] = None
82del c
83
84# Other stuff
85url_schemas = ['http', 'https', 'ftp', 'file',
86               'mailto', 'nntp', 'news',
87               'ssh', 'telnet', 'irc', 'ircs', 'xmpp', 'mumble',
88               'webcal', 'ed2k', 'apt', 'rootz',
89               'gopher',
90               'notes',
91               'rtp', 'rtsp', 'rtcp',
92               'tel',
93              ]
94
95smileys = (r"X-( :D <:( :o :( :) B) :)) ;) /!\ <!> (!) :-? :\ >:> |) " +
96           r":-( :-) B-) :-)) ;-) |-) (./) {OK} {X} {i} {1} {2} {3} {*} {o}").split()
97