[ First commit ]
This commit is contained in:
commit
851303e97b
6 changed files with 167 additions and 0 deletions
5
Gemfile
Normal file
5
Gemfile
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem 'sinatra'
|
||||||
|
gem 'sinatra-flash'
|
||||||
|
gem 'puma'
|
||||||
19
building.md
Normal file
19
building.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Contruindo uma instância do TonTonWeb
|
||||||
|
|
||||||
|
Clone o repositório da aplicação princiapal (esse repositório).
|
||||||
|
|
||||||
|
Edite o arquivo de configuração Rack [config.ru]. O arquivo exemplo mapeia apenas a rota '/' para a aplicação principal. Adicione aplicações do projeto TonTon e mapeie elas para novas rotas.
|
||||||
|
|
||||||
|
Instale as dependências e inicie o servidor.
|
||||||
|
|
||||||
|
bundle install
|
||||||
|
|
||||||
|
bundle exec puma
|
||||||
|
|
||||||
|
É necessário que o shell tenha a variável de ambiente SESSION_SECRET definida.
|
||||||
|
|
||||||
|
UwU
|
||||||
|
|
||||||
|
## Módulos Ruby TonTon
|
||||||
|
|
||||||
|
Clone o repositório do módulo dentro da aplicação principal e o inclua no arquivo [config.ru].
|
||||||
12
config.ru
Normal file
12
config.ru
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
require_relative 'tonton_web'
|
||||||
|
|
||||||
|
# Require TonTon modules if you want
|
||||||
|
|
||||||
|
use Rack::Session::Cookie, key: 'rack.session', secret: ENV.fetch('SESSION_SECRET')
|
||||||
|
|
||||||
|
app = Rack::URLMap.new(
|
||||||
|
'/' => TonTonWeb.new
|
||||||
|
# Add TonTon modules here
|
||||||
|
)
|
||||||
|
|
||||||
|
run app
|
||||||
81
readme.md
Normal file
81
readme.md
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
# TonTon
|
||||||
|
|
||||||
|
TonTon é uma antologia de softwares abertos modulares relacionados com tecnologia na educação e aprendizado colaborativo.
|
||||||
|
|
||||||
|
Esse repositório contém a aplicação web principal e a wiki Gollum extendida. <(^_^)>
|
||||||
|
|
||||||
|
O Ruby on Rails foi substituido pelo Sinatra. (⌐■_■)
|
||||||
|
|
||||||
|
As aplicações terão APIs para facilitar interfaces alternativas. Monte o seu TonTon. ( ͡° ᴥ ͡°)
|
||||||
|
|
||||||
|
[Building](building.md)
|
||||||
|
|
||||||
|
## TonTonWeb
|
||||||
|
|
||||||
|
Aplicação web principal, em Ruby, com um mecanismo de controle de usuários.
|
||||||
|
|
||||||
|
O gerenciamento é feito via linha de comando (utilitário tauth) e interface web.
|
||||||
|
|
||||||
|
O serviços são expostos via:
|
||||||
|
|
||||||
|
- API Ruby via Rack (para ser usada pela interface interna).
|
||||||
|
|
||||||
|
- API web (para ser usada por interfaces que não são escritas em Ruby).
|
||||||
|
|
||||||
|
O TonTonWeb tem uma versão [experimental](https://github.com/seruna-1/tonton) em Ruby on Rails, agora arquivada. (◡_◡)
|
||||||
|
|
||||||
|
Status: sem mecanismo de autenticação.
|
||||||
|
|
||||||
|
## TonTon-Gollum (wiki)
|
||||||
|
|
||||||
|
Uma extensão simples da wiki Gollum para suportar autenticação de usuário.
|
||||||
|
|
||||||
|
Status: testável.
|
||||||
|
|
||||||
|
Funcionalidades esperadas:
|
||||||
|
|
||||||
|
- Subdiretórios dos usuários editáveis apenas pelo próprio usuário.
|
||||||
|
|
||||||
|
## Tolls
|
||||||
|
|
||||||
|
Tonton Polls.
|
||||||
|
|
||||||
|
Aplicação Sinatra para gerenciamento de enquetes.
|
||||||
|
|
||||||
|
Status: não iniciado.
|
||||||
|
|
||||||
|
## Tofinn
|
||||||
|
|
||||||
|
Toffin é um modelo genérico de árvore de arquivos tokenizáveis e com um modelo integrado opcional de versionamento de arquivos.
|
||||||
|
|
||||||
|
Status: concepção. Duas implementações esperadas, uma em C (Coffin) e outra em Ruby (Torfinn). Há uma versão [experimental](https://github.com/seruna-1/toffin), em Ruby, abandonada.
|
||||||
|
|
||||||
|
## Totoki
|
||||||
|
|
||||||
|
Totoki é o plano de wiki futura para o TonTon usando a API do Toffin.
|
||||||
|
|
||||||
|
Totoki é inspirada pelo Gollum. Assim como o Gollum lida com frontend e tem a própria API separada (gollum-lib), o Totoki será a aplicação Sinatra com API wiki separada (totoki-lib).
|
||||||
|
|
||||||
|
Status: não iniciado.
|
||||||
|
|
||||||
|
## Tamire
|
||||||
|
|
||||||
|
TonTon Abstract Mathematical Introspective Representation (Tamire).
|
||||||
|
|
||||||
|
Tamire é uma biblioteca de para abstração de linguagem matemática em estruturas de objetos.
|
||||||
|
|
||||||
|
Teria duas implementações, uma em Ruby e outra em Javascript, cada uma com:
|
||||||
|
|
||||||
|
- Leitura de Asciimath para entrada.
|
||||||
|
|
||||||
|
- Renderização em SVG para saída.
|
||||||
|
|
||||||
|
- Representação em Json para entrada e saída.
|
||||||
|
|
||||||
|
Status: não iniciado.
|
||||||
|
|
||||||
|
## Tamires
|
||||||
|
|
||||||
|
Tamire Speaker (Tamires) é um módulo Javascript e uma aplicação Ruby para análise por pessoas cegas de estrutura matemática gerada pela Tamire.
|
||||||
|
|
||||||
|
Status: não iniciado.
|
||||||
25
tonton_web.rb
Normal file
25
tonton_web.rb
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
require 'gollum/app'
|
||||||
|
require 'sinatra/flash'
|
||||||
|
require "sqlite3"
|
||||||
|
|
||||||
|
class TonTonWeb < Sinatra::Base
|
||||||
|
set :host_authorization, { permitted_hosts: ['localhost', 'mytonton.com.br'] }
|
||||||
|
|
||||||
|
set :sessions, true
|
||||||
|
|
||||||
|
get '/' do
|
||||||
|
redirect "/home"
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/home' do
|
||||||
|
markdown File.read('readme.md'), layout_engine: :erb, layout: true
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/building.md' do
|
||||||
|
markdown File.read('building.md'), layout_engine: :erb, layout: true
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/**.md' do
|
||||||
|
markdown request.path_info.to_sym
|
||||||
|
end
|
||||||
|
end
|
||||||
25
views/layout.erb
Normal file
25
views/layout.erb
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>TonTon</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<nav>
|
||||||
|
<a href="/home">Home</a>
|
||||||
|
|
||||||
|
<a href="/wiki">Wiki</a>
|
||||||
|
|
||||||
|
<a href="/git">Git</a>
|
||||||
|
</nav>
|
||||||
|
<header>
|
||||||
|
|
||||||
|
<%= yield %>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const title = document.querySelector('title');
|
||||||
|
|
||||||
|
title.textContent = document.querySelector('h1').textContent;
|
||||||
|
</script>
|
||||||
|
</html>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue