Análisis [1]: visualización por secciones

Me comentó Marc la última vez que nos vimos que antes de ponerme a picar código hiciera un análisis previo y que lo colgara en el blog, por si había que discutir sobre el tema. Como todavía estoy muy algo verde voy a poner el del primer punto, a ver si voy encaminado o más perdido que Bush en una biblioteca.


La primera de las características que me mandaron programar, que era ésta:

  • 1. Cambiar el parser de la NWiki para que, al encontrar un link interno con la forma [[página#sección]] para que al clickar en él se
    enlace dicha página de la wiki pero donde el contenido de la página sea únicamente el de dicha sección (y sus subsecciones también).
    Además, hacerlo sólo para el parser de la NWiki (porque NWiki tiene varios parsers: nwiki, dfwiki, ewiki)

Lo que he pensado ha sido lo siguiente:

  • nwikiparser.php::parse_internal_link():
    Si la página existe, pasar por la URI un nuevo parámetro que va a ser el nombre del anchor (es decir, “seccion” si tenemos
    un link estilo link #seccion).
  • wikistorage.class.php:
    Añadir a la clase WS un nuevo atributo llamado anchor y cargarlo en recover_variables(), que es llamada desde view.php.

  • nwikiparser.php::parse_nwiki_text():
    Al principio de la función comprobar si está definida $WS->anchor llamar a una función estilo wiki_filter_section() que se encargará de filtrar el texto de la página de la wiki de la siguiente manera:

      · Recorrer el texto línea a línea eliminandolas hasta encontrar la sección con el nombre igual al anchor
      · Una vez encontrada la sección, calcular de qué nivel es (1, 2 o 3).
      · Recorrer líneas hasta encontrar una del mismo nivel o superior (si es inferior es una subsección y pertenecería también a la sección) hasta llegar al final. En el primer caso, borrar desde esa línea hasta el final.

      Mucho más sencillo hacerlo con las funciones de PHP de manipulación de strings como strpos() y substr()

También se me ha ocurrido que puede ser interesante dejar los links internos con anchor tal como están, es decir, que salga la página completa con scroll hacia la sección, y utilizar quizás en vez de [[pagina#seccion]] algo como [[pagina##seccion]] o [[pagina@seccion].

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: