Askbot is a Django/Python Q&A forum. **Contributors README**: https://github.com/ASKBOT/askbot-devel#how-to-contribute. Commercial hosting of Askbot and support are available at https://askbot.com

Overview

ATTENTION: master branch is experimental, please read below

Askbot - a Django Q&A forum platform

This is Askbot project - open source Q&A system, like StackOverflow, Yahoo Answers and some others. Askbot is based on code of CNPROG, originally created by Mike Chen and Sailing Cai and some code written for OSQA.

Demos and hosting are available at http://askbot.com.

Branch 0.7.x - is the latest version supporting Django 1.5

Branch 0.8.x - transitional version for the upgrade of the database to Django 1.7

Branch 0.9.x supports Django 1.7

Branch 0.10.x - supports Django 1.8 - the last version series to support Python 2.7

Branch master - released as versions 0.11.x - supports Django 2.2/Python 3

How to contribute

Your pull requests are very welcome, but please read the few paragraphs below, it might save our combined efforts.

Obvious bug fixes will be merged quickly, however less obvious cases should include a clear description of how to reproduce the bug. Complex cases must be accompanied with the new unit tests.

Before suggesting PR's for new features - please first discuss those features in the "Issues section". We really appreciate your efforts, but PR's may not be accepted and it might be disappointing - so please communicate. The bandwidth for the testing is valuable and limited and we would like to avoid "easter eggs" and the feature overload.

Please always use feature branches for the PR's, multiple feature/bugfix PR's are harder to understand and less likely to be accepted.

Translators: please translate at the Transifex, not via github!!! https://www.transifex.com/projects/p/askbot/.

All documentation is in the directory askbot/doc

Follow https://help.github.com/articles/fork-a-repo to to learn how to use fetch and push as well as other help on using git.

License, copyright and trademarks

Askbot software is licensed under GPL, version 3.

Copyright Askbot S.p.A and the project contributors, 2010-2020.

"Askbot" is a trademark and service mark registered in the United States, number 4323777.

