Adding frontend and some content, preparing search.
This commit is contained in:
parent
019e2cd259
commit
97108e0215
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -1,3 +1,4 @@
|
||||
{
|
||||
"python.pythonPath": "${workspaceFolder}/venv/bin/python"
|
||||
"python.pythonPath": "${workspaceFolder}/venv/bin/python",
|
||||
"html.format.wrapLineLength": 0,
|
||||
}
|
@ -19,7 +19,7 @@
|
||||
import os
|
||||
import flask
|
||||
|
||||
from . import central
|
||||
from canon_law import central
|
||||
|
||||
|
||||
def create_app(self):
|
||||
|
@ -19,11 +19,16 @@
|
||||
import flask
|
||||
import tinydb
|
||||
|
||||
from . import central
|
||||
from canon_law import central
|
||||
|
||||
bp = flask.Blueprint("api", __name__, url_prefix="/api")
|
||||
|
||||
|
||||
@bp.route("/")
|
||||
def index():
|
||||
return flask.render_template("api.html")
|
||||
|
||||
|
||||
@bp.route("/council/")
|
||||
@bp.route("/council/<name>/")
|
||||
@bp.route("/council/<name>/<option>/")
|
||||
|
@ -21,7 +21,7 @@ import tinydb
|
||||
|
||||
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
from .extensions.vylogger import VyLogger
|
||||
from canon_law.extensions.vylogger import VyLogger
|
||||
|
||||
logger = VyLogger("default")
|
||||
|
||||
@ -39,3 +39,28 @@ def log_message(level, sender, source, msg):
|
||||
logger.info(message)
|
||||
elif level == "debug":
|
||||
logger.debug(message)
|
||||
|
||||
|
||||
def import_dataset(file_name, history=None):
|
||||
name = file_name
|
||||
dataset = open(f"{dir_path}/datasets/{name}.txt")
|
||||
lines = dataset.readlines()
|
||||
canons = []
|
||||
|
||||
for line in lines:
|
||||
split = line.split(" - ")
|
||||
canon = int(split[0])
|
||||
text = split[1]
|
||||
|
||||
canons.append({"canon": canon, "text": text})
|
||||
|
||||
if history is None:
|
||||
history = ""
|
||||
|
||||
db.insert({"name": name, "history": history, "canons": canons})
|
||||
|
||||
print("Done.")
|
||||
|
||||
|
||||
def search_canons(query):
|
||||
return "nope."
|
||||
|
File diff suppressed because one or more lines are too long
7
canon_law/datasets/1const.txt
Normal file
7
canon_law/datasets/1const.txt
Normal file
@ -0,0 +1,7 @@
|
||||
1 - The Holy Fathers assembled in Constantinople have decided not to set aside the faith of the three hundred and eighteen Fathers who met in Nicaea, Bithynia, but to let it remain sovereign, and that every heresy be anathematized, and especially and specifically that of the Eunomians, including that of the Adhesions, and that of the Semi-Arians, including that of the Pneumatomachs, and that of the Sabellians, and that of the Marcellians, and that of the Photinians, and that of the Apollinarians.
|
||||
2 - Bishops must not leave their own diocese and go over to churches beyond its boundaries; but, on the contrary, in accordance with the Canons, let the Bishop of Alexandria administer the affairs of Egypt only, let the bishops of the East govern the Eastern Church only, the priorities granted to the church of the Antiochians in the Nicene canons being kept inviolate, and let the bishops of the Asian diocese administer only the affairs of the Asian church, and let those of the Pontic diocese look after the diocese of Pontus only, and let those of the Thracian diocese manage the affairs of the Thracian diocese only. Let bishops not go beyond their own province to carry out an ordination or any other ecclesiastical services unless summoned there. When the canon prescribed in regard to dioceses is duly kept; it is evident that the synod of each province will confine itself to the affairs of that particular province, in accordance with the regulations decreed in Nicaea. But the churches of God that are situated in territories belonging to barbarian nations must be administered in accordance with the customary practice of the Fathers.
|
||||
3 - Let the Bishop of Constantinople, however, have the priorities of honor after the Bishop of Rome, because of its being New Rome.
|
||||
4 - As concerning Maximus the Cynic, and the disturbance caused by him in Constantinople, it is hereby decreed that Maximus neither became nor is a bishop, and that neither are those ordained by him entitled to hold any clerical rank whatsoever. Let everything connected with him or done by him be annulled.
|
||||
5 - As concerning the Tome of the Westerners, we have accepted also those in Antioch who confess a single divinity of Father and of Son and of Holy Spirit.
|
||||
6 - Because many men, in a spirit of enmity and for purposes of slander being desirous to confound and subvert ecclesiastical discipline, connive to fabricate certain charges against Orthodox bishops managing the churches, in an attempt designing nothing else but to sully the reputation of the priests, and to raise disturbances among peoples who are at peace; on this account it has pleased the holy Synod of the bishops who have convened in Constantinople to decree that informers are not to be admitted without examination, nor are all men to be allowed to bring accusations against those managing the churches, nor yet are all to be excluded. But if anyone lay a personal grievance, that is, a private complaint, against a bishop, on the ground that he has been a victim of the bishop's greed or other unjust treatment, in the case of such accusations neither the personality nor the religion of the accuser is to be inquired into. For then the conscience of the bishop must be clear in every respect, and the man who claims to have been wronged should receive justice whatever be his religion. But if the indictment brought against the bishop be of an ecclesiastical nature, then the personality of the informers must be considered, in order, first of all, not to allow heretics to make charges against Orthodox bishops in regard to ecclesiastical matters. We call heretics those who have of old been proscribed from the Church and those who have thereafter been anathematized by us; and in addition those who though pretending to confess the sound faith, have schismatically separated and have gathered congregations in opposition to our canonical bishops. Further, as regarding those who have previously been condemned by the Church on certain charges and have been ousted from this or excluded from Communion, whether they belong to the clergy or to the ranks of laymen, neither shall these persons be allowed to accuse a bishop until they have first cleared themselves of their own indictment. Likewise as regarding those who themselves previously been accused, they are not to be permitted to accuse a bishop, or other clergymen, until they have first proved themselves innocent of the charges placed against them. If however, certain persons are neither heretics nor excluded from Communion, nor condemned, nor previously charged with any offenses, should declare that they have an accusation of an ecclesiastical nature against a bishop, the holy Synod bids these persons to lodge their accusations before all the bishops of the province and before them to prove the charges against the bishop involved in the case. But if it so happen that the provincial Bishops are unable or incompetent to decide the case against the bishop and make the correction due, then they are to go to a greater synod of the bishops of this diocese summoned to try this case. And they are not to lodge the accusation until they themselves have in writing agreed to incur the same penalty if in the course of the trial it be proved that they have been slandering the accused bishop. But if anyone, scorning what has been decreed in the foregoing statements, should dare either to annoy the emperor's ears or to trouble courts of secular authorities or an ecumenical synod to the disturbance of all the bishops of the diocese, let no such person be allowed to present any information whatever, because of his having thus roundly insulted the canons and ecclesiastical discipline.
|
||||
7 - As for those heretics who proceed to embrace Orthodoxy, and join the portion of the saved, we accept them in accordance with the subjoined sequence and custom; Arians, and Macedoniacs, and Sabbatians, and Novatians, those calling themselves Cathari, and the Aristeri and Apollinarians we accept when they offer Orthodox documents and anathematize every heresy that does not hold the same beliefs as the catholic and apostolic Church of God, and are sealed first with holy myron (chrism) on their forehead and their eyes, and the nose and mouth, and ears; and in sealing them we say: "The seal of a gift of Holy Spirit." As for Eunomians, however, who are baptized with a single immersion, and Montanists, who are here called Phrygians, and the Sabellians, who teach that Father and Son are the same person, and some other errors, and (those belonging to) other heresies (for there are many heretics here, especially such as come from the country of the Galatians): all of them that want to adhere to Orthodoxy we are willing to accept as Greeks. Accordingly, on the first day we treat them as Christians; on the second day, catechumens; then, on the third day, we exorcize them with the act of blowing thrice into their face and into their ears; and thus do we catechize them, and we make them stay a time in the church and listen to the Scriptures; and then we baptize them.
|
8
canon_law/datasets/ephesus.txt
Normal file
8
canon_law/datasets/ephesus.txt
Normal file
@ -0,0 +1,8 @@
|
||||
1 - Since those who for any reason, whether of an ecclesiastical or of physical nature, are absent from the Holy Synod and have remained in their own town or district, ought not to be left in ignorance of the Synod's regulations regarding them, we make known to your holiness and love, that if any metropolitan of the province has apostatized from the holy and ecumenical Synod and joined the assembly of the apostasy, or has joined it thereafter, or has adopted the sentiments of Celestius or intends to adopt them, he shall have no power whatsoever to perpetrate anything against the bishops of the province, being already expelled and stripped of every function and of all ecclesiastical communion by the present Synod. Moreover, he shall be liable in any case, to be expelled from the rank of the episcopate by those very bishops of the province and by surrounding metropolitans who adhere to the beliefs of Orthodoxy.
|
||||
2 - If, on the other hand, any provincial bishops have failed to attend the Holy Synod and have joined the apostasy, or should attempt to do so, or even after subscribing to the deposition of Nestorius have again gone to the synods of apostasy, all such persons, in the judgment that has seemed best to the Holy Synod, have alienated themselves from Holy Orders and have forfeited their rank.
|
||||
3 - If some of the clergymen in any city or district have been shorn of Holy Orders by Nestorius and his party on account of their believing rightly, we have adjudged it right and just that they be restored to their own rank. We collectively bid the clergymen who agree in their beliefs with the Orthodox and the Ecumenical Synod not to submit in any way whatever to the bishops who have apostatized or have deserted us.
|
||||
4 - If any of the clergymen should apostatize and dare, either publicly or privately, to hold the beliefs of Nestorius or of Celestius, the Holy Synod has deemed it just and right that these men too should be deposed.
|
||||
5 - As for all those who have been condemned by the Holy Synod, or by their own bishops for improper acts, and to whom Nestorius and those sharing his views and beliefs have sought, or should seek, to give back communion or rank, uncanonically and in accordance with the indifference shown by Nestorius in all matters, we have deemed it right and just that they too remain without benefit and that they be left nevertheless deposed.
|
||||
6 - Likewise in regard to any persons who should wish to alter in any way whatsoever anything that has been enacted by the Holy Synod in Ephesus, concerning anyone, the holy Synod has prescribed that if they be bishops or clergymen, they are to lose their own rank entirely, while if they be laymen, they are to be excluded from communion.
|
||||
7 - These things having been read aloud, the Holy Synod then decreed that no one should be permitted to offer any different belief or faith, or in any case to write or formulate any other than the one defined by the Holy Fathers assembled with the Holy Spirit in the city of Nicaea. As for those who dare either to formulate a different belief or faith, or to present one, or to offer one to those who wish to turn to acknowledgment of the truth, whether they are Greeks or Jews, or they are members of any heresy whatever; if bishops or clergymen, they shall be deposed as bishops of their episcopate, and as clergymen of their clericate; but if they are laymen, they shall be anathematized. In the same manner, if any persons be discovered or discovered, whether bishops, clergymen or laymen, in the act of believing or teaching the things embodied in the exposition presented by Charisius the Priest concerning the incarnation of the Only-begotten Son of God, or by any chance, the unholy and perverse dogmas of Nestorius which have even been subjoined, let them stand liable to the judgment of this holy and Ecumenical Synod. As a consequence, that is to say, the bishop shall be deprived of his episcopate, and be left deposed, while the clergyman shall likewise forfeit his clericate. If on the other hand any such person is a layman, let him also be anathematized, as aforesaid.
|
||||
8 - Our fellow Bishop Reginus, most beloved by God, and with him the most God-beloved bishops of the province of the Cypriotes Zeno and Evagrios, have announced an innovation, a thing whichis contrary to the ecclesiastical laws and the Canons of the Holy Apostles, and one which affects the freedom of all. Hence, since common ailments require more drastic treatment, on the ground that they do greater damage, and especially in view of the fact that the Bishop of Antioch, far from following the ancient custom, has been performing the ordinations in Cyprus, according to information given in the Book of Orthodox Documents and by oral statements made by most pious gentlemen who have approached the Holy Synod. Therefore those who preside over the churches in Cyprus shall retain their privilege unaffected and inviolate, according to the Canons of the Holy Fathers and ancient custom, whereby they shall themselves perform the ordinations of the most reverent bishops. The same rule shall hold good also with regard to the other dioceses and churches everywhere, so that none of the bishops most beloved by God shall take hold of any other province that was not formerly and from the beginning in his jurisdiction or was not held by his predecessors. But if anyone has taken possession of any, and has forcibly subjected it to his authority, he shall return it to its rightful possessor, in order that the Canons of the Fathers not be transgressed, nor the secular be introduced, under the pretext of divine services; lest imperceptibly and little by little we lose the freedom which our Lord Jesus Christ, the Liberator of all men, has given us as a free gift by His own Blood. For this reason, it seemed best to the holy and Ecumenical Synod that the rights of every province, formerly and from the beginning belonging to it, be preserved clear and inviolable, in accordance with the custom which prevailed of old, each metropolitan having permission to take copies of the proceedings for his own security. If, on the other hand, anyone introduce any form conflicting with the decrees that have now been sanctioned, it has seemed best to the entire holy and Ecumenical Synod that it shall be of no effect.
|
@ -19,7 +19,7 @@
|
||||
import flask
|
||||
import tinydb
|
||||
|
||||
from . import central
|
||||
from canon_law import central
|
||||
|
||||
bp = flask.Blueprint("frontend", __name__)
|
||||
|
||||
@ -27,3 +27,65 @@ bp = flask.Blueprint("frontend", __name__)
|
||||
@bp.route("/")
|
||||
def index():
|
||||
return flask.render_template("index.html")
|
||||
|
||||
|
||||
@bp.route("/apostles/")
|
||||
def apostles():
|
||||
title = "canons of the apostles"
|
||||
|
||||
query = tinydb.Query()
|
||||
|
||||
obj = central.db.search(query.name == "apostles")[0]
|
||||
|
||||
return flask.render_template("council.html", title=title, name=title, obj=obj)
|
||||
|
||||
|
||||
@bp.route("/1nicea/")
|
||||
def f_nicea():
|
||||
title = "first council of nicea (325)"
|
||||
|
||||
query = tinydb.Query()
|
||||
|
||||
obj = central.db.search(query.name == "1nicea")[0]
|
||||
|
||||
return flask.render_template("council.html", title=title, name=title, obj=obj)
|
||||
|
||||
|
||||
@bp.route("/1const/")
|
||||
def f_const():
|
||||
title = "first council of constantinople (381)"
|
||||
|
||||
query = tinydb.Query()
|
||||
|
||||
obj = central.db.search(query.name == "1const")[0]
|
||||
|
||||
return flask.render_template("council.html", title=title, name=title, obj=obj)
|
||||
|
||||
|
||||
@bp.route("/ephesus/")
|
||||
def ephesus():
|
||||
title = "council of ephesus (431)"
|
||||
|
||||
query = tinydb.Query()
|
||||
|
||||
obj = central.db.search(query.name == "ephesus")[0]
|
||||
|
||||
return flask.render_template("council.html", title=title, name=title, obj=obj)
|
||||
|
||||
|
||||
@bp.route("/search/", methods=["GET", "POST"])
|
||||
def search():
|
||||
query = flask.request.form["query"]
|
||||
results = central.search_canons(query)
|
||||
|
||||
return flask.render_template("search.html", query=query, results=results)
|
||||
|
||||
|
||||
@bp.route("/about/")
|
||||
def about():
|
||||
return flask.render_template("about.html")
|
||||
|
||||
|
||||
@bp.route("/disclaimer/")
|
||||
def disclaimer():
|
||||
return flask.render_template("disclaimer.html")
|
||||
|
BIN
static/logo.png
BIN
static/logo.png
Binary file not shown.
Before Width: | Height: | Size: 375 KiB After Width: | Height: | Size: 33 KiB |
151
static/style.css
151
static/style.css
@ -1,3 +1,148 @@
|
||||
ol { font-style:italic; font-family:Georgia, Times, serif; font-size:24px; color:#bfe1f1; }
|
||||
ol li p { padding:8px; font-style:normal; font-family:Arial; font-size:13px; color:#eee; border-left: 1px solid #999; }
|
||||
ol li p em { display:block; }
|
||||
* {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
}
|
||||
|
||||
body { margin: 0 auto; }
|
||||
|
||||
header h1 { text-align: center; }
|
||||
header h1 a { color: black !important; }
|
||||
header h1 a:hover { color: black !important; }
|
||||
header h1 a:focus { color: black !important; }
|
||||
|
||||
header ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
header li { float: left; }
|
||||
|
||||
header li a, .dropbtn {
|
||||
display: block;
|
||||
color: white !important;
|
||||
text-align: center;
|
||||
padding: 14px 16px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header li a:hover {
|
||||
background-color: #111;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
header li a:focus {
|
||||
background-color: #111;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
header li .dropbtn { cursor: default; }
|
||||
header li .dropdown { display: inline-block; }
|
||||
|
||||
header li form {
|
||||
margin-top: 1px;
|
||||
margin-right: 14px;
|
||||
}
|
||||
|
||||
button {
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
border: none;
|
||||
background: none;
|
||||
color: white !important;
|
||||
text-align: center;
|
||||
padding: 14px 16px;
|
||||
margin-top: -2px;
|
||||
text-decoration: none;
|
||||
font-size: 16px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: #111;
|
||||
color: white !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
background-color: #111;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
input { padding: 10px; }
|
||||
|
||||
header .dropdown-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: #f9f9f9;
|
||||
min-width: 160px;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
header .dropdown-content a {
|
||||
color: black !important;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
header .dropdown-content a:hover { color: black !important; }
|
||||
header .dropdown-content a:hover { background-color: #f1f1f1; }
|
||||
header .dropdown:hover .dropdown-content { display: block; }
|
||||
|
||||
header .separator:hover {
|
||||
background-color: #f9f9f9 !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.main {
|
||||
margin-top: 10px;
|
||||
margin-left: 25%;
|
||||
margin-right: 25%;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.main h1 { text-align: center; }
|
||||
|
||||
.main img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.main li { padding-bottom: 15px; }
|
||||
|
||||
footer {
|
||||
padding: 10px;
|
||||
background-color: #e0e0e0;
|
||||
text-align: center;
|
||||
line-height: 2em;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
table {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
table, th, td {
|
||||
border: 1px solid #e0e0e0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
th, td { padding: 15px; }
|
||||
tr:nth-child(even) { background-color: #fcfcfc; }
|
||||
|
||||
small { font-size: 11px; }
|
||||
|
||||
a { color: #009400; }
|
||||
a:hover { color: #006400 !important; text-decoration: none; }
|
||||
a:focus { color: #006400 !important; text-decoration: none; }
|
||||
a:visited { color: #009400; }
|
||||
|
||||
a { color: #009400; text-decoration: none; }
|
||||
a:hover { color: #006400 !important; }
|
||||
a:focus { color: #006400 !important; }
|
||||
a:visited { color: #009400; }
|
31
templates/about.html
Normal file
31
templates/about.html
Normal file
@ -0,0 +1,31 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}about{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<img src="{{ url_for('static', filename='logo.png') }}" height="200px">
|
||||
<h1>about</h1>
|
||||
<p>
|
||||
canonlaw@oikonomia is a open-source endeavor by <a href="https://oikonomia.faith">Oikonomia, an Orthodox Christian
|
||||
community</a> to provide a way to reference canon law quickly.
|
||||
|
||||
<br><br>
|
||||
|
||||
<h3>Personnel</h3>
|
||||
<h6 style="margin-top: -10px;">(Title: Name, Jurisdiction - Email)</h6>
|
||||
Project Lead: Seraphim Pardee, OCA - <a href="mailto:vypr@oikonomia.faith">vypr@oikonomia.faith</a>
|
||||
|
||||
<br><br>
|
||||
|
||||
<h3>Technology</h3>
|
||||
canonlaw@oikonomia is developed and ran on Python 3.7.0 using the Flask web framework. It utilizes TinyDB as a
|
||||
database library and a few custom extensions for things like logging. The source code for canonlaw@oikonomia can be
|
||||
found <a href="https://github.com/Oikonomia/canon_law">here</a>. The source code, like most of Oikonomia's
|
||||
open-source projects, is freely available under the GPLv3.
|
||||
|
||||
<h3>Sources</h3>
|
||||
canonlaw@oikonomia utilizes an English translation of The Rudder (Pedalion) by Hieromonk Agapios and Monk
|
||||
Nicodemos, translated by Ralph J. Masterjohn (may his memory be eternal) and The Orthodox Christian Educational
|
||||
Society. Copyright © 2005 Ralph J. Masterjohn and The Orthodox Christian Educational Society.
|
||||
</p>
|
||||
{% endblock %}
|
22
templates/api.html
Normal file
22
templates/api.html
Normal file
@ -0,0 +1,22 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}api{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<img src="{{ url_for('static', filename='logo.png') }}" height="200px">
|
||||
<h1>coming soon</h1>
|
||||
<p>
|
||||
This page will be the future documentation of our API, but it isn't quite ready yet.
|
||||
|
||||
<br><br>
|
||||
|
||||
Check back soon for updates.
|
||||
|
||||
<br><br>
|
||||
|
||||
Here's a cat/shaq gif for wasting your time:
|
||||
<br><br>
|
||||
<iframe style="display: block;margin: 0 auto;" src="https://giphy.com/embed/nNxT5qXR02FOM" width="480" height="399"
|
||||
frameBorder="0" class="giphy-embed" allowFullScreen></iframe>
|
||||
</p>
|
||||
{% endblock %}
|
@ -1,6 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<!--
|
||||
▄▓█∩ ▄▓ ║█▄, ,
|
||||
█▌ ▄███▌ '▀█▓╓█▀² ░███▓ ╓█▄
|
||||
╟██U▐███▀∩ , ██╟█¬ ▄ ╚████ ███
|
||||
███▌█▀▀▒▄ ,▀▓▓▓▓██╟██▓▓▓█▌ ╔▄▒▀█║███░
|
||||
▄ ███▌▄▓██▌ ▀▀▄▓▓▓▓▓(▓▓▓▓▓▄▀^ ▐███▓░███∩
|
||||
]█▌╙▀▒▓████∩ ▀▌ ██╟█─ ▀^ ╚████░▀░╓█▌
|
||||
╟██▌ ▐███▒ ██╟█ ░▀███ ╒███∩
|
||||
╟███ ╙▒▓▌ ┌█ ██▐█¬ ▐▄ ┌▓▓░ ████∩
|
||||
. ╙███░▓██▌ ▄▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀╙▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄▓⌐ ⌡███▄╟██░ ,
|
||||
╟█▓░╚░████∩ ╓█▀▀▀▀▀▀▀▀▀▀▀▀██╟█▀▀▀▀▀▀▀▀▀▀▀▀█▓` ╟███▌▀░▄██
|
||||
░███▌▐███▒µ ^ ██▐█ ╘' ▓▒██▌╓███▌
|
||||
║███▌░░▓█▌ ██▐█ ]██▌░░████∩
|
||||
,,╚▀█▌ ███▌ ╓L ██▐█ ▐███µ⌡██▒░,,
|
||||
"▀███▓∩]███░, ▀█▄, ██▐█ '███▌ ▄▓███░
|
||||
└╠████▌██▒▓█ ▀▀▄█▀███╟█ ╫█░▀█░█████░
|
||||
,▒▒▀█▀░ ███U ╟██▓▄▀█╟█▄ ███⌐"╟█▀▀▒Q,
|
||||
║███▓▓ ▐███▌╟█ ^ `▀█▓╓▀█▓▄▐▓ á█ ███▌ ▄▓████░
|
||||
░█████░███░██▌ ██▐█▓▄▀██▄ ]██▌║██▌▓████▒∩
|
||||
░▒██░╚▒░╟███░█▌ ██▐█¬▀██▄▀^ ▄█▌╫███∩░▀░██▒▒░
|
||||
╚██████▄║███░███ ██▐█ ⌠█ ▓██▌║██▌,▓█████▀∩
|
||||
└╚▀████░╠▀░└████▐▓▄▄ ██▐█ ╓▄▄▓▐███░ ╠▀░████▀▒░
|
||||
.▓▓▓██▓▓Q╚███░▀████ ██▐█ ▄████░║██▀ ▄▓███▓▓▄
|
||||
░▀██████░░▒░ ╠████ ██▐█ ╫███▀░ '█░ ██████▀▒░
|
||||
╙╙░▒▓█████▓ ╙▒▀▀░████ ▀▀▒░ f█████▓▓▒╙╙
|
||||
░▀▀███▀▒▒▓████▓████4████▓▄▒▀████▀▀
|
||||
' «███████▓██╙█▄███████▌ '
|
||||
"╙╙╙╙' `▀█~' ╙╙╙╙"
|
||||
|
||||
Well, aren't you inquisitive?
|
||||
|
||||
If code's your thing, consider helping us out on GitHub: https://github.com/Oikonomia/canon_law
|
||||
|
||||
There's a little easter egg in the website. Here's a riddle on how to find it:
|
||||
Sometimes a man must look for nothing to find everything.
|
||||
|
||||
-->
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
@ -9,30 +47,55 @@
|
||||
<title>{% block title %}{% endblock %} - canonlaw@oikonomia</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="{{ url_for('static', filename='style.css') }}" />
|
||||
<link rel="shortcut icon" href="{{ url_for('static', filename='logo.png') }}" />
|
||||
<!--<script src="main.js"></script>-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav>
|
||||
<img src="{{ url_for('static', filename='logo.png') }}" height="150px">
|
||||
</nav>
|
||||
|
||||
<div id="list2">
|
||||
<ol>
|
||||
<li>
|
||||
<p><em>The Netherlands</em> is a country in ...</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><em>The United States of America</em> is a federal constitutional ...</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><em>The Philippines</em> officially known as the Republic ...</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><em>The United Kingdom</em> of Great Britain and ...</p>
|
||||
</li>
|
||||
</ol>
|
||||
<header>
|
||||
<h1><a href="{{ url_for('frontend.index') }}">canonlaw@oikonomia</a></h1>
|
||||
<ul>
|
||||
<li><a href="{{ url_for('frontend.index') }}">home</a></li>
|
||||
<li><a href="{{ url_for('frontend.apostles') }}">canons of the apostles</a></li>
|
||||
<li class="dropdown">
|
||||
<a class="dropbtn">ecumenical councils</a>
|
||||
<div class="dropdown-content">
|
||||
<a href="{{ url_for('frontend.f_nicea') }}">first council of nicea (325)</a>
|
||||
<a href="{{ url_for('frontend.f_const') }}">first council of constantinople (381)</a>
|
||||
<a href="{{ url_for('frontend.ephesus') }}">council of ephesus (431)</a>
|
||||
<a href="#">council of chalcedon (451)</a>
|
||||
<a href="#">second council of constantinople (553)</a>
|
||||
<a href="#">third council of constantinople (680-681)</a>
|
||||
<a href="#">council of trullo (quinisext) (692)</a>
|
||||
<a href="#">second council of nicea (787)</a>
|
||||
<a href="#" class="separator">
|
||||
<hr>
|
||||
</a>
|
||||
<a href="#">fourth council of constantinople (879-880)</a>
|
||||
<a href="#">fifth council of constantinople (1341-1351)</a>
|
||||
</div>
|
||||
</li>
|
||||
<li><a href="#">local councils</a></li>
|
||||
<li><a href="#">church fathers</a></li>
|
||||
<li><a href="{{ url_for('api.index') }}">api</a></li>
|
||||
<li style="float: right;">
|
||||
<form role="search" method="POST" action="{{ url_for('frontend.search') }}">
|
||||
<input type="search" id="canon-search" name="query" placeholder="search query">
|
||||
<button>search</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
{% block main %}{% endblock %}
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
canonlaw@oikonomia is made with ❤️ by <a href="https://oikonomia.faith">Oikonomia, an Orthodox Christian community</a>.
|
||||
<br>
|
||||
<a href="{{ url_for('frontend.about') }}">about</a> · <a href="{{ url_for('frontend.disclaimer') }}">disclaimer</a> · <a href="https://github.com/Oikonomia/canon_law">source code</a> · <a href="#">additional resources</a>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
26
templates/council.html
Normal file
26
templates/council.html
Normal file
@ -0,0 +1,26 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{{ title }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<img src="{{ url_for('static', filename='logo.png') }}" height="200px">
|
||||
<h1>{{ name }}</h1>
|
||||
<p>
|
||||
{% if obj.history %}
|
||||
{{ obj.history }}
|
||||
{% endif %}
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>canon</th>
|
||||
<th>text</th>
|
||||
</tr>
|
||||
{% for canon in obj.canons %}
|
||||
<tr>
|
||||
<td style="text-align: center"><a href="#{{ canon.canon }}">{{ canon.canon }}</a></td>
|
||||
<td id="{{ canon.canon }}">{{ canon.text }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</p>
|
||||
{% endblock %}
|
23
templates/disclaimer.html
Normal file
23
templates/disclaimer.html
Normal file
@ -0,0 +1,23 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}disclaimer{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<img src="{{ url_for('static', filename='logo.png') }}" height="200px">
|
||||
<h1>disclaimer</h1>
|
||||
<p>
|
||||
canonlaw@oikonomia is not officially endorsed by any canonical Orthodox body or member of clergy and is not meant
|
||||
to be a substitute for official canon law sources.
|
||||
|
||||
<br><br>
|
||||
|
||||
Oikonomia does not endorse using this website or the API to criticize others, and Oikonomia especially does not
|
||||
endorse using this website to criticize clergy. If you have a concern with your priest or bishop or any other
|
||||
member of clergy, contact the appropriate parties (such as your bishop or other bishops).
|
||||
|
||||
<br><br>
|
||||
|
||||
If you have questions, concerns, or feedback about this website or would simply like to contact us, email <a href="mailto:vypr@oikonomia.faith?subject=canonlaw@oikonomia">vypr@oikonomia.faith</a>
|
||||
with the subject "canonlaw@oikonomia." Your email will be answered promptly.
|
||||
</p>
|
||||
{% endblock %}
|
@ -1 +1,17 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}home{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<img src="{{ url_for('static', filename='logo.png') }}" height="200px">
|
||||
<h1>welcome.</h1>
|
||||
<p>By making an intuitive website, as well as a <a href="#">open, fully-featured API</a>, we hope to make Orthodox
|
||||
canon law more accessible to everyone.</p>
|
||||
<p>There are many things we hope to achieve or provide the means for by making canon law accessible:</p>
|
||||
<ul>
|
||||
<li>Allowing Orthodox Christians to become more informed on canon law.</li>
|
||||
<li>Making referencing canon law easier for laity and clergy alike.</li>
|
||||
<li>Providing more transparency to some of the ways our clergy may operate.</li>
|
||||
<li>Encouraging Orthodox Christians to create more open-source and developer-friendly resources.</li>
|
||||
</ul>
|
||||
{% endblock %}
|
34
templates/search.html
Normal file
34
templates/search.html
Normal file
@ -0,0 +1,34 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{% if query %}search results for "{{ query }}"{% else %}search results for literally nothing{% endif %}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<img src="{{ url_for('static', filename='logo.png') }}" height="200px">
|
||||
{% if query %}
|
||||
<h1>search results for "{{ query }}"</h1>
|
||||
<p>
|
||||
Search isn't quite ready yet. Check back soon for updates.
|
||||
|
||||
<br><br>
|
||||
|
||||
Here's a cat/shaq gif for wasting your time:
|
||||
|
||||
<br><br>
|
||||
|
||||
<iframe style="display: block;margin: 0 auto;" src="https://giphy.com/embed/nNxT5qXR02FOM" width="480" height="399" frameBorder="0" class="giphy-embed" allowFullScreen></iframe>
|
||||
</p>
|
||||
{% else %}
|
||||
<h1>why would you search for nothing?</h1>
|
||||
<p style="text-align: center">
|
||||
well, since you're here, have a cat gif:
|
||||
|
||||
<br><br>
|
||||
|
||||
<iframe style="display: block;margin: 0 auto;" src="https://giphy.com/embed/33OrjzUFwkwEg" width="480" height="399" frameBorder="0" class="giphy-embed" allowFullScreen></iframe>
|
||||
|
||||
<br><br>
|
||||
|
||||
<small>if you're here because of the easter egg riddle, then congratulations.</small>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
Loading…
Reference in New Issue
Block a user