Beispiel #1
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    # blueprints
    from app.main import main as main_blueprint
    from app.blog import blog as blog_blueprint
    from app.admin import admin as admin_blueprint
    from app.projects import projects as projects_blueprint
    app.register_blueprint(main_blueprint)
    app.register_blueprint(blog_blueprint, url_prefix='/blog')
    app.register_blueprint(admin_blueprint)
    app.register_blueprint(projects_blueprint, url_prefix='/projects')

    # initializations
    csrf.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    migrate.init_app(app, db)
    mail.init_app(app)
    md = Markdown(app)
    md.register_extension(CodeHiliteExtension)

    app.jinja_env.filters['timesince'] = timesince_filter

    return app
Beispiel #2
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    # blueprints
    from app.main import main as main_blueprint
    from app.blog import blog as blog_blueprint
    from app.admin import admin as admin_blueprint
    from app.projects import projects as projects_blueprint
    app.register_blueprint(main_blueprint)
    app.register_blueprint(blog_blueprint, url_prefix='/blog')
    app.register_blueprint(admin_blueprint)
    app.register_blueprint(projects_blueprint, url_prefix='/projects')

    # initializations
    csrf.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    migrate.init_app(app, db)
    mail.init_app(app)
    md = Markdown(app)
    md.register_extension(CodeHiliteExtension)

    app.jinja_env.filters['timesince'] = timesince_filter

    return app
Beispiel #3
0
def md_apply(app):
    md = Markdown(app, extensions=["tables"])

    @md.extend()
    class ExtensionPostRegisterer(Extension):
        def extendMarkdown(self, md, md_globals):
            md.postprocessors.add('pipostproc', MDExtPostProcessor(md), '_end')
            md.registerExtension(self)

    md.register_extension(ExtensionPostRegisterer)
Beispiel #4
0
def configure(app):
    """Configure Markdown for Bert-E's Flask server."""
    md = Markdown(app)
    md.register_extension(CodeHiliteExtension)
    md.register_extension(FencedCodeExtension)
    md.register_extension(SmartEmphasisExtension)
    md.register_extension(SmartyExtension)
    md.register_extension(TableExtension)
Beispiel #5
0
def new_app(app, serialize=False):
    logging.basicConfig(level=logging.DEBUG)
    md = Markdown(app, extensions=['tables'])
    md.register_extension(ProverExtension)
    register_modules(app, [admin, classes, frontend, lessons, prover])
    app.secret_key = os.urandom(24)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
    app.config['COQD_HOST'] = 'localhost'
    app.config['COQD_PORT'] = 8003
    if serialize:
        app.config['serialize'] = serialize

    # XXX:dc: kind of a hack but I want to keep the db and the app seperate
    db.init_app(app)
    db.app = app

    return app
Beispiel #6
0
    def init_app(self, app):
        """Flask application initialization."""
        # Follow the Flask guidelines on usage of app.extensions
        if not hasattr(app, 'extensions'):
            app.extensions = {}
        if 'cod-markdown' in app.extensions:
            raise RuntimeError("Flask application already initialized")
        app.extensions['cod-markdown'] = self

        # Initialize Flask-Markdown extension
        md = Markdown(app)

        # Register Flask-Markdown extensions
        # TODO: Define and add config entries to app.config.
        # TODO: Init according options in app.config.

        # https://github.com/Zopieux/py-gfm
        # md.register_extension(GithubFlavoredMarkdownExtension)

        # Alternative GFM extension:
        # http://facelessuser.github.io/pymdown-extensions/extensions/github/
        md.register_extension(GithubExtension)
Beispiel #7
0
from flask import Flask, render_template, abort, url_for, request, flash, session, redirect
from flaskext.markdown import Markdown
from mdx_github_gists import GitHubGistExtension
from mdx_strike import StrikeExtension
from mdx_quote import QuoteExtension
from werkzeug.contrib.atom import AtomFeed
import post
import user
import pagination
import settings
from helper_functions import *


app = Flask(__name__)
md = Markdown(app)
md.register_extension(GitHubGistExtension)
md.register_extension(StrikeExtension)
md.register_extension(QuoteExtension)
app.config.from_object('config')


@app.route('/', defaults={'page': 1})
@app.route('/page-<int:page>')
def index(page):
    skip = (page - 1) * int(app.config['PER_PAGE'])
    posts = postClass.get_posts(int(app.config['PER_PAGE']), skip)
    count = postClass.get_total_count()
    pag = pagination.Pagination(page, app.config['PER_PAGE'], count)
    return render_template('index.html', posts=posts['data'], pagination=pag, meta_title=app.config['BLOG_TITLE'])

Beispiel #8
0
from flask import Flask, render_template, abort, url_for, request, flash, session, redirect
from flaskext.markdown import Markdown
from mdx_github_gists import GitHubGistExtension
from mdx_strike import StrikeExtension
from mdx_quote import QuoteExtension
from mdx_code_multiline import MultilineCodeExtension
from werkzeug.contrib.atom import AtomFeed
import post
import user
import pagination
import settings
from helper_functions import *

