Um pequeno parser de org-mode para HTML5
Find a file
2025-09-11 00:02:56 -03:00
core correção dos travessões 2025-09-11 00:02:56 -03:00
org coreção do exemplo 2025-09-05 14:25:08 -03:00
index.php html e css de demonstração 2025-09-05 13:46:01 -03:00
LICENSE Initial commit 2025-09-04 09:24:51 -03:00
omw-logo.png atualização do logo 2025-09-05 14:20:37 -03:00
README.org Página de exemplo 2025-09-07 11:20:36 -03:00
styles.css html e css de demonstração 2025-09-05 13:46:01 -03:00

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