##// END OF EJS Templates
Added photon style.
neko259 -
r193:a74c7db8 default
parent child Browse files
Show More
@@ -0,0 +1,300 b''
1 html {
2 background: rgb(238, 238, 238);
3 color: rgb(51, 51, 51);
4 }
5
6 #admin_panel {
7 background: #FF0000;
8 color: #00FF00
9 }
10
11 .input_field {
12
13 }
14
15 .input_field_name {
16
17 }
18
19 .input_field_error {
20 color: #FF0000;
21 }
22
23
24 .title {
25 font-weight: bold;
26 color: #333;
27 font-size: 2ex;
28 }
29
30 .link, a {
31 color: rgb(255, 102, 0);
32 }
33
34 .block {
35 display: inline-block;
36 vertical-align: top;
37 }
38
39 .tag {
40 color: #222;
41 }
42
43 .post_id:hover {
44 color: #11f;
45 }
46
47 .post_id {
48 color: #444;
49 }
50
51 .post, .dead_post, #posts-table {
52 margin: 5px;
53 padding: 10px;
54 background: rgb(221, 221, 221);
55 border: 1px solid rgb(204, 204, 204);
56 border-radius: 5px 5px 5px 5px;
57 clear: left;
58 word-wrap: break-word;
59 display: table;
60 }
61
62 .metadata {
63 padding: 5px;
64 margin-top: 10px;
65 border: solid 1px #666;
66 font-size: 0.9em;
67 display: table;
68 }
69
70 .navigation_panel, .tag_info {
71 margin: 5px;
72 padding: 10px;
73 border: 1px solid rgb(204, 204, 204);
74 border-radius: 5px 5px 5px 5px;
75 }
76
77 .navigation_panel .link {
78 border-right: 1px solid #000;
79 font-weight: bold;
80 margin-right: 1ex;
81 padding-right: 1ex;
82 }
83 .navigation_panel .link:last-child {
84 border-left: 1px solid #000;
85 border-right: none;
86 float: right;
87 margin-left: 1ex;
88 margin-right: 0;
89 padding-left: 1ex;
90 padding-right: 0;
91 }
92
93 .navigation_panel::after, .post::after {
94 clear: both;
95 content: ".";
96 display: block;
97 height: 0;
98 line-height: 0;
99 visibility: hidden;
100 }
101
102 p {
103 margin-top: .5em;
104 margin-bottom: .5em;
105 }
106
107 .post-form-w {
108 display: table;
109 padding: 10px;
110 margin: 5px
111 }
112
113 .form-row {
114 display: table-row;
115 }
116
117 .form-label, .form-input, .form-errors {
118 display: table-cell;
119 }
120
121 .form-label {
122 padding: .25em 1ex .25em 0;
123 vertical-align: top;
124 }
125
126 .form-input {
127 padding: .25em 0;
128 }
129
130 .form-errors {
131 padding-left: 1ex;
132 font-weight: bold;
133 vertical-align: middle;
134 }
135
136 .post-form input, .post-form textarea {
137 background: #fff;
138 color: #000;
139 border: solid 1px;
140 padding: 0;
141 width: 100%;
142 }
143
144 .form-submit {
145 border-bottom: 2px solid #ddd;
146 margin-bottom: .5em;
147 padding-bottom: .5em;
148 }
149
150 .form-title {
151 font-weight: bold;
152 }
153
154 input[type="submit"] {
155 background: #fff;
156 border: solid 1px #000;
157 color: #000;
158 }
159
160 blockquote {
161 border-left: solid 2px;
162 padding-left: 5px;
163 color: #B1FB17;
164 margin: 0;
165 }
166
167 .post > .image {
168 float: left;
169 margin: 0 1ex .5ex 0;
170 min-width: 1px;
171 text-align: center;
172 display: table-row;
173
174 height: 150px;
175 }
176
177 .post > .metadata {
178 clear: left;
179 }
180
181 .get {
182 font-weight: bold;
183 color: #d55;
184 }
185
186 * {
187 text-decoration: none;
188 }
189
190 .dead_post {
191 background-color: #ecc;
192 }
193
194 .quote {
195 color: #92cf38;
196 font-style: italic;
197 }
198
199 .spoiler {
200 background: white;
201 color: white;
202 }
203
204 .spoiler:hover {
205 color: black;
206 }
207
208 .comment {
209 color: #eb2;
210 font-style: italic;
211 }
212
213 a:hover {
214 text-decoration: underline;
215 }
216
217 .last-replies {
218 margin-left: 3ex;
219 }
220
221 .thread {
222 margin-bottom: 3ex;
223 }
224
225 .post:target {
226 border: solid 2px white;
227 }
228
229 pre{
230 white-space:pre-wrap
231 }
232
233 li {
234 list-style-position: inside;
235 }
236
237 .fancybox-skin {
238 position: relative;
239 background-color: #fff;
240 color: #ddd;
241 text-shadow: none;
242 }
243
244 .fancybox-image {
245 border: 1px solid black;
246 }
247
248 .image-mode-tab {
249 display: table;
250 margin: 5px;
251 padding: 5px;
252 background: rgb(221, 221, 221);
253 border: 1px solid rgb(204, 204, 204);
254 border-radius: 5px 5px 5px 5px;
255 }
256
257 .image-mode-tab > label {
258 margin: 0 1ex;
259 }
260
261 .image-mode-tab > label > input {
262 margin-right: .5ex;
263 }
264
265 #posts-table {
266 margin: 5px;
267 }
268
269 .tag_info {
270 display: table;
271 }
272
273 .tag_info > h2 {
274 margin: 0;
275 }
276
277 .moderator_info {
278 color: #e99d41;
279 border: dashed 1px;
280 padding: 3px;
281 }
282
283 .refmap {
284 font-size: 0.9em;
285 color: #444;
286 margin-top: 1em;
287 }
288
289 input[type="submit"]:hover {
290 background: #ccc;
291 }
292
293
294 .fav {
295 color: rgb(255, 102, 0);
296 }
297
298 .not_fav {
299 color: #555;
300 } No newline at end of file
@@ -1,209 +1,210 b''
1 # Django settings for neboard project.
1 # Django settings for neboard project.
2 import os
2 import os
3 import markdown
3 import markdown
4 from boards.mdx_neboard import markdown_extended
4 from boards.mdx_neboard import markdown_extended
5
5
6 DEBUG = True
6 DEBUG = True
7 TEMPLATE_DEBUG = DEBUG
7 TEMPLATE_DEBUG = DEBUG
8
8
9 ADMINS = (
9 ADMINS = (
10 # ('Your Name', 'your_email@example.com'),
10 # ('Your Name', 'your_email@example.com'),
11 ('admin', 'admin@example.com')
11 ('admin', 'admin@example.com')
12 )
12 )
13
13
14 MANAGERS = ADMINS
14 MANAGERS = ADMINS
15
15
16 DATABASES = {
16 DATABASES = {
17 'default': {
17 'default': {
18 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
18 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
19 'NAME': 'database.db', # Or path to database file if using sqlite3.
19 'NAME': 'database.db', # Or path to database file if using sqlite3.
20 'USER': '', # Not used with sqlite3.
20 'USER': '', # Not used with sqlite3.
21 'PASSWORD': '', # Not used with sqlite3.
21 'PASSWORD': '', # Not used with sqlite3.
22 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
22 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
23 'PORT': '', # Set to empty string for default. Not used with sqlite3.
23 'PORT': '', # Set to empty string for default. Not used with sqlite3.
24 }
24 }
25 }
25 }
26
26
27 CACHES = {
27 CACHES = {
28 'default': {
28 'default': {
29 'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
29 'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
30 'LOCATION': 'neboard_cache',
30 'LOCATION': 'neboard_cache',
31 }
31 }
32 }
32 }
33
33
34 # Local time zone for this installation. Choices can be found here:
34 # Local time zone for this installation. Choices can be found here:
35 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
35 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
36 # although not all choices may be available on all operating systems.
36 # although not all choices may be available on all operating systems.
37 # In a Windows environment this must be set to your system time zone.
37 # In a Windows environment this must be set to your system time zone.
38 TIME_ZONE = 'Europe/Kiev'
38 TIME_ZONE = 'Europe/Kiev'
39
39
40 # Language code for this installation. All choices can be found here:
40 # Language code for this installation. All choices can be found here:
41 # http://www.i18nguy.com/unicode/language-identifiers.html
41 # http://www.i18nguy.com/unicode/language-identifiers.html
42 LANGUAGE_CODE = 'en'
42 LANGUAGE_CODE = 'en'
43
43
44 SITE_ID = 1
44 SITE_ID = 1
45
45
46 # If you set this to False, Django will make some optimizations so as not
46 # If you set this to False, Django will make some optimizations so as not
47 # to load the internationalization machinery.
47 # to load the internationalization machinery.
48 USE_I18N = True
48 USE_I18N = True
49
49
50 # If you set this to False, Django will not format dates, numbers and
50 # If you set this to False, Django will not format dates, numbers and
51 # calendars according to the current locale.
51 # calendars according to the current locale.
52 USE_L10N = True
52 USE_L10N = True
53
53
54 # If you set this to False, Django will not use timezone-aware datetimes.
54 # If you set this to False, Django will not use timezone-aware datetimes.
55 USE_TZ = True
55 USE_TZ = True
56
56
57 # Absolute filesystem path to the directory that will hold user-uploaded files.
57 # Absolute filesystem path to the directory that will hold user-uploaded files.
58 # Example: "/home/media/media.lawrence.com/media/"
58 # Example: "/home/media/media.lawrence.com/media/"
59 MEDIA_ROOT = './media/'
59 MEDIA_ROOT = './media/'
60
60
61 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
61 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
62 # trailing slash.
62 # trailing slash.
63 # Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
63 # Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
64 MEDIA_URL = '/media/'
64 MEDIA_URL = '/media/'
65
65
66 # Absolute path to the directory static files should be collected to.
66 # Absolute path to the directory static files should be collected to.
67 # Don't put anything in this directory yourself; store your static files
67 # Don't put anything in this directory yourself; store your static files
68 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
68 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
69 # Example: "/home/media/media.lawrence.com/static/"
69 # Example: "/home/media/media.lawrence.com/static/"
70 STATIC_ROOT = ''
70 STATIC_ROOT = ''
71
71
72 # URL prefix for static files.
72 # URL prefix for static files.
73 # Example: "http://media.lawrence.com/static/"
73 # Example: "http://media.lawrence.com/static/"
74 STATIC_URL = '/static/'
74 STATIC_URL = '/static/'
75
75
76 # Additional locations of static files
76 # Additional locations of static files
77 # It is really a hack, put real paths, not related
77 # It is really a hack, put real paths, not related
78 STATICFILES_DIRS = (
78 STATICFILES_DIRS = (
79 os.path.dirname(__file__) + '/boards/static',
79 os.path.dirname(__file__) + '/boards/static',
80
80
81 # '/d/work/python/django/neboard/neboard/boards/static',
81 # '/d/work/python/django/neboard/neboard/boards/static',
82 # Put strings here, like "/home/html/static" or "C:/www/django/static".
82 # Put strings here, like "/home/html/static" or "C:/www/django/static".
83 # Always use forward slashes, even on Windows.
83 # Always use forward slashes, even on Windows.
84 # Don't forget to use absolute paths, not relative paths.
84 # Don't forget to use absolute paths, not relative paths.
85 )
85 )
86
86
87 # List of finder classes that know how to find static files in
87 # List of finder classes that know how to find static files in
88 # various locations.
88 # various locations.
89 STATICFILES_FINDERS = (
89 STATICFILES_FINDERS = (
90 'django.contrib.staticfiles.finders.FileSystemFinder',
90 'django.contrib.staticfiles.finders.FileSystemFinder',
91 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
91 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
92 # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
92 # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
93 )
93 )
94
94
95 # Make this unique, and don't share it with anybody.
95 # Make this unique, and don't share it with anybody.
96 SECRET_KEY = '@1rc$o(7=tt#kd+4s$u6wchm**z^)4x90)7f6z(i&55@o11*8o'
96 SECRET_KEY = '@1rc$o(7=tt#kd+4s$u6wchm**z^)4x90)7f6z(i&55@o11*8o'
97
97
98 # List of callables that know how to import templates from various sources.
98 # List of callables that know how to import templates from various sources.
99 TEMPLATE_LOADERS = (
99 TEMPLATE_LOADERS = (
100 'django.template.loaders.filesystem.Loader',
100 'django.template.loaders.filesystem.Loader',
101 'django.template.loaders.app_directories.Loader',
101 'django.template.loaders.app_directories.Loader',
102 # 'django.template.loaders.eggs.Loader',
102 # 'django.template.loaders.eggs.Loader',
103 )
103 )
104
104
105 TEMPLATE_CONTEXT_PROCESSORS = (
105 TEMPLATE_CONTEXT_PROCESSORS = (
106 'django.core.context_processors.media',
106 'django.core.context_processors.media',
107 'django.core.context_processors.static',
107 'django.core.context_processors.static',
108 'django.core.context_processors.request',
108 'django.core.context_processors.request',
109 'django.contrib.auth.context_processors.auth',
109 'django.contrib.auth.context_processors.auth',
110 )
110 )
111
111
112 MIDDLEWARE_CLASSES = (
112 MIDDLEWARE_CLASSES = (
113 'django.contrib.sessions.middleware.SessionMiddleware',
113 'django.contrib.sessions.middleware.SessionMiddleware',
114 'django.middleware.locale.LocaleMiddleware',
114 'django.middleware.locale.LocaleMiddleware',
115 'django.middleware.common.CommonMiddleware',
115 'django.middleware.common.CommonMiddleware',
116 # 'django.middleware.csrf.CsrfViewMiddleware',
116 # 'django.middleware.csrf.CsrfViewMiddleware',
117 'django.contrib.auth.middleware.AuthenticationMiddleware',
117 'django.contrib.auth.middleware.AuthenticationMiddleware',
118 'django.contrib.messages.middleware.MessageMiddleware',
118 'django.contrib.messages.middleware.MessageMiddleware',
119 # Uncomment the next line for simple clickjacking protection:
119 # Uncomment the next line for simple clickjacking protection:
120 # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
120 # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
121 )
121 )
122
122
123 ROOT_URLCONF = 'neboard.urls'
123 ROOT_URLCONF = 'neboard.urls'
124
124
125 # Python dotted path to the WSGI application used by Django's runserver.
125 # Python dotted path to the WSGI application used by Django's runserver.
126 WSGI_APPLICATION = 'neboard.wsgi.application'
126 WSGI_APPLICATION = 'neboard.wsgi.application'
127
127
128 TEMPLATE_DIRS = (
128 TEMPLATE_DIRS = (
129 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
129 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
130 # Always use forward slashes, even on Windows.
130 # Always use forward slashes, even on Windows.
131 # Don't forget to use absolute paths, not relative paths.
131 # Don't forget to use absolute paths, not relative paths.
132 'templates',
132 'templates',
133 )
133 )
134
134
135 INSTALLED_APPS = (
135 INSTALLED_APPS = (
136 'django.contrib.auth',
136 'django.contrib.auth',
137 'django.contrib.contenttypes',
137 'django.contrib.contenttypes',
138 'django.contrib.sessions',
138 'django.contrib.sessions',
139 # 'django.contrib.sites',
139 # 'django.contrib.sites',
140 'django.contrib.messages',
140 'django.contrib.messages',
141 'django.contrib.staticfiles',
141 'django.contrib.staticfiles',
142 # Uncomment the next line to enable the admin:
142 # Uncomment the next line to enable the admin:
143 'django.contrib.admin',
143 'django.contrib.admin',
144 # Uncomment the next line to enable admin documentation:
144 # Uncomment the next line to enable admin documentation:
145 # 'django.contrib.admindocs',
145 # 'django.contrib.admindocs',
146 'django.contrib.markup',
146 'django.contrib.markup',
147 'django_cleanup',
147 'django_cleanup',
148 'boards',
148 'boards',
149 'captcha',
149 'captcha',
150 'south',
150 'south',
151 )
151 )
152
152
153 # TODO: NEED DESIGN FIXES
153 # TODO: NEED DESIGN FIXES
154 CAPTCHA_OUTPUT_FORMAT = (u' %(hidden_field)s '
154 CAPTCHA_OUTPUT_FORMAT = (u' %(hidden_field)s '
155 u'<div class="form-label">%(image)s</div>'
155 u'<div class="form-label">%(image)s</div>'
156 u'<div class="form-text">%(text_field)s</div>')
156 u'<div class="form-text">%(text_field)s</div>')
157
157
158 # A sample logging configuration. The only tangible logging
158 # A sample logging configuration. The only tangible logging
159 # performed by this configuration is to send an email to
159 # performed by this configuration is to send an email to
160 # the site admins on every HTTP 500 error when DEBUG=False.
160 # the site admins on every HTTP 500 error when DEBUG=False.
161 # See http://docs.djangoproject.com/en/dev/topics/logging for
161 # See http://docs.djangoproject.com/en/dev/topics/logging for
162 # more details on how to customize your logging configuration.
162 # more details on how to customize your logging configuration.
163 LOGGING = {
163 LOGGING = {
164 'version': 1,
164 'version': 1,
165 'disable_existing_loggers': False,
165 'disable_existing_loggers': False,
166 'filters': {
166 'filters': {
167 'require_debug_false': {
167 'require_debug_false': {
168 '()': 'django.utils.log.RequireDebugFalse'
168 '()': 'django.utils.log.RequireDebugFalse'
169 }
169 }
170 },
170 },
171 'handlers': {
171 'handlers': {
172 'mail_admins': {
172 'mail_admins': {
173 'level': 'ERROR',
173 'level': 'ERROR',
174 'filters': ['require_debug_false'],
174 'filters': ['require_debug_false'],
175 'class': 'django.utils.log.AdminEmailHandler'
175 'class': 'django.utils.log.AdminEmailHandler'
176 }
176 }
177 },
177 },
178 'loggers': {
178 'loggers': {
179 'django.request': {
179 'django.request': {
180 'handlers': ['mail_admins'],
180 'handlers': ['mail_admins'],
181 'level': 'ERROR',
181 'level': 'ERROR',
182 'propagate': True,
182 'propagate': True,
183 },
183 },
184 }
184 }
185 }
185 }
186
186
187 MARKUP_FIELD_TYPES = (
187 MARKUP_FIELD_TYPES = (
188 ('markdown', markdown_extended),
188 ('markdown', markdown_extended),
189 )
189 )
190 # Custom imageboard settings
190 # Custom imageboard settings
191 MAX_POSTS_PER_THREAD = 10 # Thread bumplimit
191 MAX_POSTS_PER_THREAD = 10 # Thread bumplimit
192 MAX_THREAD_COUNT = 500 # Old threads will be deleted to preserve this count
192 MAX_THREAD_COUNT = 500 # Old threads will be deleted to preserve this count
193 THREADS_PER_PAGE = 10
193 THREADS_PER_PAGE = 10
194 SITE_NAME = 'Neboard'
194 SITE_NAME = 'Neboard'
195
195
196 THEMES = [
196 THEMES = [
197 ('md', 'Mystic Dark'),
197 ('md', 'Mystic Dark'),
198 ('sw', 'Snow White')
198 ('sw', 'Snow White'),
199 ('pg', 'Photon Gray'),
199 ]
200 ]
200
201
201 DEFAULT_THEME = 'md'
202 DEFAULT_THEME = 'md'
202
203
203 POPULAR_TAGS = 10
204 POPULAR_TAGS = 10
204 LAST_REPLIES_COUNT = 3
205 LAST_REPLIES_COUNT = 3
205
206
206 ENABLE_CAPTCHA = False
207 ENABLE_CAPTCHA = False
207 # if user tries to post before CAPTCHA_DEFAULT_SAFE_TIME. Captcha will be shown
208 # if user tries to post before CAPTCHA_DEFAULT_SAFE_TIME. Captcha will be shown
208 CAPTCHA_DEFAULT_SAFE_TIME = 30 # seconds
209 CAPTCHA_DEFAULT_SAFE_TIME = 30 # seconds
209 POSTING_DELAY = 30 # seconds No newline at end of file
210 POSTING_DELAY = 30 # seconds
General Comments 0
You need to be logged in to leave comments. Login now