app = Flask('FlaskBlog')
md = Markdown(app)
md.register_extension(GitHubGistExtension)
md.register_extension(StrikeExtension)
md.register_extension(QuoteExtension)
md.register_extension(MultilineCodeExtension)
app.config.from_object('config')


@app.route('/', defaults={'page': 1})
@app.route('/page-<int:page>')
def index(page):
    skip = (page - 1) * int(app.config['PER_PAGE'])
    posts = postClass.get_posts(int(app.config['PER_PAGE']), skip)
    count = postClass.get_total_count()
    pag = pagination.Pagination(page, app.config['PER_PAGE'], count)
    return render_template('index.html',
                           posts=posts['data'],
Beispiel #9
0
import os

from flask import Flask

# Init Flask
app = Flask(__name__)
app.config.from_object(__name__)
app.debug = True

# Init Markdown
from flaskext.markdown import Markdown
md = Markdown(app)

# Extensions
from extensions.abk import Abbrevation
md.register_extension(Abbrevation)
from extensions.comment import Comment
md.register_extension(Comment)
from extensions.linebreak import LineBreak
md.register_extension(LineBreak)

with app.app_context():

    # noinspection PyUnresolvedReferences
    from processors import *
    # noinspection PyUnresolvedReferences
    from handlers import *

    app.md = md

# Get extra files
Beispiel #10
0
from flaskext.markdown import Markdown
from mdx_github_gists import GitHubGistExtension
from mdx_strike import StrikeExtension
from mdx_quote import QuoteExtension
from mdx_code_multiline import MultilineCodeExtension
from werkzeug.contrib.atom import AtomFeed
import post
import user
import pagination
import settings
from helper_functions import *


app = Flask('FlaskBlog')
md = Markdown(app)
md.register_extension(GitHubGistExtension)
md.register_extension(StrikeExtension)
md.register_extension(QuoteExtension)
md.register_extension(MultilineCodeExtension)
app.config.from_object('config')


@app.route('/', defaults={'page': 1})
@app.route('/page-<int:page>')
def index(page):
    skip = (page - 1) * int(app.config['PER_PAGE'])
    posts = postClass.get_posts(int(app.config['PER_PAGE']), skip)
    count = postClass.get_total_count()
    pag = pagination.Pagination(page, app.config['PER_PAGE'], count)
    return render_template('index.html', posts=posts['data'], pagination=pag, meta_title=app.config['BLOG_TITLE'])
Beispiel #11
0
    __tablename__ = "ladder_result_requests"
    winner_token = db.Column(db.String(64), primary_key=True, nullable=False)
    loser_token = db.Column(db.String(64), primary_key=True, nullable=False)
    winner_id = db.Column(db.Integer, db.ForeignKey(LadderParticipant.id), nullable=False)
    loser_id = db.Column(db.Integer, db.ForeignKey(LadderParticipant.id), nullable=False)
    winner_confirmed = db.Column(db.Boolean, nullable=False, default=False)
    loser_confirmed = db.Column(db.Boolean, nullable=False, default=False)

    def __init__(self, winner_id, loser_id):
        self.winner_id = winner_id
        self.loser_id = loser_id
        self.winner_token = token_urlsafe(32)
        self.loser_token = token_urlsafe(32)

md = Markdown(app)
md.register_extension(tables.TableExtension)
md.register_extension(fenced_code.FencedCodeExtension)

basic_auth = BasicAuth(app)

class AuthException(HTTPException):
    def __init__(self, message):
        super().__init__(message, Response(
            "You could not be authenticated. Please refresh the page.", 401,
            {'WWW-Authenticate': 'Basic realm="Login Required"'}
        ))

class ModelView(sqla.ModelView):
    def is_accessible(self):
        if not basic_auth.authenticate():
            raise AuthException('Not authenticated.')
Beispiel #12
0
from md.mdx_github_gists import GitHubGistExtension
from md.mdx_strike import StrikeExtension
from md.mdx_quote import QuoteExtension
from werkzeug.contrib.atom import AtomFeed
from werkzeug.utils import secure_filename
import post
import user
import pagination
import settings

from helper_functions import *
from flask_app import app

md = Markdown(app)
md.register_extension(GitHubGistExtension)
md.register_extension(StrikeExtension)
md.register_extension(QuoteExtension)

settingsClass = settings.Settings(app.config)
postClass = post.Post(app.config)
userClass = user.User(app.config)

app.jinja_env.globals['url_for_other_page'] = url_for_other_page
app.jinja_env.globals['csrf_token'] = generate_csrf_token
app.jinja_env.globals['meta_description'] = app.config['BLOG_DESCRIPTION']
app.jinja_env.globals['upload_folder'] = app.config['UPLOAD_FOLDER']
app.jinja_env.globals['recent_posts'] = postClass.get_posts(10, 0)['data']
app.jinja_env.globals['tags'] = postClass.get_tags()['data']