core | ||
org | ||
index.php | ||
LICENSE | ||
omw-logo.png | ||
README.org | ||
styles.css |
OMW (Org Mode to Web)
Um pequeno parser de org-mode para HTML5 escrito em PHP.
Neste site, você encontra uma demonstração de uso.
Estrutura básica de um site com OMW
Para começar, eu crio no meu servidor web a seguinte estrutura de diretórios:
raiz ├─ core │ ├─ functions.php │ ├─ omw.php │ └─ settings.php ├─ org │ ├─ assunto-x │ │ ├─ artigo-x1.org │ │ ├─ artigo-x2.org │ │ ├─ ... │ │ └─ artigo-xn.org │ ├─ ... │ ├─ assunto-z │ │ └─ ... │ └─ home.org ├─ index.php └─ styles.css
Onde:
-
Diretório
raiz
- Qualquer diretório no servidor onde se deseje hospedar uma página inicial.
-
Diretório
core
-
Contém os três arquivos da implementação do OMW: as funções (
functions.php
), a lógica de renderização (omw.php
) e as configurações (settings.php
). -
Diretório
org
- Por padrão, é o diretório dos arquivos texto marcados em org-mode.
-
Arquivo
org/home.org
-
O arquivo
.org
utilizado, por padrão, como conteúdo da página inicial. -
Arquivo
index.php
- O arquivo HTML onde serão interpolados os conteúdos gerados dinamicamente pelo OMW.
-
Arquivo
styles.css
-
Arquivo da folha de estilos (o nome pode ser qualquer outro, pois depende o que for definido em
index.php
).
Configurações
O OMW traz uma configuração padrão que deve ser suficiente na maioria dos
casos de uso, mas é possível alterá-las para outros gostos pessoais no
arquivo core/settings.php
:
$filename = 'home'; // Nome do arquivo utilizado como na página inicial (sem '.org')
$org_dir = 'org'; // Diretório dos arquivos '.org'
$get_key = 'p'; // Chave do método $_GET[key] para acessar outras páginas
Com essas configurações, a página inicial é acessada apenas pela sua URL
(com ou sem index.php
), enquanto os demais arquivos .org
serão acessados
com o acréscimo de uma query string:
https://meusite.com/index.php?p=categoria/arquivo
Onde categoria
é o diretório do arquivos org-mode no diretório org
e
arquivo
é o nome do arquivo desejado sem a extensão .org
.
Os arquivos não precisam estar em subdiretórios de categorias, esta é só uma opção de organização que eu adotei.
Portanto, com as configurações padrão…
https://meusite.com/
Ou…
https://meusite.com/index.php
Renderizará o conteúdo de org/home.org
e…
https://meusite.com/?p=exemplos/org-markup
Ou ainda…
https://meusite.com/index.php?p=exemplos/org-markup
Renderizará o conteúdo de org/exemplos/org-markup.org
.
Copyright©2025, Blau Araujo <blau@debxp.org> - Licença CC-BY-SA 4.0 International