Comments
  • Unable to import osqa content by using the command `askbot_add_osqa_content`

    Unable to import osqa content by using the command `askbot_add_osqa_content`

    It seems that in the current master, git commit 57afe9a2fd05d31094b005c87bc0cafbb207677c the osqa command doesn't work?

    What was the last version this has been tested to be working?

    $ python manage.py askbot_add_osqa_content
    b"WARNING!!! You are using a 'locmem' (local memory) caching backend,\nwhich is OK for a low volume site running on a single-process server.\nFor a multi-process configuration it is neccessary to have a production\ncache system, such as redis or memcached.\n\nWith local memory caching and multi-process setup you might intermittently\nsee outdated content on your site.\n"
    Traceback (most recent call last):
      File "/var/www/servicesites/ukk.<snip>.fi/askbot/askbot_site/manage.py", line 10, in <module>
        execute_from_command_line(sys.argv)
      File "/var/www/servicesites/ukk.<snip>.fi/askbot/env/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
        utility.execute()
      File "/var/www/servicesites/ukk.<snip>.fi/askbot/env/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/var/www/servicesites/ukk.<snip>.fi/askbot/env/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/var/www/servicesites/ukk.<snip>.fi/askbot/env/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute
        output = self.handle(*args, **options)
      File "/var/www/servicesites/ukk.<snip>.fi/askbot/env/lib/python3.9/site-packages/askbot/management/commands/askbot_add_osqa_content.py", line 107, in handle
        self.redirect_format = self.get_redirect_format(options['redirect_format'])
    KeyError: 'redirect_format'
    opened by samip5 20
  • New installer 2019

    New installer 2019

    Ok, for real now. :-)

    I combined the work from https://github.com/ASKBOT/askbot-devel/pull/833 and https://github.com/ASKBOT/askbot-devel/pull/827 into a new branch and refactored it into what I think should become the new installer.

    With the refactoring I wanted to separate logic and generics from the concrete things we do when we install Askbot.

    The deployables module has all the things we want/can do with the installer. In deployables.objects one can see that we can:

    • copy files
    • render files with Jinja2
    • create empty files
    • create directories
    • create symlinks to directories

    In deployables.components one can see which files we want to deploy how. For instance, settings.py shall be a rendered with Jinja2.

    The parameters modules has all the input/control related information. In parameters/__init__.py (and only there!) the parameter names are associated with validation classes. For instance, the parameter database_engine is validated by an instance of class DbEngine.

    For each parameter we want validation there must (!) be a validation class defined. I structured the classes into the files cache.py, filesystem.pyand database.py for clarity, but this structure does not carry any semantics. ConfigManagers are used to create relationships between different parameters. This has been moved to parameters/configmanagers.py and as we can see, there aren't many relations i.e. there is not much work the ConfigManagers (have to) do.

    The state of this is "works on my machine" and container installations do not yet work, as the container scripts expect a different file layout than the installer creates. This doesn't create problems for the default use case.

    opened by martin-bts 17
  • Google OpenID 2.0 authentication deprecated

    Google OpenID 2.0 authentication deprecated

    Google has closed its OpenID 2.0 implementation to new hosts, which breaks the ability to use it for new installations of Askbot: https://developers.google.com/+/api/auth-migration#timetable

    I believe the necessary action is to change to using the Google+ sign-in system: https://developers.google.com/+/api/auth-migration#oid2

    Or apparently without using the Google+ system which they allude to by saying "You can still hand roll your integration to Google using the OpenID Connect protocol if you prefer" here: http://googledevelopers.blogspot.co.uk/2014/02/welcome-openid-connect.html

    opened by flyte 16
  • tag synonyms

    tag synonyms

    model, management command, and test code

    Hello Evgeny

    I added tag synonyms to askbot. who-pre-sets-the-tags-admin-or-users (pjunks is me)

    This is my first attempt to contribute to a project using git/github. Please let me know if I missed something.

    Thanks for a great app by the way.

    opened by pcompassion 14
  • TypeError: Error when calling the metaclass bases

    TypeError: Error when calling the metaclass bases

    Hello, trying to install Askbot via

    pip install askbot psycopg2
    askbot-setup
    

    But when I try to run any command like

    python manage.py collectstatic
    python manage.py syncdb
    python manage.py makemigrations
    python manage.py migrate askbot
    python manage.py migrate django_authopenid
    

    I receive an

    Traceback (most recent call last): File "manage.py", line 10, in execute_from_command_line(sys.argv) File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 354, in execute_from_command_line utility.execute() File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 328, in execute django.setup() File "/usr/local/lib/python2.7/dist-packages/django/init.py", line 18, in setup apps.populate(settings.INSTALLED_APPS) File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate app_config.import_models(all_models) File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 198, in import_models self.models_module = import_module(models_module_name) File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module import(name) File "/usr/local/lib/python2.7/dist-packages/askbot/models/init.py", line 2, in startup_procedures.run() File "/usr/local/lib/python2.7/dist-packages/askbot/startup_procedures.py", line 1086, in run run_startup_tests() File "/usr/local/lib/python2.7/dist-packages/askbot/startup_procedures.py", line 1012, in run_startup_tests test_modules() File "/usr/local/lib/python2.7/dist-packages/askbot/startup_procedures.py", line 289, in test_modules try_import(mod_name, pip_path) File "/usr/local/lib/python2.7/dist-packages/askbot/startup_procedures.py", line 209, in try_import load_module(module_name) File "/usr/local/lib/python2.7/dist-packages/askbot/utils/loading.py", line 23, in load_module return import(mod_path, globals(), locals(), [], -1) File "/usr/local/lib/python2.7/dist-packages/picklefield/init.py", line 5, in from picklefield.fields import PickledObjectField # reexport File "/usr/local/lib/python2.7/dist-packages/picklefield/fields.py", line 79, in class PickledObjectField(_get_subfield_superclass()): File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/subclassing.py", line 24, in new new_class = super(SubfieldBase, cls).new(cls, name, bases, attrs) TypeError: Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

    Is there anything missing?

    opened by ghost 11
  • django.wsgi

    django.wsgi

    Hello,
    I installed Askbot locally following the documentation step by step.

    When I run Askbot using python manage.py runserverhostname -i:8000 everything seems to work fine but using the above apache configuration it seems to end in a neverending loop. The output of the log is:

    tail -f /var/log/apache2/askbot_error.log 
    mod_wsgi (pid=31580): Attach interpreter ''.
    mod_wsgi (pid=31580): Imported 'mod_wsgi'.
    mod_authz_core.c(802): [client 127.0.0.1:41774] AH01626: authorization result of Require all granted: granted
    mod_authz_core.c(802): [client 127.0.0.1:41774] AH01626: authorization result of <RequireAny>: granted
    mod_authz_core.c(802): [client 127.0.0.1:41774] AH01626: authorization result of Require all granted: granted
    mod_authz_core.c(802): [client 127.0.0.1:41774] AH01626: authorization result of <RequireAny>: granted
    mod_wsgi (pid=31580): Create interpreter 'askbot.localhost|'.
    mod_wsgi (pid=31580, process='askbot', application='askbot.localhost|'): Loading WSGI script '/var/www/html/askbot-devel/django.wsgi'.
    Script timed out before returning headers: django.wsgi
    

    But it wont go any further and the site wont stop loading...

    Any idea why and how to solve it?

    opened by ghost 10
  • 'SortedDict' object has no attribute 'insert'

    'SortedDict' object has no attribute 'insert'

    I've started evaluating AskBot for our organization.
    After installing AskBot + postgresql, running on development server, AskBot seem to work fine until I try to access the Settings.
    .../settings/QA_SITE_SETTINGS/#id_QA_SITE_SETTINGS__APP_URL__en

    Then I get this error:

    AttributeError at /settings/QA_SITE_SETTINGS/ 'SortedDict' object has no attribute 'insert'

    Here is a link to the error page I get

    It seems that some of the settings work ok (for example .../settings/LICENSE_SETTINGS/) and others give the same error (for example, .../settings/FLATPAGES/)

    Any idea?

    opened by amirgon 10
  • master branch deadlocks django 1.8

    master branch deadlocks django 1.8

    Hello!

    I'm using django 1.8 and using the latest master branch. I'm trying to install as an add on app, to compliment the rest of my site. I've run into an issue where django is deadlocked, even doing simple things like 'manage.py shell'. I've traced it down to the populate method in django/apps/registry.py being called from within itself (ie twice in the stack), which is deadlocking the 'self._lock' call in populate.

    I've tracked this down to the init_badges() line in askbot/apps.py shown below:

    ` class AskbotConfig(AppConfig): name = 'askbot' verbose_name = 'Askbot Q&A platform'

    def ready(self):
        from askbot.models import badges
        try:
            badges.init_badges()
        except:
            pass
    
        import followit
        user_model = get_user_model()
        followit.register(user_model)
    

    `

    When I comment out the 'badges.init_badges()' line, the deadlock goes away. Where should I move this logic to?

    opened by albrnick 8
  • properly urlize links

    properly urlize links

    Fix the following problem:

    http://askbot.org/en/question/11150/link-is-displayed-correctly-in-preview-but-not-in-actual-post/

    [JSON][1]
    
      [1]: http://en.wikipedia.org/wiki/JSON
    
    opened by pcompassion 8
  • Upgrade to Django 1.7

    Upgrade to Django 1.7

    I have upgraded Django to 1.7.

    • Moved migrations to south_migrations
    • Made imports to json, Truncator, md5_constructor backwards compatible
    • Updated some relative import paths to include parent packages
    • note in models/__init__.py the usage of followit was commented out because of app registry order. The fix might need to be in followit config
    opened by pirave 7
  • Error while installing askbot

    Error while installing askbot

    HI,

    I am facing the following error while installing askbot through virualenv using git repository - python setup.py develop File "setup.py", line 129 **************************************************************""" ^ SyntaxError: invalid syntax

    Please suggest me what can I do ?

    Thanks

    opened by abhishek6590 7
  • Login system seems broken with emails

    Login system seems broken with emails

    It seems that for whatever reason, local registration doesn't create an account in database even though it does send a verify token, which is unfortunately invalid?

    Using master commit: 1501f57bfe9741baf57415639cd34eec3b43b1c4

    opened by samip5 5
  • Static should not copy all files.

    Static should not copy all files.

    when I run

    python manage.py collectstatic.
    

    I notice it moves over html and md files. It probably shouldn't.

    find srv/static/ -type f -not -name '*.html' -and -not -name '*.js' -and -not -name '*.gif' -and -not -name '*.css' -and -not -name '*.jpg' -and -not -name '*.png' -and -not -name '*.svg' -and -not -name '*.ttf'
    

    Unless we want demos and stuff served. Currently we have a lot of

    • .html and .htm files https://ask.sagemath.org/m/default/media/jslib/jquery.fancybox-1.3.4/index.html https://ask.sagemath.org/m/default/media/tinymce/plugins/fullscreen/fullscreen.htm
    • lots of readmes .md and .txt
    • package.json and package-lock.json

    File list

    srv/static/tiny_mce/license.txt
    srv/static/tiny_mce/plugins/style/readme.txt
    srv/static/tiny_mce/plugins/style/props.htm
    srv/static/tiny_mce/plugins/fullpage/fullpage.htm
    srv/static/tiny_mce/plugins/fullscreen/fullscreen.htm
    srv/static/tiny_mce/plugins/table/table.htm
    srv/static/tiny_mce/plugins/table/merge_cells.htm
    srv/static/tiny_mce/plugins/table/row.htm
    srv/static/tiny_mce/plugins/table/cell.htm
    srv/static/tiny_mce/plugins/xhtmlxtras/ins.htm
    srv/static/tiny_mce/plugins/xhtmlxtras/del.htm
    srv/static/tiny_mce/plugins/xhtmlxtras/acronym.htm
    srv/static/tiny_mce/plugins/xhtmlxtras/cite.htm
    srv/static/tiny_mce/plugins/xhtmlxtras/attributes.htm
    srv/static/tiny_mce/plugins/xhtmlxtras/abbr.htm
    srv/static/tiny_mce/plugins/media/media.htm
    srv/static/tiny_mce/plugins/media/moxieplayer.swf
    srv/static/tiny_mce/plugins/advimage/image.htm
    srv/static/tiny_mce/plugins/inlinepopups/template.htm
    srv/static/tiny_mce/plugins/example/dialog.htm
    srv/static/tiny_mce/plugins/advlink/link.htm
    srv/static/tiny_mce/plugins/template/blank.htm
    srv/static/tiny_mce/plugins/template/template.htm
    srv/static/tiny_mce/plugins/paste/pasteword.htm
    srv/static/tiny_mce/plugins/paste/pastetext.htm
    srv/static/tiny_mce/plugins/emotions/emotions.htm
    srv/static/tiny_mce/plugins/searchreplace/searchreplace.htm
    srv/static/tiny_mce/plugins/advhr/rule.htm
    srv/static/tiny_mce/themes/advanced/color_picker.htm
    srv/static/tiny_mce/themes/advanced/charmap.htm
    srv/static/tiny_mce/themes/advanced/anchor.htm
    srv/static/tiny_mce/themes/advanced/image.htm
    srv/static/tiny_mce/themes/advanced/link.htm
    srv/static/tiny_mce/themes/advanced/about.htm
    srv/static/tiny_mce/themes/advanced/shortcuts.htm
    srv/static/tiny_mce/themes/advanced/source_editor.htm
    srv/static/admin/js/vendor/select2/LICENSE.md
    srv/static/admin/js/vendor/jquery/LICENSE.txt
    srv/static/admin/js/vendor/xregexp/LICENSE.txt
    srv/static/admin/css/vendor/select2/LICENSE-SELECT2.md
    srv/static/admin/fonts/Roboto-Bold-webfont.woff
    srv/static/admin/fonts/Roboto-Light-webfont.woff
    srv/static/admin/fonts/README.txt
    srv/static/admin/fonts/LICENSE.txt
    srv/static/admin/fonts/Roboto-Regular-webfont.woff
    srv/static/admin/img/README.txt
    srv/static/admin/img/LICENSE
    srv/static/default/media/tinymce/license.txt
    srv/static/default/media/tinymce/plugins/style/readme.txt
    srv/static/default/media/tinymce/plugins/style/props.htm
    srv/static/default/media/tinymce/plugins/fullpage/fullpage.htm
    srv/static/default/media/tinymce/plugins/fullscreen/fullscreen.htm
    srv/static/default/media/tinymce/plugins/table/table.htm
    srv/static/default/media/tinymce/plugins/table/merge_cells.htm
    srv/static/default/media/tinymce/plugins/table/row.htm
    srv/static/default/media/tinymce/plugins/table/cell.htm
    srv/static/default/media/tinymce/plugins/xhtmlxtras/ins.htm
    srv/static/default/media/tinymce/plugins/xhtmlxtras/del.htm
    srv/static/default/media/tinymce/plugins/xhtmlxtras/acronym.htm
    srv/static/default/media/tinymce/plugins/xhtmlxtras/cite.htm
    srv/static/default/media/tinymce/plugins/xhtmlxtras/attributes.htm
    srv/static/default/media/tinymce/plugins/xhtmlxtras/abbr.htm
    srv/static/default/media/tinymce/plugins/media/media.htm
    srv/static/default/media/tinymce/plugins/media/moxieplayer.swf
    srv/static/default/media/tinymce/plugins/advimage/image.htm
    srv/static/default/media/tinymce/plugins/inlinepopups/template.htm
    srv/static/default/media/tinymce/plugins/example/dialog.htm
    srv/static/default/media/tinymce/plugins/advlink/link.htm
    srv/static/default/media/tinymce/plugins/template/blank.htm
    srv/static/default/media/tinymce/plugins/template/template.htm
    srv/static/default/media/tinymce/plugins/paste/pasteword.htm
    srv/static/default/media/tinymce/plugins/paste/pastetext.htm
    srv/static/default/media/tinymce/plugins/emotions/emotions.htm
    srv/static/default/media/tinymce/plugins/searchreplace/searchreplace.htm
    srv/static/default/media/tinymce/plugins/advhr/rule.htm
    srv/static/default/media/tinymce/README.txt
    srv/static/default/media/tinymce/themes/advanced/color_picker.htm
    srv/static/default/media/tinymce/themes/advanced/charmap.htm
    srv/static/default/media/tinymce/themes/advanced/anchor.htm
    srv/static/default/media/tinymce/themes/advanced/image.htm
    srv/static/default/media/tinymce/themes/advanced/link.htm
    srv/static/default/media/tinymce/themes/advanced/about.htm
    srv/static/default/media/tinymce/themes/advanced/shortcuts.htm
    srv/static/default/media/tinymce/themes/advanced/source_editor.htm
    srv/static/default/media/images/OFL.txt
    srv/static/default/media/images/jquery-openid/claimid.ico
    srv/static/default/media/images/jquery-openid/verisign.ico
    srv/static/default/media/images/jquery-openid/technorati.ico
    srv/static/default/media/images/jquery-openid/livejournal.ico
    srv/static/default/media/images/jquery-openid/vidoop.ico
    srv/static/default/media/images/jquery-openid/blogger.ico
    srv/static/default/media/images/jquery-openid/flickr.ico
    srv/static/default/media/images/jquery-openid/launchpad.xcf
    srv/static/default/media/images/jquery-openid/myopenid.ico
    srv/static/default/media/images/jquery-openid/wordpress.ico
    srv/static/default/media/images/Yanone_Kaffeesatz.zip
    srv/static/default/media/images/openid/claimid.ico
    srv/static/default/media/images/openid/verisign.ico
    srv/static/default/media/images/openid/technorati.ico
    srv/static/default/media/images/openid/livejournal.ico
    srv/static/default/media/images/openid/vidoop.ico
    srv/static/default/media/images/openid/blogger.ico
    srv/static/default/media/images/openid/flickr.ico
    srv/static/default/media/images/openid/myopenid.ico
    srv/static/default/media/images/openid/wordpress.ico
    srv/static/default/media/images/favicon.ico
    srv/static/default/media/wmd/README.txt
    srv/static/default/media/package.json
    srv/static/default/media/sass/signin_page.scss
    srv/static/default/media/sass/revisions.scss
    srv/static/default/media/sass/icons.scss
    srv/static/default/media/sass/style.scss
    srv/static/default/media/sass/layout.scss
    srv/static/default/media/sass/buttons.scss
    srv/static/default/media/sass/tags_page.scss
    srv/static/default/media/sass/ask.scss
    srv/static/default/media/sass/feedback_page.scss
    srv/static/default/media/sass/user_profile/user_votes.scss
    srv/static/default/media/sass/user_profile/user_profile_tables.scss
    srv/static/default/media/sass/user_profile/user_profile_index.scss
    srv/static/default/media/sass/user_profile/edit_user_profile_page.scss
    srv/static/default/media/sass/user_profile/user_profile_votes.scss
    srv/static/default/media/sass/user_profile/activity.scss
    srv/static/default/media/sass/user_profile/avatars_page.scss
    srv/static/default/media/sass/user_profile/user_profile_notifications.scss
    srv/static/default/media/sass/user_profile/subscription_settings.scss
    srv/static/default/media/sass/user_profile/moderate_user.scss
    srv/static/default/media/sass/sass_variables.scss
    srv/static/default/media/sass/badge_detail.scss
    srv/static/default/media/sass/questions/index.scss
    srv/static/default/media/sass/questions/sidebar_contributors.scss
    srv/static/default/media/sass/questions/questions_header.scss
    srv/static/default/media/sass/questions/question_summary.scss
    srv/static/default/media/sass/questions/sidebar_tags.scss
    srv/static/default/media/sass/questions/sidebar_tag_filters.scss
    srv/static/default/media/sass/search_posts_page.scss
    srv/static/default/media/sass/colors.scss
    srv/static/default/media/sass/components/jquery.modal.scss
    srv/static/default/media/sass/components/input_with_button.scss
    srv/static/default/media/sass/components/forum_header.scss
    srv/static/default/media/sass/components/system_messages.scss
    srv/static/default/media/sass/components/paginator.scss
    srv/static/default/media/sass/components/badge_info_sidebar.scss
    srv/static/default/media/sass/components/error_popup.scss
    srv/static/default/media/sass/components/editors/wmd.scss
    srv/static/default/media/sass/components/editors/editable.scss
    srv/static/default/media/sass/components/editors/folded_editor.scss
    srv/static/default/media/sass/components/editors/wmd_help.scss
    srv/static/default/media/sass/components/editors/base_editor.scss
    srv/static/default/media/sass/components/users_list.scss
    srv/static/default/media/sass/components/user_nav.scss
    srv/static/default/media/sass/components/bent_arrow.scss
    srv/static/default/media/sass/components/radio_buttons.scss
    srv/static/default/media/sass/components/share_buttons.scss
    srv/static/default/media/sass/components/flat_pages.scss
    srv/static/default/media/sass/components/info_box.scss
    srv/static/default/media/sass/components/meta_nav.scss
    srv/static/default/media/sass/components/action_status.scss
    srv/static/default/media/sass/components/title_row.scss
    srv/static/default/media/sass/components/autocompleter.scss
    srv/static/default/media/sass/components/action_link.scss
    srv/static/default/media/sass/components/sort_nav.scss
    srv/static/default/media/sass/components/vote_buttons.scss
    srv/static/default/media/sass/components/reputation_badge.scss
    srv/static/default/media/sass/components/avatar.scss
    srv/static/default/media/sass/components/language_nav.scss
    srv/static/default/media/sass/components/timeago.scss
    srv/static/default/media/sass/components/proxy_author_inputs.scss
    srv/static/default/media/sass/components/footer.scss
    srv/static/default/media/sass/components/toolbar_dropdown_menu.scss
    srv/static/default/media/sass/components/dropdown_menu.scss
    srv/static/default/media/sass/components/comments.scss
    srv/static/default/media/sass/components/user_card.scss
    srv/static/default/media/sass/components/tags.scss
    srv/static/default/media/sass/components/used_count.scss
    srv/static/default/media/sass/components/category_selector.scss
    srv/static/default/media/sass/components/empty_content_box.scss
    srv/static/default/media/sass/components/sidebar_box.scss
    srv/static/default/media/sass/components/header.scss
    srv/static/default/media/sass/base.scss
    srv/static/default/media/sass/error.scss
    srv/static/default/media/sass/variables.scss
    srv/static/default/media/sass/jquery_overrides.scss
    srv/static/default/media/sass/question/merge_questions_modal.scss
    srv/static/default/media/sass/question/post_update_info.scss
    srv/static/default/media/sass/question/answers_header.scss
    srv/static/default/media/sass/question/new_answer_form.scss
    srv/static/default/media/sass/question/sidebar.scss
    srv/static/default/media/sass/question/post.scss
    srv/static/default/media/sass/badges.scss
    srv/static/default/media/sass/users.scss
    srv/static/default/media/sass/layout_mixins.scss
    srv/static/default/media/yarn.lock
    srv/static/default/media/jslib/highlight/DIGESTS.md
    srv/static/default/media/jslib/highlight/es/package.json
    srv/static/default/media/jslib/highlight/package.json
    srv/static/default/media/jslib/highlight/README.md
    srv/static/default/media/jslib/highlight/highlight.zip
    srv/static/default/media/jslib/highlight/LICENSE
    srv/static/default/media/jslib/README.txt
    srv/static/default/media/jslib/jquery.fancybox-1.3.4/ajax.txt
    srv/static/default/media/fa-5.15.3/scss/_shims.scss
    srv/static/default/media/fa-5.15.3/scss/solid.scss
    srv/static/default/media/fa-5.15.3/scss/_list.scss
    srv/static/default/media/fa-5.15.3/scss/_mixins.scss
    srv/static/default/media/fa-5.15.3/scss/_bordered-pulled.scss
    srv/static/default/media/fa-5.15.3/scss/_icons.scss
    srv/static/default/media/fa-5.15.3/scss/brands.scss
    srv/static/default/media/fa-5.15.3/scss/_core.scss
    srv/static/default/media/fa-5.15.3/scss/_fixed-width.scss
    srv/static/default/media/fa-5.15.3/scss/_screen-reader.scss
    srv/static/default/media/fa-5.15.3/scss/_larger.scss
    srv/static/default/media/fa-5.15.3/scss/_stacked.scss
    srv/static/default/media/fa-5.15.3/scss/_animated.scss
    srv/static/default/media/fa-5.15.3/scss/_rotated-flipped.scss
    srv/static/default/media/fa-5.15.3/scss/v4-shims.scss
    srv/static/default/media/fa-5.15.3/scss/fontawesome.scss
    srv/static/default/media/fa-5.15.3/scss/regular.scss
    srv/static/default/media/fa-5.15.3/scss/_variables.scss
    srv/static/default/media/fa-5.15.3/webfonts/fa-regular-400.eot
    srv/static/default/media/fa-5.15.3/webfonts/fa-solid-900.woff
    srv/static/default/media/fa-5.15.3/webfonts/fa-regular-400.woff
    srv/static/default/media/fa-5.15.3/webfonts/fa-solid-900.eot
    srv/static/default/media/fa-5.15.3/webfonts/fa-brands-400.woff2
    srv/static/default/media/fa-5.15.3/webfonts/fa-regular-400.woff2
    srv/static/default/media/fa-5.15.3/webfonts/fa-brands-400.woff
    srv/static/default/media/fa-5.15.3/webfonts/fa-brands-400.eot
    srv/static/default/media/fa-5.15.3/webfonts/fa-solid-900.woff2
    srv/static/default/media/css/style.css.map
    srv/static/default/media/package-lock.json
    
    opened by EvanCarroll 0
  • Installation error on 0.11.x

    Installation error on 0.11.x

    When I run python3 ./setup.py install, I'm getting this error

    error: Django 2.2.28 is installed but Django>=3.2 is required by {'django-picklefield'}

    This makes sense, in __init__.py, we have

    'django': 'django>=1.11,<3.0',
    ....
    'picklefield': 'django-picklefield>=1.0.0'
    

    So we need to be more specific what version of django-picklefield we require in 0.11.x

    opened by EvanCarroll 1
  • Is there an export function?

    Is there an export function?

    Hi, I tried asking the question on the askbot forum but I didn't receive the email when I signup. Is there an export function in askbot?

    I sometimes am working in offline setup and would like to get access to the data of a forum.

    Thanks!

    opened by Minipada 0
  • Syntax highlighting with fenced-code-blocks is broken

    Syntax highlighting with fenced-code-blocks is broken

    I want the following markdown code to work:

    ```python
    if True:
        print("hello")
    ```
    

    I've added a custom ASKBOT_MARKDOWN_CLASS to load fenced-code-blocks extension:

    import markdown2
    
    class Markdown(markdown2.Markdown):
        def __init__(self, *args, **kwargs):
            extras = kwargs.get('extras', list())
            extras.extend([
                'fenced-code-blocks'
            ])
            kwargs['extras'] = extras
            super().__init__(*args, **kwargs)
    

    When writing the question with the above markdown, it does not show the preview correctly: image

    When I submit the question, it does render correctly on the first load: image

    However, when I refresh the page, the code loses newlines (and the syntax colors are oddly different): image

    opened by bendavis78 2
Owner
ASKBOT
ASKBOT
GitHub repository for the SecureDrop whistleblower platform. Do not submit tips here!

SecureDrop is an open-source whistleblower submission system that media organizations can use to securely accept documents from, and communicate with

Freedom of the Press Foundation 3.4k Jan 1, 2023
A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.

django-wiki Django support The below table explains which Django versions are supported. Release Django Upgrade from 0.7.x 2.2, 3.0, 3.1 0.5 or 0.6 0.

django-wiki 1.6k Dec 28, 2022
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 86 Oct 18, 2022
Securely and anonymously share files, host websites, and chat with friends using the Tor network

OnionShare OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor ne

Micah Lee 5.4k Jan 2, 2023
Build SMS applications with Python

RapidSMS RapidSMS is a free and open source framework for building interactive SMS applications, which integrates tightly with Django to provide a ric

RapidSMS 622 Dec 31, 2022
GlobaLeaks is free, open source software enabling anyone to easily set up and maintain a secure whistleblowing platform.

GlobaLeaks is free, open souce software enabling anyone to easily set up and maintain a secure whistleblowing platform. Continous Integration and Test

GlobaLeaks 995 Jan 1, 2023
A free & open modern, fast email client with user-friendly encryption and privacy features

Welcome to Mailpile! Introduction Mailpile (https://www.mailpile.is/) is a modern, fast web-mail client with user-friendly encryption and privacy feat

mailpile 8.7k Jan 4, 2023
Easy-to-use and powerful offline translation tool

Introduction Virtaal is a graphical program for doing translation. It is meant to be easy to use and powerful at the same time. Although the initial f

Translate 271 Nov 22, 2022
Zulip server and webapp - powerful open source team chat

Zulip overview Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of

Zulip 17k Jan 7, 2023
Hacktoberfest2021 🥳- Contribute Any Pattern In Any Language😎 Every PR will be accepted Pls contribute

✨ Hacktober Fest 2021 ✨ ?? All Contributors are requested to star this repo and follow me for a successful merge of pull request. ?? ?? Add any patter

Md. Almas Ali 103 Jan 7, 2023
Wikidot-forum-dump - Simple Python script that dumps a Wikidot wiki forum into JSON structures.

wikidot-forum-dump Script is partially based on 2stacks by bluesoul: https://github.com/scuttle/2stacks To dump a Wiki's forum, edit config.py and put

ZZYZX 1 Jun 29, 2022
Support for Competitive Coding badges to add in Github readme or portfolio websites.

Support for Competitive Coding badges to add in Github readme or portfolio websites.

Akshat Aggarwal 2 Feb 14, 2022
paintable GitHub contribute table

githeart paintable github contribute table how to use: Functions key color select 1,2,3,4,5 clear c drawing mode mode on turn off e print paint matrix

Bahadır Araz 27 Nov 24, 2022
Django-MySQL extends Django's built-in MySQL and MariaDB support their specific features not available on other databases.

Django-MySQL The dolphin-pony - proof that cute + cute = double cute. Django-MySQL extends Django's built-in MySQL and MariaDB support their specific

Adam Johnson 504 Jan 4, 2023
Extend the commitizen tools to create conventional commits and README that link to Jira and GitHub.

cz-github-jira-conventional cz-github-jira-conventional is a plugin for the commitizen tools, a toolset that helps you to create conventional commit m

null 12 Dec 13, 2022
This repository contains Python Projects for Beginners as well as for Intermediate Developers built by Contributors.

Python Projects {Open Source} Introduction The repository was built with a tree-like structure in mind, it contains collections of Python Projects. Mo

Gaurav Pandey 115 Apr 30, 2022
This is a personal django website for forum posts

Django Web Forum This is a personal django website for forum posts It includes login, registration and forum posts with date time. Tech / Framework us

null 5 May 12, 2022